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
ISSN2169-3536
AutoresSarim Zafar, Muhammad Usman Sarwar, Saeed Salem, Muhammad Zubair Malik,
Tópico(s)Hate Speech and Cyberbullying Detection
Resumowith 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)