关于本文
本文是通过利用生成式 AI 的自动生成流程编写的。参考了 NIST 的日志管理资料,将其整理成了无需使用真实数据即可确认掩码和共享决策的形式。由于 NIST 的 SP 800-92 Rev.1 目前处于草案阶段,本文的实现细节不完全依赖 NIST,而是以最小化、确认和共享范围的理念为中心。验证状态:📘 已确认 NIST 公开资料,未使用实际运营日志
日志中不仅包含令牌,还混杂了邮箱地址、内部主机名、查询字符串、用户 ID、文件路径等单看无害但组合起来就会变成敏感信息的值。在将其传递给 AI 或供应商之前,不仅要“删除疑似机密的字符串”,还必须遵循以下原则:只保留调查所需的信息这一理念非常重要。
本次的成功条件
转换虚拟日志,在隐藏疑似机密信息的值的同时,保留排查故障所需的status=500等内容,即视为成功。
首先尝试
printf '%sn' 'user=demo@example.com token=dummy-secret status=500' | sed -E 's/token=[^ ]+/token=****/g; s/[[:alnum:]._%+-]+@[[:alnum:].-]+/****@****/g'
查看此处
预期结果:
user=****@**** token=**** status=500
需要关注的重点不仅是删除了什么。
token是否已删除邮箱地址是否已删除
status=500是否保留了原始日志本身是否未被修改
目的是删除调查中不需要的敏感信息,并保留必要的事实。
尝试修改一处
ip=192.0.2.10请添加。
printf '%sn' 'user=demo@example.com token=dummy-secret ip=192.0.2.10 status=500' | sed -E 's/token=[^ ]+/token=****/g; s/[[:alnum:]._%+-]+@[[:alnum:].-]+/****@****/g'
IP 地址将原封不动地保留。此时不要急于得出“正则表达式不够”的结论,而是要判断该共享对象和调查目的是否确实需要保留 IP。
例如,在排查网络故障时,IP 可能是重要的。另一方面,如果只是为了向 AI 传递日志以说明一般操作,则可能不需要。
为什么自动掩码还不够
掩码本质上是“字符串替换”,但对信息泄露的判断取决于上下文。
例如,以下值的敏感程度会因环境而异:
| 值 | 保留意义 | 风险示例 |
|---|---|---|
| HTTP 状态码 | 排查故障原因 | 相对较低 |
| 时间戳 | 确认发生顺序 | 可能与行为历史关联 |
| 主机名 | 识别目标服务器 | 暴露内部架构 |
| 用户 ID | 复现特定用户的操作 | 可能导致个人身份识别 |
| 查询字符串 | 确认 API 条件 | 可能包含令牌或搜索词 |
| IP 地址 | 网络调查 | 可能导致识别使用地点或终端 |
也就是说,增加正则表达式并不一定能保证安全。
自动转换 → 目视确认 → 根据共享目的进行裁剪分为这三个阶段,会更容易做出判断。
graph LR A[元ログ] --> B[コピー] B --> C[自動マスク] C --> D[人が再確認] D --> E[必要部分だけ共有]
故意制造一个失败案例
添加自由文本中包含机密信息的示例。
message="login failed with token dummy-secret"
使用刚才的token=...专用正则表达式是无法消除的。
这一点非常重要。“删除了名为 token 的项目”与“删除了所有机密信息”是两回事。
URL、JSON、自由文本、堆栈跟踪、文件路径等,只要日志格式改变,掩码条件也会随之改变。
可用于行政与业务的哪些场景
1. 询问供应商之前的日志整理
当因系统故障需要发送日志时,不要直接附加全文,而是采用以下步骤:
发生时间
错误代码
目标处理名称
前后几行
只截取这些内容,在确认用户名、邮箱、令牌、内部 URL 等已被处理后方可发送。
2. 向 AI 咨询错误内容时
在将错误粘贴给 AI 询问“这个错误是什么意思”之前,先将真实数据替换为虚拟数据。
例如像
user=USER_A host=HOST_A file=FILE_A.csv
这样,保留含义但删除真实值,AI 侧也会更容易理解上下文。
3. 编写操作手册与知识库
不要将实际的故障日志直接发布到公司内部 Wiki 上,而是替换为用于复现的虚拟日志,这样其他同事日后也能安全地进行学习。
4. 在 Excel 中进行确认
如果是行政人员,也可以采用将日志粘贴到 Excel 中,通过筛选和搜索进行二次确认邮箱地址或token=是否存在的方法。这不仅依赖自动掩码,还可以作为共享前检查清单来使用。
如果在工作中实际应用
切勿修改原始日志,而是对副本进行处理,并在共享前确认对象范围、保存位置和保留期限。如果怀疑认证信息确实泄露,不要仅靠掩码处理,还应考虑吊销或轮换。
在实际业务中,按以下顺序操作会更易于处理:
保存原始日志
仅复制所需范围
自动掩码处理
人工再次确认
进一步删除调查中不需要的行和列
确认共享对象和保存位置
共享后,删除不需要的临时文件
NIST 日志管理项目:https://csrc.nist.gov/projects/log-management
NIST SP 800-92: https://csrc.nist.gov/pubs/sp/800/92/final
