Misleading Authorship Attribution of Source Code using Adversarial Learning

1、Abstract

文章提出了一种针对源代码作者身份的攻击。由于归因方法依赖于机器学习,通过执行一系列保留语义的代码转换,会导致错误的归因。攻击由蒙特卡洛树搜索引导,这样能够在源代码的离散域中进行操作。对204位程序员的源代码进行评估,证明了攻击方法对归因方法产生了重大影响,在遭受攻击时,其准确性从88%下降至1%。此外,文章也证明了该攻击可以高精度地模仿开发人员的编码风格,从而导致错误的归因。

2、Introduction

程序的源代码中通常包含一些特性,这些特性反映了编码风格,可用于标识程序员。这些特性包括代码注释、代码布局、语法和控制流的使用习惯。例如tab缩减2个字符还是4个字符,循环时使用for循环还是while循环等等。基于这些特征识别程序员的就被称为作者身份(Authorship Attribution)。
作者的攻击通过对源代码进行迭代转换,保留语义的同时更改了代码特征(代码注释、代码布局、语法和控制流的使用习惯)。为了明确具体如何转换,作者开发了蒙特卡洛树搜索的一种变体来构建一系列具体对抗性但合理的代码转换。通过对抗性样本,不仅能够实现阻止正确归因的无目标攻击,还可以模仿开发人员的编码风格进行有目标攻击。
如下图是对一个代码片段的攻击所进行的两种转换,第一个转换将for循环更改为while循环,而第二个转换将C ++运算符 << 替换为C样式函数 printf。两种转换完全改变了作者A的编码风格,并且组合起来模仿作者B的编码风格,从而实现错误归因。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值