文章目录:
-
一.机器学习概述与算法举例
1.机器学习概念
2.机器学习算法举例
3.特征工程-特征选取与设计
-
二.基于机器学习方法的恶意代码检测
1.恶意代码的静态动态检测
(1) 特征种类
(2) 常见算法
2.静态特征设计举例
3.经典的图片特征举例
4.动态特征设计举例
5.深度学习静态检测举例
6.优缺点
7.静态分析和动态分析对比
-
三.机器学习算法在工业界的应用
-
四.总结
前文推荐:
-
[当人工智能遇上安全] 4.基于机器学习的恶意代码检测技术详解
作者的github资源:
-
https://github.com/eastmountyxz/AI-Security-Paper
一.机器学习概述与算法举例
1.机器学习概念
-
超平面(SVM)
在二维坐标轴中,可以设计一条直线将空间内分布的散点区分开来,如下图所示。
-
softmax
另外一种方法是构造类别概率输出(softmax),比如归一化处理得到A+B=1,最后看A和B的概率,谁的概率大就属于哪一类,该方法广泛使用于神经网络的最后结果计算中。
2.机器学习算法举例
3.特征工程-特征选取与设计
-
《统计学习方法》李航,数学理论较多
-
《机器学习》周志华,西瓜书,较通俗透彻
-
《Deep Learning》Ian Goodfellow,花书,深度学习内容全面
-
《精通特征工程》结合恶意代码特征学习,包括如何向量化
二.基于机器学习方法的恶意代码检测
1.恶意代码的静态动态检测
(1) 特征种类
静态特征: 没有真实运行的特征
-
字节码:二进制代码转换成了字节码,比较原始的一种特征,没有进行任何处理
-
IAT表:PE结构中比较重要的部分,声明了一些函数及所在位置,便于程序执行时导入,表和功能比较相关
-
Android权限表:如果你的APP声明了一些功能用不到的权限,可能存在恶意目的,如手机信息
-
可打印字符:将二进制代码转换为ASCII码,进行相关统计
-
IDA反汇编跳转块:IDA工具调试时的跳转块,对其进行处理作为序列数据或图数据
动态特征: 相当于静态特征更耗时,它要真正去执行代码
-
API调用关系:比较明显的特征,调用了哪些API,表述对应的功能
-
控制流图:软件工程中比较常用,机器学习将其表示成向量,从而进行分类
-
数据流图:软件工程中比较常用,机器学习将其表示成向量,从而进行分类
if (x < y)
{
y = 0;
x = x + 1;
}
else
{
x = y;
}
(2) 常见算法
-
普通机器学习方法(SVM支持向量机、RF随机森林、NB朴素贝叶斯)
-
深度神经网络(Deep Neural Network)
-
卷积神经网络(Convolution Neural Network)
-
长短时记忆网络(Long Short-Term Memory Network)
针对序列模型进行建模,包含上下文依赖关系,比如“我 是 一名 大学生”中的“我”和“是”前后出现的条件概率更高。广泛应用于文本分类、语音识别中,同样适用于恶意代码检测。 -
图卷积网络 (Graph Convolution Network)
比较新兴的方法,将卷积应用到图领域,图这种数据类型比较通用,非图数据比较容易转换成图数据,CCF论文中也已经应用到恶意代码检测中。
2.静态特征设计举例
-
Saxe J,Berlin K. Deep neural network based malware detection using two dimensional binary program features[C] // 2015 10th International Conference on Malicious and Unwanted Software(MALWARE). IEEE, 2015: 11-20
-
特征抽取
使用了四种特征 -
特征抽取输入到深度神经网络
包含两层隐含层的深度神经网络 -
分数校正
-
TP:本身是恶意样本,并且预测识别为恶意样本
-
FP:本身是恶意样本,然而预测识别为非恶意样本,这是误分类的情况
-
FN:本身是非恶意样本,然而预测识别为恶意样本,这是误分类的情况
-
TN:本身是非恶意样本,并且预测识别为非恶意样本
3.经典的图片特征举例
4.动态特征设计举例
-
Kolosnjaji B,Zarras A,Webster G,et al. Deep learning for classification of malware system call sequences[C] // Australasian Joint Conference on Artificial Intelligence. Springer,Cham,2016:137-149.
-
Cuckoo沙箱
-
LSTM
5.深度学习静态检测举例
-
Coull S E,Gardner C. Activation Analysis of Byte-Based Deep Neural Network for Malware Classification[C] // 2019 IEEE Security and Privacy Workshops(SPW). IEEE,2019:21-27.
-
首先,原始的字节码特征直接输入一个Byte Embedding层(词嵌入),对单个元素进行向量化处理,将字节码中的每个字节表示成一个固定长度的向量,从而更好地将字节标记在一个空间维度中。词嵌入技术广泛应用于自然语言处理领域,比如“女人”和“女王”关系比较紧密,这篇文章的目的也是想要在恶意代码中达到类似的效果。
-
然后将矩阵输入到卷积和池化层中,比如存在一个100K字节的二进制文件,得到100102410矩阵输入卷积神经网络中,最后通过全连接层完成恶意和非恶意的分类任务。
6.优缺点
-
优点
特征提取速度快
特征种类丰富,可以组合多种特征向量 -
缺点
易受加壳、加密、混淆干扰
无法防范无文件攻击,难以反映恶意软件行为的恶意性
-
优点
提供恶意软件的动作,调用API
规避一些静态的混淆对抗方法 -
缺点
反虚拟化,延时触发等技术的对抗
测试时间较长,单个样本2-3分钟(Cuckoo)
-
404notfound实验室总结的AI在安全领域应用
https://github.com/404notf0und/AI-for-Security-Learning -
malware data science书籍
https://www.amazon.com/Malware-Data-Science-Detection-Attribution-ebook/dp/B077X1V9SY
7.静态分析和动态分析对比
-
采集大量的恶意代码样本以及正常的程序样本作为训练样本;
-
对训练样本进行预处理,提取特征;
-
进一步选取用于训练的数据特征;
-
选择合适的机器学习算法训练分类模型;
-
通过训练后的分类模型对未知样本进行检测。
-
静态分析不运行待检测代码,而是通过直接对程序(如反汇编后的代码)进行统计分析得到数据特征
-
动态分析则在虚拟机或沙箱中执行程序,获取程序执行过程中所产生的数据(如行为特征、网络特征),进行检测和判断。
三.机器学习算法在工业界的应用
-
多家杀毒引擎厂商将机器学习视作NGAV的重要技术,包括McAfee[11], Vmware[9], CrowdStrike[10], Avast[6]
-
越来越多的厂商开始关注机器学习技术,并发表相关的研究(卡巴斯基[7],火眼[8]),火眼还是用机器学习技术对APT进行分析(组织相似度溯源)
-
优点:速度快,消耗计算资源少
只需要将特征码提取出来,上传至云端进行检测;相对于机器学习大量的矩阵计算,其计算资源消耗少。 -
缺点:容易绕过,对于未知恶意软件检出率低
使用加壳、加密、混淆容易绕过,对于未知软件不知道其特征码,只能通过启发式方法、主动防御检测,相对于机器学习检测率要低。
-
优点:能够建立专家难以发现的规则与特征
发现的规则和特征很可能是统计学特征,而不是恶意和非恶意的特征,所以这些特征很容易被黑客进行规避,这既是优点也是缺点,虽然有缺陷,但也能发现恶意样本的关联和行为。 -
缺点:资源消耗大,面临漂移问题,需要不断更新参数
四.总结
-
机器学习方法与传统方法不是取代与被取代的关系,而是相互补充,好的防御系统往往是多种技术方法的组合。
-
机器学习的检测方法研究还不充分,安全领域的专有瓶颈与人工智能研究的共有瓶颈均存在、
-
机器学习算法本身也面对一些攻击方法的威胁,比如对应抗本。
-
[1] Saxe J, Berlin K. Deep neural network based malware detection using two dimensional binary program features[C]//2015 10th International Conference on Malicious and Unwanted Software (MALWARE). IEEE, 2015: 11-20.
-
[2] https://www.kaggle.com/c/malware-classification
-
[3] https://www.fireeye.com/blog/threat-research/2018/12/what-are-deep-neural-networks-learning-about-malware.html
-
[4]Kolosnjaji B, Zarras A, Webster G, et al. Deep learning for classification of malware system call sequences[C]//Australasian Joint Conference on Artificial Intelligence. Springer, Cham, 2016: 137-149.
-
[5] Wüchner T, Cisłak A, Ochoa M, et al. Leveraging compression-based graph mining for behavior-based malware detection[J]. IEEE Transactions on Dependable and Secure Computing, 2017, 16(1): 99-112.
-
[6]https://www.avast.com/technology/malware-detection-and-blocking
-
[7] https://media.kaspersky.com/en/enterprise-security/Kaspersky-Lab-Whitepaper-Machine-Learning.pdf
-
[8] https://www.fireeye.com/blog/threat-research/2019/03/clustering-and-associating-attacker-activity-at-scale.html
-
[9] https://www.carbonblack.com/resources/definitions/what-is-next-generation-antivirus/
-
[10] https://www.crowdstrike.com/epp-101/next-generation-antivirus-ngav/
-
[11] https://www.mcafee.com/enterprise/en-us/security-awareness/endpoint/what-is-next-gen-endpoint-protection.html
-
[12] 重点推荐:https://mooc.study.163.com/learn/1000003014?share=2&shareId=1000001005
-
[13] 重点推荐:《软件安全之恶意代码机理与防护》WHU
-
[14] 师兄的分享及作者学习和实践经验
-
[i] Saxe, J., & Berlin, K. (2015, October). Deep neural network-based malware detection using two-dimensional binary program features. In 2015 10th International Conference on Malicious and Unwanted Software (MALWARE) (pp. 11-20). IEEE.
-
[ii] Nix, R., & Zhang, J. (2017, May). Classification of Android apps and malware using deep neural networks. In 2017 International joint conference on neural networks (IJCNN) (pp. 1871-1878). IEEE.
-
[iii] Tobiyama, S., Yamaguchi, Y., Shimada, H., Ikuse, T., & Yagi, T. (2016, June). Malware detection with deep neural network using process behavior. In 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC) (Vol. 2, pp. 577-582). IEEE.
-
[iv] Pascanu, R., Stokes, J. W., Sanossian, H., Marinescu, M., & Thomas, A. (2015, April). Malware classification with recurrent networks. In 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 1916-1920). IEEE.
-
[v] Athiwaratkun, B., & Stokes, J. W. (2017, March). Malware classification with LSTM and GRU language models and a character-level CNN. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 2482-2486). IEEE.
-
[vi] Athiwaratkun, B., & Stokes, J. W. (2017, March). Malware classification with LSTM and GRU language models and a character-level CNN. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 2482-2486). IEEE.
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论