Disciplina

Á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

2017

FCA


Building Secure Software: How to Avoid Security Problems the Right Way

John Viega and Gary McGraw

2002

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

2009

McGraw-Hill