Disciplina
Segurança em Software
Área
Área Científica de Metodologia e Tecnologias da Programação > Engenharia da Programação
Activa nos planos curriculares
METI 2018 > METI 2018 > 2º Ciclo > Áreas de Especialização > Segurança da Internet > Segurança em Software
MEIC-T 2018 > MEIC-T 2018 > 2º Ciclo > Agrupamentos > Ciber-Segurança > Segurança em Software
METI 2021 > METI 2021 > 2º Ciclo > Área Principal > Especializações > Especialização em Segurança da Internet > Informática > Segurança em Software
MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Ciber-Segurança > Segurança em Software
MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Ciber-Segurança > Segurança em Software
MERC 2006 > MERC 2006 > 2º Ciclo > Área de Especialização Principal > Aplicações Seguras, Móveis Entre-Pares e na Nuvem > Segurança em Software
MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Ciber-Segurança > Segurança em Software
MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Ciber-Segurança > Segurança em Software
MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Opções > Segurança em Software
Nível
2 Testes + 2 Projectos.
Tipo
Não Estruturante
Regime
Semestral
Carga Horária
1º Semestre
3.0 h/semana
1.5 h/semana
105.0 h/semestre
Objectivos
Compreender quais os problemas de segurança em software mais comuns e quais as suas causas fundamentais. Conhecer orientações, técnicas e ferramentas para a sua prevenção ou detecção, e quais os melhores princípios que estão por detrás destas técnicas.
Programa
Princípios da Segurança de Computadores Propriedades e conceitos básicos, vulnerabilidade, ameaça, ataque, confiabilidade vs. segurança, política e mecanismo, assumpções e confiança, garantia, questões operacionais, questões humanas, limites teóricos a problemas de segurança. Panorâmica e Protecção Desenvolvimento de software seguro; Princípios de projecto; Protecção em sistemas operativos. Vulnerabilidades em Software Buffer overflows; Corridas; Validação de input; Aplicações Web; Bases de dados; Cópia e modificação de software; Aleatorizaçao e determinismo. Desenvolvimento de software seguro Auditoria de software; Teste de software; Análise de programas; Validação e codificação. Controlo do ambiente de execução Protecção dinâmica; Virtualização e segurança; Trusted computing; Segurança Baseada em Linguagem Análise de fluxos de informação. Sistemas de tipos para a segurança; Desenvolvimento de código de baixo nível seguro; Compilação certificada; Código portador de prova; Um Caso de Estudo: Segurança em Java Sandboxing e inspecção da pilha; Falhas de segurança em Java; Princípios de programação segura em Java
Metodologia de avaliação
2 Testes + 2 Projectos.
Pré-requisitos
Componente Laboratorial
Princípios Éticos
Componente de Programação e Computação
Componente de Competências Transversais
Bibliografia
Principal
Miguel Pupo Correia e Paulo Jorge Sousa
Building Secure Software: How to Avoid Security Problems the Right Way
Addison-Wesley ISBN 9780201721522
Introduction to Computer Security
The 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them
Michael Howard, David LeBlanc and John Viega
McGraw-Hill ISBN 9780071626750