查看: 7225|回复: 41
收起左侧

[分享] Cylance小波分析检测技术

  [复制链接]
B100D1E55
发表于 2017-6-9 13:50:24 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2017-6-9 23:00 编辑

Cylance在专利申请和PR上越来越活跃。除了最近一系列新闻之外,一篇发布在Arxiv预印本网站上的文章引起了我的兴趣。这篇文章第一作者是Cylance的Michael Wojnowicz,而文章内容是关于通过对文件熵进行小波变换分析进行病毒侦测的一些手段,有点意思所以在这里分享一下

文件熵一向是区分正常文件和病毒的一个重要特征。熵值代表信息的混乱程度,低熵值的信息混乱程度低(符号序列简单,例如一大串相同的字符),而高熵值的信息则往往是符号分布较均匀、重复率较低的序列,常出现在压缩/加密的数据中。为了免杀,病毒往往需要对恶意代码进行加密/加壳进行伪装,这就导致了这些恶意程序的熵会和正常程序不同。有一些简单的检测手段会将高熵值列为可疑特征之一,例如cuckoo自动沙盘:
cuckoo_entropy.jpg
黑客对一些提取平均熵值作为特征的手段也有反制措施,最简单的就是大量填零以拉低平均熵值。因此研究者开始对文件熵结构信息进行提取以达到鲁棒性更高的结果。
类似于傅里叶变换,小波变换也是一个信号拟合的手段。和傅里叶变换那种传统的利用不同频率、不同震荡系数的正弦函数叠加进行信号拟合不同,小波变换是对基础小波块进行数学上的拉伸/平移来拟合信号。在这篇文章中,作者使用的是Haar小波变换,其基本构成是一个简单的分段函数:
1200px-Haar_wavelet.svg.png
小波变换分析熵值允许研究者在不同解析度对文件的熵进行分析,如下图所示(自上而下从低解析度到高解析度,可以看到蓝线和散点的拟合程度越来越高):
resolutionlevel.jpg

文件的熵信息通过小波变换后可以作为很好的机器学习特征,其实早在数十年前就有人以离散小波变换信息作为node激活的神经网络(小波神经网络),这种网络已经在医疗信号处理上有些使用案例,例如肺音信号分类,癫痫/非癫痫患者的脑电图分类,等等。不过在处理恶意软件的时候需要做一些特别处理——传统的这类信号处理一般针对的是恒定长度的信号,然而文件长度则难以恒定,如何针对这种非等长信号进行处理就不是那么单纯了。
这里Cylance提出的方法是训练J个不同的回归模型,每个回归模型对应一个区段的文件长度。转制出来小波信号输入到对应的模型中,而这个模型则通过不同解析度的小波特征来打分衡量可疑程度

具体的数学模型在这里不赘述,不过这篇文章中有一些有意思的结果值得一提:

小波变换较为有效地捕获了恶意程序的特征
comparison_legitimate_mal.jpg
上图左为一个正常程序,右边是一个恶意程序。自上而下分别是不同解析度小波变换后的结果,每一个图块上标出了对应的能量值。可以看到正常文件在低解析度的时候信号较为平稳,高解析度的时候信号则开始起伏,能量在高解析度的时候偏高。而恶意文件在低解析度的时候已经出现较大起伏,而且能量在低解析度的时候偏高(特别是level2那里)

针对这种特征,研究者用样本训练了一个“危险地图”:
dangermap.jpg
在上图中,Beta值代表了一个文件的可疑程度(红色是恶意,蓝色是正常),纵坐标是文件长度组别,而横坐标是解析度。这张图可以这样解读:例如针对第五组别的文件(J=5),若能量集中在解析度4或5上,则代表其很有可能是正常程序,反之亦然。
通过这样一些信息,研究者用四万个真实世界收集并分拣过的文件进行训练后发现
单纯用上述方法侦测将恶意程序检测率从50%提高到了68.7%
如果将上述方法和平均熵值特征结合,则可以将检出率提升至73.3% (单纯用平均熵值检测则仅为66.2%)
若把熵值标准差作为特征,检出率仅为70.4%,说明小波变换带来了更深层次的特征提取

此外,作者还对感染文件侦测能力进行了评估。结果显示在基础的String机器学习模型上若增加文件熵特征则可以有效提升检测率并降低误报,若进一步对熵信息进行小波变换提取特征,则可以获得更优结果,如下图所示:
wavelet_entropy_string.jpg
上图中,纵坐标为检出率,而横坐标为误报率。右图中Strings模型+熵值模型明显比左图效果更优,而蓝线(小波变换后)对比红线(没有小波变换)的效果更加好

事实上熵判定在老牌杀软中早已使用,例如红伞就被CIA吐槽过对一些熵特征特别敏感,当然他们没披露具体细节。我相信很多机器学习模型都有提取这种基本的特征,不过Cylance在这篇文章中较为浅显地讲解了一些实际算法和测试结果,应该点个赞

Reference:

1. Wojnowicz, M., Chisholm, G., Wolff, M., & Zhao, X. (2016). Wavelet decomposition of software entropy reveals symptoms of malicious code. Journal of Innovation in Digital Ecosystems, 3(2), 130-140.


P.S.
写到最后突然想起了某家对这类检测的看法:
vs0.jpg
vs1.jpg
我个人认为如果开发者真的这样想未免有点短视。表层特征提取必然有弊端(我个人觉得很有可能经不起adversarial构造的攻击,这点其实到目前为止都没人证明能免疫,而火热的视觉方向神经网络也被研究人员发现会被一些人眼能轻松识别的混淆所迷惑),因此单纯靠这些指标杀毒显然不靠谱。
但我认为拓宽思路是必须的。信号处理显然是一个很有潜力的方向,它可以挖掘很多隐含的、人所无法想到的信息和特征。只有提取特征足够广、思路足够清奇,才能训练出优秀的模型,取得优秀的检出率,克服单靠某些方面技术带来的瓶颈

评分

参与人数 5分享 +2 人气 +5 收起 理由
雪拥蓝关 + 1 加分鼓励
诸葛亮 + 1 很给力!
屁颠屁颠 + 2 + 1 版区有你更精彩: )
欧阳宣 + 1 感谢提供分享
pal家族 + 1 感谢支持,欢迎常来: )

查看全部评分

pal家族
发表于 2017-6-9 14:19:32 | 显示全部楼层
我就进来给了个人妻~~~
柯林
发表于 2017-6-9 14:20:31 | 显示全部楼层
最需要阿尔法狗的思路---分身两个,一个扮演检测者,一个扮演病毒,。每天几百万亿次攻防演练,变身-识破、拦截、捕捉……从中提取最有价值的“信息”,编制“数据库”……然后,你懂的,那个“检测对弈”,每一步都成功率高高
ithunder
发表于 2017-6-9 14:42:52 | 显示全部楼层
大神好文章!
可惜看不懂
ericdj
发表于 2017-6-9 15:18:59 | 显示全部楼层

看到小波本宝宝就进来了
虽然本宝宝的方向并不是小波,但是这边的确还有人在做小波


小波变换(wavelet transform,WT)是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具。它的主要特点是通过变换能够充分突出问题某些方面的特征,能对时间(空间)频率的局部化分析,通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换(频域)的困难问题,成为继Fourier变换以来在科学方法上的重大突破。

PS:小波变换还有一个兄弟——小波包变换(也是时间-频率”分析
小波包分解(wavelet packet decomposition)也可称为小波包(wavelet packet)或子带树(subband tree)及最佳子带树结构(optimal subband tree structuring)。其概念是用分析树来表示小波包,即利用多次叠代的小波转换分析输入讯号的细节部分。
从函数理论的角度来看,小波包分解是将信号投影到小波包基函数张成的空间中。从信号处理的角度来看,它是让信号通过一系列中心频率不同但带宽相同的滤波器。

没看到全部是百度的?
显然本宝宝也是不明觉厉啊

欧阳宣
发表于 2017-6-9 15:33:40 | 显示全部楼层
火绒那段话是在先把要比喻的过程简化,再批判这个简化的过程,这无疑是可笑的

前技术官?也就是在最近的裁员中被炒鱿鱼了?新东家刚好可以选最近刚成立的那个obsidian security,说是由cylance和carbon black的前员工组建的。
ELOHIM
发表于 2017-6-9 20:54:49 | 显示全部楼层
看不透彻。

通过概率来分析恶意与否的可能?
B100D1E55
 楼主| 发表于 2017-6-9 22:11:02 | 显示全部楼层
ericdj 发表于 2017-6-9 15:18
看到小波本宝宝就进来了
虽然本宝宝的方向并不是小波,但是这边的确还有人在做小波

你这么一说我才意识到写的时候没有解释这些变换在做什么……不过既然你补充了我就不改主楼了
B100D1E55
 楼主| 发表于 2017-6-9 22:15:05 | 显示全部楼层
欧阳宣 发表于 2017-6-9 15:33
火绒那段话是在先把要比喻的过程简化,再批判这个简化的过程,这无疑是可笑的

前技术官?也就是在最近的 ...

我囧囧囧,之前看fortune那篇文章的时候把名字搞混了。这位不是前CTO,已修正(面壁
B100D1E55
 楼主| 发表于 2017-6-9 22:17:24 | 显示全部楼层
ELOHIM 发表于 2017-6-9 20:54
看不透彻。

通过概率来分析恶意与否的可能?

简单的来说是根据文件局部熵变化趋势来进行特征提取
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛|优惠券| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.3( 苏ICP备07004770号 ) GMT+8, 2017-8-24 07:12 , Processed in 0.137667 second(s), 10 queries , MemCache On.

快速回复 返回顶部 返回列表