Tecnologia

Seu estilo de programar é quase tão único quanto uma impressão digital

Pesquisadores de quatro universidades desenvolveram uma metodologia capaz de identificar os responsáveis por um código-fonte com taxa de acerto de 95%

programar (hackNY / Flickr)

programar (hackNY / Flickr)

DR

Da Redação

Publicado em 5 de fevereiro de 2015 às 17h32.

Com tempo e prática, programadores tendem a desenvolver suas próprias manias e particularidades. Mas o jeito como eles programam é ainda mais único do que pode parecer. Segundo uma pesquisa elaborada por especialistas das Universidades Drexel, de Maryland, de Goettingen e Princeton, a forma com que códigos são escritos é praticamente uma “impressão digital” – que pode inclusive ser usada para identificar quem é o responsável pelo arquivo.

Os pesquisadores por trás do estudo conseguiram criar uma espécie de “estilômetro” de programação, nas palavras do site IT World. Em testes, o sistema foi capaz de determinar, com grau de precisão de 95%, os autores de diferentes códigos-fonte, aprendendo com base nos padrões usados por programadores e apelando até para processamento de linguagem natural.

A avaliação foi feita com base em dados públicos das edições de 2008 a 2014 do Code Jam, uma competição de programação organizada anualmente pelo Google. Foram analisados arquivos de código em C++ produzidos por mais de 100 mil participantes, que precisaram desenvolver soluções para diferentes problemas apresentados durante os eventos.

Os especialistas primeiro estudaram amostras referentes a um problema. Então, com base no que aprenderam nessa “análise de big data”, partiram para identificar partes de código relacionadas a outras soluções. O sistema obteve a impressionante taxa de sucesso de 92% quando precisou classificar “mais de 170 autores mesmo com apenas cinco arquivos por pessoa”, de acordo com o estudo – e foi ainda melhor, batendo os 95%, quando mais documentos do tipo (oito), referentes a mais autores (250), foram analisados.

Para chegar a esse grau de exatidão, o “estilômetro” analisa pontos óbvios, como o formato do código e os elementos preferidos pelos programadores. Mas não só eles. Os pesquisadores também apelam para um conceito novo que desenvolveram: as “árvores abstratas de sintaxe”, ou “abstract syntax trees” no termo original. Elas identificam as construções de linguagem mais usadas por diferentes autores, como o costume de usar “funções incomumente longas ou sequências compridas de atribuições”, entre outras particularidades.

A metodologia, no entanto, não é perfeita, e não só pelos 5% faltantes na taxa de sucesso. Segundo a pesquisa, o sistema ainda se confunde com linhas extras adicionadas a um código-fonte – o que até pode ser considerado trivial, visto que não é difícil detectá-las manualmente. Mas, além disso, o método também não é capaz de identificar farsas como um caso em que o arquivo foi escrito por um autor diferente do informado.

Mesmo assim, o avanço não deixa de ter sua utilidade. O próprio estudo afirma que uma ferramenta que encontra os autores dos códigos-fonte pode ser útil na hora de encontrar o criador de um malware, por exemplo. Ela também pode ter sua utilidade na investigação de um caso de plágio, entre outras possibilidades – mas, por ora, apenas envolvendo C++. Se tiver interesse, o estudo completo (em inglês e PDF) está disponível aqui.

Clique para abrir o link no navegador

Acompanhe tudo sobre:INFOSoftware

Mais de Tecnologia

Meta lança aplicativo de edição de vídeo em meio a banimento do CapCut

Líderes de tecnologia acompanharam Trump em culto antes da posse presidencial

Meta pode sair ganhando com proibição do TikTok nos EUA

Cabos submarinos danificados na Europa foram resultado de acidentes, e não de sabotagem russa