| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 3.55 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Na atual era digital, a informação tornou-se um dos ativos mais valiosos, e a privacidade
das pessoas passou a ser uma preocupação constante e crescente. A proliferação de serviços
web e a interconexão global expõem-nos a um número sem precedentes de ameaças e ataques
informáticos, colocando em risco tanto os dados pessoais quanto os ativos empresariais.
As motivações dos atacantes variam desde a obtenção de lucros rápidos até à simples intenção
de causar disrupção em sistemas críticos. Entre as diversas técnicas utilizadas para comprometer
sistemas, a exploração de vulnerabilidades no código-fonte permanece como um método amplamente utilizado. A complexidade inerente ao desenvolvimento de software seguro explica em
parte, a presença destas falhas.
As ferramentas de analise estática têm sido essenciais na identificação de vulnerabilidades
conhecidas ao longo do ciclo de desenvolvimento do software. No entanto, a eficácia destas ferramentas e constantemente posta à prova pela crescente sofisticação e camuflagem dos ataques, bem
como pela sua limitada capacidade de corrigir vulnerabilidades identificadas.
As empresas devem reconhecer a necessidade urgente de proteger os seus ativos digitais, enquanto os programadores devem integrar praticas de segurança desde as fases iniciais do desenvolvimento, evitando confiar no bom comportamento dos utilizadores.
Este trabalho propõe a ferramenta CodeShieldLLM, concebida para apoiar programadores na
identificação e correção de vulnerabilidades de dia zero no código-fonte. As principais funcionalidades da ferramenta incluem a possibilidade de criação de datasets com exemplos de código
vulnerável e seguro em diversas linguagens de programação (tendo sido utilizado Python neste
trabalho), a utilização de LLMs para identificar e corrigir essas vulnerabilidades, e a avaliação
da eficácia da ferramenta. Embora focada nesta linguagem, a ferramenta demonstra potencial
de aplicação em outras, evidenciando-se como uma solução prática e escalável para melhorar a
segurança do software.
In the current digital age, information has become one of the most valuable assets, and individuals’ privacy has become a constant and growing concern. The proliferation of web services and global interconnectivity expose us to an unprecedented number of threats and cyberattacks, jeopardizing both personal data and corporate assets. Attackers’ motivations range from seeking quick profits to the simple intent of causing disruption in critical systems. Among the various techniques used to compromise systems, the exploitation of vulnerabilities in source code remains a widely used method. The inherent complexity of developing secure software partly explains the presence of these flaws. Static analysis tools have been essential in identifying known vulnerabilities throughout the software development lifecycle. However, the effectiveness of these tools is constantly tested by the growing sophistication and camouflage of attacks, as well as their limited ability to remediate identified vulnerabilities. Companies must recognize the urgent need to protect their digital assets, while programmers should integrate security practices from the early stages of development, avoiding reliance on users’ good behavior. This work proposes the CodeShieldLLM tool, designed to assist programmers in identifying and correcting zero-day vulnerabilities in source code. The tool’s main features include the ability to create datasets with examples of vulnerable and secure code in various programming languages (with Python being used in this work), the utilization of LLMs to identify and fix these vulnerabilities, and the evaluation of the tool’s effectiveness. Although focused on this language, the tool demonstrates potential for application in others, establishing itself as a practical and scalable solution to improve software security.
In the current digital age, information has become one of the most valuable assets, and individuals’ privacy has become a constant and growing concern. The proliferation of web services and global interconnectivity expose us to an unprecedented number of threats and cyberattacks, jeopardizing both personal data and corporate assets. Attackers’ motivations range from seeking quick profits to the simple intent of causing disruption in critical systems. Among the various techniques used to compromise systems, the exploitation of vulnerabilities in source code remains a widely used method. The inherent complexity of developing secure software partly explains the presence of these flaws. Static analysis tools have been essential in identifying known vulnerabilities throughout the software development lifecycle. However, the effectiveness of these tools is constantly tested by the growing sophistication and camouflage of attacks, as well as their limited ability to remediate identified vulnerabilities. Companies must recognize the urgent need to protect their digital assets, while programmers should integrate security practices from the early stages of development, avoiding reliance on users’ good behavior. This work proposes the CodeShieldLLM tool, designed to assist programmers in identifying and correcting zero-day vulnerabilities in source code. The tool’s main features include the ability to create datasets with examples of vulnerable and secure code in various programming languages (with Python being used in this work), the utilization of LLMs to identify and fix these vulnerabilities, and the evaluation of the tool’s effectiveness. Although focused on this language, the tool demonstrates potential for application in others, establishing itself as a practical and scalable solution to improve software security.
Descrição
Trabalho de projeto de mestrado, Segurança Informática , 2024, Universidade de Lisboa, Faculdade de Ciências
Palavras-chave
Segurança informática Vulnerabilidades Prompt Patch Modelos de Linguagem Natural de Grande Escala Trabalhos de projeto de mestrado - 2024
