Code authorship identification using convolutional neural networks

Mohammed Abuhamad, Ji su Rhim, Tamer AbuHmed, Sana Ullah, Sanggil Kang, Dae Hun Nyang

Research output: Contribution to journalArticlepeer-review

44 Scopus citations

Abstract

Although source code authorship identification creates a privacy threat for many open source contributors, it is an important topic for the forensics field and enables many successful forensic applications, including ghostwriting detection, copyright dispute settlements, and other code analysis applications. This work proposes a convolutional neural network (CNN) based code authorship identification system. Our proposed system exploits term frequency-inverse document frequency, word embedding modeling, and feature learning techniques for code representation. This representation is then fed into a CNN-based code authorship identification model to identify the code's author. Evaluation results from using our approach on data from Google Code Jam demonstrate an identification accuracy of up to 99.4% with 150 candidate programmers, and 96.2% with 1,600 programmers. The evaluation of our approach also shows high accuracy for programmers identification over real-world code samples from 1987 public repositories on GitHub with 95% accuracy for 745 C programmers and 97% for the C++ programmers. These results indicate that the proposed approaches are not language-specific techniques and can identify programmers of different programming languages.

Original languageEnglish
Pages (from-to)104-115
Number of pages12
JournalFuture Generation Computer Systems
Volume95
DOIs
StatePublished - Jun 2019

Bibliographical note

Publisher Copyright:
© 2018 Elsevier B.V.

Keywords

  • Code authorship identification
  • Convolutional neural network
  • Deep learning identification
  • Program features privacy
  • Software forensics and security

Fingerprint

Dive into the research topics of 'Code authorship identification using convolutional neural networks'. Together they form a unique fingerprint.

Cite this