Towards Vulnerability Injection using Artificial Intelligence

Detalhes bibliográficos
Autor(a) principal: Bogaerts, Frédéric Christophe Gabriel
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10316/103014
Resumo: Dissertação de Mestrado em Segurança Informática apresentada à Faculdade de Ciências e Tecnologia
id RCAP_b1a81c7bf6a579360e7c1e5efd62fd58
oai_identifier_str oai:estudogeral.uc.pt:10316/103014
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Towards Vulnerability Injection using Artificial IntelligenceRumo à injeção de vulnerabilidades em Python com Inteligência ArtificialInjeção de Vulnerabilidades,Redes Neurais RecorrentesInteligência ArtificialDeep LearningAnálise Estática de Código PythonVulnerability InjectionRecurrent Neural NetworksArtificial IntelligenceDeep LearningStatic Python Code AnalysisDissertação de Mestrado em Segurança Informática apresentada à Faculdade de Ciências e TecnologiaÉ 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.Universidade de Coimbra - Bolsas de investigação CISUC-SSE-779706 e VALU3S-810809.2022-07-11info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/10316/103014http://hdl.handle.net/10316/103014TID:203077865engBogaerts, Frédéric Christophe Gabrielinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2022-10-19T20:36:35Zoai:estudogeral.uc.pt:10316/103014Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:19:53.556215Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Towards Vulnerability Injection using Artificial Intelligence
Rumo à injeção de vulnerabilidades em Python com Inteligência Artificial
title Towards Vulnerability Injection using Artificial Intelligence
spellingShingle Towards Vulnerability Injection using Artificial Intelligence
Bogaerts, Frédéric Christophe Gabriel
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
title_short Towards Vulnerability Injection using Artificial Intelligence
title_full Towards Vulnerability Injection using Artificial Intelligence
title_fullStr Towards Vulnerability Injection using Artificial Intelligence
title_full_unstemmed Towards Vulnerability Injection using Artificial Intelligence
title_sort Towards Vulnerability Injection using Artificial Intelligence
author Bogaerts, Frédéric Christophe Gabriel
author_facet Bogaerts, Frédéric Christophe Gabriel
author_role author
dc.contributor.author.fl_str_mv Bogaerts, Frédéric Christophe Gabriel
dc.subject.por.fl_str_mv 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
topic 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
description Dissertação de Mestrado em Segurança Informática apresentada à Faculdade de Ciências e Tecnologia
publishDate 2022
dc.date.none.fl_str_mv 2022-07-11
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10316/103014
http://hdl.handle.net/10316/103014
TID:203077865
url http://hdl.handle.net/10316/103014
identifier_str_mv TID:203077865
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134092765167616