微软把攻击自家AI的武器库开源了

admin 2026-09-29 05:43:02 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 微软开源AI红队测试框架PyRIT,用于主动检测生成式AI系统风险。框架支持命令行、图形界面和代码库三种用法,提供多种攻击策略与转换器,并强调自动化与人工配合的理念。2026年9月最新研究发现攻击模型选择对测试成功率影响显著,建议跑自动红队前先用基准挑选攻击模型。上手可从Gandalf靶场练手,注意授权与评分器一致性。 综合评分: 85 文章分类: AI安全,红队,安全工具,渗透测试


微软把攻击自家 AI 的武器库开源了

原创

大白 大白

知白守黑1024

2026年9月25日 06:23 北京

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

图1 | 吉祥物 Roakey,戴海盗帽的浣熊

微软有个专门「攻击自家 AI」的部门,叫AI Red Team。他们给 Copilot、给 Azure 上跑的各类模型做红队测试,几年下来积累了 100 多个产品的实战经验。2024 年起,他们把干活的工具逐步开源,就是今天要拆的PyRIT(Python Risk Identification Tool for generative AI)——MIT 协议,4.5k+ Star,我写这篇的时候仓库当天还有提交。

它不是又一款「AI 安全扫描器」。用团队自己的话说,PyRIT 是个框架:把红队测试里可自动化的部分——编攻击、发请求、判结果、记过程——全部交给程序,人只负责出创意和做判断。Azure 的托管服务「AI Red Teaming Agent」底层就是它,MLCommons 的越狱基准测试也拿它当实现框架。

01

先把身份说清楚

PyRIT 的定位写得很直白:给安全工程师用的红队框架,主动找生成式 AI 系统里的风险。注意两个词。一是「框架」,它给你的是积木——攻击策略、转换器、评分器、目标接口——拼法你自己定;二是「生成式 AI 系统」,它测的不只是裸模型,还包括套了提示词、挂了工具、接了知识库之后的整个应用。

这个项目的底气来自两篇论文。2025 年团队发了《Lessons from Red Teaming 100 Generative AI Products》,把 100 多次实战的教训摊开讲;2026 年 8 月又发了 PyRIT 白皮书,标题就叫「用开源工具普及 AI 红队测试」。工具先在内部打磨,再开源给外面用,这个顺序和很多「先开源再找场景」的项目正好反过来。

仓库里的画风也不太「微软」。吉祥物是只戴海盗帽的浣熊 Roakey,横幅是日落海滩配帆船,文档里还有它的表情包。看惯了蓝底白字的官方仓库,这种海贼王式的松弛感反而让人记得住。

02

它补的空当

传统软件有渗透测试,Web 应用有 Burp Suite,但大模型应用长期缺一件趁手的测试武器。难点在于:攻击面是自然语言,规则拦不住;同一个模型换个提示词就是另一副脾气;而且对话是多轮的,一次攻不破不代表第十次攻不破。

纯靠人肉测,覆盖不了这个量级。微软那篇 100 产品的论文里有个核心结论:红队需要自动化,但完全自动化也不行——机器负责广度和重复,人负责创意和临场判断,两边得配合。PyRIT 就是照这个思路长的:框架管流程,人管方向。

03

三种用法:命令行、图形界面、写代码

PyRIT 现在有三个入口,对应三种人。

Scanner是命令行模式,一条命令跑完整场评估,适合接 CI 和批量任务;CoPyRIT是图形界面,本地起个 Web 应用,像聊天一样手动试探目标,每条回复都能打分、分叉、留痕,适合探索性的测试;Framework是 Python 库模式, notebooks 里自由拼装,适合研究者和要深度定制的人。

Scanner 跑完一场「诈骗内容」场景的报告长这样——场景信息、目标信息、评分器结构、按策略分组的成功率,全部打在终端里:

图2 | Scanner 的终端报告

CoPyRIT 界面则完全是另一个画风:左边挂目标,中间是聊天流,顶部标着操作者和行动代号,每条回复下面有分支按钮——聊到一半换个思路重试,不用从头再来。

图3 | CoPyRIT 图形界面

04

一轮攻击是怎么跑起来的

把 PyRIT 拆开,核心就一条回路。种子数据集给出攻击目标,攻击策略负责编排,转换器把 prompt 变形,发给被测的模型或应用,评分器判断结果,再由策略决定下一步。所有输入输出都落进记忆库,事后可以复盘每一轮对话。

图4 | 一轮攻击的回路

官方的组件图把这套积木摆得更全:目标(本地模型或远程 API)、数据集(静态提示词或动态模板)、评分引擎(自我评估或外部分类器)、攻击策略(单轮或多轮)、记忆(JSON 或数据库)。每一行都是「接口 + 实现」的结构——意思是所有零件都能换:

图5 | 官方架构图

这套「可插拔」是 PyRIT 最值钱的设计。换目标不用换攻击:OpenAI、Azure、Anthropic、Google、HuggingFace、自定义 HTTP、WebSocket,甚至用 Playwright 直接操作网页版 Copilot,都只是换一个 target 的事。换评分器也不用改攻击:用 LLM 当裁判、接 Azure 内容安全分类器、还是自己写规则,分数的口径你来定。

05

弹药库里都有什么

攻击策略是有名字的。Crescendo是渐强攻击,从无害话题开始,一轮轮慢慢把对话带偏;TAP用树搜索自动探索越狱路径;Skeleton Key是微软自己发现的那类「先让模型进入无限制模式」的打法。转换器则负责变形:Base64 编码、翻译、同形字符替换,还能把文字 prompt 渲染成图片、合成音频和视频——专治那些只盯着文字输入的防线。

场景层面开箱即用:AIRT 系列(诈骗、心理社会风险、网络犯罪、越狱、多语言、数据泄漏)、Garak 系列(编码绕过、图片注入 FigStep、Web 注入、系统提示提取、包幻觉、音频攻击)、加上基准测试和 Azure Foundry 对接场景。想练手不想搭环境的话,官方教程直接用 Lakera 的Gandalf靶场——一个专门让你「骗 AI 说出密码」的游戏,八关,一关比一关难骗:

图6 | Gandalf 靶场

06

装机即跑:安装和部署

前置就一个:Python 3.11 到 3.14,官方推荐 3.13。装完 pip 包,写两个配置文件就能跑。怕搞乱环境的话,官方还提供预配置好的 Docker 镜像,带 JupyterLab,开箱即用。

BASH

1) 安装并验证

pip install pyrit

python -c”import pyrit; print(pyrit.__version__)”

2) 写 endpoint 配置 ~/.pyrit/.env

OPENAI_CHAT_ENDPOINT=”https://api.openai.com/v1″

OPENAI_CHAT_KEY=”你的key”

OPENAI_CHAT_MODEL=”模型名”

3) 写启动配置 ~/.pyrit/.pyrit_conf

memory_db_type: in_memory

initializers:

  • name: target

args:

tags: [default, scorer]

  • name: scorer

4) 跑第一场:诈骗场景

pyrit_scan run airt.scam –target openai_chat

想用图形界面,一条命令起本地服务,浏览器开localhost:8000就是 CoPyRIT:

BASH

pyrit_backend# Web 应用跑在 http://localhost:8000/

写代码的路径也短,初始化内存、建目标、发一次攻击,五行以内:

PYTHON

frompyrit.executor.attackimportPromptSendingAttack

frompyrit.prompt_targetimportOpenAIChatTarget

frompyrit.setupimportIN_MEMORY, initialize_pyrit_async

awaitinitialize_pyrit_async(memory_db_type=IN_MEMORY)

attack = PromptSendingAttack(objective_target=OpenAIChatTarget())

result =awaitattack.execute_async(objective=”你的攻击目标”)

数据默认存内存,正式使用换成 SQLite 或 Azure SQL,记忆库里每轮对话、每个分数都在,复盘和出报告都从这取数。

07

九月的新发现:谁来攻击,差别很大

今年 9 月 3 日,团队在官方博客发了一篇有意思的结论:自动红队里,「用哪个模型当攻击者」本身就是个变量,而且影响大得离谱。他们为此做了个 AdversarialBenchmark 场景,把数据集、受害模型、评分器、攻击技术全部固定,只换攻击模型——标准的控制变量法:

图7 | 基准设计:固定所有输入,只换攻击模型

第一组数据就够震撼:同样 50 个固定目标、4 种攻击技术、共 200 次组合,用Grok 4.3当攻击者拿到 62.0% 的成功率,用旧的 GPT-4o 对抗端点只有 42.5%,差出19.5 个百分点。目标没变、技术没变、裁判没变,只换了「谁去攻」。

图8 | 攻击成功率对比

更有意思的是后面的三模型对垒。微软研究团队用 GRPO 训练的攻击专用 Qwen(单轮版和多轮版)对上 Grok,56 次终局结果:Qwen 单轮 51.8%、Grok 46.4%、Qwen 多轮 42.9%。总排名有了,但拆到单项,没有一个模型赢下所有技术——红队对话 Qwen 多轮最强(78.6%),游戏角色扮演 Grok 最强(78.6%),知识问答角色扮演 Qwen 单轮最强(28.6%),渐强攻击还是 Qwen 单轮最强(64.3%)。

图9 | 分技术的成功率:没有全能冠军

这组数字的直接启示:跑自动红队之前,先用基准挑一下攻击模型,这步现在能省下大量白跑的预算。团队自己也说,打算把这套评估挂进 CI,让「当前最强的攻击模型」持续更新。攻击模型选错,测出来的安全水位就是虚高的。

08

围绕它长出来的生态

PyRIT 周边已经有一圈配套。RAMPART把红队发现转成 pytest 风格的回归测试,塞进 CI,防止修过的洞悄悄回来;Azure AI Foundry里的 AI Red Teaming Agent 是它的托管版,不想自己搭环境的企业直接点;MLCommons的越狱基准拿它当实现框架;Mozilla 的0DIN悬赏项目也在这条工具链上。从研究到工程到悬赏,一条链全通了。

先拿 Gandalf 练手

把 PyRIT 拿回家之前,有三件事值得先想清楚。

一是授权。它生成的是真攻击,只对你拥有或获得书面授权的系统用。真在微软产品里找到 AI 漏洞,走 MSRC 报告,别急着发推。

二是别全信自动化。100 个产品的教训里最硬的一条:自动化扩广度,人补深度。全交给脚本跑出来的「安全」,只能算没测出问题,不能算没问题。

三是盯紧评分器。上面那些成功率数字全靠评分器定义,换个裁判口径就变。做对比实验时,裁判得跟住,不然比了个寂寞。

至于上手路线,就从 Gandalf 第一关开始:装好 PyRIT,配个模型,写个让 AI 吐密码的目标,看框架怎么一轮轮地试。等你把第八关也骗过去了,你家模型的防线该怎么补,心里大概就有数了。

图10 | Roakey:攻下了就插旗(项目吉祥物)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。

本文转载自:知白守黑1024 大白 大白《微软把攻击自家 AI 的武器库开源了》

评论:0   参与:  0