Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
04982
Acrónimo :
04982
Ciclo :
2.º ciclo
Línguas de Ensino :
Inglês (en), Português (pt)
Língua(s) amigável(eis) :
--

Carga Horária / Course Load


Semestre :
2
Créditos ECTS :
6.0
Aula Teórica (T) :
12.0h/sem
- Presencial (T) :
12.0h/sem
Aula Teórico-Prática (TP) :
12.0h/sem
- Presencial (TP) :
12.0h/sem
Aula Prática e Laboratorial (PL) :
0.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 :
25.0h/sem
Trabalho Autónomo :
125.0
Horas de Trabalho Total :
150.0h/sem

Área científica / Scientific area


Ciências e Tecnologias da Informação

Departamento / Department


Departamento de Ciências e Tecnologias da Informação

Ano letivo / Execution Year


2025/2026

Pré-requisitos / Pre-Requisites


Frequência com sucesso de pelo menos uma unidade curricular do 1º ciclo ou 2º ciclo de Bolonha, em que se abordem tópicos essências em segurança da informação, algoritmos e técnicas de programação.

Objetivos Gerais / Objectives


Os estudantes serão dotados de uma compreensão aprofundada das práticas de desenvolvimento de software seguro, bem como uma visão geral das técnicas e ferramentas para desenvolver software seguro. Eles explorarão vulnerabilidades de segurança comuns, princípios de codificação segura, design de software seguro e as melhores práticas para desenvolver aplicações robustas e resilientes. O curso enfatizará a implementação prática por meio de projetos práticos, estudos de caso e boas práticas da indústria.

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 o estudante deverá ficar apto a: OA1. Compreender o Ciclo de Vida do Desenvolvimento de Software Seguro (SSDLC) e explicar a importância da segurança, as fases do SSDLC e as vulnerabilidades comuns. OA2. Aplicar Princípios de Design Seguro e implementar técnicas como defesa em profundidade, privilégio mínimo e modelagem de ameaças. OA3. Escrever Código Seguro, prevenindo ataques de injeção, garantindo autenticação segura e criptografando dados sensíveis. OA4. Ter conhecimento sobre como realizar Testes de Segurança. OA5. Implementar Implantação Segura e práticas de DevSecOps. OA6. Garantir Conformidade e Adesão Regulatória – Aplicar padrões de segurança como GDPR, HIPAA, PCI-DSS e ISO 27001. OA7. Proteger Aplicações Web, em Nuvem e Móveis. OA8. Analisar Tendências Emergentes em Segurança e avaliar riscos de segurança em IA, modelos de confiança zero e ameaças quânticas.

Conteúdos Programáticos / Syllabus


CP1. Introdução ao Desenvolvimento de Software Seguro e Visão Geral do Ciclo de Vida do Desenvolvimento de Software Seguro (SSDLC). CP2. Princípios de Design de Software Seguro: Segurança por design e defesa em profundidade. CP3. Práticas e Diretrizes de Codificação Segura para diversas linguagens (Java, Python, C, etc.), falhas comuns de codificação, autenticação segura, gerenciamento de sessões e práticas criptográficas. CP4. Vulnerabilidades e Explorações de Software. CP5. Testes de Segurança e Análise Estática de Código. CP6. Testes de Intrusão (Penetration Testing) e Hacking Ético. CP7. Implantação Segura de Software e DevSecOps. CP8. Conformidade, Regulamentos e Padrões de Segurança. CP9. Desenvolvimento Seguro em Ambientes de Nuvem e Mobile. CP10. Ameaças Emergentes e Tendências Futuras. Conclusões.

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


Os tópicos associados aos Conteúdos Programáticos (CP) identificados neste FUC (CP1 a CP10) fornecem o conhecimento necessário para o planejamento, desenvolvimento e testes necessários para o desenvolvimento de software seguro, conforme definido nos Objetivos de Aprendizagem/Resultados de Aprendizagem (OA), a saber: CP1 e CP2 introduzem os alunos ao tema do desenvolvimento seguro de software (AO1, AO2); CP3 e CP4 identificam recursos e conceitos, abordando técnicas básicas para o desenvolvimento de software seguro em contextos específicos e para vulnerabilidades específicas (AO3 e AO4); CP5 e CP6 ampliam técnicas e definições para a implementação de requisitos de teste necessários para gerenciar e avaliar software seguro (AO5 e AO6); CP7, CP8 e CP9 fornecem habilidades no planejamento, desenvolvimento e implementação de software com respeito ao processo de desenvolvimento, padrões e aspectos legais (AO7, AO8 e AO9); CP10 trata de problemas futuros e emergentes (AO10).

Avaliação / Assessment


A natureza prática desta UC e a necessidade de avaliação do conhecimento serem realizadas essencialmente por meio da capacidade do aluno de aplicar o conhecimento para resolver problemas e desenvolver software seguro fazem com que o método de avaliação adotado seja, principalmente, baseado em projetos Em 1ª época ou época normal, avaliação periódica, sem obrigação de assiduidade mínima, com 3 momentos de avaliação do projeto em grupo: - Apresentação de progresso a meio do semestre com peso de 15% na nota final da UC; - Artefactos e relatório final do projeto com peso de 40% na nota final da UC; - Apresentação e discussão final com peso de 20% na nota final da UC. A avaliação é feita com base no desempenho e contributo individual de cada elemento do grupo. Ou avaliação no final do semestre (1ª época), por projeto individual com 2 momentos de avaliação: - Relatório do projeto com peso de 45% na nota final da UC; - Apresentação e discussão do trabalho com peso de 30% na nota final da UC. Em 2ª época, melhoria de nota ou época especial (nos termos do RGACC), avaliação por projeto individual, disponibilizado aos estudantes que o solicitarem: - Relatório do projeto com peso de 45% na nota final da UC; - Apresentação e Discussão do trabalho com peso de 30% na nota final da UC; Todas as épocas de avaliação contemplam uma componente de avaliação realizada na plataforma de eLearning ou via um teste escrito, com peso de 25% (5 valores em 20) na nota final da UC. Todas as componentes de avaliação, em todas as épocas de avaliação, têm nota mínima de 9,5 valores (em 20).

Metodologias de Ensino / Teaching methodologies


Serão utilizadas as seguintes metodologias de ensino-aprendizagem (MEA): MEA1: Expositivas, para apresentação dos enquadramentos teóricos MEA2: Ilustrativas, para exemplificação dos conceitos teóricos em contextos reais e seminários. MEA3: Participativas, com análise e resolução de problemas MEA4: Argumentativas, com apresentação e discussão do projeto de grupo

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


Principais interligações entre as metodologias de ensino-aprendizagem (MEA) e os respetivos objetivos (OA): (OA1) Nas aulas teóricas serão introduzidos os conceitos fundamentais sobre privacidade de dados. (OA2) Pelo menos uma das componentes de avaliação implicará uma abordagem do estado da arte em algum dos tópicos relevantes da UC, cujos resultados serão partilhados com todos os estudantes da turma, para estimular o pensamento crítico. (OA3) Através da apresentação de casos de estudo será estimulada a discussão sobre as relações de complementaridade e/ou interdependência entre os vários tópicos da UC. (OA4) Os trabalhos práticos estarão intimamente relacionados com os tópicos introduzidos nas aulas teóricas, permitindo consolidar o processo de aprendizagem. (OA5) De uma maneira geral os vários tópicos e trabalhos práticos da UC suscitarão questões e implicarão decisões relacionadas com planeamento, desenvolvimento e exploração de sistemas e serviços de informação com privacidade de dados. (OA6) Nos trabalhos práticos serão abordados serviços, sistemas e ferramentas de referência, bem como o seu enquadramento da privacidade de dados e tecnologias utilizadas no contexto pessoal e institucional.

Observações / Observations


Nesta unidade curricular, as metodologias estão divididas entre o método expositivo (aplicado nas aulas teóricas) e o método experimental e de observação que se aplica nas aulas praticas. Assim, tendo em conta a importância da vertente de programação, cujas competências são essenciais ao âmbito da disciplina, a junção das duas metodologias de ensino versa a aquisição dos objetivos propostos para esta disciplina. O projeto prático de desenvolvimento de grupo ou individual e a resolução de exercícios de programação visa dotar os alunos de competência para a resolução autónoma e em grupo dos problemas típicos decorrentes no desenvolvimento de software seguro e conhecer os ambientes de teste e construção deste software.

Bibliografia Principal / Main Bibliography


'- Gary McGraw. Software Security: Building Security In. Addison-Wesley Professional; 1 edition, 2006 - The Web Application Hacker's Handbook, Dafydd Stuttard & Marcus Pinto, Edição 2, Wiley; 2nd edition 2011 - Secure Coding in C and C++ (SEI Series in Software Engineering) 2nd Edition Robert Seacord Addison-Wesley Professional; 2nd edition (April 11, 2013) - OWASP Secure Coding Guidelines (Available online) - Wenliang Du, Computer & Internet Security: A Hands-on Approach 2nd Edition. May 1, 2019. - Michael Howard, David LeBlanc & John Viega . 24 Deadly Sins of Software Security: - Theodor Richardson & Charles Thies. Secure Software Design. Jones & Bartlett Learning. 2013

Bibliografia Secundária / Secondary Bibliography


'- Ross Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems 3rd Edition, 2020 Wiley. Available Online - Mathias Paye. Software Security Principles, Policies, and Protection. January 2019, Online - Fábio Pereira, Paul Crocker, Valderi R.Q. Leithardt, PADRES: Tool for PrivAcy, Data REgulation and Security, SoftwareX, Volume 17, 2022, 100895, ISSN 2352-7110, https://doi.org/10.1016/j.softx.2021.100895. - J. Manteigueiro, P. Crocker and C. Barrico, "Identity Management and Access Control for the GNSS Community within a European Research Infrastructure," 2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC), Madrid, Spain, 2020, pp. 1616-1621, doi: 10.1109/COMPSAC48688.2020.00-24

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


2025-07-28