Departamento de Informática (UM)

Página de Unidade Curricular 🇬🇧

DesignaçãoCódigoCursoRegimeRegente

Segurança de Software

16788 [ME78ME7800007411]

Mestrado em Engenharia Informática [MEINF]

S2

Tiago Filipe Azevedo Oliveira

Objetivos

A unidade curricular de Segurança de Software foca-se nas metodologias e processos que visam assegurar o desenvolvimento de sistemas de software seguro. Os alunos serão assim dotados de competências que vão desde a identificação das principais vulnerabilidades em sistemas de software; da análise de risco e levantamento de requisitos de segurança; boas práticas na codificação e validação; e experiência com os standards de segurança e respetivas implementações.

Programa

1. Segurança de software: revisão de conceitos; classificação de fraquezas e vulnerabilidades (CWE, CVE); fraquezas de software com maior impacto na segurança de sistemas.
2. Segurança no ciclo de vida do desenvolvimento de software (SDLC): modelos de SDLC; Framework NIST-SSDF.
3. Standards e boas-práticas: organizações e iniciativas; áreas de atuação; certificações.
4. Segurança de Componentes e APIs de software: identificação e controlo de acessos; autenticação e autorização; gestão de chaves.

Bibliografia


A. Shostack. Threat modelling: designing for Security. Wiley, 2014.

M. Howard, S. Lipner. The Security Development Lifecycle. Microsoft Press, 2006.

NIST SP 800-218. Secure Software Development Framework (SSDF) Version 1.1: Recommendations for Mitigating the Risk of Software Vulnerabilities”. (https://csrc.nist.gov/pubs/sp/800/218/final)

SAFECode. Fundamental Practices for Secure Software Development. 3rd Edition, 2018. (https://safecode.org/wpcontent/uploads/2018/03/SAFECode_Fundamental_Practices_for_Secure_Software_Development_March_2018.pdf). N, Madden. API Security in Action. Manning, 2020.

Resultados da aprendizagem

Assim, no final, os alunos deverão ser capazes de:
- Identificar as vulnerabilidades de software com maior impacto na segurança.
- Realizar modelos de ameaças em sistemas de software.
- Utilizar metodologias e ferramentas no ciclo de vida de desenvolvimento de software seguro.
- Aplicar protocolos standard na construção de componentes de software seguro.

Método de avaliação

A avaliação da UC será eminentemente prática, incorporando uma componente de avaliação contínua (peso entre 30% e 60%), e do projeto de desenvolvimento de software realizado em grupos de trabalho (peso entre 30% e 60%). Prevê-se ainda a existência de um exame escrito com (peso entre 0% e 50% da nota final).

Funcionamento

Turno: T 1; Docente: Tiago Filipe Azevedo Oliveira; Dep.: DI; Horas: 15.
Turno: PL 1; Docente: Tiago Filipe Azevedo Oliveira; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]