ATT&CK矩阵的SOC建设
~~本文主要内容来自ATT&CK矩阵Linux系统安全实践一文, 感谢作者的分享。~~
本文只做笔记与自我思考的记录, 如有侵权请告知,感谢!
1. 建设思路汇总
- 方案1: 从主机信息采集出发,进行基于ATT&CK矩阵的入侵检测
- 方案2: 从网络层面、主机层和Windows服务器出发,进行入侵溯源
- 方案3: 基于Sysmon的企业级威胁检测与响应闭环[3]
1.1 方案一详解
入侵检测
思路
入侵检测是指通过对采集来的数据进行检查,并根据观察到的异常事件和数据产生告警的过程. 常见做法是对入侵行为的发觉,通过从计算机网络或系统中的若干关键点收集信息,并对这些信息进行分析,对被保护系统进行安全审计、监控、攻击识别以及做出实时的反应。
https://www.freebuf.com/articles/es/231784.html
简单来说, 为以下几点:
- 从网络或系统中的关键点收集信息
- 对信息进行分析
- 对被保护系统进行安全审计、监控、攻击识别, 以及做出实时反应
功能模块
一个典型的入侵检测系统至少应包括3个功能模块:
-
提供事件记录流的信息源
-
发现入侵迹象的分析引擎
-
与分析引擎的相应部件
分类
根据检测所用数据的来源不同进行分类
-
基于主机的入侵检测系统(HIDS)
-
数据源来自
1.被监测系统的操作系统事件
2.日志应用程序的事件日志
3.系统调用日志(syscall)
4.端口调用
5.安全审计日志(eventlog)
-
基于网络的入侵检测系统(NIDS)
- 数据源来自网络上的原始数据包
-
利用一个运行在混杂模式下的网络适配器类实时监视并分析通过网络进行传输的所有通信业务
-
基于混合数据源的入侵检测系统(HIDS+NIDS)
检测方法
-
基于已知攻击的检测
-
通过收集非已知入侵攻击的信息(知识、模式等)的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,即认为这种行为是入侵,也是ATT&CK矩阵的思路
-
关联接测
-
通过将匹配模式的规则转化成IF-THEN规则,形成知识库,然后,运用推理算法进行检测入侵。
-
基于行为的检测
-
先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏差时即被认为是入侵。
主机信息采集
使用Auditbeat进行主机信息采集.
Auditbeat是一种轻量级的数据收集器,您可以将其安装在服务器上,以审核系统上用户和进程的活动。
基于ATT&CK矩阵的入侵检测
snoopy轻量级的lib库,用来激励系统中所有执行过的命令以及参数,实际使用场景中结合snoopy和rsyslog收集所有主机的历史执行命令,snoopy 即是通过 preload 的方式在程序进行 execv() 和 execve() 系统调用的时候记录下所有需要的信息,audit同snoopy,通过监控execve系统调用,同样实现用户的操纵记录,大部分检测通过检测非ROOT用户执行的命令以及进行威胁建模。
下面介绍的通用攻击方式, 其实是在威胁建模的过程中, 给我们一个通用的参考.
只攻方知守. 行为分析 < 威胁建模
侦查内容
一次完整的网络渗透, 主要分为技术业务与信息分析业务. 技术业务中的一项重要工作就是侦察,也就是进行信息搜集.
侦查可以分为技术侦查和业务侦查.
Fig. Linux入侵信息搜集[1]
凭证内容
主要根据用户习惯(用户行为模型?), 从文件中, 配置和历史记录中获取凭证, 也可通过暴力破解和抓取内存中的明文密码[1]
命令和控制
在Linux系统中, 与其交互的方式, 最主流的一种就是命令行, 对命令和执行的检查(比如, 建立白名单)和控制是威胁建模的一部分内容.
持久化
Linux系统主要作为服务器和IoT设备的主要操作系统, 因为其应用的问题, 需要攻击者在获取权限后,实现一个长期的驻留. 因此, 追踪最新的后门和持久化技术, 有利于完善威胁建模中的持久化方面.
下面列举了常见的后门和驻留持久化技术,如增加超级用户账号、放置SUID shell,定时任务、共享库文件、LKM模块等,在应急响应中持久化是最应该关注的战术之一,也是一个比较好的切入点
权限提升
对于攻击者而言, 利用系统漏洞达到root级访问是核心目标之一, 对于防守方, 通过检测子进程UID是否变为0即可(?)
横向移动
攻击者在利用单个系统漏洞后,通常会尝试在网络内进行横向移动,横向移动对于域渗透,攻击手法相对较多, 在内网中,环境相对较干净,检测通用攻击,能达到较好的效果
检测一些通用的攻击, 网络扫描的痕迹, 设置网络监听, 检查远程漏洞利用等
清理痕迹
在目前的安全状态下,安全法规定日志需保存6个月以上,且SIEM针对安全信息和事件的管理,也才采集数据,在绕过检测采集以及心跳线检测,无法规避
HOOK技术
一个恶意的软件,总结三点:隐藏、操纵、收集数据
Fig. HOOK通用技术[1]
1.可信任Shell——使用静态编译的二进制文件:lsof、stat、strace、last、…… 2.检测工具和脚本:rkhunter, chkrootkit, OSSEC 3.LiveCD——DEFT、Second Look、 Helix 4.动态分析和调试:使用gdb根据System.map和vmlinuz image分析/proc/kcore 5.直接调试裸设备:debugFS
对抗: 如何检测?
可以通过编写一系列的auditd规则, 对数据进行正则匹配, 简单关联分析检测, 在SOC平台上进行检测等.
一句话, 现在通过的还是通过不断完善规则.
图:入侵检测相应规则
小结
MITRE ATT&CK矩阵 从某种程度上来讲, 就是安全攻防时的一种兵法. 将战术和技术进行理论化的排列, 完成一个通用的攻击序列.
对于广义的SOC建设来说, 威胁狩猎是一个方向, 入侵检测和应急响应也是一个方向. ATT&CK矩阵带给SOC建设的作用就是, 将一种经验化的, 事后型(被动的)建设方案, 逐渐转变为一个工程化, 带有模拟和预测性质的, 甚至以攻为守(参考本文档章节下的《威胁狩猎》一文)的体系。
1
1.2 方案二详解
总体架构
图:基于ATT&CK矩阵的攻击链分析解决方案[2]
3. 思考
ATT&CK矩阵下, 与普通的评估方法区别,以及相互对应的是哪些?
4. 总结
5. 参考资料
- https://www.freebuf.com/articles/network/169632.html
Rerference
[1] ATT&CK矩阵Linux系统安全实践, https://www.freebuf.com/articles/es/231784.html
[2] 安全运营之攻击溯源, bt0sea, https://www.4hou.com/posts/x9KP
[3] 基于Sysmon的企业级威胁检测与响应闭环,樊兴华(微步在线首席分析师),2019CTIC分享的议题