利用机器学习检测DLL劫持攻击

卡巴斯基专家开发了机器学习模型来检测DLL劫持攻击,该技术已集成到SIEM系统中。文章详细介绍了DLL劫持的工作原理、检测挑战以及ML模型如何通过分析库文件和进程元数据来准确识别此类威胁。

利用机器学习检测DLL劫持

为了逃避安全解决方案的检测,网络犯罪分子采用各种技术来掩盖其恶意活动。近年来在Windows系统攻击中日益增多的一种方法是DLL劫持:用恶意动态链接库替换合法DLL。传统安全工具通常无法检测到此技术的使用。为解决此问题,卡巴斯基人工智能技术研究中心的同事开发了一种机器学习模型,能够高精度检测DLL劫持。该模型已在我们SIEM系统的最新版本中实现。

DLL劫持的工作原理及检测难点

在Windows环境中突然启动未知文件必然会引起安全工具的注意——或者直接被阻止。本质上,DLL劫持是试图将恶意文件伪装成已知可信文件。DLL劫持有几种变体:一种是攻击者将恶意库与合法软件一起分发,使软件执行它;另一种是替换计算机上已安装程序调用的标准DLL;还有操纵确定进程加载和执行库位置的系统机制。结果,恶意DLL文件由合法进程在其自己的地址空间内以其特权启动;因此通常的端点保护系统将此活动视为合法。这就是为什么我们的专家决定使用AI技术来应对此威胁。

使用ML检测DLL劫持

AI技术研究中心专家训练了一个ML模型,基于关于库和调用它的进程的间接信息来检测DLL劫持。他们确定了操纵库尝试的关键指标:可执行文件和库是否位于标准路径中、文件是否被重命名、库的大小和结构是否已更改、其数字签名是否完整等。他们最初在关于加载动态链接库的数据上训练模型——这些数据来自内部自动分析系统和用户自愿提供的卡巴斯基安全网络匿名遥测数据。为了标记,我们的专家使用了文件信誉数据库中的数据。

第一个模型相当不准确,因此在将其添加到解决方案之前,我们的专家通过多次迭代进行实验,改进了训练数据集的标记和指示DLL劫持的特征。结果,该模型现在能够高精度检测此技术。

卡巴斯基SIEM中的DLL劫持检测

在SIEM系统中,模型分析来自遥测的已加载DLL和调用它们的进程的元数据,标记可疑案例,然后将其判定与KSN云数据进行交叉检查。这不仅提高了DLL劫持检测的准确性,还减少了误报。该模型可以在关联子系统和事件收集子系统中运行。

在第一种情况下,它仅检查已触发关联规则的事件。这允许更精确的威胁评估并在需要时更快生成警报。由于并非所有事件都被检查,云查询量不会显著影响模型的响应速度。

在第二种情况下,模型处理满足特定条件的所有库加载事件。此方法消耗更多资源,但对于回顾性威胁搜寻非常宝贵。

最重要的是,随着更多关于威胁和合法进程数据的积累以及KSN算法的发展,模型的准确性将继续提高。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计