-
Apresentação
Apresentação
Esta UC ensina práticas de programação segura, bem como formas de detectar vulnerabilidades no código.
-
Disciplina do curso
Disciplina do curso
-
Grau | Semestres | ECTS
Grau | Semestres | ECTS
Mestre | Semestral | 7
-
Ano | Natureza | Lingua
Ano | Natureza | Lingua
2 | Opcional | Português
-
Código
Código
ULHT457-25060
-
Pré-requisitos e co-requisitos
Pré-requisitos e co-requisitos
Não aplicável
-
Estágio Profissional
Estágio Profissional
Não
-
Conteúdos Programáticos
Conteúdos Programáticos
CP1. Identificação e classificação de vulnerabilidades. Classificação Common Weakness Enumeration (CWE)
CP2. Técnicas de programação segura e vulnerabilidades comuns. Validação de entrada e saída, buffer overflow, manipulação de estado do cliente, injeção de SQL, segurança entre domínios
CP3. Estruturas e processos de gestão de risco
CP4. Revisão de código usando ferramentas de análise estática
CP5. Análise de risco arquitetónico
CP6. Teste de penetração
CP7. Teste de segurança
CP8. SDLC
CP9. Segurança cloud
-
Objetivos
Objetivos
Esta unidade curricular tem como objetivos:
OA1. Aprender os princípios da programação segura, para escrever programas de forma segura, para evitar vulnerabilidades que podem ser exploradas por atacantes
OA2. Aprender as práticas de programação segura, incluindo o uso de recursos de segurança fornecidos por bibliotecas, como autenticação e criptografia.
OA3. Aplicar esses princípios a várias linguagens e plataformas de programação
-
Metodologias de ensino e avaliação
Metodologias de ensino e avaliação
ME1: Expositiva: apresentação teórica de acordo com o plano curricular. Avaliação em exame final (50%)
ME2: Prática: trabalhos práticos apoiados pelo professor. Avaliação em projeto desenvolvido pelo aluno (50%).
Notas importantes da avaliação:
- Classificação mínima de 10 valores no exame e no projeto.
- As duas componentes de avaliação são obrigatórias, independentemente da época em que se realizam
-
Bibliografia principal
Bibliografia principal
Matt Bishop (2004), Introduction to Computer Security. Addison Wesley Professional.
Anderson, R. (2020). Security engineering: a guide to building dependable distributed systems. John Wiley & Sons.
Gary McGraw. (2006). Software Security: Building Security In. Addison-Wesley Professional.
Correia, M. P., & Sousa, P. J. (2010). Segurança no software. FCA.
Gary McGraw. (2006). Software Security: Building Security In. Addison-Wesley Professional.
Fred Long et al. (2011). The Oracle/CERT Secure Coding Standard for Java. Addison-Wesley Professional. Available online at http://www.cert.org/secure-coding/.
Neil Daswani, Christoph Kern, Anita Kesavan. (2007). Foundations of Security. APRESS Springer Nature.
-
Horário de Atendimento
Horário de Atendimento
-
Mobilidade
Mobilidade
Não