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