Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
480 - Informática
Departamento / Department
Departamento de Tecnologias Digitais
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
Objetivos Gerais / Objectives
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
Após a conclusão desta UC os alunos estarão aptos a: OA1. Conhecerem e compreenderem os problemas de segurança do software e de aplicações OA2. Conhecerem e compreenderem os principais riscos e desafios de segurança de aplicações Web e Mobile OA3. Conhecer e aplicar metodologias a princípios de desenho e desenvolvimento seguro de software OA4. Conhecerem técnicas que permitam efetuar a exploração de software e aplicações OA5. Conceberem medidas de mitigação no software e aplicações para evitar vulnerabilidades de segurança
Conteúdos Programáticos / Syllabus
CP1. Problemas de segurança em aplicações e em software: exploração de memória, condições de concorrência, geração de output, side channels, entre outros. CP2. Deteção de vulnerabilidades de software e mitigação da exploração das mesmas CP3. Desenvolvimento seguro de software para mitigação de vulnerabilidades CP4. Desenvolvimento, Segurança e Operação de Software (DevSecOps) CP5. Principais vulnerabilidades exploradas em aplicações web, móveis, serviços web e APIs CP6. Controlos de cibersegurança e proteção de dados que devem ser implementados nas aplicações web, móveis, serviços web e API CP7. Exploração de vulnerabilidades em aplicações web, mobile e serviços web
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
Os conteúdos programáticos desta UC encontram-se ajustados aos objetivos de aprendizagem da mesma, Assim, no que respeita aos objetivos OA1, OA2 e OA3, os alunos irão aprender os conceitos principais da segurança do desenvolvimento de software assim como os principais problemas de segurança em diferentes plataformas. Relativamente ao objetivo OA4 os estudantes irão conhecer e perceber os múltiplos problemas de segurança que afetam o software em múltiplas plataformas, assim como as principais soluções para poderem resolver os problemas de segurança identificados. Finalmente, em OA5, os alunos irão aprender a aplicar na prática as metodologias de exploração de potenciais problemas de segurança em aplicações e em software.
Avaliação / Assessment
Avaliação ao longo do semestre: - Realização de um projeto em grupo (60%) ao longo do semestre - Realização de um teste individual (40%) [nota mínima de 9,5 valores] A frequência de um número mínimo de aulas não é obrigatória na avaliação ao longo do semestre. Avaliação por exame: Para os estudantes que optem por este processo ou para os que reprovarem no processo de avaliação ao longo do semestre, com 3 épocas nos termos do RGACC.
Metodologias de Ensino / Teaching methodologies
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
As metodologias de ensino foram selecionadas de forma a corresponder aos objetivos de aprendizagem da UC. Através de uma combinação de momentos de aprendizagem, os estudantes irão realizar tarefas com diferentes níveis de apoio e orientação docente ao longo da UC que lhes permitirá conhecer os principais conceitos e metodologias para o desenvolvimento de software seguro, assim como para a análise da segurança de aplicações. O docente dará feedback (corretivo e/ou cognitivo) sobre as tarefas realizadas pelos alunos. Os estudantes irão ainda realizar tarefas, laboratórios específicos e um projeto com diferentes fases relacionadas com os diferentes temas que serão abordados na unidade curricular. No caso do projeto os estudantes terão acesso a todos os detalhes do trabalho a realizar, assim como as ferramentas que devem ser usadas e os detalhes dos principais resultados a obter. Esta abordagem permitirá que os estudantes estabeleçam conexões entre os conhecimentos teóricos e práticos, permitindo-lhes perceber e aplicar os conhecimentos da unidade curricular.
Observações / Observations
Bibliografia Principal / Main Bibliography
Zalewski M. (2012). The tangled web: A guide to securing modern web applications. No Starch Press. ISBN: 1-59327-388-6. Stuttard D., Pinto M. (2012). The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws. Wiley. ISBN: 978-1118026472. Hsu, T. H. C. (2018). Hands-On Security in DevOps: Ensure continuous security, deployment, and delivery with DevSecOps. Packt Publishing Ltd. ISBN : 1788995503. Richardson T. (2012). Secure Software Design. Jones & Bartlett Learning. ISBN: 978-1449626327 Deogun D., Johnsson B., Sawano D. (2019). Secure By Design. Manning Publications. ISBN: 978-1617294358 Grembi J. (2008). Secure Software Development: A Security Programmer's Guide. Cengage Learning. ISBN: 978-1418065478 Adkins H., Beyer B., Blankinship P., Lewandowski P., Oprea A., & Stubblefield A. (2020). Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems. O'Reilly Media. ISBN: 978-1492083122.
Bibliografia Secundária / Secondary Bibliography
Conjunto de materiais distribuídos pela equipa docente no decurso das aulas.
Data da última atualização / Last Update Date
2024-10-31