Disciplina
Segurança em Software
Área
Área Científica de Metodologia e Tecnologias da Programação > Engenharia de Software
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 (30%+30%), apresentação de artigo (20%), projecto (20%)
Tipo
Não Estruturante
Regime
Semestral
Carga Horária
1º Semestre
3.0 h/semana
1.5 h/semana
147.0 h/semestre
Objectivos
Compreender os problemas de segurança em software mais comuns e as suas causas fundamentais. Conhecer orientações, técnicas e ferramentas para a sua prevenção ou detecção, e 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; Princípios de projecto de software seguro. • Vulnerabilidades em Software Aplicações convencionais (buffer overflows, corridas); Aplicações Web e bases de dados; Aplicações móveis; Cópia e modificação de software; • Aspectos de desenvolvimento de software seguro Auditoria de software; 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; Código portador de prova. • 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 (30%+30%), apresentação de artigo (20%), projecto (20%)
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
The 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them
Michael Howard, David LeBlanc and John Viega