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
2026/2027
Pré-requisitos / Pre-Requisites
Para frequentar esta unidade curricular é importante que o aluno tenha algum conhecimento sobre os processos de desenvolvimento de software e conheça alguma linguagem de programação.
Objetivos Gerais / Objectives
Na unidade curricular de Segurança e Resiliência de Software e Aplicações, os alunos terão a oportunidade de abordar o tema da segurança do software e das múltiplas aplicações nas organizações (diferentes tipologias das mesmas), relativamente aos diferentes processos de desenvolvimento e manutenção desse software e aplicações nas organizações, identificação dos principais problemas e riscos, e correção dos mesmos. O objetivo fundamental desta UC é que os alunos estejam preparados para reconhecer as ameaças a software e aplicações que possam afetar a segurança e resiliência das mesmas, e que possam identificar e implementar medidas para mitigar essas ameaças e garantir a sua resiliência a ataques.
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
OA1: Identificar e analisar vulnerabilidades e ameaças em software e aplicações utilizadas nas organizações, e compreender os riscos que representam para a segurança e resiliência. OA2: Aprender a aplicar práticas de codificação segura para desenvolver software, considerando diferentes metodologias de desenvolvimento e fases do ciclo de vida de desenvolvimento de software (SDLC). OA3: Avaliar e implementar medidas de segurança para mitigar vulnerabilidades e abordar riscos específicos para aplicações web, móveis, na nuvem e empresariais. OA4: Aprender a usar técnicas e ferramentas de teste de segurança para avaliar a segurança de software, incluindo análise dinâmica e estática, teste de penetração e revisão de código. OA5: Conhecer e aprender a integrar considerações de segurança e resiliência no ciclo de vida de desenvolvimento de software (SDLC), garantindo que o software é concebido, desenvolvidos e mantidos com enfoque na segurança e resiliência contra potenciais ataques e riscos.
Conteúdos Programáticos / Syllabus
CP1: Introdução à Segurança de Software e Aplicações CP2: Processos de Desenvolvimento de Software e Segurança (DevSecOps e Segurança em Pipelines CI/CD) CP3: Segurança de Aplicações Web CP4: Segurança de Aplicações Móveis CP5: Segurança de Aplicações na Nuvem e Nativas de Cloud (Contentores e Microsserviços) CP6: Segurança de Aplicações Empresariais e de Inteligência Artificial/LLM (Prompt Injection, Envenenamento de Dados) CP7: Segurança da Cadeia de Abastecimento de Software (SBOM e Dependências Open Source) CP8: Teste e Avaliação de Segurança de Software CP9: Manutenção de Software Seguro e Resiliente, Gestão de Correções e Resposta a Incidentes CP10: Ciclo de Vida de Desenvolvimento de Software Seguro e Resiliente
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular unit's content dovetails with the specified learning outcomes
Cada conteúdo programático contribui, de forma explícita, para pelo menos um objetivo de aprendizagem. O CP1 introduz a segurança de software e aplicações, capacitando para a identificação e análise de vulnerabilidades, ameaças e riscos (OA1), objetivo para o qual também concorre o CP7, ao abordar a segurança da cadeia de abastecimento de software e das dependências open source. O CP2, centrado nos processos de desenvolvimento seguro (DevSecOps, CI/CD), suporta a aplicação de práticas de codificação segura ao longo do SDLC (OA2). Os CP3, CP4, CP5 e CP6 permitem avaliar e implementar medidas de segurança específicas para aplicações web, móveis, na nuvem e empresariais/IA (OA3). O CP8, dedicado ao teste e avaliação de segurança de software, responde ao OA4. Os CP9 e CP10, sobre a manutenção de software seguro e o ciclo de vida de desenvolvimento seguro e resiliente, asseguram a integração da segurança e resiliência no SDLC (OA5). Assim, todos os OA são cobertos pelos conteúdos definidos.
Avaliação / Assessment
Na primeira semana letiva, o estudante indica se pretende ser avaliado na Época 1, na modalidade avaliação periódica ou por exame. Avaliação ao longo do semestre (só disponível na Época 1): - Realização de 2 laboratórios individuais, cada um deles a contar com 25% para a nota final. - Realização de projeto final colaborativo (em grupo) com apresentação final. Este projeto terá uma entrega intermédia (PFEI) e uma entrega final (PFEF), cada uma a contar com 20%, e uma apresentação e discussão final (APF) a contar com 10%. NF = 0,25*LAB1+0,25*LAB2+0,2*PFEI+0,2*PFEF+0,1*APF (NF = Nota Final; LAB* = Laboratórios 1 e 2; PFEI = Projeto Final - Entrega Intermédia; PFEF = Projeto Final - Entrega Final; APF = Apresentação Final) Avaliação por exame (Época 1 em caso de escolha do estudante, Época 2 e Época Especial): Exame presencial (100% da nota final) Nota: Não obstante o disposto na avaliação, o docente reserva o direito de poder solicitar ao aluno ou grupo uma avaliação oral com o objetivo de validar os conhecimentos demonstrados nos trabalhos.
Metodologias de Ensino / Teaching methodologies
A UC de Segurança e Resiliência de Software e Aplicações adotará como metodologia de ensino e aprendizagem central a Aprendizagem Baseada em Problemas combinada com Aprendizagem Baseada em Projetos. A gamificação será utilizada como estratégia de motivação e envolvimento dos estudantes. Esta abordagem pedagógica está articulada com o modelo pedagógico do Iscte porque o estudante é considerado um agente ativo no seu processo de aprendizagem, o conhecimento é trabalhado como uma ferramenta para a construção e desenvolvimento de mais conhecimento e aplicado em diversos contextos.
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 online síncrona e assíncrona, os estudantes irão realizar tarefas com diferentes níveis de apoio e orientação docente ao longo da UC que lhes permitirá, numa primeira fase compreender os diferentes desafions de segurança e de resiliência do software e aplicações, assim como ganhar a consciência das principais ameaças e riscos, em diferentes tipologias de aplicações e software. Irão ainda aplicar conhecimentos teóricos e desenvolver competências que permitem desenvolver capacidades de resiliência e cibersegurança em software e aplicações e aprender a mitigar ameaças. O docente dará feedback (corretivo e/ou cognitivo) sobre as tarefas que forem sendo realizadas pelos alunos. Os estudantes irão ainda realizar trabalhos e laboratórios específicos relacionados com os diferentes temas que serão abordados na unidade curricular. No projeto final 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 avaliar os problemas de segurança de aplicações e software e perceber como os mesmos afetam a cibersegurança e ciber-resiliência. Como estratégia de motivação, a unidade curricular incluirá a gamificação ao longo do semestre, onde serão atribuídos pontos aos estudantes à medida que as diferentes atividades forem concluídas com sucesso, garantindo o seu envolvimento ao longo da UC.
Observações / Observations
--
Bibliografia Principal / Main Bibliography
Markow M. (2023), Secure, Resilient, and Agile Software Development, 2023, Auerbach Publications. ISBN: 978-1032475011 Schagaev, I., Zouev, E., & Thomas, K. (2019), Software Design for Resilient Computer Systems, 2019, (2nd edition). Springer (1st edition). Addison-Wesley Professional, Cyber Security Engineering: A Practical Approach for Systems and Software Assurance, 2016, Mead, N. R., & Woody, C. (2016) (1st edition). Addison-Wesley Professional, Software Security: Building Security In, 2006, McGraw, G. (2006) Kohnfelder, L., Designing Secure Software: A Guide for Developers, 2021, No Starch Press Howard, M., LeBlanc, D., & Viega, J., 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them, 2009, (1st edition). McGraw Hill Hoffman, A., Web Application Security: Exploitation and Countermeasures for Modern Web Applications, 2020, (1st edition). O’Reilly Media
Bibliografia Secundária / Secondary Bibliography
Hughes C., Turner T., Springett S., Friedman A., Software Transparency: Supply Chain Security in an Era of a Software-Driven Society, 2023, Wiley. ISBN: 978-1394158485 Shortridge K., Rinehart A., Security Chaos Engineering: Sustaining Resilience in Software and Systems, 2023, O'Reilly Media. ISBN: 978-1098113827 Stuttard, D., & Pinto, M., The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws, 2011, (2nd edition). Wiley Wyk, K. R. V., Graff, M. G., Peters, D. S., & Ph.D, D. L. B., Enterprise Software Security: A Confluence of Disciplines, 2014, (1st edition). AddisonWesley Professional Merkow, M. S., & Raghavan, L., Secure and Resilient Software: Requirements, Test Cases, and Testing Methods, 2012, (1st edition). Auerbach Publications Harwood, M., & Price, R., Internet and Web Application Security, 2022, (3rd edition). Jones & Bartlett Learning
Data da última atualização / Last Update Date
2026-07-29