Large-Scale and Language-Oblivious Code Authorship Identification

被引:57
作者
Abuhamad, Mohammed [1 ]
AbuHmed, Tamer [1 ]
Mohaisen, Aziz [2 ]
Nyang, DaeHun [1 ]
机构
[1] Inha Univ, Incheon, South Korea
[2] Univ Cent Florida, Orlando, FL 32816 USA
来源
PROCEEDINGS OF THE 2018 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'18) | 2018年
基金
新加坡国家研究基金会;
关键词
Code Authorship Identiication; program features; deep learning identiication; software forensics; ATTRIBUTION;
D O I
10.1145/3243734.3243738
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Efficient extraction of code authorship attributes is key for successful identification. However, the extraction of such attributes is very challenging, due to various programming language specifics, the limited number of available code samples per author, and the average code lines per file, among others. To this end, this work proposes a Deep Learning-based Code Authorship Identification System (DL-CAIS) for code authorship attribution that facilitates large-scale, language-oblivious, and obfuscation-resilient code authorship identification. The deep learning architecture adopted in this work includes TF-IDF-based deep representation using multiple Recurrent Neural Network (RNN) layers and fully-connected layers dedicated to authorship attribution learning. The deep representation then feeds into a random forest classifier for scalability to de-anonymize the author. Comprehensive experiments are conducted to evaluate DL-CAIS over the entire Google Code Jam (GCJ) dataset across all years (from 2008 to 2016) and over real-world code samples from 1987 public repositories on GitHub. The results of our work show the high accuracy despite requiring a smaller number of files per author. Namely, we achieve an accuracy of 96% when experimenting with 1,600 authors for GCJ, and 94.38% for the real-world dataset for 745 C programmers. Our system also allows us to identify 8,903 authors, the largest-scale dataset used by far, with an accuracy of 92.3%. Moreover, our technique is resilient to language-speciics, and thus it can identify authors of four programming languages (e. g., C, C++, Java, and Python), and authors writing in mixed languages (e. g., Java/C++, Python/C++). Finally, our system is resistant to sophisticated obfuscation (e. g., using C Tigress) with an accuracy of 93.42% for a set of 120 authors.
引用
收藏
页码:101 / 114
页数:14
相关论文
共 49 条
[41]   Who Wrote This Code? Identifying the Authors of Program Binaries [J].
Rosenblum, Nathan ;
Zhu, Xiaojin ;
Miller, Barton P. .
COMPUTER SECURITY - ESORICS 2011, 2011, 6879 :172-189
[42]  
Shin ECR, 2015, PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM, P611
[43]  
Spafford E. H., 1993, Computers & Security, V12, P585, DOI 10.1016/0167-4048(93)90055-A
[44]  
Srivastava N, 2014, J MACH LEARN RES, V15, P1929
[45]   A Survey of Modern Authorship Attribution Methods [J].
Stamatatos, Efstathios .
JOURNAL OF THE AMERICAN SOCIETY FOR INFORMATION SCIENCE AND TECHNOLOGY, 2009, 60 (03) :538-556
[46]  
Stolerman Ariel, 2013, CLASSIFY VERIFY BREA, V11
[47]  
Tieleman T., 2012, COURSERA: Neural Netw. Mach. Learn., V4, P2
[48]  
Uzuner Ö, 2005, LECT NOTES ARTIF INT, V3651, P969, DOI 10.1007/11562214_84
[49]   Authorship - The coin of the realm, the source of complaints [J].
Wilcox, LJ .
JAMA-JOURNAL OF THE AMERICAN MEDICAL ASSOCIATION, 1998, 280 (03) :216-217