机器学习&恶意代码动态检测
写在前面
对恶意程序动态检测方法做了概述,
关于方法1和2可以参考阿里云恶意程序检测大赛;
方法3后面补充
方法4参考文末给出的文献;
1 基于API调用的统计特征
统计特征(23个):
文件相关(3) | 进程相关(4) | 线程(5) | api调用(11) |
---|---|---|---|
文件操作次数文件pid跨度文件运行时间跨度 | 文件产生进程数进程出现次数比统计值(最大值、均值、标准差) | 文件产生线程数线程出现次数比统计值(最大值、最小值、均值、标准差) | 文件调用api种类数文件调用无重复api数文件调用api总数api 出现次数统计值(最大值、最小值、均值、标准差)api 参数信息熵统计值(最大值、最小值、均值、标准差) |
2 API序列特征
可以使用各种序列分析方法,很多
1-gram tf-idf + ml
2-gram tf-idf + ml
word2vec*tf-idf +ml
fasttext
textcnn
transformer
3 API调用图
这个后面补充
4 基于行为的特征
文献中提到的方法:
文献中提到的方法
references:
【1】Behavior-based anomaly detection on big data https://ro.ecu.edu.au/cgi/viewcontent.cgi?article=1182&context=ism
【2】AMAL: High-fidelity, behavior-based automated malware analysis and classification https://www.sciencedirect.com/science/article/pii/S0167404815000425#bib37
【3】DTB-IDS: an intrusion detection system based on decision tree using behavior analysis for preventing APT attacks https://link.springer.com/content/pdf/10.1007/s11227-015-1604-8.pdf