49、利用诱饵进程重定向恶意软件的目标选择

利用诱饵进程重定向恶意软件的目标选择

在当今数字化时代,恶意软件的威胁日益严峻,如何有效地防御恶意软件成为了重要的研究课题。本文将介绍一种利用诱饵进程重定向恶意软件目标选择的方法,该方法通过深度学习技术学习进程的性能指纹,从而使诱饵进程在性能上与真实进程相似,误导恶意软件的攻击目标。

1. 数据收集与标签构建

在测试过程中,我们收集了各种进程的性能计数器数据。例如,图3的热力图显示操作码为1,对应在OPC客户端上查看OPC服务器属性。在测试中发现,一些进程的I/O性能参数(包括从二级存储的I/O读写操作)始终为0,因为这些进程在测试期间未消耗任何I/O资源。这些计数器虽包含在标签构建中,但由于值始终为0,不影响分类。收集的标签测量数据用于训练我们的神经网络。

OPC客户端的操作类别如下表所示:
| OPC服务器操作 | 组级操作 | 标签相关操作 |
| — | — | — |
| 查看OPC服务器属性 | 查看组属性 | 列出OPC对象的标签 |
| 添加警报 | 更改组属性 | 向OPC对象添加标签 |
| - | 创建新组 | 将标签包含在组中 |
| - | 删除现有组 | 从组中移除标签 |
| - | - | 读取标签 |
| - | - | 写入标签 |

2. 性能指纹的深度学习
  • 训练集与标签 :运行OPCExplorer进程执行表2中的操作时,收集机器上所有其他进程的性能计数器数据,以此构建热力图。同时收集OPCExplorer进程的性能计数器数据,为每个热力图明确建立一个类标签。所有带标签的热力图用于训练神经网络。
  • 测试集 :重复上述步骤,但不将带标签的热力图用于神经网络的实际训练,而是在神经网络完全训练后用于测试。
  • 算法方法 :卷积神经网络包含多个神经元层,至少有一个输入层、一个输出层和若干隐藏层,如修正线性单元(ReLU)层、池化层、全连接层和softmax层。隐藏层用于调整和缩放热力图图像给定特征的激活。

神经网络的训练和测试算法如下:

1 Function Learn-Performance-Fingerprint (G, V );
Input
: Training set of heatmaps G, testing set of heatmaps V .
Output: Convolutional neural network Π, heatmap recognition accuracy δ.
2 δ ←0
3 for ∀heatmap ν ∈G do
4
Read ν into array α in memory;
5
Add Label(ν) to α;
6 end
7 while δ < 90 do
8
Empty Π if any layers present;
9
Define the input layer of Π;
10
Add count1 ReLU layers to Π;
11
Add count2 pooling layers to Π;
12
Add count3 batch normalization layers to Π;
13
Add a fully connected layer to Π;
14
Add a softmax layer to Π;
15
Add a classification layer to Π;
16
Select Π’s training options;
17
trainNetwork(Π);
18
for ∀heatmap ϵ ∈V do
19
δ ←Π(ϵ)
20
end
21
Increase count1, count2, and count3;
22 end

训练完成后,运行神经网络对测试集的热力图进行分类,比较已知类标签和神经网络生成的类标签,计算热力图识别准确率。若准确率低,则增加神经网络的层数并重新训练,直至达到满意的准确率。

3. 可用的查询机制

训练好的高精度神经网络可由数据结构插桩代码进行查询。查询包含一个代表机器上所有进程(不包括诱饵OPCExplorer进程)资源利用率的热力图,神经网络的响应包含一个类标签,数据结构插桩代码可将其转换为诱饵OPCExplorer进程的性能数据,并以性能计数器的形式报告给恶意软件。

4. 实验测试与验证
  • 实现 :编写Matlab代码实现深度学习方法,生成热力图。扩展PowerShell脚本收集机器上所有进程的实时性能数据,存储在文件中,由Matlab代码读取生成热力图。热力图的标签手动完成,这是一项繁琐的工作,限制了用于训练神经网络的热力图数量,进而影响了神经网络的准确性。
  • 对抗实时恶意软件测试 :大量参与Dragonfly恶意软件活动的OPC恶意软件样本已公开用于学术研究。这些样本有多个版本,但在攻击OPC服务器之前,似乎都不分析受感染机器的系统或网络活动。BlackEnergy风格的恶意软件攻击在进行击键拦截或建立VPN连接之前,也忽略系统或网络活动。
  • 扩展/修订蜜罐实验 :由于使用性能计数器检测诱饵是新方法,目前没有恶意软件使用该方法,因此我们回到蜜罐实验。在配备诱饵I/O的生产机器上重复实验,红队假设了解系统活动可能由诱饵进程引起,且诱饵进程的性能数据由基于热力图识别的深度学习算法调节。

我们将红队置于最佳攻击条件下评估诱饵进程的性能动态。在红队角色中,我们有一个受保护机器的副本,唯一区别是OPCExplorer进程是真实的。我们测量了所有进程的性能参数,分为G1、G2和G3三组条件。

G1条件下,大多数其他进程处于低或中度使用状态,对真实OPCExplorer进程的性能影响较小;G2和G3条件下,其他进程执行平均或更高负载任务,对真实OPCExplorer进程的性能影响较大。

我们的卷积神经网络经过训练,能够应对其他进程对真实OPCExplorer进程性能的任意影响,在各种情况下为其诱饵副本再现一致的性能参数。

从测试或探测的角度来看,G1条件对威胁行为者最有利,因为其在生产客户端机器上更常见。但即使G2和G3条件出现,也很难保持稳定以匹配副本上的特定资源利用模式。威胁行为者在调整进程资源利用率方面存在限制,如无法非侵入性地降低从合法用户获取输入的进程的资源利用率,也难以与具有图形用户界面(GUI)的进程进行交互。

我们通过在受感染机器上创建可用的G1、G2和G3动态来促进红队评估。在测试中,我们比较预期的OPCExplorer进程性能与受感染机器上收集的性能,如果两者差异显著,则判断为诱饵。

实验结果表明,进程的性能指纹不是固定的,真实进程的性能数据可能会有轻微变化。我们的工作能够将诱饵进程的性能数据保持在其真实对应进程性能指纹的正常变化范围内。虽然神经网络产生了一些错误的类标签,但相对较少,我们认为这是由于训练集中热力图数量较少导致的。在实际测量性能数据时,我们还遇到了一些挑战,如OPC客户端软件的图形显示会影响性能参数。此外,红队创建的资源负载干扰进程并未使神经网络的类标签发生明显变化。

综上所述,我们的方法通过深度学习技术使诱饵进程在性能上与真实进程相似,能够有效地重定向恶意软件的目标选择,为防御恶意软件攻击提供了一种新的思路和方法。但仍存在一些问题需要进一步研究,如增加训练集的大小以提高准确率,以及解决实际应用中的一些挑战。

利用诱饵进程重定向恶意软件的目标选择

5. 相关工作对比

在资源利用预测模型方面,有不少相关研究。Matsunaga等人通过监督机器学习训练数据点来预测执行时间,但仅针对固定输入数据有详细估计,而我们的工作考虑任意输入数据。Miu等人从输入数据中提取特征,用C4.5决策树构建回归模型以提高进程执行时间预测的准确性,其方法依赖历史数据学习。Li等人在分布式流数据处理中采用贪心算法进行循环调度预测。Amiri等人对云环境中的性能和工作负载预测模型进行了综述。

Pietri等人基于云环境中并行工作流的结构来预测执行时间,将任务按数据依赖关系分层。还有一些相关工作聚焦于为移动设备构建机器学习框架,通过程序切片和稀疏回归从输入数据中提取与计算资源消耗相关的特征。与这些工作不同,我们的方法依赖负载,能够在其他真实进程性能参数不断变化的情况下,预测诱饵进程的资源利用参数。

另外,有一些相关工作使用隐身技术隐藏计算机资源。例如,Hook技术阻止请求访问资源使用情况,Direct Kernel Object操作(DKOM)则操作操作系统内核中的特定数据。Butler等人描述了一种非Hook方法,用于在Microsoft Windows的EPROCESS块中隐藏和取消链接进程。Tsai等人识别了可针对所有资源的DKOM。

6. 总结与展望

实时性能计数器能让我们深入了解进程的性能。我们的蜜罐实验表明,进程性能分析可以发现高交互蜜罐和诱饵真实进程中的诸多不一致之处,如果不加以处理,还可能对诱饵I/O构成威胁。

我们提出了一种在操作系统内核中虚拟投影诱饵进程存在的方法,无需消耗资源创建实际进程。同时,设计了一个卷积神经网络来学习进程的性能指纹,以支持其诱饵副本。通过实验验证,我们量化了诱饵进程与有效攻击目标保持逼真相似性的能力,这可能会改变恶意软件的目标选择。

不过,我们的工作仍存在一些需要解决的问题:
- 深度学习的保护 :深度学习部分需要隐藏和保护,防止被恶意软件操纵。可以选择在虚拟机(VM)上运行深度学习,由虚拟机管理程序管理并与主机隔离,但需要仔细评估VM解决方案的开销。也可以在与主机物理隔离的硬件边板上运行,虽然成本可能控制在50美元以下,但会增加额外成本。
- 蜜罐的网络活动问题 :蜜罐缺乏网络活动可能被远程利用,威胁行为者在受感染的生产机器上可能只选择与该机器有通信的机器作为下一个攻击目标,从而避免攻击蜜罐。

由于篇幅限制,本文未详细介绍这些内容,但它们是未来研究中需要考虑的重要方面。随着恶意软件技术的不断发展,我们需要不断优化和改进这种利用诱饵进程重定向恶意软件目标选择的方法,以提高系统的安全性。

下面用mermaid流程图展示整个方法的关键流程:

graph LR
    A[数据收集] --> B[构建标签与热力图]
    B --> C[训练神经网络]
    C --> D[测试神经网络]
    D --> E{准确率是否满意}
    E -- 否 --> C
    E -- 是 --> F[可用查询机制]
    F --> G[实验测试与验证]
    G --> H[总结与优化]

整个方法的步骤总结如下:
1. 收集机器上所有进程的性能计数器数据。
2. 根据操作类别为数据构建标签,生成热力图。
3. 使用带标签的热力图训练卷积神经网络。
4. 用测试集测试神经网络,计算准确率,若不满意则增加层数重新训练。
5. 训练好的神经网络可供数据结构插桩代码查询,为诱饵进程生成性能数据。
6. 通过实验测试验证方法的有效性,包括对抗实时恶意软件和蜜罐实验。
7. 总结实验结果,针对存在的问题进行优化。

通过以上方法和步骤,我们有望更好地利用诱饵进程来重定向恶意软件的目标选择,增强系统的安全性和抗攻击能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值