一、EDR是什么?
EDR是最近比较流行的一个产品,其全称为:Endpoint Detection and Response,端点检测与响应平台。
EDR不是杀毒软件,不是杀毒的升级版。但国内很多的伪”EDR”产品,往往把EDR描述为杀毒软件的升级版。
EDR的一个重要功能就是“威胁追踪(threat hunting)”,EDR工具通常会记录大量端点和网络事件,把这些信息保存在端点本地,或者保存在中央数据库中。然后使用已知的攻击指标(IOC)、行为分析和机器学习技术的数据库,来持续搜索数据,以发现威胁行为者或新型攻击的迹象,而不是依赖已知的威胁签名。它是威胁情报和大数据分析相结合的产物。威胁追踪是全面EDR解决方案的重要组成部分,同时也是EDR和端点保护平台(EPP)这两种易混淆概念的关键区别。
但什么是威胁追踪?可能很多人并不是太理解,正好,我公司运维团队在一次应急响应的过程中捕获了一次攻击行为,从这个例子中可以清楚的看出EDR产品的作用。
先来看一下现场的环境,这是一家大型的国有单位,通过了三级等保,常用的安全设备基本都有,终端部署的有国内某“EDR”产品(实际为杀毒软件),某国内知名品牌态势感知平台以及其他的安全设备。
二、事件起因
早上的例行巡检中,发现客户的态势感知平台出现一条危急告警,2023年8月16日17:40分,发现反弹SHELL行为,某主机失陷。
根据该失陷主机的IP继续往前找,发现该主机在16:42分遭到DNSLOG的渗透攻击。
在该失陷主机上,我们在杀毒软件的报告中看到以下信息:19:01,执行某恶意程序被杀毒软件拦截。
从现有的结果上看,似乎很清晰,黑客对该主机发起了攻击,利用反弹SHELL反向连接C2服务器,下载恶意程序,该恶意程序下载到本地执行的时候被反病毒软件成功删除,这样看,似乎也没有什么大的后果。
到这里,不同的单位可能会有不同的要求:
A.一类单位:谁攻击我?把IP封了。有病毒?杀毒软件能杀了就行。
B.二类单位:黑客怎么攻进来的?在我主机内都做了什么?有没有扩散?还有没有其他主机被攻破?有没有造成什么损失?怎么防止其他主机中招?以后如何避免?
C.三类单位:攻击我的是什么人?是专门针对我们单位的吗?这个组织有什么技术特点?
如果按照以前的操作,技术人员需要通过日志分析,大概分析出黑客的攻击路径。不过庆幸的是,该客户在前不久在主机上部署了一款真正的专业的EDR产品。我们来看一下EDR能做什么。
三、分析过程
打开EDR管理平台,通过EDR端点威胁检测与响应平台,结合安全事件的上下文关联对该主机行为进行分析,确认该主机失陷,系统给出了完整清晰的攻击行为线路图,:
通过查看各个节点详细的事件日志,我们可以清楚的看到完整的攻击链路图:
1、8月15日下午19:17,该服务器上的一个应用进程启动并开启了9010端口。(据事后分析,该进程存在的springboot RCE漏洞,被攻击者扫描到)
2、8月16日,下午16:37分,通过JAVA调用关系,执行ping命令,探测远控C2主机存活状态。
3、8月16日下午,16:42分,通过外网地址对该主机发起DNSLOG测试。
4、8月16日下午,17:25分, 通过JAVA进程调用curl指令,下载反弹shell文件,建立反向连接。
反弹shell执行文件脚本内容如下:
5、下午17:29分,卡巴斯基EDR报警,发现SHELL脚本:
6、8月16日下午17:40,连接C2服务,态势感知平台报警:
7、8月16日下午17:42分,通过调用wget命令,从27.124.45.141下载名为2.0.tar.gz的压缩包。
该压缩包解压后,通过主机上安装的python2.7编程工具执行setup.sh安装文件,通过文件解压目录名判定,该文件为Reptile 针对Linux系统的Rootkit工具,用于后门植入,主机上安装的杀毒软件并未识别,如下图:
安装Reptile Rootkit工具时,因缺少安装依赖,通过python调用yum库,安装Kernel-devel依赖组件,如下图所示:
8、8月16日下午18:42分,此服务应用执行bash命令,通过对该命令Base64编码进行解码,发现C&C恶意IP地址143.92.61.44(中国香港)。
9、8月16日下午18:54分,从该C2服务上将3333的恶意程序下载到本地TMP目录。
同时,使用chmod命令对该目录增加可执行权限。
10、8月16日下午18:55分,卡巴斯基EDR报警,出现恶意程序下载事件。
11、8月16日下午,19:01分,执行恶意程序,被本机上安装的杀毒软件拦截。
12、8月16日,19:13分,执行whoami命令,识别本机信息。
至此,攻击者所有活动结束,通过向监管部门汇报攻击IP,以及从攻击的动作来看,证实这是一次H*的行为(你们都懂的),攻方仅仅证明拿下主机就撤了,也没有做其他的比如在内部横向移动等操作,因此并没有造成什么其他的后果。
四、攻击链条
五、响应与处理
可能有同学说了,EDR不是端点检测与响应吗?怎么看你写了半天都是检测啊?响应怎么体现?不要急不急,慢慢来。
既然检测出来恶意文件和行为了,下一步当然要进行处理。
首先,我们要确定这里面下载的文件是不是恶意程序,前面的检测都仅仅是怀疑,因为EDR不是杀毒软件,所以本身并不是依靠病毒特征码进行判断的,那怎么办?
EDR会首先对下载下来的文件进行取证,获取该文件,之后将其送入沙箱,经沙箱判断后再进行下一步的处理。
其次,经过沙箱分析后,我们要制定策略,分发到全网,利用EDR获取的文件哈希(MD5或SHA256)制定阻止策略,网络内的其他主机收到该策略后会自动阻止该恶意文件进入本机。
遗憾的是,因为该客户只部署了卡巴斯基的端点EDR产品,没有部署网络流量检测与响应产品KATA,因此,该攻击环节数据并不完整,相信大家也都看出来了,还有一些环节没有看到,就是最早攻击者是如何进入主机的(初步分析应该是利用漏洞,但缺乏流量侧数据支持),有没有内网进行其他的操作,这些数据需要通过网络侧数据进行综合分析,可惜的是当前的网络流量设备中并没有记录这些数据(至于为什么缺失这些数据已经联系该厂商去分析了)。
六、总结
因为本次攻击事件并不是一个真正的黑客攻击,所以攻击动作并不完整,比如没有内网的横向移动,没有对内网数据进行操作等,结合下图的攻击链模型大家也可以看到,这是一个简版的攻击。不过即使如此,通过这次事件中EDR的表现,我们可以看到:
**1、**EDR完全不同于杀毒软件。在一个攻击过程中,只有最后下载恶意程序并执行的时候可能会触发杀毒软件报警(如果做了相应免杀处理或者不使用恶意程序而是无文件攻击方式,则连报警都不会有了)。而EDR侧重于在对前期的威胁行为(包括指令和文件)进行记录、分析、检测、以及响应处理。
**2、**EDR的使用需要专业技术人员的支持,包括溯源过程与响应处理过程。如果你是一类客户,完全没有必要购买专业的EDR产品,买了可能你也用不起来。相反,如果你是二类或三类客户,有专业的安全团队或运维团队,EDR是你必不可少的工具。
**3、**EDR不是杀毒软件,希望国内那些打着EDR幌子的杀毒软件不要再误导客户了。
**4、**安全是一个整体,要想得到更完整的攻击链条,不仅仅需要终端的EDR,也应该包括流量侧的NDR(网络流量检测与响应,如卡巴斯基KATA)产品,而且要结合终端EPP(包括杀毒软件功能的端点安全产品)产品进行联动处理。当然从这些数据中,我们也仅能分析出黑客入侵后的一些动作,如果你是三类客户,或者想要知道更多信息或者需要更精确的判断,那就离不开威胁情报的支持了。
希望通过本文能让你对EDR的作用有一点新的认识。
感谢我的团队:邵博、杨桂文提供素材
附:攻击链模型各环节与安全产品对应图
常见名词解释:
EPP--Endpoint Protection Platform(端点保护平台)
EDR--Endpoint(端点)Detection(检测) and Response(响应)
NDR--Network (网络)Detection (检测)and Response(响应)
XDR--Extended(扩展的) Detection(检测) and Response(响应)
MDR--Managed(托管的) Detection (检测) and Response(响应)
TI--Threat Intelligence 威胁情报
KATA--Kaspersky Anti Targeted Attack Platform(卡巴斯基反针对性攻击平台)
延伸阅读:
欢迎关注:大兵说安全