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
Exame (60%), projecto (ferramenta+análise crítica) (40%).
Tipo
Não Estruturante
Regime
Semestral
Carga Horária
1º Semestre
2.0 h/semana
1.5 h/semana
119.0 h/semestre
Objectivos
Compreender os problemas de segurança em software mais comuns e as causas que estão na sua origem. Adquirir competências na concepção, análise, e integração de orientações, técnicas e ferramentas para a resolução desses problemas.
Programa
Conceitos básicos de segurança em sistemas: controlo de acessos, protecção dinâmica. Vulnerabilidades em software: vulnerabilidades em aplicações convencionais, vulnerabilidades em bases de dados, vulnerabilidades em aplicações web, vulnerabilidades em aplicações móveis, vulnerabilidades em máquina maliciosa. Desenho de mecanismos de segurança em software: políticas de fluxo de informação, propriedades de segurança, análise de programas para segurança, análise estática para segurança, análise dinâmica para segurança. Desenvolvimento de software seguro: segurança em projecto de software, auditoria de segurança de software, validação e codificação, detecção de bugs em segurança, aspectos de segurança na arquitectura e modelo de execução de linguagens de programação.
Metodologia de avaliação
Exame (60%), projecto (ferramenta+análise crítica) (40%).
Pré-requisitos
Conhecimentos de Linguagens de Programação, Programação, Sistemas Operativos.
Componente Laboratorial
Exercícios de exploração de vulnerabilidades de software. Exercícios de implementação de mecanismos de segurança em software. Exercícios de exploração de limitações em mecanismos de segurança em software. Apoio ao desenvolvimento do projecto. Projecto: Implementação de uma ferramenta de segurança em software + Relatório de análise crítica.
Princípios Éticos
Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.
Componente de Programação e Computação
No curso onde esta UC é oferecida estão asseguradas as componentes de Computação e Programação de acordo com o MEPP 2122.
Componente de Competências Transversais
Explicitar as Competências Transversais a desenvolver de acordo com o definido pela comissão de competências transversais, indicando qual a percentagem das suas componentes de avaliação que contempla a análise de competências transversais.
Bibliografia
Principal
Segurança no Software (2ª edição)
Miguel Pupo Correia e Paulo Jorge Sousa
Building Secure Software: How to Avoid Security Problems the Right Way
Addison-Wesley ISBN 9780201721522
The 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them
Michael Howard, David LeBlanc and John Viega