Utilize este identificador para referenciar este registo: https://hdl.handle.net/10316/103014
Título: Towards Vulnerability Injection using Artificial Intelligence
Outros títulos: Rumo à injeção de vulnerabilidades em Python com Inteligência Artificial
Autor: Bogaerts, Frédéric Christophe Gabriel
Orientador: Fonseca, José
Ivaki, Naghmeh Ramezani
Palavras-chave: Injeção de Vulnerabilidades,; Redes Neurais Recorrentes; Inteligência Artificial; Deep Learning; Análise Estática de Código Python; Vulnerability Injection; Recurrent Neural Networks; Artificial Intelligence; Deep Learning; Static Python Code Analysis
Data: 11-Jul-2022
Título da revista, periódico, livro ou evento: Towards Vulnerability Injection using Artificial Intelligence
Local de edição ou do evento: DEI | CISUC
Resumo: É difícil desenvolver software sem vulnerabilidades mesmo quando são seguidas as melhores práticas de programação. A prevenção da exfiltração de informação é feita com scanners de segurança e ferramentas de detecção de vulnerabilidades.Isto levanta as questões: quão eficazes são estas ferramentas? qual o impacto de uma vulnerabilidade não detectada?Python é uma das linguagens de programação mais usadas no mundo. Logo visamos desenvolver uma ferramenta capaz de injetar vulnerabilidades e de criarcódigo vulnerável para: i) avaliar e comparar a performance e eficácia dos scanners de segurança e de vulnerabilidades, ii) avaliar o impacto de cada vulnerabilidade.Após analisar um vasto leque de vulnerabilidades Python (tanto em códigos vulneráveis como corrigidos) implementámos um protótipo que identifica e ataca pontos de injeção.Propomos um método de análise estática que obtém resultados de modelos de IA (com redes neuronais recorrentes baseadas em Machine Learning).A injeção de vulnerabilidades pode ser validada através de um ataque bem sucedido. A nossa técnica diminui as deficiências da procura comum de vulnerabilidades com base em texto e expressões regulares (Regex).Ao implementar a técnica proposta num protótipo multi-plataforma denominadoVAITP (Vulnerability Attack and Injection Tools in Python) possibilitamos a identificação de vulnerabilidades e pontos de injeção.O protótipo consegue atacar código vulnerável e cria ainda um relatório em PDF com informação tal como: i) pontos de injeção, ii) vulnerabilidades e iii) ataques e payloads bem sucedidos.Para servir de base ao nosso estudo implementamos Regex no VAITP. Cerca de centena e meia de ficheiros Python foram utilizados como teste, divididos em injetáveis, vulneráveis e não-injetáveis. Ambas as técnicas (com Regex e modelos de IA) foram bem sucedidas na injeção de vulnerabilidades em ficheiros injetáveis. Todavia, a utilização de IA, demonstrou ser capaz de detetar mais pontos de injeção com uma menor taxa de erros.
Software without vulnerabilities is difficult to develop, even when the best programming practices are followed. Information exfiltration is prevented with security scanners and vulnerability detection tools.This brings up these questions: how effective are these tools? what is the impact of undetected vulnerabilities?Python is one of the most used programming languages in the world. Therefore, we aimed to develop a vulnerability injection tool capable of generating and injecting vulnerable code to: i) evaluate and compare the performance and effectiveness of security scanners and vulnerabilities detection tools, ii) assess the impact of each vulnerability.After analyzing a wide range of Python’s vulnerabilities (the vulnerable and patched algorithms) we implemented a prototype that identifies and attacks code injection points.We propose a static code analysis method to obtain results from AI models (using recurring neural networks based on Machine Learning).Vulnerability injection is validated through a successful attack. Our technique shortens the gap of deficiencies from the common search for vulnerabilities, which is done using text and regular expressions (Regex).By implementing the proposed technique in a multi-platform prototype called VAITP (Vulnerability Attack and Injection Tool in Python) we allow the identification of vulnerabilities and injection points. This prototype can also attack vulnerable code and generate a PDF report regarding information such as: i) injection points, ii) vulnerabilities and iii) successful payloads and attacks.The baseline for our study was the use of Regex implemented in VAITP. Nearly a hundred and fifty Python files were used and divided into injectable, vulnerable and non-injectable. Both techniques (with Regex and AI models) are able to inject vulnerabilities into injectable files. However, artificial intelligence, detects more injection points with a lower error rate.
Descrição: Dissertação de Mestrado em Segurança Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/103014
Direitos: openAccess
Aparece nas coleções:UC - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato
2022___Master_Thesis___Frederic_Bogaerts.pdf8.49 MBAdobe PDFVer/Abrir
Mostrar registo em formato completo

Google ScholarTM

Verificar


Este registo está protegido por Licença Creative Commons Creative Commons