基于浅层卷积神经网络的云自动伸缩系统在线恶意软件检测
1. 引言
云计算的特性催生了新型攻击和恶意软件。由于大量虚拟机(VM)配置相似,云已成为恶意软件开发者的主要目标。自动配置和自动伸缩工具的广泛使用,使得恶意软件一旦感染一台VM,就可能轻易感染其他配置相同的VM。
传统的恶意软件分析方法,如静态或动态分析,在云环境中往往失效,因为攻击者可以绕过初始扫描或在已扫描的良性应用中注入恶意软件。因此,在线恶意软件检测变得至关重要。
目前,在线恶意软件检测领域的相关工作较少,且大多采用机器学习方法。这些方法主要通过选择系统特征构建模型进行检测,但云特定方法与标准方法的区别仅在于特征选择,且多聚焦于虚拟机上的恶意软件检测。
本文探索了利用云特定特性(特别是自动伸缩)的恶意软件检测方法。在自动伸缩场景中,多个VM通常是副本,其行为应相互对应。若有VM被注入恶意软件,其行为可能会偏离正常。本文重点关注自动伸缩环境中恰好有一台VM被入侵时的恶意软件检测。
2. 相关工作
- 基于系统调用的方法 :Dawson等人专注于rootkits,通过管理程序拦截系统调用作为特征,基于非线性相空间算法检测异常行为。
- 基于熵的异常测试 :Wang引入了基于熵的异常测试(EbAT),对多个系统级指标进行在线分析以检测异常,但评估未展示实际的云场景。
- 基于管理程序特征提取的方法 :Azmandian等人提出一种异常检测方法,直接从管理程序提取各种性能指标,使用无监督机器学习技术。
- 基于VM分类的异常检测 :Pannu等人提出自适应异常检测系统,用于检测云基础设施中的各种故障,对恶意软件检测有一定参考价值,但存在数据不平衡问题。
- 基于单类支持向量机的方法 :Watson等人使用单类支持向量机(SVM)检测云基础设施中的恶意行为,收集系统和网络级特征,但使用的是高活跃恶意软件。
- 早期工作 :之前的工作使用黑盒VM级性能和资源利用率指标检测恶意软件,对高活跃恶意软件有效,但对低轮廓恶意软件效果不佳。随后引入的基于CNN的在线恶意软件检测方法,能以约90%的准确率检测低轮廓恶意软件,但针对的是单个VM。
3. 关键直觉
3.1 单虚拟机单样本(SVSS)
在基于分类的进程级在线恶意软件检测方法中,机器学习模型通过良性和恶意进程样本进行训练,目标是对新输入样本进行分类。数据收集通常是先运行VM一段时间(良性阶段),然后注入恶意软件(恶意阶段)并记录数据,这称为一次运行。数据集包含多次运行,分为训练集和测试集。对于单次运行,处理的是单个VM的单个样本,这种方法称为单虚拟机单样本(SVSS)。
3.2 多虚拟机单样本(MVSS)
SVSS可用于自动伸缩场景,但输入样本会丢失一些信息。因为多个VM同时运行与单个VM多次运行不同,若VM之间存在相互影响,SVSS会丢失这些信息。因此,引入多虚拟机单样本(MVSS)方法,通过构建自动伸缩测试平台,从多个同时运行的VM中学习。
3.3 多虚拟机配对样本(MVPS)
MVSS在进程级性能指标方面存在不足,进程具有动态性,会出现突然的峰值。这些峰值可能是由突发事件或流量激增引起的,不一定表示存在恶意软件。例如,在自动伸缩场景中,多个VM的同一进程可能同时出现峰值,这可能是正常的行为变化;而只有一个VM的进程出现峰值,则可能表示该VM被感染。MVSS和SVSS由于从单个样本学习,会丢失VM之间的相关性。因此,引入多虚拟机配对样本(MVPS)方法,通过配对同一时间的样本,利用多个VM之间的相关性进行检测。
性能指标
| 指标类别 | 描述 |
|---|---|
| CPU信息 | CPU使用率百分比、用户空间和内核空间的CPU时间、子进程在用户空间和系统空间的CPU时间 |
| 上下文切换 | 自愿和非自愿上下文切换的数量 |
| IO计数器 | 读取请求数、写入请求数、读取字节数、写入字节数、读取字符数、写入字符数 |
| 内存信息 | 交换到磁盘的内存量、比例集大小、常驻集大小、唯一集大小、虚拟内存大小、脏页数量、物理内存量、文本常驻集、共享库使用的内存 |
| 网络信息 | 接收字节数、发送字节数 |
| 其他 | 进程状态、使用的线程数、打开的文件描述符数 |
4. 方法论
4.1 CNN输入
CNN是一种广泛用于图像识别的深度学习方法,以二维图像作为输入。在本文中,第一维表示系统中的进程,第二维表示为每个进程收集的特征。对于VM vm在特定时间t的样本X,记录每个进程的n个特征(性能指标),可表示为:
[
X_{vmt} =
\begin{bmatrix}
f_1 & f_2 & \cdots & f_n \
p_1 & \cdots & \cdots & \cdots \
\cdots & \cdots & \cdots & \cdots \
p_m & \cdots & \cdots & \cdots \
\end{bmatrix}
]
4.2 唯一进程的定义
由于进程会频繁创建和终止,进程ID(PID)不能直接用于CNN输入。因此,定义唯一进程由进程名称(name)、执行进程的命令行(cmd)和二进制可执行文件的哈希值(如果适用)三个元素标识。唯一进程有助于平滑高活跃服务器中的进程数量,因为大多数恶意软件会创建新的非唯一进程。
4.3 实验对比
通过两个不同的实验(每个实验使用不同的恶意软件)对比标准进程总数和唯一进程数量。结果表明,在高活跃VM中,唯一进程数量更有助于揭示恶意软件的行为。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(收集数据):::process
B --> C{数据类型}:::decision
C -->|单VM| D(SVSS):::process
C -->|多VM| E{是否考虑相关性}:::decision
E -->|否| F(MVSS):::process
E -->|是| G(MVPS):::process
D --> H(训练模型):::process
F --> H
G --> H
H --> I(测试模型):::process
I --> J([结束]):::startend
综上所述,本文提出的基于2D CNN的在线恶意软件检测方法,通过引入多虚拟机配对样本(MVPS)方法,有效利用了自动伸缩场景中多个VM之间的相关性,提高了恶意软件检测的准确性。在后续部分,我们将详细介绍实验设置和结果分析。
5. 实验与结果
5.1 实验设置
为了验证所提出方法的有效性,进行了一系列实验。在自动伸缩场景中,在一个VM中注入恶意软件,收集进程级性能指标作为数据。实验使用的性能指标与前文表1中所示一致,包括CPU信息、上下文切换、IO计数器、内存信息、网络信息和其他相关指标。
实验数据分为训练集和测试集,训练集用于训练CNN模型,测试集用于评估模型的性能。为了模拟真实的云环境,实验进行了多次不同的运行,每次运行可能使用相同或不同的恶意软件。
5.2 实验结果
5.2.1 标准2D CNN方法(SVSS)
使用标准的2D CNN方法(即单虚拟机单样本,SVSS)进行实验。该方法对每个自动伸缩层训练一个模型,输入样本为单个VM的进程级性能指标。实验结果显示,标准2D CNN方法的检测准确率约为90%。这表明该方法在一定程度上能够有效地检测恶意软件,但仍有提升的空间。
5.2.2 样本配对方法(MVPS)
为了提高检测准确率,引入了样本配对方法(即多虚拟机配对样本,MVPS)。该方法通过配对同一时间多个VM的样本,考虑了多个VM之间的相关性。实验结果表明,样本配对方法显著提高了检测准确率,达到了约97%。这说明利用多个VM之间的相关性能够更准确地检测出恶意软件。
5.2.3 结果对比
| 方法 | 检测准确率 |
|---|---|
| 标准2D CNN方法(SVSS) | ≃90% |
| 样本配对方法(MVPS) | ≃97% |
从上述表格可以清晰地看出,样本配对方法在检测准确率上明显优于标准2D CNN方法。
5.3 实验结果分析
标准2D CNN方法(SVSS)在检测恶意软件时,由于只考虑单个VM的样本,忽略了多个VM之间的相关性,因此在某些情况下可能会出现误判。而样本配对方法(MVPS)通过考虑多个VM之间的相关性,能够更准确地识别出异常行为,从而提高了检测准确率。
在自动伸缩场景中,多个VM通常是副本,其行为应该相似。当一个VM被注入恶意软件时,其行为会偏离其他VM,样本配对方法能够捕捉到这种偏离,从而准确地检测出恶意软件。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始实验]):::startend --> B(注入恶意软件):::process
B --> C(收集数据):::process
C --> D{选择方法}:::decision
D -->|标准2D CNN方法(SVSS)| E(训练模型):::process
D -->|样本配对方法(MVPS)| F(配对样本):::process
F --> G(训练模型):::process
E --> H(测试模型):::process
G --> H
H --> I(记录准确率):::process
I --> J([结束实验]):::startend
6. 总结与结论
6.1 主要贡献
本文提出了一种基于2D CNN的云自动伸缩系统在线恶意软件检测方法,主要有以下两个方面的贡献:
-
引入2D CNN在线检测方法
:针对多个VM,利用系统进程级性能指标,引入了基于2D CNN的在线恶意软件检测方法。该方法以进程和特征构成的二维矩阵作为输入,为云环境中的恶意软件检测提供了一种新的思路。
-
改进2D CNN方法
:通过引入样本配对方法(MVPS),考虑了多个VM之间的相关性,显著提高了2D CNN方法的检测准确率。
6.2 方法优势
与传统的在线恶意软件检测方法相比,本文提出的方法充分利用了云的自动伸缩特性。在自动伸缩场景中,多个VM的行为具有相似性,通过考虑这种相关性,能够更准确地检测出恶意软件。同时,实验结果表明,样本配对方法(MVPS)在检测准确率上明显优于标准2D CNN方法(SVSS)。
6.3 未来展望
虽然本文提出的方法在实验中取得了较好的效果,但仍存在一些挑战和需要进一步研究的方向。例如,在面对复杂的攻击场景时,如何提高检测的鲁棒性;如何处理多个VM同时被注入恶意软件的情况等。未来的研究可以针对这些问题进行深入探讨,进一步完善云环境中的在线恶意软件检测方法。
综上所述,本文提出的基于2D CNN的在线恶意软件检测方法,通过引入样本配对方法,有效提高了云自动伸缩系统中恶意软件的检测准确率,为云安全领域提供了有价值的参考。
超级会员免费看

被折叠的 条评论
为什么被折叠?



