研究人员利用调用小工具绕过Elastic EDR调用堆栈签名检测
安全研究人员开发出一种新技术,利用调用小工具在模块加载期间向调用堆栈插入任意模块,成功绕过Elastic EDR基于签名的检测规则。
Elastic EDR检测逻辑的开放性
Elastic的透明政策使其检测逻辑和有效载荷测试工具公开可用,这使得安全社区能够更好地理解和挑战其EDR机制。与许多供应商不同,Elastic允许公开访问其检测规则,使研究人员能够模拟和分析实际规避技术。
Elastic EDR的检测引擎主要专注于分析调用堆栈以寻找恶意活动迹象。可疑的模块加载(例如从未备份内存区域发起的加载)会受到密切监控,因为这些行为与shellcode注入等攻击密切相关。特定规则(例如跟踪从未备份内存加载的网络模块)有助于识别命令与控制植入物使用的标准技术。
威胁参与者的规避技术
随着时间的推移,威胁参与者设计了各种通过操纵调用堆栈来规避EDR检测的方法。诸如调用堆栈欺骗和API代理等技术已在社区中得到详细讨论。然而,Elastic通过引入针对这些策略的额外规则来做出回应,通常专注于特定的系统库以减少误报并保持性能。
典型的检测可能寻找如下调用堆栈:
|
|
或指示欺骗或代理调用的签名。这些规则旨在捕获在可疑上下文中发起的库加载。
创新的规避技术
新发布的研究引入了一种创新的规避技术:使用调用小工具向调用堆栈插入任意模块,从而破坏Elastic检测规则预期的模式。通过利用系统DLL中当前未被EDR签名目标的可控调用指令(小工具),研究人员可以修改在模块加载操作期间观察到的调用堆栈。
概念验证利用了在旧版本dsdmo.dll中发现的特定调用-返回小工具。通过在网络库加载期间跳转到此小工具,插入的模块会出现在调用堆栈中,破坏签名并防止警报触发。因此,先前可检测的操作被EDR代理忽略。
技术背景与影响
该方法建立在先前关于shellcode混淆和基于回调的API代理的研究基础上。尽管测试的小工具来自已弃用的版本,但该研究概述了在当前DLL集中查找类似小工具的过程。
这一发现仅解决了与基于shellcode的网络模块加载相关的特定检测绕过。Elastic的EDR在整个攻击生命周期中仍提供许多检测恶意活动的额外机会。然而,该技术强调了规避和检测策略的持续演变。
研究人员已负责任地向Elastic披露了该方法,Elastic正在积极更新其检测规则以应对此规避。这项工作凸显了安全社区内持续合作和透明度的必要性,以不断加强网络防御。