Artigo Acesso aberto Revisado por pares

Language and Obfuscation Oblivious Source Code Authorship Attribution

2020; Institute of Electrical and Electronics Engineers; Volume: 8; Linguagem: Inglês

10.1109/access.2020.3034932

ISSN

2169-3536

Autores

Sarim Zafar, Muhammad Usman Sarwar, Saeed Salem, Muhammad Zubair Malik,

Tópico(s)

Hate Speech and Cyberbullying Detection

Resumo

with patterns learned from known authors' source codes.In this paper, we present an efficient approach to learn a novel representation using deep metric learning.The existing state of the art approaches tokenize the source code and work on the keyword level, limiting the elements of style they can consider.Our approach uses the raw character stream of source code.It can examine keywords and different stylistic features such as variable naming conventions or using tabs vs. spaces, enabling us to learn a richer representation than other keyword-based approaches.Our approach uses a character-level Convolutional Neural Network (CNN).We train the CNN to map the input character stream to a dense vector, mapping the source codes authored by the same author close to each other.In contrast, source codes written by different programmers are mapped farther apart in the embedding space.We then feed these source code vectors into the K-nearest neighbor (KNN) classifier that uses Manhattan-distance to perform authorship attribution.We validated our approach on Google Code Jam (GCJ) dataset across three different programming languages.We prepare our large-scale dataset in such a way that it does not induce type-I error.Our approach is more scalable and efficient than existing methods.We were able to achieve an accuracy of 84.94% across 20,458 authors, which is more than twice the scale of any previous study under a much more challenging setting.

Referência(s)