Oferta Formativa - Sinopse

Sistemas de Software Seguros

Código: 425179
Ano Letivo: 2015/16
Departamento: Informática
ECTS: 6
Carga horária: T: 2:00 h; TP: 1:30 h; OT: 2:00 h;
Área Científica: Informática; 

Objetivos da Unidade Curricular

O número de ataques informáticos registados nos úlltimos anos tem tido um crescimento aproximadamente exponencial. Sob o ponto de vista da integridade dos sistemas e da confidencialidade dos dados, a segurança do computador é uma das áreas que merece maior atenção, sendo importante se atingir o objectivo (ainda que díficil) da construção de software sem vulnerabilidades. Por exemplo, a comunicação de algumas aplicações de comércio electrónico ou home banking é eficazmente protegida pelo protocolo SSL, enquando as máquinas dos clientes são atacadas por worms que roubam as passwords de acesso.

O tema desta cadeira é a segurança da máquina, nomeadamente do seu software, por contraposição à segurança da comunicação/rede. A cadeira pretende abordar os principais temas necessários para compreender o problema, incluindo também a discussão de alguns tópicos mais avançados que se encontram actualmente no domínio da investigação.


Pré-requisitos

Sem pré-requisitos

Conteúdos

Componente Teórica

- Segurança e Desenvolvimento de Software

- Protecção em Sistemas Operativos Convencionais

- Buffer Overflows

- Validação de Input (Web e BDs)

- Condições de Corrida

- Testes de Segurança (Injecção de Ataques e Análise Estática)

Componente Teórico-prática

Aulas hands-on sobre os seguintes temas:

- Segurança e Desenvolvimento de Software

- Protecção em Sistemas Operativos Convencionais

- Buffer Overflows

- Validação de Input (Web e BDs)

- Condições de Corrida

- Testes de Segurança (Injecção de Ataques e Análise Estática)

 

Descrição detalhada dos conteúdos programáticos

Componente Teórica

O programa da disciplina está dividido em três partes. Na primeira parte é feita uma panorâmica da segurança de software e de mecanismos de protecção básicos. Na segunda parte são descritas as classes principais de vulnerabilidades e como é que podem ser prevenidas. Na terceira parte são descritas técnicas e ferramentas para melhorar a segurança de software.

Os principais temas abordados em cada uma das três partes são indicados de seguida:

1ª Parte – Panorâmica
- Motivação
- Segurança e Desenvolvimento de Software
- Protecção em Sistemas Operativos Convencionais 

2ª Parte – Vulnerabilidades
- Buffer Overflows
- Validação de Input
- Vulnerabilidades em Aplicações Web (Cross site scripting, injecção, ...)
- Vulnerabilidades relacionadas com Sistemas de Gestão de Bases de Dados (injecção de SQL, ...)
- Corridas

3ª Parte – Técnicas/Ferramentas
- Teste de Software e Injecção de Ataques
- Análise Estática de Código
- Auditoria de software

 

Componente Teórica-Prática

As aulas teórico-práticas têm o objectivo de complementar os tópicos tratados nas aulas teóricas, através do tratamento de temas mais específicos, a realização de trabalhos no laboratório, e de suporte aos projectos.

 

Bibliografia

Recomendada

Miguel Correia, Paulo Sousa, Software Seguro, FCA editora, 2010.

 

Outros elementos de estudo

J. Viega, G. McGraw, Building Secure Software, Addison-Wesley, 2002.

M. Howard, D. LeBlanc, Writing Secure Code, 2nd edition, Microsoft Press, 2003.

C. Wysopal, The Art of Software Security Testing, Addison-Wesley, 2006.

B. Chess, J. West, Secure Programming with Static Analysis, Addison-Wesley, 2007.

 

Métodos de Ensino

As aulas estão organizadas em aulas teóricas, aulas teórico-práticas e laboratórios.

* Aulas teóricas: exposição dos temas do curso.

* Sessões teórico-práticas: exposição de material com mais detalhes (por exemplo, protocolos ou pacote de interfaces ou internos), e permitir um conhecimento mais profundo e prático sobre esses temas.

* Sessões de laboratório: têm por objectivo permitir ao aluno trabalhar nos mini-projectos e no projeto.

 

Métodos de Avaliação

Avaliação: 10% - Apresentação e discussão de um artigo técnico relacionado; 5% - Através de um conjunto de mini-projetos nas aulas teórico-práticas; 30% - um projeto e a apreciação e discussão individual dos resultados obtidos; 55% - Exame final

 

Língua de ensino

Português ou inglês