Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/81098

Registo completo
Campo DCValorIdioma
dc.contributor.advisorHenriques, Pedro Rangelpor
dc.contributor.advisorCruz, Daniela dapor
dc.contributor.authorFerreira, Samuel Gonçalvespor
dc.date.accessioned2022-12-13T10:01:24Z-
dc.date.available2022-12-13T10:01:24Z-
dc.date.issued2020-05-06-
dc.date.submitted2019-
dc.identifier.urihttps://hdl.handle.net/1822/81098-
dc.descriptionDissertação de mestrado em Engenharia Informáticapor
dc.description.abstractNowadays, cybernetic attacks are a real threat that can compromise any individual, organization or company’s integrity. Every day new cases are reported, that show the real damage cyber criminals can cause. Sensitive data exposure, identity theft, service malfunctioning or shutdown are just a few of the most common threats, which in many cases might impact companies either with financial loss or by damaging their reputation. Population, in general, is becoming each time more aware of the risks of using electronic devices connected to the web and so are companies. With the rise of this awareness, over the last years, cyber security has become a major concern for Software companies. This threat also led to the birth of the Software vulnerability detection market. Companies started commercializing Software and advisory to other companies, in order to keep them less exposed to cybernetic risks. There are many mechanisms and technologies used by these companies to identify vulnerabilities in applications. The most popular technology used to detect vulnerabilities is SAST (Static Application Security Testing) as it focus on the detection of vulnerabilities at the early stages of Software development. However, this requires the analysis of the source code, which in many cases, is huge and thus such analysis is too time consuming. Being that the context and motivation for this dissertation, the goal is to investigate the possibility of performing source code analysis in a faster way, relying on machine learning approaches. Code embeddings, classification algorithms and clustering algorithms were the main approaches explored in this work. Along the project, it was realized that some approaches performed better than others, in the task of detecting software vulnerabilities. Clustering algorithms, according to the performed experiments, are not suitable for the problem. Classification algorithms produced results that can be considered worthy of further investigation, but did not meet the established goals. After some failed attempts, this project demonstrated that it is possible to train a prediction model, based on code2seq approach, capable of detecting vulnerabilities in source code, with better performance and accuracy than classic SAST solutions (according to a specific set of experiments). Moreover, the used approach allows to easily extend the developed work to find vulnerabilities in any programming language.por
dc.description.abstractHoje em dia, os ataques cibernéticos são uma ameaça real que podem comprometer a integridade de qualquer indivíduo, organização ou empresa. Novos casos são reportados todos os dias, demonstrando os estragos que um atacante cibernético pode causar. Exposição de dados sensíveis, roubo de identidade, mau funcionamento ou corte de fornecimento de serviços são apenas algumas das ameaças mais comuns, que em muitos casos podem afetar as empresas com perdas financeiras ou prejudicando a sua reputação. A Internet das Coisas cresce rapidamente todos os dias. Com a criação de dispositivos controlados por computador, desde relógios inteligentes até máquinas de lavar programáveis à distáncia, cada vez mais eletrodomésticos e outros acessórios eletrónicos estão diariamente ligados à Internet. Estes dispositivos tornam as nossas vidas mais fáceis e mais confortáveis, contudo podem expôr uma porta a redes corporativas para atacantes cibernéticos dotados e criminosos cibernéticos. A população em geral está a ficar cada vez mais consciente dos riscos de usar dispositivos ligados a rede, e as empresas também. Com o crescimento desta consciência, ao longo dos últimos anos, a segurança cibernética tornou-se uma maior preocupação para as empresas de Software. Esta ameaça também deu origem ao nascimento do mercado de deteção de vulnerabilidades em Software. As empresas começaram a comercializar Software e aconselhamento a outras empresas, com o objetivo de as manter menos expostas aos riscos cibernéticos. Há muitos mecanismos e tecnologias usadas por estas empresas para detetar vulnerabilidades em aplicações. A tecnologia mais popular para identificar vulnerabilidades é o SAST (Static Application Security Testing), que se foca na deteção de vulnerabilidades logo nas primeiras fases do desenvolvimento de Software. Contudo, exige a análise de código-fonte, o que nos casos de programas de grandes dimensões pode ser muito demorada. Sendo esta a motivação para esta dissertação, o objetivo é investigar a possibilidade de analisar código-fonte mais rapidamente, recorrendo a técnicas de machine learning. Este trabalho demonstra que e possível treinar um modelo capaz de detetar vulnerabilidades em código-fonte, com bom desempenho e acerto aceitável. Para além disso, as tecnologias usadas permitem estender facilmente o trabalho desenvolvido para detetar vulnerabilidades em qualquer linguagem de programação.por
dc.language.isoengpor
dc.rightsopenAccesspor
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/por
dc.titleVulnerabilities fast scan: tackling SAST performance issues with Machine Learningpor
dc.typemasterThesiseng
dc.identifier.tid203047982por
thesis.degree.grantorUniversidade do Minhopor
sdum.degree.grade18 valorespor
sdum.uoeiEscola de Engenhariapor
dc.subject.fosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informáticapor
Aparece nas coleções:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Samuel Goncalves Ferreira.pdf1,93 MBAdobe PDFVer/Abrir

Este trabalho está licenciado sob uma Licença Creative Commons Creative Commons

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID