恶意软件制作者住手吧 你的编程风格可被跟踪

如果你制作恶意软件,或者你的程序侵犯版权或违法审查条例,可能要遇到麻烦了。使用在二进制文件中仍旧包含的代码风格信息,可以绕过常见的混淆手段,识别程序员。



 

Aylin Caliskan-Islam在周二举行的第三十二届世界混沌通讯大会(Chaos Communications Congress)上介绍了这项工作,它的名称是解码匿名程序员:来自编译代码和源代码的可执行二进制文件。

这群来自普林斯顿大学的研究人员也在 arxiv 上发表了一篇名称为《当编程风格编译中存活:使用可执行二进制码解码匿名程序员》的文章,小组的一名程序员属于著名的美国陆军研究实验室(Army Research Laboratory)。

研究人员开始试图识别恶意程序员,并指出,在黑帽子和白帽子的代码写作风格之间没有“技术性区别”。换句话说,代码风格背叛了作者。

研究人员编译分析了一些C和C++的代码,变量命名等很多可识别元素在代码被编译之后都消失了,此外,编译器的优化流程有可能进一步改变程序的结构特性,将作者进一步混淆。

然而,在“通过机器学习的方式,使用可执行二进制文件和源码反编译的结果等一系列新的元素”研究可执行二进制文件的作者特征之后,研究人员能够揭示“源码中的很多语法特征确实存活过了编译步骤,可以使用反编译方式进行恢复”。



 

如上图所示,研究人员使用了“最先进的逆向工程方法”,“从每个可执行二进制文件中提取出了大量特征元素”,如果程序员使用这些特征向量,可以认为他们是代码的主人。

实际上,这需要先后查询 Netwide 反编译器和 Radare2 反编译器,然后使用“最先进的” Hex-Ray 反编译器和开源的 Snowman 反编译器,提取426个和代码风格有关的特征向量,以待比对。

随后,选择每位程序员的八组可执行二进制文件,训练随机森林分类器,生成作者代码风格的精确模型。之后,就可以使用该模型,“利用以前不可见的可执行二进制文件的向量表示”,确定代码作者。

研究人员指出:“我们对未经编译优化流程的可执行二进制文件能够实现78%的识别率,对经过编译优化的文件则可以实现64%的识别率。”

“我们还发现,如果从可执行二进制文件中删除符号信息,只会将识别率降低到66%,,降低程度如此之小,令人惊讶。这表明,代码风格能够经过复杂的转换而存活。”

未来,研究人员准备探讨代码风格“是否完全可以与可执行二进制文件剥离,保证程序员的匿名性”,此外,将这种识别方式用在真实世界中,“确定恶意软件的作者。恶意软件通过结合多态性和加密,实现了一种复杂的混淆方法。”

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

能够有效提升服务器安全性的几个关键步骤

能够有效提升服务器安全性的几个关键步骤

正如我在推特上与几位朋友所暗示的那样,我们目前正在准备正式启用Skyport(一个企业安...[详细]

安全专家眼里的物联网安全问题及解决方法

安全专家眼里的物联网安全问题及解决方法

你每天都要接触的每个物品很快就会实现联网,收集数据,很容易被黑客攻击。物联网安全...[详细]

十个步骤使您免受勒索软件伤害

十个步骤使您免受勒索软件伤害

如果您在过去几周一直对安全方面的新闻有所关注,应该听说多家公司受到勒索软件,特别...[详细]

企业级网络监控系统“必备技能”

企业级网络监控系统“必备技能”

网络可用性监控系统通常是应用程序出现故障时的第一道防线。IT组织的各个团队免不了在...[详细]

使用Docker时需要关注的五项安全问题

使用Docker时需要关注的五项安全问题

通过阅读网上帖子以及浏览相关新闻,大家可能会产生一种先入为主的印象,即Docker天生...[详细]

返回首页 返回顶部