Menu Conteúdo Rodapé
  1. Início
  2. Cursos
  3. Engenharia Informática
  4. Sistemas de Software Seguros

Sistemas de Software Seguros

Código 11488
Ano 1
Semestre S2
Créditos ECTS 6
Carga Horária PL(30H)/T(30H)
Área Científica Informática
Tipo de ensino Ensino presencial
Estágios Não aplicável.
Objectivos de Aprendizagem Esta unidade curricular tem como objetivos aprofundar e alargar conhecimentos prévios em segurança informática, e estudar tópicos avançados de engenharia e implementação de sistemas de software seguros. Em termos de aptidões, pretende-se fomentar o desenvolvimento de uma consciência critica no(a) aluno(a) relativamente a problemas de segurança em comunicações e software durante todas as fases de desenvolvimento de software. Em termos de competências, pretende-se conseguir que o(a) aluno(a) seja capaz de: implementar corretamente primitivas, mecanismos e protocolos da criptografia moderna; configurar mecanismos de segurança em sistemas operativos; identificar problemas de segurança no software e práticas para os minimizar, nomeadamente em aplicações Web; garantir segurança por construção e desenvolver aplicações com menos vulnerabilidades, nomeadamente através da prática de um maior rigor no processo de engenharia de software.
Conteúdos programáticos Teórico
1. Revisão e introdução de conceitos importantes para a unidade curricular;
2. Autenticação remota e no software; protocolos de conhecimento zero;
3. Criptografia de curvas elípticas;
4. Mecanismos de proteção em sistemas operativos;
5. Vulnerabilidades de buffer overflow e relacionadas com corridas
6. Segurança e vulnerabilidades em aplicações Web
7. Proteção dinâmica e validação de entrada
8. Modelação de ataques, projeto e auditoria de software
9. Análise estática de código
10. Técnicas de prevenção de pirataria de software

Prático
1. Revisão de conceitos de criptografia usando o OpenSSL
2. Instalação e utilização do SSH
3. Derivação de chaves de cifra e teste de ligações TLS
4. Exercícios sobre autenticação
5. Controlo de acesso em sistemas operativos
6. Implementação segura de primitivas criptográficas
7. Implementação da ElGamal sobre curvas elípticas
8. Modelação de ataques e projeto de pentesting
9. Análise de programas sujeitos a buffer overflow e corridas
10. Exploração de vulnerabilidades de injeção de código e XSS
Metodologias de Ensino e Critérios de Avaliação Durante o período ensino-aprendizagem, a avaliação a esta unidade curricular é feita recorrendo a quatro elementos principais: dois testes de aferição de conhecimentos escritos (T1 e T2), um teste prático (TP) e um trabalho prático de grupo (TG). T1 e T2 valem, cada um, 30% da classificação para o período ensino-aprendizagem (o equivalente a 6 valores cada), enquanto que TP vale 20% (o equivalente a 4 valores) e TG vale 20% (o equivalente a 4 valores). A classificação para o período ensino-aprendizagem (C) é obtida da média ponderada das notas obtidas nos referidos elementos:
C = 0.30 x T1 + 0.30 x T2 + 0.20 x TP + 0.20 x TG.

A assiduidade (Ass) para esta unidade curricular é de 80% (o equivalente a uma tolerância de 6 faltas no total das aulas teóricas e práticas).

A aprovação à unidade curricular e a concessão de frequência depende da assiduidade e da classificação para o período ensino-aprendizagem. O(a) aluno(a) é aprovado(a) caso obtenha uma classificação superior ou igual a 9.5 e assiduidade superior ou igual a 80% durante o período ensino-aprendizagem. Em caso de aprovação, a classificação final (CF) é o número inteiro mais próximo de C, i.e.,
Se C >= 9.5 e Ass >= 80%, Então Aprovado com CF = arredondar(C).

Em caso de aprovação no período ensino-aprendizagem, o(a) aluno(a) é dispensado de exame, embora possa ir melhorar a sua classificação em exame.

A admissão a exame depende da obtenção de uma classificação superior ou igual a 6 e assiduidade superior ou igual a 80% no período ensino-aprendizagem, i.e.,
Se C >= 6 e Ass >= 80%, Então Admitido a Exame;
Caso contrário, Reprovado.

As notas do teste prático e do trabalho de grupo continuam a contar para exame. O exame (E) versa sobre toda a matéria lecionada e praticada durante o período ensino-aprendizagem, substituindo os dois testes de aferição de conhecimentos escritos, valendo portanto 60% da classificação final. A classificação após exame (CE) é calculada usando a fórmula:
CE = 0.60 x E + 0.20 x TP + 0.20 x TG.

A classificação final à unidade curricular no final das atividades letivas depende da assiduidade e da maior das duas classificações C e CE. O(a) aluno(a) é aprovado(a) à unidade curricular se uma das classificações C ou CE for superior ou igual a 9.5 e a assiduidade seja superior a 80% (faz-se notar que a assiduidade conta também para admissão a exame). Em caso de aprovação, a classificação final (CF) é o número inteiro mais próximo da maior das duas classificações. A classificação final será Reprovado caso ambas as notas sejam inferiores a 9.5 ou a assiduidade inferior a 80%:
Se MAX(C,CE) >= 9.5 e Ass >= 80%, Então Aprovado com CF = arredondar(MAX(C,CE));
Caso contrário, Reprovado.

Estes critérios aplicam-se a alunos de erasmus e trabalhadores estudantes, à excepção da assiduidade às aulas e salvo situações pontuais devidamente discutidas e acordadas com o regente da unidade curricular. Para alunos com estes estatutos, os trabalhos práticos de grupo podem eventualmente vir a ser substituídos por um trabalho individual com dificuldade ajustada.

Momentos de Avaliação:
Teste escrito 1, a realizar dia 11/04/2019, vale 6 valores;
Teste escrito 2, a realizar dia 06/06/2019, vale 6 valores;
Teste prático a realizar dia 02/05/2019, vale 4 valores;
Trabalho de Grupo, entregue até 29/05/2019, vale 4 valores.
Bibliografia principal Bibliografia Principal
Miguel Pupo Correia and Paulo Jorge Costa, Segurança no Software, FCA - Editora de Informática, pp. 462, 2010.
Serge Vaudenay, A Classical Introduction to Cryptography Applications for Communications Security, Springer, pp. 370, 2005.
Pedro Ricardo Morais Inácio, Sebenta de Sistemas de Software Seguros, 2018

Bibliografia Complementar
Thomas Baigneres, Pascal Junod, Yi Lu, Jean Monnerat, Serge Vaudenay, A Classical Introduction to Cryptography Exercise Book, Springer, pp. 254, 2005.
André Zúquete, Segurança em Redes Informáticas, FCA - Editora de Informática, 3ª Ed. (actualizada e aumentada), pp. 432, 2012.
Margaret Cozzens, Steven J. Miller, The Mathematics of Encryption : An Elementary Introduction, American Mathematical Society (AMS), 2013.
Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone, Handbook of Applied Cryptography, CRC Press.
Douglas R. Stinson, Cryptography: Theory and Practice, (3nd Ed.) CRC Press. 2005.
Língua Português
Data da última atualização: 2014-08-07
As cookies utilizadas neste sítio web não recolhem informação pessoal que permitam a sua identificação. Ao continuar está a aceitar a política de cookies.