Skip to main content

ISLA IPGT 25033

Software security

Cybersecurity
  • ApresentaçãoPresentation
    The Course Unit of "Software Security" provides a comprehensive and practical approach to understanding and implementing effective security measures in software systems. Within the context of the Postgraduate Program in Cybersecurity, this discipline plays a fundamental role by providing students with the skills and knowledge necessary to identify, evaluate, and mitigate vulnerabilities in software applications. By addressing key concepts, methodologies, best practices, and security tools, this course prepares students to tackle emerging challenges in the field of cybersecurity. Through the analysis of case studies and the completion of practical projects, students gain a solid understanding of current threats and develop skills to protect systems against cyber attacks.
  • ProgramaProgramme
    Introduction to Software Security Basic concepts of cybersecurity Importance of security in the context of software development Threats and vulnerabilities in Software Common types of cyber attacks Identification and characterization of software vulnerabilities Methodologies and best Practices in Software Security Integration of security into the software development life cycle Secure coding practices and vulnerability prevention Security analysis tools Use of static and dynamic code analysis tools Authentication and session management Authentication methods and their challenges Implementation of secure session management in web applications Authorization and access control Principles of authorization and access control Implementation of authorization mechanisms in software systems Encryption and Data Protection Concepts of symmetric and asymmetric cryptography Application of encryption for data protection at rest and in transit
  • ObjectivosObjectives
    Develop a solid understanding of the fundamental principles of software security. Acquire knowledge about the different threats and vulnerabilities affecting software applications. Master methodologies and best practices for integrating security throughout the software development life cycle. Learn to identify, assess, and mitigate security vulnerabilities in software applications. Develop practical skills to implement effective security measures in software projects. Empower students to apply static and dynamic code analysis techniques to identify potential vulnerabilities. Foster the ability to understand and apply concepts of authentication, authorization, and session management in software environments. Promote a culture of cybersecurity, encouraging responsibility and ethics in software development.
  • BibliografiaBibliography
    Viega, J., & McGraw, G. (2019). Building Secure Software: How to Avoid Security Problems the Right Way (2nd ed.). ISBN: 9780321774958 Howard, M., & LeBlanc, D. (2017). Writing Secure Code (2nd ed.). ISBN: 9780735617223 McGraw, G. (2015). Software Security: Building Security In. ISBN: 9780321356703  
  • MetodologiaMethodology
    Active learning Use of case studies, practical projects, and group activities to promote active participation of students in the learning process Cyber attack simulations Conducting cyber attack simulations so that students can apply theoretical knowledge to solve software security problems Hands-On with cutting-edge tools Use of static and dynamic code analysis platforms to provide a hands-on experience and prepare students for real cybersecurity challenges Collaborative and participatory approaches: Encouragement of collaboration among students, fostering knowledge sharing, idea debate, and teamwork on projects Development of practical skills Focus on developing practical skills such as problem solving, critical thinking, and teamwork, beyond simple information transmission
  • LínguaLanguage
    Português
  • TipoType
    Anual
  • ECTS
    2
  • NaturezaNature
    Mandatory
  • EstágioInternship
    Não
  • AvaliaçãoEvaluation

    A avaliação desta Unidade Curricular será realizada através de um trabalho prático, que pode ser realizado individualmente ou em grupo.

    O trabalho terá como resultado final a produção de um relatório escrito detalhado, onde os estudantes deverão apresentar os resultados das suas investigações, análises e conclusões relacionadas com a segurança no software.

    Além do relatório escrito, os alunos serão também avaliados com base na apresentação do trabalho em aula. Durante a apresentação, os estudantes terão a oportunidade de explicar o processo seguido e destacar os principais pontos e conclusões do trabalho.

    Os parâmetros de avaliação para o trabalho prático e a apresentação em aula incluirão critérios como:

    • Qualidade e profundidade da análise:
      • Avaliação da capacidade dos alunos em realizar uma análise detalhada e abrangente sobre o tema proposto, incluindo identificação e compreensão de conceitos-chave e potenciais vulnerabilidades.
    • Originalidade e criatividade:
      • Reconhecimento da originalidade e criatividade demonstradas na abordagem do problema proposto, bem como na apresentação de soluções e recomendações.
    • Clareza e coerência na apresentação:
      • Avaliação da organização e estrutura do relatório escrito e da apresentação em aula, incluindo clareza na comunicação, coerência na argumentação e uso adequado de recursos visuais.
    • Precisão técnica:
      • Verificação da precisão técnica das informações apresentadas, incluindo a utilização correta de terminologia e conceitos relacionados com a segurança no software.

    Descrição

    Data limite

    Ponderação

    Trabalho prático

    27-04-2026

    100%

     

    Listam-se abaixo algumas sugestões de temas a abordar no projeto prático, sem prejuízo de serem aceites outros temas que se enquadrem no âmbito dos conteúdos lecionados na UC (desde que validados previamente com o docente):

    • Relatório de pesquisa sobre tendências atuais em Segurança de Software
      • Descrição: Realização de uma pesquisa sobre as tendências atuais e emergentes na segurança de software, como novas vulnerabilidades, técnicas de ataque, ou ferramentas de segurança.
      • Objetivos: Manter-se atualizado com as últimas descobertas e práticas na área de segurança de software.
    • Estudo de caso e análise de incidentes de segurança reais
      • Descrição: Escolher e analisar um incidente de segurança de software real, focando nas causas, impacto, e medidas de resposta.
      • Objetivos: Compreender as consequências de falhas de segurança e aprender com erros do mundo real.
    • Desenvolvimento de uma aplicação web segura
      • Descrição: Desenvolver uma aplicação web simples (como um blog ou um fórum) com foco na segurança. A UI/UX da aplicação são será um fator de avaliação.
      • Objetivos: Implementar autenticação e autorização seguras, proteger contra ataques comuns (como SQL Injection e XSS), e garantir a segurança através dos conteúdos lecionados na UC.