提权是最需要留痕的动作
提权动作意味着权限发生了跨越:一个普通账号获得了修改系统、访问数据或更改配置的能力。这类动作在日志里通常只有一行记录,但它的信息密度最高——谁、从哪、以什么身份、执行了什么、结果如何。审计的目标是把这行记录补全并保住,让它既能用于事后归因,也能用于实时发现异常;告警的目标则是从海量正常提权中,挑出少量值得人看一眼的记录。
基本信息
| 适用对象 | 受管主机的提权工具日志与系统审计日志 |
|---|---|
| 审计要素 | 发起者、来源地址、目标身份、执行命令、结果 |
| 数据来源 | 提权工具日志、认证日志、内核审计、会话记录 |
| 告警思路 | 基于基线找偏差,而不是全量上报 |
| 保全要求 | 日志需集中外送,避免本地被篡改后无据可查 |
值得关注的偏差
- 新出现的发起者:某账号第一次出现提权行为,或长期不用的账号突然活跃
- 异常来源:从非管理网段、非跳板机来源发起的提权
- 异常时间:工作时段之外的大批量提权,尤其集中在同一分钟内
- 命令模式:命中删除、权限修改、账号创建、凭据文件访问等敏感操作
- 频率突变:同一账号提权次数远高于历史基线
- 连续失败:反复尝试提权失败,通常是权限探测或配置错误的信号
审计数据查看
审计数据查看
journalctl -u sshd --since 'today' | grep -i 'Accepted\|session opened' # 登录与会话记录
grep -i 'sudo\|su:' /var/log/auth.log | tail -50 # Debian 系提权记录
grep -i 'sudo\|su:' /var/log/secure | tail -50 # RHEL 系提权记录
auditctl -w /etc/sudoers -p wa -k sudoers_change # 监控提权配置本身的改动
ausearch -k sudoers_change | tail -20 # 查询命中的审计记录
journalctl -k | grep -i 'denied' | tail -20 # 策略拒绝记录,常与提权尝试相邻事件类型与线索位置
| 事件 | 线索位置 | 关注点 |
|---|---|---|
| 提权成功 | 提权工具日志与会话记录 | 发起者与目标身份是否匹配角色 |
| 提权失败 | 授权日志与认证日志 | 反复失败常是权限探测 |
| 提权规则被改 | 配置文件监控告警 | 规则改动应稀有且需审批 |
| 新增账号 | 系统账号文件与审计日志 | 非变更窗口的新增需核实 |
| 会话内容 | 会话记录目录 | 敏感命令的完整上下文 |
告警要做减法:全部提权都告警等于不告警。可先从「新发起者」与「新来源」两类偏差起步,这两类噪声最低、命中真实问题的概率最高,其余维度可以在积累一段时间基线后再逐步加入。
审计日志必须外送集中存储:攻击者获得权限后的常见动作之一就是清理本地日志。日志仍在本地时,关键时刻往往正好缺失;外送通道与集中存储的访问权限也应与主机的管理权限分开。