特权命令审计要留下什么
提权入口是最该被记录的位置:谁在什么时候、以什么身份、执行了什么特权命令。这套规则对提权工具的执行和身份切换相关的系统调用布控,产生的事件里同时包含多个身份字段——登录身份、当前用户身份、有效身份。理解这三个字段的差别,是判断「到底是谁干的」的关键。
基本信息
| 加固项 | 提权入口审计 |
|---|---|
| 适用平台 | Linux(auditd) |
| 风险等级 | 高 |
| 监控对象 | 提权工具的执行与身份切换系统调用 |
| 基线 | 提权入口全部可追溯,事件可检索 |
典型使用场景
- 事件取证:还原一次提权操作的时间、执行者与实际身份
- 等保安全审计:要求审计记录覆盖到具体用户的操作
- 责任追溯:确认某次特权操作由谁发起
- 异常检测:非运维时段出现提权执行记录值得进一步核查
- 合规留证:规则与检索结果作为审计条款的支撑材料
规则与查询
规则与查询
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k priv_cmd
-a always,exit -F arch=b64 -S execve -F path=/bin/su -k priv_cmd
-a always,exit -F path=/usr/bin/passwd -F perm=x -k priv_cmd
ausearch -k priv_cmd --start today | head -40
ausearch -k priv_cmd -ts today | grep -E 'auid=|euid=|proctitle=' | head -20事件字段读法
| 字段 | 含义 | 判读用途 |
|---|---|---|
| auid | 登录时的原始身份,切换用户后不变 | 定位「真人」是谁,排查时最先看它 |
| uid 与 euid | 当前用户身份与有效身份 | euid 通常为 0,说明操作以特权身份执行 |
| comm | 进程名 | 确认执行的是哪个程序 |
| proctitle | 完整命令行(含参数) | 还原具体执行了什么命令 |
| key | 规则自定义标记 | 把同类事件归到一条检索线索上 |
排查提权事件先看登录身份字段:它能穿透多次切换,直接指向最初登录的人,再看完整命令行确认动作内容。仅有进程名不够,因为同一程序可以执行不同操作,参数才是关键信息。
两个要点:规则里的工具路径要以目标系统实际位置为准,不同发行版可能不同,上规则前先核对;另外只记录执行事件与配置文件监控是互补的两层,应该同时保留——一层看动作,一层看结果。
还原一次提权事件
标准流程是三步:先按标记与时间范围拉出事件,再按登录身份字段确认执行者,最后结合完整命令行与对应时间段内的文件改动记录(例如授权文件的变更事件)拼出完整动作。三步串起来就能回答「谁在什么时候做了什么」,这是审计记录最有价值的用法。