MalDy笔记

前言

原文:Portable, Data-Driven Malware Detection using Language Processing and Machine Learning Techniques on Behavioral Analysis Reports
因另一个模型Neurlux的论文中对比了该模型MalDy,故略读并做笔记。文章中的语句有一些读起来怪怪的,不知是哪个国家的表达习惯。

概括

MalDy是一个分析可执行文件的行为并判定其善恶的模型。将可执行文件的运行报告处理为单词序列,采用NLP和ML,提取恶意软件的特征。作者强调“无需恶意软件调查者介入”。MalDy的性能受行为报告的质量的影响。

简介

静态分析方法常面对麻烦的逃避攻击,如混淆、加壳。动态分析不受这些影响,大概只有反虚拟机技术会影响到。动态分析的最大缺点是计算开销大。作者的方法是对文件做线上检查,不影响用户系统性能。MalDy还具有可移植性,其挖掘的安全特征是平台无关的。实验上,安卓恶意软件报告Droidbox沙箱产生,Win32则对应ThreatAnalyzer沙箱。
工作:
1.提出一个针对行为报告的数据驱动的方法,使用基于词的特征而非人工提取的特征(为了能跨平台)。
2.使用BoW模型,ML方法。词频是主要特征。
3.框架用于安卓恶意软件检测,基于Droidbox沙箱产生的报告。使用的数据集:Malgenome,Drebin,Maldozer。为评估其可移植性,还在由第三方安全公司提供的win32软件行为报告上做测试。

概况

作者认为:恶意软件行为报告中反映出的行为有别于正常软件,且相似的恶意软件行为上也是相似的(当然有就能转化成相似的词序列)。
使用的沙箱:ThreatAnalyzer,Droidbox。用MonkeyRunner模仿用户行为(会产生随机的UI操作,以尽可能覆盖运行),不过会产生一些不确定的行为。
标签:在检测任务中,+1表示恶意,-1则相反。在家族归属分类任务中,+1表示样本属于模型当前表示家族,-1则相反。

方法

生成行为报告。
在这里插入图片描述
在这里插入图片描述
报告向量化。使用词袋模型。用TFIDF或FH,得到固定长度的向量。
建模。MalDy由一系列有不同用处的模型组成。1,威胁检测模型,根据给定行为报告判断一个app为恶意的可能性。2,每种不同类型的威胁对应一个模型。测试了不同的分类算法并比较它们的性能。
在这里插入图片描述
构建模型的算法如下。元组<c,th,params>表示<分类算法,决策阈值,算法超参数>。
在这里插入图片描述

集成上面优化好的模型序列。使用最大值投票机制,如下式。
在这里插入图片描述
没有标记所属家族时,MalDy将样本标记为未知类型威胁。若有多种家族标记,则MalDy会最有可能的所属家族作为标记。分家族模型的好处是很大的灵活性,每次重新训练或新增某个家族模型都不会影响到其他模型。

框架

特征工程。n-gram。相比简单的一个单词,n-gram可提供更多特征信息。
特征哈希(FH)。将报告的词序列转为n-gram;将n-gram的每一项进行哈希,将统计数值存放到向量中。
在这里插入图片描述
TFIDF。TFIDF=词频*逆文档频率指数。逆文档频率指数:log(所有的文档条数/有这个词的文档条数 + 1),加1是平滑的作用,防止除0。
在这里插入图片描述

用到的分类算法包括:基于树的分类算法,SVM,KNN。

实验结果

在安卓恶意软件方面,检测任务f1分数达到94%,家族归属任务f1分数高于90%。Win32方面,家族归属任务f1分数高于94%。各类分类方法中,XGBoost表现相对较好。使用TFIDF处理输入数据相对使用FH的效果好。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值