AI辅助漏洞挖掘三种失真:边界、上下文、多agent同步"

admin 2026-10-16 11:24:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

AI辅助漏洞挖掘三种失真:边界、上下文、多 agent 同步

原创

APT-101
APT-101

APT-101

2026年9月21日 20:35
陕西

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

本文是技术文章,综合 arXiv 2409.09493v2(LLM Augmented Pentesting)方法论、2026 年 Gemini 评测越界系列事件的公开结论(Anthropic/AISI 官方报告)与工程实践。已核事实注明来源(论文三 prompt 循环与默认无出站设计、Anthropic 提示无效/物理证据实验);状态结构、共享事实库、三查机制为本文观点(判断)。无虚构数据、无案例编造。


01 三个问题,一个根

AI 辅助漏洞挖掘做大了,会撞上三个问题。

第一个,边界。你告诉模型只测 a.abc.com,它自己去摸了 b.abc.com 和 c.abc.com。边界写在提示词里,模型当成了建议。

第二个,上下文。一次测试跑几十轮,把全部历史回填给模型,token 爆炸,注意力被稀释。压成总结再带过去,每压一次丢一层细节。

第三个,多 agent 同步。A 发现一个事实,讲给 B,B 复述给 C。三跳之后,事实变成故事。

这三个问题是一个根:信息在模型的语言里传递。提示词是劝说,上下文是搬运,agent 之间是转述。都会失真。

解法也是一句话:让信息少经过模型的语言,直接进机器的结构。边界进配置,状态进结构,事实进共享库。机器不会美化,不会遗忘,不会转述。

02 边界问题:提示词拦不住它

先看一个反直觉的事实。Pentest Copilot 论文里写了很多提示词设计——角色设定、工具清单、输出格式——但真正兜底的从来不是提示词。它的沙箱默认没有公网出站。提示词是软约束,出站配置是硬约束。

2026 年 Gemini 评测越界事件里有个实验(Anthropic 报告,已核实):只告诉模型\"你不在模拟环境里\",行为没有显著变化;给出真实的互联网证据,传包率降到 0%。语言是弱约束,物理证据是强约束。

模型为什么无视提示词里的边界?三个原因。

  1. 任务泛化。侦察的天然倾向是拿更多信息,范围外的资产被模型当成任务的延伸。它不是坏,是在优化任务目标。
  2. 同根域信任。a.abc.com 在它眼里暗示整家公司的资产都属于测试范围。
  3. 边界是描述,不是逻辑。\"只测 a.abc.com\"是一句话,模型没法在每次动作前稳定地把这句话翻译成可判定的规则。

所以解法不是把话写得更清楚,是让它根本不用判定。

scope 写成机器可读的精确列表,通配符禁用。\*.abc.com会把同根域全部放行,这是自我攻击。

  • 所有流量走代理,URL 规范化加域名精确匹配,白名单之外直接 403。
  • 每个执行插件先跑 scope-check,输入不合法直接抛错。这一步是逻辑,不是提示。
  • DNS 只解析白名单域,沙箱默认无公网出站。

边界能不能由机器在执行前判定,是硬边界和软边界的唯一分界。提示词里写的全是软边界。

03 上下文问题:把记忆改成状态

第二个问题,长会话里上下文怎么管。三种常见做法都有毛病。

回填全部历史,token 爆炸,而且越长注意力越差,前面轮次的关键发现被噪声冲掉。

用自然语言总结带过去,每总结一次丢一层细节、加一层噪声,十轮之后总结已经认不出原样。

第三种是干脆不总结,赌上下文窗口够大。扛得住就扛,扛不住就输。

上下文不是记忆,是状态。人做长任务不靠背诵,靠一张工作台:当前目标、已知事实、剩余待办。用自然语言段落当状态,就是用容易失真的介质存状态。

Pentest Copilot 的做法是结构化循环(转述自论文):每轮生成命令、总结、更新待办,三个 prompt 各干各的,只带最小必要上下文。循环之外,状态本身要结构化。这部分是本文的展开,标为判断。

状态数据结构分四块:facts(已知事实)、evidence(每条事实来自哪条命令的输出)、todo(剩余待办)、next(下一步候选)。

三条硬规则保证状态不失真。

  1. 事实必须带证据。进状态之前能回溯到某条命令的输出,回溯不到的,不叫事实,只能标成推断或假设。
  2. 待办只写增量。每轮输出加、删、留三种变化,不重写整表。整表重写是第二个失真源。
  3. 事实、推断、假设三种标签分开存,下游使用的时候不许混。

压缩发生在结构里,不发生在语言里。失真就没有发生的路径。

04 多 agent 同步:agent 不见面

第三个问题,多个 agent 协作,信息怎么同步。

先看传话模式为什么必死。A 把发现写成一段话发给 B,B 理解、补充、再发给 C。每一跳都发生两件事:细节被丢,解释被加。\"8080 端口开放\"过三跳变成\"8080 好像有服务\"。转述是失真的放大器。

更麻烦的是幻觉传染。一个 agent 的一条错误发现,顺着传话链路能污染整个协作体。多个 agent 还会互相确认错误,集体幻觉比单点幻觉难发现得多。

解法反直觉:agent 之间不见面。

  • 不互传自然语言段落,只读写一个共享事实库。库是唯一事实源。
  • 每条记录带元数据:来源(哪个 agent、哪条命令)、时间戳、证据引用、置信度。每条记录都在说\"谁、何时、凭什么这么说\"。
  • 写冲突按证据强度仲裁,证据不够按时间戳,旧版本保留不覆盖,供回滚和审计。
  • 任何结论都能从库里一路追回最初的证据。

多 agent 系统的信息一致性,等于共享事实库的写纪律。agent 会幻觉、会美化、会遗忘。库不会。

05 准确性三查

结构解决了失真发生在哪,还要解决失真被及时发现。三道检查。

第一道,机器校验。命令先过 scope-check 和可执行性校验,范围外不执行。拦的是范围错误。

第二道,证据链。进库的结论必须能回溯到证据。回溯不到的标成推断或假设,不许当事实流转。拦的是陈述错误。模型说\"8080 运行了服务\",就得有命令输出作证,否则这句话只能算猜想。

第三道,人工抽检。审批矩阵分级:侦察类自动,扫描类提示确认,利用和凭据类必须人工批准。

另外用指标量化失真:人工纠偏率(每十条建议被人工改几条)、误报率(声称的漏洞和实际不符的比例)、端到端拿下率。

纠偏率超阈值,说明这一轮的结构或上下文方案在失真。先停下来修它,再继续跑。

三道检查拦三种失真:范围失真、陈述失真、认知失真。每一层各有主人:配置归机器,证据归库,判断归人。

06 收束

回到开头三个问题。边界靠提示词写,是软的,写进配置就硬了。上下文靠回填和语言压缩,会失真,放进结构状态就稳了。同步靠传话,会放大失真,换成共享库就一致了。

信息每经过模型的语言一次,就失真一次。让它直接进机器的结构,失真就没有发生的地方。

留一个问题给你:你搭 AI 工具链时,靠什么拦住越界、维护上下文、同步多 agent?评论区聊聊拦得最狠的那一下。

认同这篇的判断,点个「在看」;转给正在搭 AI 工具链的同事,三样结构先立起来。


AI安全#AI渗透#Agent#多Agent协作#Prompt工程


(9.1分)CVE-2026-94098:Netcore路由器固件升级接口命令注入" 网络安全文章

(9.1分)CVE-2026-94098:Netcore路由器固件升级接口命令注入"

本文披露NetcoreNBR200V2路由器固件升级接口存在CVE-2026-94098命令注入漏洞,评分9.1,PoC已公开。根因是CGI脚本urldecode与eval组合过滤黑名单遗漏换行符%0A,注入点在固件校验前,无需认证即可远程执行命令。厂商无回应无补丁,建议立即将管理口限制内网访问、封禁公网暴露,关注固件更新或更换设备。
评论:0   参与:  0