Plano de Estudos

Segurança de Software SSoft

Contextos

Groupo: 5_MEI 2025/26 > 2º Ciclo > Parte Escolar > Agrupamento Curricular de Especialização > Engenharia de Software > 2020 - MEI - Engenharia de Software - Livres

Groupo: 5_MEI 2025/26 > 2º Ciclo > Parte Escolar > 2033 - MEI - Grupo Opcional Geral (CEI)

Groupo: 5_MEI 2025/26 > 2º Ciclo > Parte Escolar > Agrupamento Curricular de Especialização > Sistemas Móveis e Ubíquos > 2032 - MEI - Sistemas Móveis e Ubíquos - Livres

Groupo: 5_MEI 2025/26 > 2º Ciclo > Parte Escolar > Agrupamento Curricular de Especialização > Segurança Informática > 2027 - MEI - Segurança Informática - Nucleares

Groupo: 5_MEI 2025/26 > 2º Ciclo > Parte Escolar > Agrupamento Curricular de Especialização > Segurança Informática > 2028 - MEI - Segurança Informática - Livres

ECTS

6.0 (para cálculo da média)

Objectivos

O número de ataques informáticos observados nos últimos anos teve um crescimento quase exponencial. No que diz respeito à integridade dos sistemas e à confidencialidade dos dados, torna-se cada vez mais evidente que o elo mais fraco é a segurança do computador e, em particular, o software que ele executa. O tema desta unidade curricular é a segurança da máquina, nomeadamente do seu software, por contraposição à segurança das comunicações/rede. São abordados os principais tópicos necessários para entender e enfrentar o problema, incluindo a discussão de uma série de temas mais avançados que se encontram atualmente no domínio da investigação.

Programa

Componente Teórica: Conceitos de segurança e o processo de desenvolvimento de software; Princípios para a construção de software seguro; Mecanismos de proteção em sistemas operativos convencionais; Estudo exaustivo de várias classes de vulnerabilidades, incluindo: Buffer overflows, format strings, integer overflows; Validação de input (SO, Web e BDs); Condições de corrida; Erros específicos nas aplicações Web e Bases de Dados; Mecanismos para a descoberta automática de vulnerabilidades, como o fuzzing, e a análise estática; Metodologias de auditoria de segurança de software. Componente Teórico-prática: Aulas em ambiente laboratorial, abordando exemplos práticos sobre os seguintes temas: Buffer overflows; Format strings; Validação de input e outros erros nas aplicações da Web e BDs; Condições de corrida; Testes de segurança (Fuzzing e Análise estática).

Método de Avaliação

Avaliação: 15% - Resolução de um conjunto de mini-projetos nas aulas teórico-práticas; 35% - um projeto e a apreciação e discussão individual dos resultados obtidos; 50% - Exame final Nota mínima de 10 valores para Exame e (Mini-projetos + projeto) Melhorias de Nota: uma melhoria de nota obriga à realização de todas as componentes da avaliação

Carga Horária

Carga Horária de Contacto -

Trabalho Autónomo - 119.0

Carga Total -

Bibliografia

Principal

  • Segurança no Software, 2 Edição, FCA editora: Miguel Correia, Paulo Sousa 2017
  • Software Security: Principles, Policies, and Protection: M. Payer 2021 https://nebelwelt.net/SS3P/

Secundária

  • Secure Coding in C and C++: Robert C. Seacord 2013
  • Secure Programming with Static Analysis: Brian Chess, Jacob West 2007
  • Fuzzing: Brute Force Vulnerability Discovery: Michael Sutton, Adam Greene, Pedram Amini 2007
  • Several documents from different organizations (e.g., NIST/OWASP), covering specialized topics (e.g., Secure Software Development Framework (SSDF) Version 1.1: Recommendations for Mitigating the Risk of Software Vulnerabilities, NIST, 2022): Vários 2024
  • Web Application Security: Exploitation and Countermeasures for Modern Web Applications: Andrew Hoffman 2024

Disciplinas de Execução

2026/2027 - 1 Semestre

2025/2026 - 1 Semestre