绕过杀软的无文件攻击,EDR如何破?
近年来,大型攻防演练如火如荼,红蓝斗法各显神通,无文件攻击等难以检测的手法屡见不鲜。有时,蓝队单位的HR只是点开了一份求职者简历,电脑就被黑了。
这类绕过传统终端安全的新攻击手法,如何能快速高效地捕获、处理,并保住蓝队重要的分数呢?下图是EDR在攻击后的1分钟内捕获的详细攻击链图。
上图中被分钟级检出的威胁正是在各大攻防演练中铺天盖地的CobaltStrike(即CS马),深受其害的安全从业者不在少数。
无文件攻击的最大特点就是恶意代码直接在内存中运行,有人可能会想:内存扫描是否就可检出恶意代码?
有效检出与性能消耗的博弈
所谓内存扫描,就是用已知的远控、Shellcode、无文件攻击框架等特征去匹配正在运行进程的内存数据,以查找恶意代码发现威胁。
理论上,内存扫描确实能找到恶意代码。但在实际应用中,并不好用。原因有两点:
1.内存扫描会占用较多系统资源:相比文件扫描面对的KB或MB级文件,内存扫描通常面向的是GB级内存数据,需占用较多系统资源,导致终端响应缓慢或卡顿;
2.很难确定内存扫描时机:终端运行过程中,内存数据是时刻变化的。而内存特征本身可能在特定时机才会稳定出现,太早或太晚扫描都有可能误报;并且,也有恶意程序通过加密内存数据来规避扫描,只在特定时间解密数据以实施攻击;
从理论上看,内存扫描要实现全方位、零死角覆盖各个监测点,在技术上是可实现的,但这会占用极多的系统资源,几乎不会有用户接受。再结合内存数据多变特点,这就意味着仅靠内存扫描就想检出恶意代码,无异于大海捞针。
难道就真的没有办法了吗?
从大量实践经验来看,利用EDR中的行为检测技术不仅可以有效检测无文件攻击,同时用来触发、配合内存扫描,可对无文件攻击等新型威胁实现“多维度打击”。
EDR行为检测,让无文件攻击无所遁形
EDR中的行为检测技术,有别于杀软的文件检测技术,针对的是程序/代码运行过程中的行为进行检测,这些行为包括但不限于进程创建、驱动程序加载、注册表修改、磁盘访问、内存访问和网络连接等。
与正常程序运行产生的行为相比,网络攻击出于持久化、提权、隐藏对抗目的产生的行为带有明显特征。行为检测技术就是搜集并利用这些特征去检出威胁。虽然恶意代码没有落盘不能触发杀软的查杀能力,但是恶意代码执行中做的恶意操作却被EDR有效地记录下来,经过分析并捕获。例如攻击者通常会获取凭证,以进行持久化动作,而这些动作都会被EDR分析并捕获到。
以上一篇文章中的无文件攻击事件为例:
EDR可以检测并关联一次点击背后的一连串(风险)行为:
首先,EDR检测到Word简历启动后,Office进程利用宏启动了一个名叫Rundll32的系统可信程序,这是绝好的伪装;
其次,在Rundll32 启动过程中,Office进程对Rundll32进行了远程线程注入,把一段恶意的shellcode代码强行“塞入”了原本无害的进程中,EDR检测到这个异常的注入动作;
此外,Office进程还通过宏写入了一个非常可疑的计划任务,使得CS马保持开机启动,这里调用powershell创建计划任务的行为也会被EDR精准检测。
然而你以为EDR就只是这样吗?高阶的EDR行为检测,并不止步于此
高阶的EDR不会放弃任何一种技术,其也可以与内存扫描技术组合使用:
通过大量真实案例来看,面对那些将恶意代码注入内存直接运行的攻击方式,EDR行为检测可以对注入后的攻击行为进行捕获并精准检测,也能在检测到风险行为时启动内存扫描,让内存扫描“指哪打哪”。
所以在刚才的案例中,Rundll32进行远程线程注入的过程,也就是加载恶意代码的过程,只要EDR可以精准捕获这个行为,这时候唤起内存扫描,就可以检测到内存中的CS马特征,让原本的异常行为实锤为一个确凿的无文件攻击事件。
在整个过程中,综合利用EDR行为检测+内存扫描技术的组合,从可疑行为开始到最终告警,仅用时不到1分钟。
只要有网络攻击,那必然会存在有别于正常程序运行的异常行为。EDR就是通过记录和存储终端系统的行为数据,并利用各种数据分析技术进行筛查,以精准检出未知的、新型、高危威胁。
而且EDR技术,与基于文件检测技术的杀软并不矛盾,二者并非“二选一”,而是相互补足,相辅相成的关系。
但对于大多数企业来说,检测并不是最终目的,更重要的是响应和处置。发现威胁后要如何通过EDR进行溯源和快速处置?敬请关注下一篇文章。
发表评论
您还未登录,请先登录。
登录