Segurança em Engenharia de Software
Ficha provisória
Áreas Científicas |
Classificação |
Área Científica |
CNAEF |
Ciências informáticas |
Ocorrência: 2024/2025 - 2S
Ciclos de Estudo/Cursos
Docência - Responsabilidades
Língua de trabalho
Inglês
Objetivos
No final desta unidade curricular, pretende-se que os estudantes:
1. Reconheçam os problemas mais importantes de segurança em sistemas de computação baseados em software, respetivas causas e consequências, e reconheçam a importância da utilização de boas práticas de engenharia de software para a prevenção, deteção e mitigação desses problemas;
2. Conheçam e sejam capazes de aplicar boas práticas genéricas e específicas para o desenvolvimento de
sistemas de software seguros nas diversas fases do ciclo de vida do software: captura de requisitos,
arquitetura e desenho, implementação, verificação e validação, distribuição, instalação e manutenção;
3. Conheçam e sejam capazes de usar processos e ferramentas de engenharia de software especialmente
direcionados para questões de segurança;
4. Conheçam normas relevantes para o desenvolvimento de sistemas de software seguros.
Resultados de aprendizagem e competências
Os conteúdos programáticos foram definidos em função dos objetivos e competências a serem adquiridos
pelos estudantes nesta UC. Os conteúdos programáticos incluem as abordagens consideradas estado da arte
em segurança em engenharia de software bem como técnicas específicas que conferem aos estudantes a
capacidade de selecionar de forma crítica o método apropriado a utilizar para, na prática, resolver problemas de segurança na engenharia de aplicações informáticas. Ao mesmo tempo, os estudantes serão capazes de interpretar e analisar o comportamento dos algoritmos e os resultados obtidos pelos mesmos. Para atingir os objectivos de aprendizagem, a UC irá abordar não só processos e algoritmos, bem como ferramentas off-the-shelf.
Modo de trabalho
Presencial
Programa
1) Introdução, conceitos fundamentais e terminologia
2) Processos de engenharia de software com foco na segurança;
3) Engenharia de requisitos de segurança;
4) Programação e desenvolvimento de software seguro
5) Criptografia
6) Software de sistema (SOs), utilizadores e controlo de acesso
7) Segurança nos sistemas distribuídos
8) Segurança nas aplicações web
9) Verificação e validação de aspetos de segurança
10) Segurança na distribuição, instalação e manutenção dos sistemas de software
Bibliografia Obrigatória
William Stallings, Lawrie Brown;
Computer Security: Principles and Practice, 4th Edition, Pearson, 2018. ISBN: 978-1292220611
Pfleeger, C.; Pfleeger, S.L.; Margulies, J.;;
Security in Computing, 5th Edition, Pearson Education, Inc., 2015. ISBN: 978-0-13-408504-3
McGraw, G.;
Software Security: Building Security In, Addison Wesley Professional, 2006
Mead, N.R., Hough, R., & Stehney II, T.;
Security Quality Requirements Engineering (SQUARE) Methodology, Software Engineering Institute, 2005
Bibliografia Complementar
Matt Bishop;
Computer Security Art and Science, 2nd Edition, Addison-Wesley, 2019. ISBN: 978-0-321-71233-2
Justin Richer, Antonio Sanso;
OAuth 2.0 in Action, Manning Publications, 2017. ISBN: 978-1617293276
Seacord, R.C., Svoboda, D., & Togashi, K.;
Secure Design Patterns, Chad Dougherty, Kirk Sayre, 2009
Dowd, M., McDonald, J., & Schuh, J.;
The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities, Addison Wesley Professional, 2006
Davis, N.;
Secure Software Development Life Cycle Processes: A Technology Scouting Report. CMU/SEI2005TN024, Software Engineering Institute, 2005
Métodos de ensino e atividades de aprendizagem
As aulas terão uma componente de exposição e discussão dos tópicos programáticos, e outra componente de realização de exercicíos práticos e pequenos projetos de aplicação dos conceitos e técnicas e experimentação de ferramentas. Será reservada uma ou duas aulas para a apresentação de tópicos e projetos explorados pelos estudantes.
Palavras Chave
Ciências Tecnológicas > Tecnologia > Tecnologia da informação > Tecnologia da segurança
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Exame |
50,00 |
Trabalho laboratorial |
30,00 |
Trabalho prático ou de projeto |
20,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Elaboração de projeto |
60,00 |
Estudo autónomo |
40,00 |
Frequência das aulas |
39,00 |
Trabalho laboratorial |
23,00 |
Total: |
162,00 |
Obtenção de frequência
Entrega de todos os elementos de avaliação e exame.
Fórmula de cálculo da classificação final
Avaliação contínua (50% da nota final) baseada em trabalho e desenvolvimento prático com duas componentes:
Trabalho laboratorial: 20% Projeto prático: 30%
Exame Final (50% da nota final)
Para aprovação é necessário um mínimo de 40% no exame final.
Avaliação especial (TE, DA, ...)
Os trabalhos são obrigatórios para todos os alunos, mesmo para os alunos dispensados de frequência às aulas. Os alunos dispensados de frequência às aulas devem contactar o docente para sessões especiais de acompanhamento dos trabalhos. A defesa dos trabalhos práticos é obrigatória para TODOS os estudantes.
Melhoria de classificação
- As classificações obtidas na avalaição contínua podem ser melhoradas na edição seguinte da unidade curricular
- A classificação do exame pode ser melhorada em exame de recurso.