0x00、前言
根据美国国防部安全事故处置流程,攻击溯源作为安全事故中事后响应的重要组成部分,一定程度上还原攻击者的攻击路径与攻击手法,从切入角度上看,安全告警事件,漏洞视角,网络和主机层面的异常以及APT攻击都可以帮助安全运营人员发现攻击源头,并且帮助其完成溯源工作。在传统的安全运营工作中,如果我们不知道黑客是怎么进入到系统内部,其实我们无法彻底根除安全隐患。从用户角度也会常常碰到这种情况,特别是高层无法理解为啥安全事件层出不穷。那么加大对溯源能力的投入,可以缓解这种情况的出现。
0x01、溯源切入详细分析
从安全运营的角度上切入,用户最想要的是,通过安全系统的分析,能捕捉到整个攻击链事件。知道攻击路径和攻击手段。攻击阶段一般定义为:攻击入口、载荷投放、权限提升、逃逸检测、权限未知、横向移动、远程公职、数据泄露、痕迹清楚、影响破坏。
首先聊聊攻击入口,ATT&CK其实也定义的非常明晰,针对服务器端攻击,最常用的方式:
@1、T1190、公开漏洞攻击&0day攻击 (自定义扫描脚本,比如这次HW用的比较多的fastjson漏洞等)
@2、T1133、外部远程服务攻击(暴力破解)
@3、T1078、合法账号攻击(弱口令/社工库)
检测手段:
@1、通过WAF感知到漏洞入侵,或者通过主机安全发现漏洞利用程序运行事件,发送告警事件到安全运营中心综合分析。
@2、通过主机安全产品感知,暴力破解成功(SSH/RDP)、Redis执行异常指令、Java应用执行异常指令、Postgres导出功能被误用写入可疑UDF库文件、Mysql导出功能误用写入可疑文件、Redis入侵后修改Crontab、Linux可疑命令序列、访问敏感文件,发送告警事件到安全运营中心综合分析。
@3、异地登录、异常IP、异常时间登陆、弱口令账户登录,发送告警事件到安全运营中心综合分析。
处置手段:
@1、当安全运营中心通过综合分析,发现主机层面存在相关的漏洞,并且进程正在运行,并且有网路层数据已经触达到主机,可调用WAF阻断该IP的访问。
@2、主机层暴力破解阻断,这个目前主机安全软件都有。
@3、禁用账号,还有一些攻击切入点主要是通过入侵客户端,然后进入数据中心的曲线救国方法,也就是我们常说的APT攻击。
T1189、水坑攻击
T1093、附件钓鱼攻击、T1092链接钓鱼攻击、T1094、服务钓鱼攻击
T1095、供应链攻击
T1200、硬件添加攻击
T1199、利用可靠关系
检测手段:需要通过OA网络中的终端安全产品来完成。需要同时把这部分告警日志接入到安全运营中心分析。
处置手段:隔离终端电脑
真实的海莲花(APT32)攻击事件,攻击链分析:T1093(附件钓鱼攻击)- > T1037(安装木马) - > T1563(横向移动) - >T1189(水坑攻击) - > T1567(通过web服务泄漏数据)
由于篇幅有限,先分析到这。其他攻击技术都可以按照以上的方法分析。
0x02、产品解决方案
要想实现攻击链分析展示,我们需要组成攻击链的ATT&CK告警事件;要想得到ATT&CK告警事件就需要图分析、时序分析、统计分析等多种计算形式组合;同时也需要安全运营人员的手工编写规则的加持;要想自动或者人工的规则有更好的效果,我们需要提供有价值的基础数据。那么整个产品解决方案可通过架构图展示:
@1、数据采集层
主要是分两个层面:在网络层面需要获取netflow流信息,主要是对外信息泄露监控。DNS对外请求的信息主要是为了分析外联,http流量解析对比IDS规则、对比威胁情报;通过LB或者硬件解密卡处理https流量对比IDS规则,对比威胁情报。更重要的一点是需要和CMDB资产服务对接,找到这些网络连接所对应的主机。
在主机层,针对linux服务器,需要采集与主机进程关联的网络连接、文件访问、计划任务、账号、登陆流水、软件信息等。这些数据都可以导入图分析软件中,分析出攻击路径,根据不同时间段的过滤会得出不同的结论。
针对windows服务器,我们可通过集成sysmon中采集指标达到我们的目的,包括:主机进程、与主机进程关联网络连接、文件访问、注册表、命令行、DNS请求、WMI等。
@2、规则处理层
主要是安全运营人员编写ATT&CK攻击规则,并且通过规则转换器,转换成上层分析引擎能识别的机器语言。
例如:T1168 - Local Job Scheduling
There are 2 ways to capture Crontab replace
1.bash_history : track the command "crontab" - you may need to look for the commands crontab index=linux sourcetype=bash_history bash_command="crontab *" | table host, user_name, bash_command
2. /var/log/cron : look for "crontab" & "REPLACE" in the cron logsindex=linux crontab replace
3. /var.log/crom - track CMD command cat /var/log/cron | grep CMD | cut -d " " -f 9 |sort | uniq -c | sort -rn will give you all the jobs which run in the environment with its number starting from high to low. You can look for a suspecious job/s which are not a part of a whitelisted jobs.
4. index=linux sourcetype=bash_history at
@3、规则引擎层
这部分可以通过上一步安全运营人员编写的规则,并且通过规则转换器转换,上层的全量日志分析引擎可快速的把人容易理解的规则转换成可机读的规则。
@4、业务展示层
这部分主要有3个业务需求,ATT&CK攻击告警事件展示,攻击链展示,监管溯源查询。
0x03、运营效率提升
通过产品化攻击溯源,安全运营人员投入比现有降低50%。
如若转载,请注明原文地址: