桌面图标和其他各种各样的图形图像经常被恶意软件制造者们用来引诱用户。最经典的案例就是PDF图标被利用来诱使用户误以为是无害文档而放心打开恶意可执行程序。
作为美国国防部高级研究计划局(DARPA)新型恶意软件分析项目的一部分,Invincea的研究人员演示了用于分析恶意软件内置图像的一套自动化系统,证明其能够提高威胁检出率,帮助研究人员弄清新型恶意软件是怎样诱骗用户的,以及帮助确定具体威胁背后的敌人到底是谁。
Invincea实验室研究工程师阿历克斯·朗在2015黑帽大会上展示了他们研究的成果。
“利用恶意软件的内置图像来分析样本领恶意软件作者陷入了‘第二十二条军规’的窘境,因为图像就是他们借以玩弄用户的一大法宝。基本上,我们就是向恶意软件作者宣告:‘你可以继续使用图标图像增加诱使用户中招的几率,但我们也会使用图像来更加容易地检测并弄懂你的恶意软件。’”朗说。
他补充道:“基于对恶意软件检测方法的大量研究,以及我们的工作展现出的可喜初期成果,我们相信:这一相对简单的思路具有非常有效地补足其他方法的潜力,应当作为恶意软件分析的新信号得到进一步深化发展。”
据朗所说,DARPA提供的200万份恶意软件样本中,超过半数的样本至少包含一个内置图像。
这一自动化恶意软件图像分析分为两个主要阶段:用视觉相似图像集识别恶意软件样本,以及对图像分类(例如:假冒反病毒软件,安装程序,游戏相关威胁)。
对于***个部分,Invincea依靠一种名为“平均散列”的技巧。这一技巧涉及将图像削减成灰度图,拉伸或缩小到某一特定大小,调高对比度,并转换成二进制向量(位向量)等一系列操作。当得到了平均像素值,就可以通过对比每个像素和平均像素的差异产生出一个散列。
这就使得分析系统可以极有效率地将恶意软件图像与给定图像集进行比较而无须考虑它们的对比度、大小或配色。
而恶意软件图像分类则依赖于谷歌图片搜索API(应用程序编程接口)和用户定义查询。
朗解释道:“图像分类上,我们采用了谷歌图片搜索结果来得到代表不同语义类别的图像。比如说,如果你想要IE图标的训练数据,只需使用一些高级搜索设置来限制‘internet explore’这个关键词的搜索范围到仅有图标就好。”
对某些测试类别,比如假冒字处理软件,研究人员获得了相当好的结果,但在其他类别中,恶意软件图像被误分类的概率高到令人无法接受。
“我们这个研究的目的是让分析过程完全自动化。恶意软件作者采用自动化流程依靠单一恶意软件样本基本上就能源源不断地产出大量恶意软件变种,那么,恶意软件分析师也就必须开始更多地依靠自动化的方法。” 朗说道。
“采用我们的方法,提取、比较和可视化匹配图像都是全自动完成,因而,分析师可以轻轻一击,就从全无所知的20万份新鲜恶意软件样本中得到它们之间共享图像的‘社会网络’图谱。图像分类过程也是完全自动的,所以,选择想要怎样分类恶意软件图像就跟新添搜索关键词一样简单,在我们系统的搜索列表里添上就行。”
图像处理通常需要占用大量系统资源,但Invincea开发了一套相当高效的分析系统。
“考虑到可扩展性,我们把注意力放在了计算成本低的方法上。平均散列是个好办法,因为整个算法用python写的话只有20-30行,且几乎是瞬时运行。为了在百万幅图像对比时还保持良好运行效率,我们采用了开源库FLANN,也就是‘快速轻量级最近邻逼近搜索函数库’。这个库采用了比k最近邻(kNN)算法复杂得多的技术来逼近kNN的结果而又不用执行极消耗计算资源的可能图像对间的两两比较。从而,我们得以在数秒内就对成千上万的图像进行最近邻计算,对计算机性能的影响几乎可以忽略不计。”
研究人员表示,在图像分析能被集成进商业解决方案之前,此系统的整体准确度还需进一步提升。
朗说:“这一工作是在一项4年期DARPA项目的尾端进行的,因此,我们的主要目标仅仅是向社区公开这一创意。我们想表明这一概念是有潜力的,也相信我们已经做到了这一点。”