基于API依赖关系的代码相似度分析,该文档来源于《计算机工程》2013年1期,着重解决传统系统调用依 赖图不能很好的消除API噪声,API重排等API特征混淆的问题。 一些题外话: 对恶意代码的检测问题,无论动态检测还是静态检测,利用API的关联关系都是非常有效的一个手段, 业界和学术团体对这方面的研究也进行了很长时间,困难程度也一直存在,甚至一度让我感觉是鸡肋的一 个手段,很大困惑源自于要实现何种目标。 问题1 完成病毒家族相似性的判断 问题2 仅解决恶意代码识别问题 显然问题1要难于2,因为这不仅仅是API的调用关系,相似性能解决的。还需要文件静态特性,编写语言, 局部指令编码习惯,特殊函数实现等等。更高级情况是借助这样的分析,你甚至可以分析出发布恶意代码团体 的人员数量,过往开发经历,升级版本,地理位置,擅长偏好等等有效信息,我们向往着如同Grupib那样出色的 完成复杂威胁的追踪,但目前来看研究员的分析工作起决定作用,分析程序仍然扮演辅助角色。 回到我们的问题,克服API混淆,也就是为了鉴定不同bin之间是否具有一定的同源性,如果是进行恶意代码 的判断,我更倾向于基于权值的方式,因为他已经忽略了混淆的其他API情况。当WriteProcessMemory, CreateRemoteThread,同时出现自然导致风险增高。而为了混淆加入的其他API,以及顺序自然的被忽略掉了。 但这里的问题在于如何合理的控制误报。 本次搜集的这篇论文为我们提供了一些对抗API混淆的思路,希望对这方面研究的朋友有帮助,感谢源作者。 下载地址: http://www.vxjump.net/files/security_research/api_dep_relation.pdf