Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
04375
Acrónimo :
04375
Ciclo :
1.º ciclo
Línguas de Ensino :
Português (pt)
Língua(s) amigável(eis) :
Português

Carga Horária / Course Load


Semestre :
1
Créditos ECTS :
6.0
Aula Teórica (T) :
12.0h/sem
Aula Teórico-Prática (TP) :
12.0h/sem
Aula Prática e Laboratorial (PL) :
12.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
37.0h/sem
Trabalho Autónomo :
113.0
Horas de Trabalho Total :
150.0h/sem

Área científica / Scientific area


480 - Informática

Departamento / Department


Departamento de Tecnologias Digitais

Ano letivo / Execution Year


2024/2025

Pré-requisitos / Pre-Requisites


Não existem nenhuns requisitos específicos para a frequência desta unidade curricular.

Objetivos Gerais / Objectives


Utilizadores e organizações dependem de software e aplicações para realizar as mais diversas atividades no seu dia a dia. Os atacantes exploram cada vez mais problemas de segurança no software e em aplicações para poderem tirar proveito dos mesmos. O objetivo desta unidade é fornecer uma visão geral estruturada das categorias conhecidas de vulnerabilidades de implementação de software, e das técnicas que podem ser utilizadas para prevenir ou detetar tais vulnerabilidades, ou para mitigar a sua exploração. Esta UC aborda os principais problemas no desenvolvimento de software, no ciclo de desenvolvimento de software seguro e nas operações do mesmo (DevSecOps). Para além disto, esta unidade curricular foca-se em aplicações web e aplicações móveis, nos servidores e serviços web, como nas integrações com aplicações terceiras através de APIs.

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


Nesta UC irão ser utilizadas múltiplas metodologias de ensino, devidamente combinadas para atingir os objetivos de aprendizagem da mesma. Assim, uma parte central do ensino será baseada de metodologia expositiva, em especial em aulas de natureza essencialmente teórica, para expor os conceitos principais que os alunos devem aprender. Por outro lado, em especial nas aulas de natureza prática serão igualmente usadas as metodologias de ensino demonstrativa e participativa, em especial, quando os alunos forem confrontados com atividades de natureza mais prática. E finalmente será igualmente usada uma metodologia de ensino ativa, que visa estabelecer a colaboração entre os alunos – esta será particularmente relevante para a realização dos diferentes projetos que os alunos terão de realizar na UC. É importante ainda realçar a componente de trabalho autónomo na UC que é essencial para os alunos poderem consolidar e aprofundar os conhecimentos obtidos nas aulas de natureza expositiva.

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


Conjunto de artigos, páginas web e textos que complementam a informação bibliográfica da unidade curricular, e que serão fornecidos pela equipa docente.

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


Data da última atualização / Last Update Date


2024-10-31