云自动伸缩系统中的在线恶意软件检测与诱饵进程策略
在当今数字化时代,云计算和恶意软件的对抗愈发激烈。云自动伸缩系统能够根据负载动态调整资源,而恶意软件则不断寻找系统的漏洞进行攻击。为了保障系统安全,我们需要有效的恶意软件检测方法和应对策略。
云自动伸缩系统中的恶意软件检测方法
在云自动伸缩场景下,有两种基于卷积神经网络(CNN)的恶意软件检测方法:多虚拟机单样本(MVSS)和多虚拟机配对样本(MVPS)。
-
多虚拟机单样本(MVSS)
- 原理 :在自动伸缩场景中针对多个虚拟机。收集多个同时运行的虚拟机的样本 (X_{vmi}^{tk}),其中 (X) 是虚拟机 (vmi) 在时间 (tk) 的样本。将多次运行收集的样本输入到 CNN 优化器进行学习,然后使用训练好的 CNN 模型进行预测。
-
操作步骤
:
- 收集多个虚拟机在同一时间的样本数据。
- 将样本数据输入 CNN 优化器进行训练。
- 使用训练好的模型进行恶意软件的预测。
-
多虚拟机配对样本(MVPS)
- 原理 :受在线问答论坛中重复问题检测的启发。假设同一组的虚拟机行为相似,将来自不同虚拟机在同一时间的两个样本 (X_{vmi}^{tk}) 和 (X_{vmj}^{tk}) 配对作为输入到 CNN,判断它们是否相似。如果两个样本都是良性的,则认为它们相似;如果其中一个是恶意的,则认为不相似。
-
操作步骤
:
- 选择同一时间来自不同虚拟机的样本。
- 将样本进行配对。
- 把配对后的样本输入 CNN 进行训练和预测。
- 注意事项 :只能配对同一时间的样本,因为不同时间的样本值可能因虚拟机行为变化而不同,配对不同时间的样本可能会误导分类器。为了避免时间消耗和类别不平衡问题,将一个恶意样本与特定时间其他机器的所有良性样本配对,每个良性样本依次与下一个虚拟机的样本配对。
CNN 模型架构
为了实现上述检测方法,我们选择了浅 CNN 模型 LeNet - 5,因为它在处理能力要求上较为实际,且在配对方法中能取得接近最优的结果。
-
模型结构
- 输入层:接收标准化的 2D 矩阵,对于 MVSS 是 120 × 45,对于 MVPS 是 120 × 90,代表最多 120 个进程和 45 个特征。空进程的行用零填充。
- 卷积层 1:32 个 5 × 5 大小的卷积核,零填充,输出 32 个 120 × 45 的特征图。
- 最大池化层 1:2 × 2 大小,将每个维度缩小 2 倍,输出 32 个 60 × 23(MVPS 为 60 × 45)的特征图。
- 卷积层 2:64 个 60 × 23 大小的卷积核,后面接最大池化层,输出 64 个 30 × 12(MVPS 为 30 × 23)的特征图。
- 全连接层 1 和 2:大小分别为 1024 和 512。
- 全连接层 3:大小为 2,代表预测类别(恶意或良性)。
-
激活函数和优化器
- 除最后一个全连接层外,每个卷积层和全连接层后使用 ReLU 激活函数。
- 使用 Adam 优化器进行训练,学习率设置为 1e - 5,通过最小化损失函数(平均交叉熵)来工作。使用随机网格搜索来调整 CNN 参数,如小批量大小。
实验设置与结果
为了验证上述方法的有效性,我们进行了一系列实验。
-
实验环境
- 在 Openstack 测试平台上搭建 3 层 Web 架构,在 Web 和应用服务器层启用自动伸缩。伸缩策略基于每层虚拟机的平均 CPU 利用率,当平均 CPU 利用率高于 70% 时进行扩展,低于 30% 时进行收缩。根据流量负载,每层生成的服务器数量在 2 到 10 之间。流量基于 ON/OFF 帕累托分布生成,参数根据 NS23 工具默认设置。
-
数据收集
- 每个实验持续 1 小时,前 30 分钟为清洁阶段,后 30 分钟为恶意阶段,注入恶意软件。使用 113 种不同的恶意软件进行实验,恶意软件二进制文件从 VirusTotal 随机获取。禁用所有防火墙并提供互联网连接,以确保恶意软件能正常运行。每 10 秒收集一次样本,一次实验中一个虚拟机收集 360 个样本。
-
评估指标
- 精确率(Precision) :正确的恶意软件预测数量。
- 召回率(Recall) :正确的恶意软件预测数量占真正恶意样本数量的比例。
- 准确率(Accuracy) :正确分类的度量。
- F 分数(Fscore) :精确率和召回率的调和平均值。
-
计算公式如下:
- (Precision = \frac{TP}{TP + FP})
- (Recall = \frac{TP}{TP + FN})
- (Accuracy = \frac{TP + TN}{TP + TN + FP + FN})
-
(Fscore = 2 \times \frac{Precision \times Recall}{Precision + Recall})
其中,真正例(TP)指发生的恶意活动被正确预测;假正例(FP)指未发生的恶意活动被错误预测;真反例(TN)指未发生的恶意活动被正确预测;假反例(FN)指发生的恶意活动被错误预测。
-
实验结果
- MVSS 结果 :优化后的分类器在测试数据集上的准确率约为 90%,精确率、召回率和 F 分数约为 85%。与类似的简单 2D CNN 方法相比,结果有所改善,原因一是数据量增加(113 次恶意软件实验对比 25 次),二是使用了多个虚拟机的数据。但仍需过滤部分数据以平衡数据集。
- MVPS 结果 :与 MVSS 分类器相比,四个评估指标都有显著提高。优化后的 MVPS 分类器在验证阶段的最高准确率约为 98.2%,在测试数据集上的准确率约为 96.9%,F 分数、召回率和精确率在测试数据集上都跃升至约 91%。主要原因是 MVPS 方法考虑了多个同时运行的虚拟机之间的相关性,在自动伸缩场景中非常有益。
- 在两种方法中,小批量大小为 64 和学习率为 1e - 5 时取得了最佳结果,CNN 模型仅训练 20 个周期。由于使用的是浅 CNN 且训练周期较少,未使用丢弃层来避免过拟合。
诱饵进程策略
除了上述检测方法,我们还探讨了诱饵进程策略来应对高级恶意软件的攻击。
-
背景
- 蜜罐在检测恶意软件方面具有较高的准确性,因为它们本身没有活动,任何系统或网络活动都可被明确检测为恶意。然而,高级恶意软件会探测目标的不一致性以识别诱饵。
-
诱饵进程的设计与实现
- 原理 :通过操作系统(OS)技术在 OS 内核中对与性能计数器相关的数据结构进行安全干预,投影诱饵进程的存在。利用深度学习设计和训练卷积神经网络,学习真实进程的性能特征,以支持诱饵进程对抗恶意软件的主动探测。
-
操作步骤
:
- 在 OS 内核中对与性能计数器相关的数据结构进行干预,投影诱饵进程。
- 设计并训练 CNN 学习真实进程的性能特征。
- 使用学习到的特征支持诱饵进程。
-
与其他方法的对比
- 与 Juniper Networks 的 HoneyProcs 方法相比,HoneyProcs 创建一个试图模仿合法进程的真实进程,达到稳定状态后停止执行,使用固定状态作为基线检测代码注入。但它容易受到我们在蜜罐实验中使用的诱饵检测技术的攻击。而实时性能计数器显示,HoneyProcs 中诱饵进程的资源利用率会冻结为常量或 0 值,如工作集大小保持不变或减少,页面错误率迅速降至 0,这在虚拟内存的按需分页机制下是不正常的。
综上所述,云自动伸缩系统中的恶意软件检测需要综合运用多种方法。MVSS 和 MVPS 方法通过 CNN 有效地检测恶意软件,而诱饵进程策略则为应对高级恶意软件提供了新的思路。未来,我们可以进一步探索不同的用例场景,如 Hadoop 和容器,分析不同 CNN 模型架构的有效性,评估输入矩阵中进程和特征排序的影响,以及开发处理多个虚拟机同时被攻击的技术。
云自动伸缩系统中的在线恶意软件检测与诱饵进程策略
技术优势与局限性分析
-
MVSS 和 MVPS 方法优势
- 数据利用充分 :MVSS 方法通过增加数据量和使用多虚拟机数据,相比简单 2D CNN 方法有了明显改进。MVPS 方法则进一步考虑了多虚拟机之间的相关性,使得检测性能大幅提升。
- 模型实用性 :选择浅 CNN 模型 LeNet - 5,在保证检测效果的同时,降低了对处理能力的要求,更符合实际应用场景。
-
MVSS 和 MVPS 方法局限性
- 数据平衡问题 :MVSS 方法需要过滤部分数据来平衡数据集,这可能会丢失一些有用信息。
- 时间配对限制 :MVPS 方法要求严格配对同一时间的样本,增加了操作的复杂性,且不同时间样本配对可能导致误判。
-
诱饵进程策略优势
- 深度防御 :通过在 OS 内核层面投影诱饵进程,并利用深度学习支持其性能特征,为系统提供了更深入的防御机制,能够应对高级恶意软件的探测。
- 针对性强 :与 HoneyProcs 相比,诱饵进程策略考虑了实时性能计数器的动态变化,避免了资源利用率异常的问题,更具抗检测能力。
-
诱饵进程策略局限性
- 实现难度大 :需要对 OS 内核进行干预,对技术人员的要求较高,且可能存在一定的系统稳定性风险。
- 依赖深度学习 :深度学习模型的训练和优化需要大量的数据和计算资源,成本较高。
实际应用建议
-
检测方法选择
- 如果数据资源有限,且对处理能力要求较高,可以优先考虑 MVSS 方法。它在增加数据量和使用多虚拟机数据的情况下,能够取得较好的检测效果。
- 如果系统存在多个虚拟机,且需要更高的检测精度,MVPS 方法是更好的选择。它通过考虑虚拟机之间的相关性,能够显著提高检测性能。
-
诱饵进程策略应用
- 在面对高级恶意软件攻击时,可以结合诱饵进程策略。在 OS 内核中投影诱饵进程,并利用深度学习学习真实进程的性能特征,增强系统的抗探测能力。
- 可以将诱饵进程策略与 MVSS 或 MVPS 方法结合使用,形成多层次的防御体系,提高系统的整体安全性。
-
数据处理与模型优化
- 在数据收集过程中,要注意数据的平衡和质量,避免因数据不平衡导致的检测偏差。
- 对于 CNN 模型,要合理调整参数,如小批量大小和学习率,通过随机网格搜索等方法进行优化,以提高模型的性能。
未来发展趋势
-
多样化应用场景
- 随着云计算的发展,未来会有更多的应用场景需要进行恶意软件检测,如 Hadoop 和容器等。需要进一步探索这些场景下的检测方法和策略。
-
模型架构创新
- 不断研究和开发新的 CNN 模型架构,以提高检测性能和效率。同时,结合其他机器学习和深度学习技术,如循环神经网络(RNN)、长短时记忆网络(LSTM)等,实现更智能的恶意软件检测。
-
多技术融合
- 将恶意软件检测技术与其他安全技术,如入侵检测系统(IDS)、防火墙等进行融合,形成更加完善的安全防护体系。
-
应对复杂攻击
- 针对多个虚拟机同时被攻击的复杂情况,开发有效的处理技术,如使用样本元组(3 - 元组、4 - 元组等)进行检测和分析。
总结
云自动伸缩系统中的恶意软件检测是一个复杂而重要的问题。MVSS 和 MVPS 方法通过 CNN 技术,有效地利用多虚拟机数据进行恶意软件检测,取得了较好的效果。诱饵进程策略则从另一个角度出发,通过在 OS 内核层面投影诱饵进程,并利用深度学习支持其性能特征,为系统提供了更深入的防御机制。在实际应用中,我们应根据具体情况选择合适的检测方法和策略,并不断优化和改进,以应对不断变化的恶意软件威胁。未来,随着技术的发展,我们有望看到更多创新的检测方法和策略出现,为云计算环境的安全保驾护航。
以下是一个简单的 mermaid 流程图,展示了整个恶意软件检测和防御的流程:
graph LR
A[数据收集] --> B[MVSS 或 MVPS 处理]
B --> C[CNN 模型训练]
C --> D[恶意软件检测]
E[诱饵进程创建] --> F[深度学习学习特征]
F --> G[支持诱饵进程]
D --> H{检测结果}
H -- 恶意 --> I[触发防御机制]
H -- 良性 --> J[继续监测]
I --> K[结合诱饵进程防御]
通过这个流程图,我们可以清晰地看到整个恶意软件检测和防御的过程,包括数据收集、处理、模型训练、检测以及防御机制的触发等环节。同时,诱饵进程策略作为一种补充防御手段,与检测过程相互配合,共同保障系统的安全。
超级会员免费看

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



