文章总结: AVLCode通过数据脱敏引擎实现AI会话公开,在内容离开本机前替换敏感字段如密钥令牌,保留工作过程原貌。引擎提供keyword、regex、ipv4mask、domainmask四种规则和内置secrets预设,设计上强调命中必留痕和状态明确。文章指出脱敏需领域判断,遮多毁证据遮少漏凭据,并分享了两次缺陷修复教训。核心结论是透明与保密可并存,脱敏引擎应精确执行判断而非盲目遮掩。 综合评分: 89 文章分类: 安全工具,数据安全,安全意识,安全建设,产品介绍
为什么AVL Code敢把AI会话挂在官网上
AVL Code小组 AVL Code小组
安天集团
2026年7月13日 19:07 河北
在小说阅读器读本章
去阅读
点击上方”蓝字”
关注我们吧!
本文原载于AVL Code编程智能体技术blog,发布日期为2026-07-07,原文地址为:https://www.avlcode.cn/blog/why-we-publish-sessions/
会话脱敏共享功能让 AVL Code 用户间分享工作经验更安心、更充分。从第一句提问到最后一份报告,模型如何推理、调用了哪些工具、哪一步出错、如何恢复——全程未删减,10 个案例,无一例外。
这样做的团队并不多,原因也不难理解:AI 会话是最诚实的日志,也是最容易泄密的日志。 其中包含执行过的命令、工具返回的原始输出、环境变量的回显、内网的拓扑、客户的名称——任何一项外泄,都可能造成一次真实的安全事件。所以行业的常态是:演示视频经过剪辑,截图经过处理,会话本体不见天日。
我们做出了相反的选择。支撑这个选择的不是勇气,而是一道在内容离开本机之前工作的数据脱敏引擎。本文说明三件事:它如何工作、我们在哪里犯过错,以及一个容易被忽视的事实——好的脱敏,并不是遮得越多越好。
一、「原样」的是过程,遮住的是隐私
先把「原样」定义清楚:原样的是工作过程,遮掉的是敏感字段。 回放中的每一次推理、每一次工具调用、每一次失败重试,都是真实发生的原貌;而授权序列号、密钥、令牌这类信息,在导出的那一刻已被替换。
这一点可以直接验证。打开智甲 EPP 自动巡检案例的会话回放,定位到巡检报告部分,可以看到这样一行:
授权序列号:
****,过期时间:2026-06-24(剩余 1 天)
报告末尾,AI 自己写下了一句:「敏感信息已脱敏:授权序列号已替换为 ****。」——脱敏动作本身,也保留在记录里。这正是我们想要的状态:遮掩是显式的、可见的、可审计的,而不是悄悄删除内容。
二、脱敏的基础能力
它在产品中的位置是 设置 → 数据脱敏,定位是一个外发场景的数据保护引擎:只在内容离开本机之前介入——导出 HTML 回放、导出 .zsession、AI 落盘 .md 文档,三个场景各有独立开关。日常对话与本地分析,不做任何处理。
规则层提供四种类型:
-
keyword
——字面串全替换,朴素而可靠;
-
regex
——RE2 正则,替换模板支持捕获组,可以实现「留头遮尾」式的部分遮掩;
-
ipv4_mask
——结构化的 IPv4 遮掩,可指定遮掩第几段(任意段,含中间段),而非整体遮掩;
-
domain_mask
——域名遮掩,保留末尾几级标签(默认只留 TLD),其余替换为掩码字符。
规则之上还有一组内置 secrets 预设,覆盖高置信度、低误报的常见凭据格式:AWS Access Key、GitHub PAT、Slack Token、Stripe Live Key、GCP API Key、OpenAI Key,以及整块跨行的 PEM 私钥。这些格式特征明确(AKIA…、ghp_…、sk_live_…),误报率低,启用成本很小——即使把一把真实的 AWS 密钥误粘贴进会话,导出时它也已被替换。
两个设计决策值得说明:
命中必留痕。 每次触发脱敏的导出,都会给出一条提示:命中了多少条、命中了哪几条规则(按规则 Label 列出)。这份文件的每一处改动都有据可查——脱敏系统本身不能是黑箱:否则既无法确认它遮全了,也无法确认它没有遮错。
状态始终明确。 总开关关闭时,所有场景一律放行原文。这个设计看似保守,实则必要——半开半闭的脱敏才是真正危险的状态:使用者以为已遮掩,实际没有。我们宁可让使用者明确知道「当前没有脱敏」,也不制造「开启之后不知道哪里少了内容」的错觉。基于同样的理由,write_md 落盘脱敏默认关闭:它会改变写入内容,需要使用者明确启用。
值得补充的是,「凭据不出门」的原则贯穿产品各处:MCP 配置的读类工具(mcp.describe_server、mcp.export_config)返回的 authToken 一律只显示尾 4 位,环境变量值整体遮掩——无论是否导出,凭据在对话流中已经处于遮掩态。
三、两次缺陷,两次修复
脱敏机制很难一次做对。我们的发布日志里记录着两次真实的缺陷修复:
第一次:代码块行首的 IP 未被遮掩。 会话导出的是 JSON 结构,代码块内容带着转义。旧实现对转义前的文本套用规则,代码块中行首位置的 IP 因此未被匹配。修复方式是改为对解码后的 JSON 文本值套用规则——先还原为最终呈现的文本,再决定遮什么。
第二次:嵌套 JSON 的深层字段被遗漏。 工具调用的参数和结果中常常嵌套着另一层 JSON,旧实现只扫描顶层文本值,深层字段成为盲区。修复方式是递归下钻嵌套的 JSON 结构,将工具调用的参数与结果全部纳入覆盖。
两个缺陷指向同一个教训:脱敏引擎的对手不是「敏感字符串」,而是数据的形态。转义、嵌套、编码——每一层形态变换,都可能成为敏感信息躲过遮掩的通道。这两条修复都原样写进了发布日志与参考手册——缺陷并不可怕,不留记录的修复才可怕。
四、脱敏不是越多越好
最后说那个容易被忽视的事实。仔细检查我们公开的会话,会发现其中保留着不少内网 IP——这不是遗漏,是判断。三个真实例子,全部可以在官网验证:
IRC 僵尸网络流量分析的会话里,受害主机 192.168.7.133、内网 DNS 192.168.7.2 原样保留。因为它们是样本 pcap 中的流量——受害主机与 C2 的通联关系正是这个案例的证据链本身。将其遮掩,研判过程无法复现,会话回放也就失去了公开的意义。样本中的 IOC 是研判对象,不是隐私。
EDR 行为告警链分析的会话里有一串 10.0.19041.4522,形似内网 IP,实际是 Windows 的版本号。一条不加区分的 IPv4 正则会将它误处理为 10.0.*.*,告警分析中的系统版本信息随之丢失。这正是 ipv4_mask 设计为「可指定遮掩哪一段」的原因——机制要精确,判断要留给专业的人。
智甲 EPP 巡检的会话里,授权序列号被遮掩为 ****,而巡检目标的 SSH 连接地址 192.168.80.152 保留——前者是凭据,泄露有真实代价;后者是演示环境中的巡检对象,遮掩它,读者将难以理解巡检在对谁进行。
三个例子指向同一个结论:什么必须遮、什么必须留,是领域判断,不是正则能替你做的决定。 遮多了毁证据,遮少了漏凭据——脱敏引擎提供的是精确执行判断的机制,而判断本身,来自对安全工作的理解。这也是我们始终坚持的观点:安全场景的工具,更适合由安全团队来构建。
五、闭源产品也需要透明
作为直接面向对抗的安全智能体,我们选择不公开检测内核,而以「可验证的发布」承担透明的义务(见《为什么选择闭源》)。会话公开是同一个答案的另一半——
我们不公开源码,但公开行为。 AI 如何分析一个样本、如何在只读分析区保持克制、如何出错又如何自愈,全过程原样可查、可下载、可导入复现。源码透明证明的是「代码长什么样」,行为透明证明的是「它实际做了什么」——对一个要进入你工作台的智能体,后者往往更接近使用者真正关心的问题。
而这份行为透明能够成立的前提,脱敏能力是基础之一:因为出口处守得住,过程才敢全部公开。 你的会话本地保存,导出时同一套规则为你工作——我们敢挂在官网上的,你也可以放心发给同事、交给甲方、写进复盘报告。
透明与保密并不必然对立。分得清什么该公开、什么该守住,两件事就能同时成立。
我们在 AVL Code 中等你,骑着驴,全程可回放、可脱敏。
AVL Code,AVL 安全引擎,与智能随行。安天澜砥团队出品。
安天AVL Code官网链接:https://www.avlcode.cn
安天AVL Code网站二维码
往期推荐:
在智能体研发之路上,我们是堂吉诃德
用AVL Code验证“Claude Code内置隐藏机制,专门检测中国用户”的传言
安天AVL Code入选网络安全新产品名单
93.04分!安天澜砥大模型再次登顶CyberSec-Eval评测TOP1
安天引擎+大模型等成果获“创新成果奖”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安天集团 AVL Code小组 AVL Code小组《为什么AVL Code敢把AI会话挂在官网上》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论