利用硬件性能计数器(HPCs)中的数据检测恶意软件

作者:{Persist}@ArkTeam

原文作者:Nisarg Patel, Avesta Sasan, Houman Homayoun

原文题目:Analyzing Hardware Based Malware Detectors

原文来源:DAC 2017

在硬件级别检测恶意软件正在成为应对安全威胁增加的有效解决方案。本文是第一次利用各种强大的机器学习方法和HPCs数据来分类良性和恶意软件应用程序。

表格1 Perf 可以获取到的44个HPC事件

通过在两个隔离的环境中分别执行恶意软件和正常程序,分支指令对应的HPC值会产生一个显著的区别,如图所示:

图1 分支指令对应不同的HPC值

这表示,恶意软件和正常程序有着明显不同的分支指令行为。(也适用于其它HPC事件)

利用perf工具收集数据,从virustotal.com收集恶意软件,在Linux Container中运行恶意软件,运行结束后销毁,防止不同的软件互相污染,共有44个HPC事件,分为6组,每组8个事件。也就是说,数据收集时应该运行程序6次。收集到的数据整理成以下格式:

图2 数据格式

实验流程图如下所示:

图3 离线训练检测程序

由于44个事件无论是提取过程还是训练过程都会造成巨大的性能开销,为了减小开销,本文对44个HPC特征进行了特征削减,同为人工分析的方法剔除了12个HPC事件,对于剩下了32个事件,本文又计算了特征与类别之间的皮尔森相关性系数,并挑选了前八个特征进行实验。前八个事件特征如下:


实验结果如下图所示:

图4 不同机器学习方法的准确性比较

本文后续为了降低开销,在硬件平台上实现了这个分类器,可以更快地检测出恶意软件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注