ROBiT : um método de detecção de plágio baseado em otimizações de arquivos binários

Detalhes bibliográficos
Autor(a) principal: Robert, Roberta
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_ 1801224680250540032