Disciplina

Á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

Segurança no Software

Miguel Pupo Correia e Paulo Jorge Sousa

2010

FCA


The 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them

Michael Howard, David LeBlanc and John Viega

2009

McGraw-Hill