审计日志记了 operator_id 和 operator_id_card 两个字段,安全扫描直接从日志平台导出了六千条完整证件号。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
audit = {'op_id': uid, 'op_name': mask_name(name), 'action': 'export'}
print(audit)
审计日志为了可追溯把操作人信息整条落下来,没有区分必要字段。日志平台又做了全文索引,等于建了一个明文检索库。这一点先确认清楚,后面就不用反复试。
「审计日志脱敏」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
具体做法是,审计日志只记 operator_id 不记证件号;需要展示时反查 按权限脱敏;日志平台对敏感字段二次过滤;定期抽样扫一遍日志。
改完照着核一遍,日志平台导出的样本里不再有完整证件号。
