Fortress 开源:给 AI Agent 造一个隐身 Chromium

tiliondev 团队开源了 Fortress,一个专门为 AI Agent 设计的隐身 Chromium 分支,目标是让自动化操作不再被 Cloudflare、DataDome 这些反爬系统一眼识破。
Fortress 开源:给 AI Agent 造一个隐身 Chromium,自动化操作不再一进就被封
7 月 7 日,tiliondev 在 GitHub 甩出了一个新项目——Fortress,一句话概括:一个专门给 AI Agent 用的隐身版 Chromium。项目上了 Hacker News 首页,评论区一半在夸思路清奇,一半在吵这种猫鼠游戏还能玩多久。
背景其实不用多解释。这一年多,凡是做 Browser Agent 的团队——不管是搞 Claude Computer Use、OpenAI Operator 复刻,还是自研 Web Automation——都被同一件事按在地上摩擦:你写的 Agent 一跑起来,就被 Cloudflare Turnstile、DataDome、PerimeterX 拦在门外。轻则弹验证码,重则直接封 IP。Playwright、Puppeteer、Selenium 这些老牌工具,指纹早就被反爬引擎背得滚瓜烂熟,navigator.webdriver=true 这行字甚至成了行业段子。
Fortress 的思路不是打补丁,而是从 Chromium 源码层面动刀。

为什么现有方案不够用
先厘清一件事:市面上"反检测浏览器"这个赛道其实很拥挤。undetected-chromedriver、playwright-stealth、rebrowser-patches、Camoufox 都在做类似的事。但它们几乎都是运行时打猴子补丁的路线——在 JavaScript 层面 hook navigator 对象、伪装 WebGL 渲染信息、覆盖 CDP 泄露点。
问题是,2026 年的反爬引擎早就不吃这一套了。现在的检测手段已经进化到:
- CDP 通信层指纹识别:只要你用 Chrome DevTools Protocol 控制浏览器,
Runtime.enable的调用痕迹会在原型链上留下 side effect,Cloudflare 的 challenge 脚本能在几十毫秒内嗅出来。 - 执行栈追踪:反爬脚本主动抛异常,然后读 stack trace,看看调用链里有没有
puppeteer或者被 patch 过的痕迹。 - TLS/HTTP2 指纹(JA3/JA4/Akamai):跟浏览器上层伪装无关,是网络握手阶段就暴露。
- 行为指纹:鼠标轨迹、键盘节奏、请求间隔的统计特征。
JS 层伪装能解决前两条的表面症状,但治标不治本。Fortress 的答案是——直接改 Chromium 源码,把这些泄露点在编译期就抹掉。
Fortress 到底做了什么
翻了下仓库,Fortress 的核心改动集中在几个地方:
1. CDP 隐身
最关键的一刀砍在 CDP 上。传统方案里,一旦启用 Chrome DevTools Protocol,Runtime.evaluate 之类的调用会导致 V8 隔离环境出现可观测的副作用——比如 Error.stack 里会多出 __puppeteer_evaluation_script__ 这种字符串。Fortress 在 V8 层面把这些标识符全部清洗掉,让远程控制看起来跟用户手动点 F12 一样自然。
2. Runtime 指纹清零
Chromium 里有一堆"我是自动化浏览器"的自曝点,从 navigator.webdriver、window.chrome.runtime,到 permissions API 的返回值差异,Fortress 都在 C++ 层重写,而不是等 JS 加载后再打补丁。这个差异很关键——在 JS 执行前就已经"是"一个正常浏览器,反爬脚本再怎么早注入也抓不到破绽。
3. TLS 指纹自定义
这条是很多"隐身浏览器"绕不过去的坎。Chromium 用的是 BoringSSL,握手时的 cipher suite 顺序、扩展列表相对固定,JA3 hash 一算就知道你是 headless Chrome。Fortress 允许在启动时指定 TLS 指纹模板,模仿真实用户的 Chrome 稳定版握手特征。
4. 保持 Playwright/Puppeteer 兼容
这点是杀手锏。以往定制 Chromium 的项目最大问题是:你改完之后,上层生态用不了。Fortress 明确保留了 CDP 协议的对外接口,Playwright、Puppeteer 甚至 LangChain 的 browser tool 都能直接切过来跑,不用重写代码。你只需要把 executablePath 指到 Fortress 编译出来的二进制就行。
# 大致用法
npx playwright test --browser=chromium \
--executable-path=/opt/fortress/chrome
跟同类项目比,Fortress 强在哪
拉个横向对比:
| 方案 | 层级 | CDP 隐身 | TLS 指纹 | 维护成本 | |------|------|---------|---------|---------| | playwright-stealth | JS patch | ❌ | ❌ | 低 | | undetected-chromedriver | Python 层 | 部分 | ❌ | 中 | | rebrowser-patches | Chromium patch | ✅ | ❌ | 中 | | Camoufox | Firefox fork | ✅ | ✅ | 高 | | Fortress | Chromium fork | ✅ | ✅ | 高 |
跟 Camoufox 最像,思路都是"直接分叉浏览器"。但 Camoufox 是 Firefox 系,跟主流 Agent 框架(几乎全是 Chromium+CDP)不兼容,需要走 Marionette 协议,生态窄。Fortress 押的是 Chromium 生态本身,这条路的天花板更高,但代价是得跟着 Chromium 主线更新——Chromium 每 4 周一个大版本,rebase 工作量不小。
这也是我对项目最大的担忧。开源社区里做 Chromium fork 长期维护的团队屈指可数,Brave、Vivaldi 那种级别的投入不是小团队能扛的。Fortress 目前看起来是个人/小团队项目,能撑多久要打个问号。
反爬 vs 反反爬:这场军备竞赛还有意义吗
评论区吵得最凶的一条:这种项目发出来,是不是会被 Cloudflare 一夜之间反制?
我的看法是——短期内不会,但会推动检测手段进一步升级。当所有静态指纹都能被抹掉,反爬方唯一的路就是行为分析 + 服务端信誉体系。IP 段、账号历史、请求模式的时序特征,这些是浏览器 fork 解决不了的。所以 Fortress 只是把战线往后推了一格,不是终局。
再往深一层想,这场博弈的真正尴尬在于:很多合法用途也被反爬一刀切。学术研究爬公开数据、企业做自家网站的 E2E 测试、辅助功能工具帮视障用户读页面……这些场景本来无害,但用了 Playwright 就一律被当机器人。Fortress 这类项目某种程度上是在纠正这种一刀切。
当然,用来干灰产的也不会少,这没什么可回避的。

跟腾讯朱雀的 SkillTrustBench 一起看
巧的是,就在 Fortress 发布前几天,腾讯朱雀实验室联合港中大(深圳)发了首个 Agent 技能安全评测基准 SkillTrustBench,扫了 ClawHub 上 5 万多个 Skill,暴露出大量供应链投毒风险。再加上前段时间 BrowserAct 团队开源的 Skill 反封锁工具、CloakBrowser 项目——整个 Browser Agent 生态正在同步经历"能力扩张"和"安全治理"两条线的拉扯。
一边是开发者拼命想让 Agent 更能干、更难被拦;另一边是安全研究者盯着这些新入口,担心它们成为攻击面。Fortress 属于前者,但它开源出来之后,很快也会成为红队研究的样本。
开发者视角:值不值得上手
如果你在做以下几类事情,Fortress 值得关注:
- Browser Agent 产品化:客户跑一天被封 3 次,客服电话都被打爆的团队
- 数据管道:合规爬取但被反爬误伤的场景
- E2E 测试:测试环境模拟真实用户行为
- AI Agent 框架接入:Claude Computer Use、Operator 类应用的浏览器底层
上手成本上要提醒一句:Fortress 需要自行编译或使用官方 release。Chromium 全量编译对机器要求不低,32 核 + 64G 内存起步,第一次编译两三个小时是常态。生产环境建议直接用官方发布的二进制,别自己折腾。
另外,模型侧调用如果你已经在用 OpenAI Hub 这类聚合服务,把 Fortress 作为浏览器底层,上层继续用 GPT、Claude、Gemini 做规划和推理,是很自然的组合——OpenAI Hub 一个 Key 覆盖主流模型,浏览器层由 Fortress 兜底,两边都不用重复造轮子。
最后
Fortress 不是第一个做 Chromium 隐身 fork 的项目,也不会是最后一个。但它出现的时间点很微妙:Browser Agent 正从 demo 走向生产,从 Anthropic、OpenAI 到国内一堆创业公司都在押这个方向,反爬这道门槛已经从"小烦恼"变成了"卡脖子问题"。
一个从源码层解决问题、又保持 CDP 兼容的开源方案,哪怕它未来维护跟不上,也已经把一批实践经验沉淀到社区里了。这种项目的价值,很多时候不在于自己能活多久,而在于它把讨论推进到了下一个阶段。
下一步值得盯的,是 Cloudflare 和 DataDome 会不会针对 Fortress 出新的检测规则。这场猫鼠游戏,才刚换了一个回合。
参考来源
- Fortress GitHub 仓库 - 项目源码与文档
- SkillTrustBench 与 Agent 安全评测 - 腾讯朱雀实验室相关研究(注:原文来自朱雀实验室,可参考 GitHub 上的 AI-Infra-Guard 项目 https://github.com/tencent/AI-Infra-Guard)
- AI Agent 与浏览器入口重构 - 关于 Browser Agent 生态演进的分析



