ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários
Autor(a) principal: | |
---|---|
Data de Publicação: | 2024 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRGS |
Texto Completo: | http://hdl.handle.net/10183/274088 |
Resumo: | O aumento significativo da utilização de plataformas remotas de ensino de programação desde a crise do COVID-19, aliado aos recentes progressos na área de Inteligencia Artificial (IA) generativa, trouxeram novos desafios à forma como códigos fonte são tipicamente avaliados em busca de plágios. O esforço necessário para cometer-se plágio diminuiu, seja utilizando técnicas automatizadas de transformação sintática, ou gerando versões alternativas do código fonte através de IA generativa. A maioria das abordagens atuais usadas na construção de ferramentas anti-plágio não são robustas o suficiente para lidar com o novo escopo de tais avanços tecnológicos. Trabalhos existentes na literatura sobre detectores de clonagem de código demonstraram que existem transformações sintáticas que alteram o código de tal forma que os algoritmos de representação sintática/semântica usados na avaliação de plágio (e.g., AST—árvore de sintaxe abstrata; CFG—grafo de controle de fluxo; PDG—grafo de dependência de programa; e Tokenização) não reconhecem o código alterado como um possível clone. Atualmente, a abordagem de otimização de código binário já é reconhecida como uma técnica de ofuscação e manipulação de códigos maliciosos na área de evasão de antivírus, mas pouca atenção tem sido dada ao seu potencial na construção de ferramentas anti-plágio. Neste trabalho, iremos propor um método para detecção de plágio que estende as capacidades demonstradas por abordagens existentes. Nosso método consiste em uma técnica que não apenas analisa códigos fonte, ou apenas os arquivos binários correspondentes resultantes da compilação, e sim efetua uma análise do binário resultante da compilação com otimizações. Intuitivamente, o uso de otimizações de compilação serve como um “filtro reverso”, removendo do código binário possíveis fontes de ofuscação implementadas pelo plagiador em sua modificação de um código fonte original. Nossos experimentos confirmam esta correlação entre código binário otimizado e seu código fonte original. A avaliação empírica de nosso método demonstra uma utilização para calcular níveis de similaridade entre códigos binários, tendo boa eficácia na detecção de plágios mesmo quando os códigos fontes correspondentes tenham sofrido alterações sintáticas complexas. Dessa forma, o método aqui proposto pode ser utilizado de forma efetiva como uma ferramenta complementar às existentes para efetuar análises de plágio. |
id |
UFRGS-2_29d2cf772bf392559546dc4dbd004e06 |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/274088 |
network_acronym_str |
UFRGS-2 |
network_name_str |
Repositório Institucional da UFRGS |
repository_id_str |
|
spelling |
Robert, RobertaNobre, Jéferson CamposSilva, Bruno Castro da2024-03-22T05:07:28Z2024http://hdl.handle.net/10183/274088001198823O aumento significativo da utilização de plataformas remotas de ensino de programação desde a crise do COVID-19, aliado aos recentes progressos na área de Inteligencia Artificial (IA) generativa, trouxeram novos desafios à forma como códigos fonte são tipicamente avaliados em busca de plágios. O esforço necessário para cometer-se plágio diminuiu, seja utilizando técnicas automatizadas de transformação sintática, ou gerando versões alternativas do código fonte através de IA generativa. A maioria das abordagens atuais usadas na construção de ferramentas anti-plágio não são robustas o suficiente para lidar com o novo escopo de tais avanços tecnológicos. Trabalhos existentes na literatura sobre detectores de clonagem de código demonstraram que existem transformações sintáticas que alteram o código de tal forma que os algoritmos de representação sintática/semântica usados na avaliação de plágio (e.g., AST—árvore de sintaxe abstrata; CFG—grafo de controle de fluxo; PDG—grafo de dependência de programa; e Tokenização) não reconhecem o código alterado como um possível clone. Atualmente, a abordagem de otimização de código binário já é reconhecida como uma técnica de ofuscação e manipulação de códigos maliciosos na área de evasão de antivírus, mas pouca atenção tem sido dada ao seu potencial na construção de ferramentas anti-plágio. Neste trabalho, iremos propor um método para detecção de plágio que estende as capacidades demonstradas por abordagens existentes. Nosso método consiste em uma técnica que não apenas analisa códigos fonte, ou apenas os arquivos binários correspondentes resultantes da compilação, e sim efetua uma análise do binário resultante da compilação com otimizações. Intuitivamente, o uso de otimizações de compilação serve como um “filtro reverso”, removendo do código binário possíveis fontes de ofuscação implementadas pelo plagiador em sua modificação de um código fonte original. Nossos experimentos confirmam esta correlação entre código binário otimizado e seu código fonte original. A avaliação empírica de nosso método demonstra uma utilização para calcular níveis de similaridade entre códigos binários, tendo boa eficácia na detecção de plágios mesmo quando os códigos fontes correspondentes tenham sofrido alterações sintáticas complexas. Dessa forma, o método aqui proposto pode ser utilizado de forma efetiva como uma ferramenta complementar às existentes para efetuar análises de plágio.The significant increase in the use of remote programming education platforms since the COVID-19 crisis, coupled with recent advances in the field of generative Artificial Intelligence (AI), has brought new challenges to the way source codes are typically evaluated for plagiarism. The effort required to commit plagiarism has decreased, whether by using automated syntactic transformation techniques or by generating alternative versions of the source code through generative AI. Most of the current approaches used in the construction of anti-plagiarism tools are not robust enough to deal with the new scope of such technological advances. Existing works in the literature on code cloning detectors have demonstrated that there are syntactic transformations that change the code in such a way that the syntactic/semantic representation algorithms used in plagiarism assessment (e.g., AST—abstract syntax tree; CFG—control flow graph; PDG—program dependency graph; and Tokenization) do not recognize the altered code as a possible clone. Currently, the approach of binary code optimization is already recognized as an obfuscation technique and manipulation of malicious codes in the area of antivirus evasion, but little attention has been given to its potential in the construction of anti-plagiarism tools. In this work, we propose a method for plagiarism detection that extends the capabilities demonstrated by existing approaches. Our method consists of a technique that not only analyzes source codes, or just the corresponding binary files resulting from compilation but also performs an analysis of the binary resulting from the compilation *with optimizations*. Intuitively, the use of compilation optimizations serves as a "reverse filter," removing from the binary code possible sources of obfuscation implemented by the plagiarist in their modification of an original source code. Our experiments confirm this correlation between optimized binary code and its original source code. The empirical evaluation of our method demonstrates a use for calculating levels of similarity between binary codes, having good efficiency in detecting plagiarism even when the corresponding source codes have undergone complex syntactic changes. Thus, we believe that the method proposed here can be effectively used as a complementary tool to existing ones for conducting plagiarism analysis.application/pdfporDetecção de plágioCodigo binarioSegurançaROBiT : um método de detecção de plágio baseado em otimizações de arquivos bináriosROBiT : reverse optimization binary transformation anti-plagiarism systeminfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2024Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001198823.pdf.txt001198823.pdf.txtExtracted Texttext/plain98180http://www.lume.ufrgs.br/bitstream/10183/274088/2/001198823.pdf.txt8d36af0e017a037015fc2c547a063ec6MD52ORIGINAL001198823.pdfTexto completoapplication/pdf1066588http://www.lume.ufrgs.br/bitstream/10183/274088/1/001198823.pdf2b0e8d9660567a811d3b829fb101f8afMD5110183/2740882024-03-23 05:01:42.420541oai:www.lume.ufrgs.br:10183/274088Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2024-03-23T08:01:42Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
dc.title.alternative.en.fl_str_mv |
ROBiT : reverse optimization binary transformation anti-plagiarism system |
title |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
spellingShingle |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários Robert, Roberta Detecção de plágio Codigo binario Segurança |
title_short |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
title_full |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
title_fullStr |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
title_full_unstemmed |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
title_sort |
ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários |
author |
Robert, Roberta |
author_facet |
Robert, Roberta |
author_role |
author |
dc.contributor.author.fl_str_mv |
Robert, Roberta |
dc.contributor.advisor1.fl_str_mv |
Nobre, Jéferson Campos |
dc.contributor.advisor-co1.fl_str_mv |
Silva, Bruno Castro da |
contributor_str_mv |
Nobre, Jéferson Campos Silva, Bruno Castro da |
dc.subject.por.fl_str_mv |
Detecção de plágio Codigo binario Segurança |
topic |
Detecção de plágio Codigo binario Segurança |
description |
O aumento significativo da utilização de plataformas remotas de ensino de programação desde a crise do COVID-19, aliado aos recentes progressos na área de Inteligencia Artificial (IA) generativa, trouxeram novos desafios à forma como códigos fonte são tipicamente avaliados em busca de plágios. O esforço necessário para cometer-se plágio diminuiu, seja utilizando técnicas automatizadas de transformação sintática, ou gerando versões alternativas do código fonte através de IA generativa. A maioria das abordagens atuais usadas na construção de ferramentas anti-plágio não são robustas o suficiente para lidar com o novo escopo de tais avanços tecnológicos. Trabalhos existentes na literatura sobre detectores de clonagem de código demonstraram que existem transformações sintáticas que alteram o código de tal forma que os algoritmos de representação sintática/semântica usados na avaliação de plágio (e.g., AST—árvore de sintaxe abstrata; CFG—grafo de controle de fluxo; PDG—grafo de dependência de programa; e Tokenização) não reconhecem o código alterado como um possível clone. Atualmente, a abordagem de otimização de código binário já é reconhecida como uma técnica de ofuscação e manipulação de códigos maliciosos na área de evasão de antivírus, mas pouca atenção tem sido dada ao seu potencial na construção de ferramentas anti-plágio. Neste trabalho, iremos propor um método para detecção de plágio que estende as capacidades demonstradas por abordagens existentes. Nosso método consiste em uma técnica que não apenas analisa códigos fonte, ou apenas os arquivos binários correspondentes resultantes da compilação, e sim efetua uma análise do binário resultante da compilação com otimizações. Intuitivamente, o uso de otimizações de compilação serve como um “filtro reverso”, removendo do código binário possíveis fontes de ofuscação implementadas pelo plagiador em sua modificação de um código fonte original. Nossos experimentos confirmam esta correlação entre código binário otimizado e seu código fonte original. A avaliação empírica de nosso método demonstra uma utilização para calcular níveis de similaridade entre códigos binários, tendo boa eficácia na detecção de plágios mesmo quando os códigos fontes correspondentes tenham sofrido alterações sintáticas complexas. Dessa forma, o método aqui proposto pode ser utilizado de forma efetiva como uma ferramenta complementar às existentes para efetuar análises de plágio. |
publishDate |
2024 |
dc.date.accessioned.fl_str_mv |
2024-03-22T05:07:28Z |
dc.date.issued.fl_str_mv |
2024 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10183/274088 |
dc.identifier.nrb.pt_BR.fl_str_mv |
001198823 |
url |
http://hdl.handle.net/10183/274088 |
identifier_str_mv |
001198823 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRGS instname:Universidade Federal do Rio Grande do Sul (UFRGS) instacron:UFRGS |
instname_str |
Universidade Federal do Rio Grande do Sul (UFRGS) |
instacron_str |
UFRGS |
institution |
UFRGS |
reponame_str |
Repositório Institucional da UFRGS |
collection |
Repositório Institucional da UFRGS |
bitstream.url.fl_str_mv |
http://www.lume.ufrgs.br/bitstream/10183/274088/2/001198823.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/274088/1/001198823.pdf |
bitstream.checksum.fl_str_mv |
8d36af0e017a037015fc2c547a063ec6 2b0e8d9660567a811d3b829fb101f8af |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS) |
repository.mail.fl_str_mv |
|
_version_ |
1815447363517415424 |