必须构建自动化权限审计跟踪链,覆盖“谁、何时、从哪来、做了什么”四维度,通过结构化日志建模、双层日志采集、审批-会话-命令三者自动打标关联,提供会话/命令/工单联动视图。

要让特权账号的操作真正“看得见、留得下、查得清”,不能只靠人工翻日志,必须把权限审计变成自动化跟踪链——从登录源头到每条命令执行,全程结构化、可关联、能告警。
覆盖四个关键维度:谁、何时、从哪来、做了什么
自动化审计不是堆日志,而是按统一字段建模。每条记录必须含:操作员账号、精确到秒的时间戳、来源IP与终端信息、目标资产(如数据库名/服务器IP)、协议类型(SSH/RDP/DB连接)、执行命令全文(含参数)。缺一不可,否则无法闭环追溯。
- 例如某次sudo重启服务,日志里不能只记“sudo systemctl restart”,而要完整记录“sudo -u alice systemctl restart nginx --no-pager”及调用shell路径
- Windows环境下,需同时捕获事件ID 4624(登录)、4672(管理员登录)、4688(进程创建)、4663(对象访问)四类日志,并用会话ID串联
用内核级+应用层双日志源防绕过
仅依赖shell history或sudo日志极易被绕过(比如用python -c或bash -c执行敏感命令)。必须分层采集:
- Linux用auditd监听uid=0和sudo组的execve系统调用,规则写入/etc/audit/rules.d/,确保绕过shell也能捕获
- Windows启用“审核进程创建”和“审核对象访问”,并通过组策略强制SACL对关键目录/注册表项生效
- 数据库层面开启SQL审计(如MySQL general_log + slow_query_log组合,或Oracle Unified Audit),记录实际执行语句而非连接行为
把审批、会话、命令三者自动打标关联
单条命令没上下文就是孤岛。自动化的核心是让工单ID、会话ID、命令ID在日志中天然绑定:
- 所有PAM接入(SSH/RDP/DB)强制绑定审批工单号,该编号注入到会话环境变量(如PAM_TICKET_ID),再透传至auditd或数据库审计字段
- 会话启动时自动生成唯一会话ID,该ID写入auditd规则-k参数,并同步注入到sudo日志、SSH auth日志、应用层审计日志
- 命令执行后,自动提取风险关键词(如rm -rf、DROP TABLE、net user add),打上“高危”标签,触发实时告警并关联原始工单
用结构化视图替代日志拼凑
运维看原始日志、安全看告警、合规要证据——三类角色需要同一事实的不同切片。自动化平台应提供三个联动视图:
- 会话视图:按时间/资产/IP聚合,显示谁在何时连了哪台机器、持续多久、发起多少命令、整体风险评分
- 命令视图:筛选“高危”“未审批”“异常时段”等标签,点击任一条命令即可跳转到所属会话及对应工单
- 工单视图:展示审批人、原因、有效期,点击可展开全部关联会话与命令,支持导出PDF作为审计凭证











