You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis
You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis abstract。
解决的问题
对于传统检测工具而言,很难检测现在的具有隐蔽性的恶意软件。本文针对此问题提出一种方法来检测该类软件。
Architecture
思路及实现
为了检测隐蔽的恶意软件,决定 PROVDETECTOR 有以下特点:
- 仅学习正常数据的异常检测
- 使用因果路径,系统事件序列
- 仅学习溯源图上一部分因果路径
溯源图构建
略
表示提取 Representation Extraction
PROVDETECTOR 采用因果路径作为输入特征,具体因果路径示例如下:
直接从溯源图中提取出全部路径将会导致依赖爆炸问题,因此采用基于稀有度的路径选择算法进行路径选取,选 tok K。
嵌入 Embedding
即使获取了 top K 路径之后还存在着各种问题:
- 因果路径长度不同
- 节点和边的标签是非结构化数据,例如文件名
Intuition:将因果路径作为一个句子。
使用 doc2vec 的 PV-DM 模型来学习路径的嵌入,这个方法有几个优点:
- 自监督,可以仅学习好的数据
- 能够保持相似性,原路径相似映射到向量空间中他们也是距离更近的
- 能够考虑到词序
异常检测
对溯源数据进行观察得到以下观点:
- 计算机程序和系统是复杂和动态的,很难用数学概率分布模型对程序行为进行建模
- 相似的进程可能有着不同的工作流,在嵌入空间中很难用一条曲线来区分正常和异常的数据
基于溯源数据的特点,PROVDETECTOR 使用 局部异常因子 Local Outlier Factor 作为检测模型,该方法是一种基于密度的方法。如果一个点的局部密度低于其邻居,则该点被视为异常值。
最终决策(Final Decision Making):使用基于阈值的方法来做最终决定,这种方法可以在路径选择过程中提前停止,减少检测开销。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.