![]()
两类EDR致盲技术分析与防御建议
一、引言
在终端攻防对抗中,攻击者的目标早已不局限于“植入恶意样本”,而是更进一步追求“让安全软件看不见、拦不住、起不来”。这类以绕过、削弱、压制终端安全能力为目标的行为,通常被统称为EDR致盲。
很多安全团队提到EDR致盲时,首先想到的是BYOVD一类内核攻击路径。但从真实攻击面看,攻击者并不总是需要先拿下内核;只要能够滥用系统自带策略机制或篡改关键文件权限,同样能够对安全软件造成显著打击。本文围绕两类典型样本展开分析:一类通过AppLocker拒绝策略阻断安全软件相关程序执行,另一类通过篡改核心系统文件DACL,切断安全软件服务的运行依赖。
二、两类致盲技术概述
2.1 AppLocker策略滥用:把“应用控制”变成“安全软件阻断器”
第一类样本AppLocker的核心思路并不复杂:先确保Application Identity(AppIDSvc)服务被拉起,再构造一份带有Deny规则的AppLocker XML策略,精准匹配Windows Defender相关目录与核心可执行文件,最后调用Set-AppLockerPolicy导入系统。策略一旦生效,Defender相关组件后续启动时就会直接被操作系统级规则阻断。
这类手法的危险性在于,它没有引入额外恶意驱动,也没有直接杀死安全进程,而是借助系统原生机制完成“软封杀”。从行为表面看,攻击者调用的是合法工具与合法接口;但从结果看,安全软件却被精准地剥夺了继续执行的能力。
![]()
图1 AppIDSvc服务拉起与AppLocker生效前置条件
![]()
图2 恶意AppLocker规则片段:针对Defender路径注入拒绝策略
![]()
图3 策略写入临时文件并通过Set-AppLockerPolicy导入系统
2.2 DACL篡改:不杀进程,直接切断安全服务依赖
第二类样本acl_blocker的攻击逻辑更底层:程序首先开启SeDebugPrivilege,随后模拟SYSTEM与TrustedInstaller上下文,以获取对核心系统文件进行权限修改的能力;接着清理KnownDLLs中与kernel32或其他系统相关的缓存项,迫使系统在后续启动或加载过程中重新从磁盘读取物理文件;最后在目标文件的DACL中插入针对安全产品服务SID的Deny ACE,拒绝其读取与执行关键DLL。
![]()
图4 acl_blocker样本中用于篡改目标文件DACL的核心代码片段
与直接结束安全进程相比,这种方式更隐蔽、也更难恢复。因为攻击者攻击的不是“进程本身”,而是安全软件赖以运行的基础依赖链。一旦核心DLL无法被正常读取或执行,即便服务进程存在,也很难真正恢复安全能力。
三、样本执行与效果展示
3.1 AppLocker致盲前后的效果对比
从实验现象看,AppLocker样本的破坏路径非常直接:在策略注入前,Windows安全中心与Defender组件处于正常运行状态;脚本执行后,系统会基于新导入的拒绝规则限制相关程序继续启动;当用户再尝试访问Defender目录中的核心程序时,界面会直接弹出“系统管理员已阻止这个应用”的提示。
![]()
图5 攻击前Windows安全中心处于正常运行状态
![]()
图6 AppLocker致盲脚本执行结果
![]()
图7 Defender相关程序被策略阻断后的界面提示
3.2 这种致盲方式为什么更值得警惕
如果说传统“杀进程式”致盲的特点是显性,那么这两类样本的共同特征则是“合法外衣下的破坏性操作”。AppLocker样本滥用的是应用控制策略,ACL样本滥用的是对象访问控制模型。它们都不以高噪声方式出现,却能对终端安全能力造成实质性削弱,尤其适合作为后渗透阶段的配套规避动作。
四、日志与取证线索
4.1 AppLocker策略注入具备明确脚本痕迹
尽管AppLocker样本借助的是系统合法能力,但它在落地过程中仍会留下清晰的脚本痕迹。对PowerShell Script Block Logging、AppIDSvc服务状态变化、Set-AppLockerPolicy调用链以及XML策略内容进行联合分析,能够较为稳定地识别该类攻击行为。
![]()
图8 Script Block日志记录了AppLocker致盲脚本的关键内容
4.2 DACL篡改会在安全描述符变化中留下核心证据
ACL篡改样本最大的取证价值,体现在“旧权限”与“新权限”之间的差异。针对 kernel32.dll等系统文件,一旦在安全描述符中出现面向安全服务SID的拒绝访问项,且伴随TrustedInstaller模拟、KnownDLLs修改或异常文件访问控制操作,就应高度怀疑存在针对终端安全能力的定向破坏。
![]()
图9 kernel32.dll的安全描述符被插入针对Defender服务SID的拒绝规则
![]()
图10 针对核心系统文件ACL篡改行为的安全检测视图
五、检测与防御建议
面对这类利用系统原生机制完成致盲的攻击手法,单纯依赖静态样本查杀往往并不够。更有效的思路,是围绕“策略变更、权限篡改、依赖异常、服务恢复失败”四个层面建立检测与阻断能力。
1)围绕AppLocker建立策略侧监控:重点关注AppIDSvc的异常启动、自启配置变更、Set-AppLockerPolicy调用、临时目录中出现的策略XML,以及规则中是否包含针对安全厂商路径或核心安全程序的Deny项。
2)围绕ACL篡改建立对象级监控:重点监控对C:\Windows\System32下系统DLL的安全描述符修改、对Defender服务SID的访问控制变化、KnownDLLs关键注册表项变更,以及是否存在异常的SeDebugPrivilege启用与令牌模拟行为。
3)围绕恢复链路建立关联分析:当安全软件出现“无法启动、反复崩溃、界面异常缺失、依赖文件访问失败”等现象时,不应只把它视为单点故障,需结合前序策略变更、对象权限变化、脚本日志与服务事件进行串联分析。
4)围绕高风险系统机制做基线收敛:对AppLocker策略修改权限、核心DLL的DACL、TrustedInstaller相关模拟行为、系统目录中的系统文件访问控制,建立更严格的白名单与变更审计机制,减少攻击者借助“合法能力”反向达成破坏的机会。
六、山石EDR的防护落点
对于这类不依赖传统恶意样本、却直接削弱终端安全能力的攻击手法,山石EDR的优势不仅体现在“识别已知样本”,而体现在对关键系统行为的连续感知与高精度关联:一方面监控脚本、策略、服务、文件权限、注册表、令牌使用等核心动作;另一方面将这些分散事件串联成完整攻击语义,判断其是否指向“安全软件受限、受阻或被定向破坏”的结果。
换言之,面对AppLocker滥用与DACL篡改这类手法,真正有效的防御不是只盯一个 API、一个文件、一次告警,而是盯住攻击者是否正在通过系统原生机制重塑终端的安全边界。一旦发现策略注入、依赖切断、服务异常恢复失败等信号形成闭环,便应及时阻断并进入应急处置流程。
七、结语
EDR致盲并不总是以“高权限驱动 + 粗暴杀进程”的形式出现。越来越多的攻击者开始利用系统本身提供的控制机制,在合法表象下完成对安全能力的定向削弱。对防守方而言,真正需要提升的,不只是对恶意样本的识别能力,更是对“合法机制被恶意利用”这一类灰色攻击动作的行为理解、语义关联与快速处置能力。
山石网科是中国网络安全行业的技术创新领导厂商,由一批知名网络安全技术骨干于2007年创立,并以首批网络安全企业的身份,于2019年9月登陆科创板(股票简称:山石网科,股票代码:688030)。
现阶段,山石网科掌握30项自主研发核心技术,申请560多项国内外专利。山石网科于2019年起,积极布局信创领域,致力于推动国内信息技术创新,并于2021年正式启动安全芯片战略。2023年进行自研ASIC安全芯片的技术研发,旨在通过自主创新,为用户提供更高效、更安全的网络安全保障。目前,山石网科已形成了具备“全息、量化、智能、协同”四大技术特点的涉及基础设施安全、云安全、数据安全、应用安全、安全运营、工业互联网安全、信息技术应用创新、AI安全、安全服务、安全教育等10大类产品及服务,50余个行业和场景的完整解决方案。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.