为什么要审计账号管理命令
改动账号文件会留下文件层痕迹,但「是谁执行了哪条命令」需要命令级审计才能回答。对用户管理工具与身份切换系统调用布控后,账号被悄悄添加、被加入特权组、或者有人执行提权动作,都会在审计日志里留下可检索的记录。这与文件监控是互补的两层:一层看结果,一层看动作与执行者。
基本信息
| 加固项 | 账号变更与身份切换审计 |
|---|---|
| 适用平台 | Linux(auditd) |
| 风险等级 | 高 |
| 监控对象 | 用户与组管理工具的执行,以及身份相关的系统调用 |
| 检索标记 | 按用途分组命名,便于按事件类型查询 |
典型使用场景
- 账号异常排查:确认某账号是谁在什么时间创建的
- 提权追溯:还原一次特权操作由谁发起、以什么身份执行
- 等保安全审计:要求审计记录覆盖到每个用户的账号管理操作
- 应急取证:通过执行记录还原攻击者在主机上的动作序列
- 变更复核:确认账号变更都来自授权的运维操作
规则与查询
规则与查询
-a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid -k privesc
-a always,exit -F path=/usr/sbin/useradd -F perm=x -k user_mgmt
-a always,exit -F path=/usr/sbin/usermod -F perm=x -k user_mgmt
-a always,exit -F path=/usr/sbin/userdel -F perm=x -k user_mgmt
-a always,exit -F path=/usr/sbin/groupadd -F perm=x -k user_mgmt
ausearch -k user_mgmt --start today
ausearch -k privesc -ts recent | head -20规则要素读法
| 要素 | 含义 | 注意事项 |
|---|---|---|
| -a always,exit | 在系统调用退出时总是记录 | 适合需要记录完整结果的场景 |
| -S 系统调用名 | 按系统调用过滤 | 身份切换相关的调用要成组配置 |
| -F path 与 perm=x | 按路径与执行权限过滤 | 只记录执行事件,不记录参数 |
| -k 标记 | 自定义检索键 | 按用途分组命名,便于分类查询 |
规则里写死的工具路径要以本机实际位置为准:不同发行版可能放在不同目录,上规则前先用路径查询命令核对,路径写错的规则不会报错但永远匹配不到事件。
按路径与执行权限过滤只能记录「某个程序被执行了」,不记录命令行参数。要知道改了哪个账号,需要与身份文件的监控规则配合分析,或者改用能记录命令行内容的审计方式。这类组合分析是账号审计的标准做法。
两层监控怎么配合
文件监控回答「账号文件被改了」,命令审计回答「是谁执行的、什么时候执行的」。排查时先按文件监控确定改动时间与内容,再用命令审计在相近时间点找执行者,两条记录对上就能形成完整链条。规则稳定后把两份查询写成固定脚本,日常巡检时跑一遍即可。