Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/103014
Title: Towards Vulnerability Injection using Artificial Intelligence
Other Titles: Rumo à injeção de vulnerabilidades em Python com Inteligência Artificial
Authors: Bogaerts, Frédéric Christophe Gabriel
Orientador: Fonseca, José
Ivaki, Naghmeh Ramezani
Keywords: 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
Issue Date: 11-Jul-2022
Serial title, monograph or event: Towards Vulnerability Injection using Artificial Intelligence
Place of publication or event: DEI | CISUC
Abstract: É 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.
Description: Dissertação de Mestrado em Segurança Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/103014
Rights: openAccess
Appears in Collections:UC - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat
2022___Master_Thesis___Frederic_Bogaerts.pdf8.49 MBAdobe PDFView/Open
Show full item record

Page view(s)

126
checked on Jul 16, 2024

Download(s)

153
checked on Jul 16, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons