阅读:Large-Scale and Language-Oblivious Code Authorship Identification

一、来源

1、2018,CCS
2、作者:Mohammed Abuhamad, Inha University; Tamer AbuHmed, Inha University;Aziz Mohaisen,University of Central Florida;DaeHun Nyang,Inha University
3、主题:代码作者身份识别、程序功能、深度学习识别、软件取证

二、摘要

1、内容
        有效提取代码作者属性是成功识别的关键。然而,由于各种编程语言的特殊性、每个作者的可用代码样本数量有限以及每个文件的平均代码行数等原因,提取这些属性非常困难。为此,本文提出了一个基于深度学习的代码作者身份识别系统(DL-CAIS),用于实现大规模的、语言不明的、易混淆的代码作者身份识别。本研究所采用的深度学习架构包括基于TF-IDF的多重递归神经网络(RNN)层深度表示和用于作者归因学习的全连接层。然后,深度表示被输入到一个随机森林分类器中,以获得可扩展性,从而对作者进行去匿名化。我们进行了全面的实验,对所有年份(从2008年到2016年)的整个Google Code Jam(GCJ)数据集以及Github上1987个公共存储库的实际代码样本进行了评估。我们的工作结果表明,尽管每个作者需要的文件数较少,但仍然具有较高的准确性。也就是说,当我们为1,600位GCJ作者进行实验时,我们的准确度达到了96%,而对于745位C程序员来说,实际数据集的准确度为94.38%。我们的系统还允许我们识别8903位作者,这是迄今为止使用的最大规模的数据集,准确率为92.3%。此外,我们的技术对语言专用具有弹性,因此它可以识别四种编程语言(例如,C,C ++,Java和Python)的作者,以及使用混合语言编写的作者(例如,Java / C ++,Python / C ++))。最后,我们的系统能够抵抗复杂的混淆(例如,使用C Tigress),对于一组120位作者,其准确度为93.42%。

三、相关问题

1、代码重用的影响,当大量代码中插入小量恶意代码时无法识别真正的恶意代码作者。
2、代码混淆的影响。
3、使用的测试数据并不适用于真实场景,如github测试数据集效果并不好。

你可能感兴趣的:(阅读:Large-Scale and Language-Oblivious Code Authorship Identification)