堪萨斯州立大学:用弱参考标准数据进行安卓恶意软件检测
AAAI2017 Student Abstracts
用弱参考标准数据进行安卓恶意软件检测
Android Malware Detection with Weak Ground Truth Data
堪萨斯州立大学
Kansas State University
【摘要】对于Android恶意软件检测来说,精确的参考标准是一种稀有商品。随着安全知识的进化,可能在某一时刻被认定的参考标准可能会改变,而曾经被认为是良性的应用程序可能是恶意的。数据标签中不可避免的噪声对有效的机器学习分类器提出了挑战。我们的工作重点是学习针对Android恶意软件分类器的学习方法,也就是在某种程度上针对问题空间中不确定和不断变化的参考标准的方法。我们利用了这样一个事实:尽管数据标签不可避免地有噪声,但恶意软件标签比良性标签更精确。虽然你可以确信一个应用程序是恶意的,但你永远不能确定一个良性的应用程序真的是良性的,或者仅仅是未被检测到的恶意软件。基于这一观点,我们利用一个改进的逻辑回归分类器,它允许我们只学习正数据和无标记数据,而不需要对良性标签做出任何假设。我们发现,标签正则化逻辑回归在嘈杂的应用程序数据集和有有限数量的正标记数据集上表现良好,这两种数据集都都代表了真实世界情景。
1 引言
Android恶意软件检测技术已经越来越多地朝着机器学习的方向演变。为了有效地使用机器学习来检测恶意软件,需要三个要素:首先,你必须有大量的应用程序可供学习;其次,对于这些应用,你需要准确的标签(恶意软件或良性);最后,你需要一个有效的机器学习分类器,可以准确地标注新的应用程序。我们的工作是基于这样一种见解:虽然我们可以高度肯定正面例子(恶意软件)的标签,但我们永远无法确定负面或良性的例子(Kantchelian et al. 2015)的标签。使用下一节所描述的数据集和标签准备方法,我们在自己的数据集中验证了这个事实,在2015年到2016年之间,1681个应用程序被从良性到恶意软件重新分类,而只有一个此前被认为是恶意软件的应用程序被重新归类为良性。
对正(恶意软件)标签的精确性的强烈信念,以及对负(良性)标签的相对较弱的信念,提供了一个利用一个不依赖于标记负数据的分类器的机会。具体地说,我们利用标签正则化逻辑回归(LR-LR)(Ritter et al. 2015),这是一种经过修改的逻辑回归,只从标记的正和无标记的数据中学习。LR-LR方法与我们的问题域匹配得很好,因为我们很确定我们的正标记数据,而其余的数据则最好无标记。
2 试验步骤和方法
2.1 数据集和标签准备
我们使用从之前的工作中的一个数据集(Roy et al. 2015),那里有将近100万个来自谷歌Play Store应用程序。另外3.5万个来自于VirusShare, 2.4万个来自Arbor网络的恶意软件应用。通过使用应用程序二进制文件,我们使用字符串搜索从代码中提取了语义特征。提取的特性包括权限、APIs和意图。关于特征提取的进一步信息,读者可以参考我们之前的工作(Roy et al. 2015)。
为了识别我们的数据集的参考数据标签,我们使用了VirusTotal,它利用多个反病毒方案对应用程序进行检查。使用VirusTotal和多个专家投票系统的结果,我们将应用程序至少为10 A/V的,将它标记为高信心恶意软件。为0 A/V时,认为该应用程序为高信心良性软件,而54 A/V时标记为恶意软件。为了有一个干净的实验数据集,我们排除应用范围在1到9的数据集。
2.2 标签正则化逻辑回归
我们利用标签正则化逻辑回归只从正数据和未标记数据进行学习。LR-LR算法通过使用一个专家提供的因子,代表无标注数据集中正应用程序的比例。除了与标准逻辑回归算法一致的优化问题中的术语,LR-LR优化问题还包括一个标签正则化术语,这个需要无标号数据的后验类概率,符合专家估计的真实分布。具体来说,这两个分布之间的Kullback-Leibler(KL)分歧,,需要最小化。我们实现了这个算法,作为实施L-BFGS优化的Spark MLLib的一个变体。
这个实现可以在Github(https://github.com/jdeloach/mlbSparkExperiments)上免费获取。
3 试验
3.1 嘈杂参考标准数据
考虑到数据集本质上是嘈杂的,要么由于恶意软件应用溜进了Google Play商店,或由于VirusTotal产生的假阴性,我们假设良性的应用数据集包含一部分恶意软件应用程序。通过比较三个有监督算法朴素贝叶斯,逻辑回归和支持向量机(SVM),我们试图找出一类半监督方法(LR-LR)如何处理在前一节中列出噪音良性标签的应用。我们注入合成噪声(恶意软件应用程序添加到大概清洁的良性集中)在存在不同程度噪音情况下研究比较不同的算法。随着噪声的增加,我们增加专家提供的值,在无标签数据集以增加恶意软件。我们在无噪声的测试数据上使用5倍交叉验证测试,并报告5倍情况下的平均auPRC(正确率和召回曲线下的面积)值。
图1:不同噪声水平情况下的性能
图1显示了在低水平的噪音(即准确的标号)情况下,逻辑回归略优于LR-LR。直观地说,这是有道理的,因为逻辑回归列车在正和负数据上训练,而LR-LR只使用正和无标注数据(连同专家提供的值)上训练。随着噪声的增加,我们却看到LR-LR能够改进其性能,而其他算法的性能则递减。LR-LR处理噪音的能力,可以用这一事实来解释,即贴错标签的数据被当作无标记数据,且LR-LR通过占据了噪音。此外,我们应该注意到,当我们添加更多的噪音,我们隐式地增加无标号数据集的大小,这很有可能是因为LR-LR方法随着噪声的增加而提高性能。
3.2 最小化所需的参考标准数据
我们的第二个实验测试当参考标准数据集有限时哪种方法效果最好。我们保持恒定的负数据中的噪声水平,在不同数量的标注正数据情况下实验不同算法。
图2:Performance when varying labeled positive data
如图2所示,可以看出LR-LR在低标注正数据情况下相对更有效。这是可以预料到的,因为LR-LR是唯一能够从无标注数据学习并增长知识的,即便是有限的开始数据集。也正如所料,当正标签数据量高,LR-LR和逻辑回归具有非常相似的性能,因为LR-LR包含无标注数据提供的好处逐渐减少。
5 结论
在这个工作中,我们首次在Android恶意软件检测领域使用了一类半监督学习。我们仔细讨论了在Android的空间,当前参考标准数据标注方法的弱点,并提出一类半监督学习方法可以弥补这些弱点。我们的实验结果表明,LR-LR方法在出现嘈杂良性标签时可以很好的工作,这使得我们相信这是一个前景看好的进一步研究Android安全的领域。
论文下载链接:
https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14760/14156