CruParamer: Learning on Parameter-Augmented API Sequences for Malware Detection

本文提出了CruParamer,一个基于深度神经网络DNN的方法,学习带参数的API,基于Windows平台。首先使用基于规则和聚类的分类来找到一个参数可能导致恶意行为的敏感性,然后给带有运行时参数的API打标签,标签表示不同程度的敏感性。然后,使用连接本地迁入和打标签后的API敏感嵌入编码API编码,用开刻画连续打标签API和对应的敏感语法的关联性。最后,使用API迁入序列训练DNN,得到一个二分类分类器检测恶意软件。除了展示设计之外,还实现并评估了CruParamer,发现当使用API作为输入时,其超出了当前的模型,证明了有效性。除此之外还评估了mimicry和对抗攻击对模型的影响,验证了鲁棒性。

Motivation

大多数恶意软件有相似行为,API序列可以代表一个恶意软件的行为。现有的方法包括基于规则、基于签名。有些方法想挖掘API调用的某些模式,但是有很多假阴性。近期研究表明:结合API调用和对应参数的DNN方法,性能超过其他DNN方法。但是使用具体参数会限制检测未知恶意软件的能力。

Methodology

本文展示了CruParamer,Windows平台上基于DNN的恶意软件检测方法。主要是使用运行时参数代表安全语义,帮助精确检测恶意软件

  • 对API打标签,帮助评估一个API导致恶意行为的敏感度:利用一系列经验和统计规则决定参数在高置信度下是良性还是恶意的。然后利用聚类来评估其他导致恶意行为的敏感性。利用这种方法,全部参数被分成了几个类目,每个类目带有一定的敏感度。最后根据参数的类目给API打标签,代表API到恶意行为的敏感度。
  • API嵌入,将敏感度编码到嵌入中:基于敏感度的API嵌入。首先将API编码为嵌入,连接标签过API的本地嵌入和敏感嵌入。前者刻画了连续打标签API之间的关系,后者建模了对应的安全语义。基于敏感度的嵌入可以帮助DNN精确识别安全语义并学习。

Result

测试集上达到了98.52和92.29的精确度,比Text-CNN和BiLSTM高出2.98%和8.46%。并且可以对抗mimicry和对抗攻击

贡献

  • 利用运行时参数可以帮助恶意软件检测的特点,提出了基于DNN的恶意软件检测方法CruParamer,利用参数的安全语义
  • 提出了一种参数辅助API标签方法,可以对参数的敏感度打标签。将参数分为几个类目,每个类目有不同的安全语义
  • 基于敏感度的编码方法,生成打标签后的API嵌入。好处是可以将安全语义输入到DNN中。否则安全语义很难从API中学到,即使学到了,也会在训练中消失
  • 实现了CruParamer,并和两种DNN模型比较,在数据集上评估,结果展示了CruParamer超出了其他DNN模型