新闻详情

新闻详情

首页 / 资讯中心 / 详情

CyberStrikeAI 浏览器扩展实战:在 DevTools 中捕获 Network 流量并驱动 AI 安全测试

发布时间:2026/9/17 20:40:52来源:尧图网络
CyberStrikeAI 浏览器扩展实战:在 DevTools 中捕获 Network 流量并驱动 AI 安全测试
CyberStrikeAI 浏览器扩展实战在 DevTools 中捕获 Network 流量并驱动 AI 安全测试【免费下载链接】CyberStrikeAIThe system of action for AI-native cybersecurity—where intent becomes governed execution, evidence becomes operational memory, and every operation improves the next.项目地址: https://gitcode.com/GitHub_Trending/cy/CyberStrikeAICyberStrikeAI 官方提供了一个 Chrome / EdgeChromiumDevTools 扩展它直接在开发者工具中捕获 Network 流量把真实的 HTTP 请求发送到 CyberStrikeAI 服务端进行 AI 辅助安全测试。本文基于仓库中的 中文说明文档当前版本 0.3.10与扩展源码逐节展开从安装到捕获管线、HTTP 归一化、AI 发送与 SSE 流式输出、Token 会话安全再到内存上限、性能取舍、打包发布与常见问题排查读完你可以完整上手这个扩展并理解它与 Burp Suite 插件在能力上的对齐关系。一、扩展定位DevTools 里的 AI 渗透测试入口该扩展的核心工作流可以概括为一句话在开发者工具中捕获 Network 流量 → 发送到 CyberStrikeAI 进行 AI 辅助安全测试。官方文档明确说明其能力与 Burp Suite 插件对齐并按生产场景做了性能与体验优化。与 Burp 插件最大的差异在于流量来源Burp 插件读取 Proxy 历史而浏览器扩展直接监听 DevTools Network 面板背后的chrome.devtools.network事件。能力Burp 插件浏览器扩展流量来源Proxy 历史DevTools Network连接配置Tab 内Tab 内可折叠HTTP 格式HTTP/1.1展示/Prompt 归一化为 HTTP/1.1项目/角色/模式Send 弹窗Send 弹窗SSE 输出Progress FinalProgress Final捕获开关—● 捕获中 / ○ 已暂停二、快速开始安装与首次连接只需 5 步UI 为英文中文说明见官方文档打开chrome://extensions/→ 开启开发者模式→ 点击加载已解压的扩展程序选择目录plugins/browser-extension/cyberstrikeai-browser-extension/打开目标页面 → 按F12→ 点击 DevTools 顶部新增的CyberStrikeAITab填写 Host / Port / Password → 点击Validate首次会请求访问服务器地址的浏览器权限在左侧选中捕获到的请求 →Send→ 在Output区查看 AI 流式结果。点击浏览器工具栏图标只能查看只读连接状态完整配置与操作均在 DevTools 面板内完成。这一Popup 只读 DevTools 主工作区的分工是有意为之——不在 Popup 中重复完整配置表单避免与主流程脱节位置用途DevTools 面板连接、Validate、捕获、Send、Output主工作区扩展 Popup只读连接状态 版本号 打开 DevTools 引导三、MV3 架构manifest 声明了哪些能力从 manifest.json 可以看到这是一个标准的 Manifest V3 扩展版本 0.3.10关键声明如下devtools_page: devtools.html使扩展能在 DevTools 中注册自定义面板permissions: [storage]仅申请存储权限optional_host_permissions: [http://*/*, https://*/*]按需optional的主机权限——这是后文 Validate 时会弹出允许访问服务地址权限框的原因且插件只申请当前所填写的 CyberStrikeAI 服务 origin无需开启全站访问background: { service_worker: background/service-worker.js }MV3 以 Service Worker 作为后台中枢action: { default_popup: popup/popup.html }工具栏图标挂载只读状态 Popup。目录结构与 官方文档 一致manifest.json # MV3 清单 background/service-worker.js # 捕获队列、Panel Port、全局开关 devtools.js # Network 监听最早过滤 devtools.html panel/ panel.html / panel.js / panel.css # 主 UI popup/ popup.html / popup.js / popup.css # 只读状态 lib/ auth-session.js # Token 过期检测与剩余时间提示 api.js # 登录、SSE、项目/角色 API storage.js # 配置 session token expires_at capture.js # HAR 摘要、静态过滤 http-normalize.js # HTTP/2 → HTTP/1.1 展示/Prompt formatter.js # toPrompt 组装 markdown.js # Final Markdown 渲染 catalog-cache.js # 项目/角色 5 分钟缓存 constants.js # 上限常量 icons/ # 16 / 48 / 128 package.sh四、流量捕获管线devtools → service-worker → panel捕获数据流为devtools.js监听 Network →background/service-worker.js维护每 Tab 队列 → Panel 通过 Port 订阅。这条链路上有三层过滤是高流量 SPA 下不拖慢网页的关键。4.1 devtools.js最早的预过滤devtools.js 通过chrome.devtools.network.onRequestFinished监听请求完成事件。源码中可以看到几个关键设计内存标志位filterApiOnly与captureEnabled直接存于内存let filterApiOnly true; let captureEnabled true;注释写明In-memory flags — avoids storage read on every network request即每个网络请求到达时都不读 storage只通过chrome.storage.onChanged监听和运行时消息set-filter-api/set-capture-enabled同步预过滤优先调用mightCaptureRequest(url, resourceType, filterApiOnly)命中的静态资源在读取响应体request.getContent之前就被丢弃——这是官方文档中静态资源 URL / MIME 预过滤命中前不读响应体的源码依据过滤通过后用summarizeHarEntry(request, body, resourceType)生成摘要 entry再以capture-entry消息发给 Background。4.2 过滤规则XHR/Fetch only 与静态资源黑名单capture.js 中的mightCaptureRequest定义了两种模式filterApiOnly默认开启即XHR/Fetch only开关只放行xhr、fetch、websocket三类资源即只捕获 API 类请求关闭 XHR only 时仍会过滤static类型资源与静态扩展名 URLjs/css/png/jpe?g/gif/svg/webp/ico/woff2?/ttf/eot/map/wasm以及 MIME 前缀为image/、font/、audio/、video/、text/css的响应。4.3 service-worker.js每 Tab 队列与订阅广播service-worker.js 是捕获中枢从源码可以看到capturesByTabMap维护每个 Tab 独立的捕获列表新条目list.unshift(entry)插入队首trimCaptures把长度钳制在 200 条以内超出丢弃最旧Panel 通过chrome.runtime.connect建立名为cyberstrike-panel的 Port 并发送subscribe消息Worker 先回推该 Tab 的历史全量列表{ type: list, entries }之后每条新捕获经broadcastTab增量推送cleanupOldTabs保证同时最多保留20 个 Tab 的捕获槽超限时丢弃非当前 Tab 的数据get-latest-api消息实现了Latest XHR按钮的底层逻辑在当前 Tab 列表中find第一条resourceType为xhr或fetch的条目。4.4 单条截断与摘要结构summarizeHarEntry生成列表所需的摘要对象title形如GET /api/foo并在入库时就截断请求体64KBMAX_REQUEST_BODY: 65536、响应体4KBMAX_RESPONSE_BODY: 4096超长部分以… [truncated]结尾。注意原始 HAR含 HTTP/2 伪首部仍保存在内存 entry 中仅展示与 Prompt 使用归一化版本。五、HTTP 展示与 AI PromptHTTP/2 到 HTTP/1.1 的归一化浏览器在 HTTPS 下走 HTTP/2 时DevTools 捕获到的 HAR 里带有:method、:path、:authority、:status等伪首部。http-normalize.js 负责把它们翻译回经典的 HTTP/1.1 格式与 Burp 插件输出一致且从不修改存储中的原始 HARnormalizeRequestBlock解析:method/:path/:authority若原头部中没有Host行则从伪首部或 URL 中补齐输出GET /api/foo HTTP/1.1\nHost: example.com\nCookie: ...形式normalizeResponseBlock读取:status输出HTTP/1.1 200状态行 常规头。formatter.js 的toPrompt则把归一化结果组装成发给 AI 的 Prompt结构为测试指令默认Perform web penetration testing on this traffic and output results. Test only this endpoint; do not expand to other APIs. [Target] GET https://example.com/api/foo [Request] GET /api/foo HTTP/1.1 Host: example.com ... [Optional: Response (truncated)] HTTP/1.1 200 ...默认指令来自 constants.js 的CSAI_DEFAULT_INSTRUCTION其中Test only this endpoint; do not expand to other APIs明确把测试范围限定在单端点上避免 AI 向其他 API 扩散。六、发送到 CyberStrikeAI四种 Agent 模式与 SSE 流Send 弹窗通过动态 API拉取项目/角色列表——api.js 分别请求/api/projects?limit500与/api/roles结果有 5 分钟本地缓存见lib/catalog-cache.js用户在弹窗中选择项目 / 角色 / 对话模式并填写测试指令。四种对话模式在源码中的定义直接映射到服务端 SSE 端点模式端点附加参数Eino Single (ADK)POST /api/eino-agent/stream—Deep (DeepAgent)POST /api/multi-agent/streamorchestration: deepPlan-ExecutePOST /api/multi-agent/streamorchestration: plan_executeSupervisorPOST /api/multi-agent/streamorchestration: supervisorstreamTest以Accept: text/event-stream发起请求用AbortController持有连接按行解析data:前缀的 JSON 事件type done时结束。Stop按钮做了双层中止本地controller.abort()切断 SSE 连接同时携带conversationId调用服务端POST /api/agent-loop/cancel确保服务端 Agent 循环同步停止。流式输出的截断策略数据上限说明Progress 日志512KB / runMAX_PROGRESS_CHARS: 524288超出截断Final Response进行中的测试不截断当前 run 完整保留Final Response历史 run100KB 软截断MAX_FINAL_ARCHIVE_CHARS: 100000切换到其他 run 时执行Markdown 渲染超100KBMAX_MARKDOWN_CHARS: 100000降级纯文本流式阶段为纯文本结束后经requestIdleCallback渲染Copy按钮可复制当前的 Request / Response / Final。七、安全与权限Session Token、过期探测与服务端 CORS7.1 Token 生命周期从 auth-session.js 与官方文档可以看到完整的安全设计Token 存于chrome.storage.session关闭浏览器即失效不写 local storage登录POST /api/auth/loginbody 为{password: ...}成功后保存expires_at状态栏显示剩余时间如OK · 11h 30m剩余不足 30 分钟时提示expiring soon不会自动续期无 refresh token过期后需重新 Validate需 Password本地过期检测周期30s同时每 30s 向服务端GET /api/auth/validate探测带Authorization: Bearer token切回 DevTools 面板时立即探测一次服务不可达时显示无法连接服务重启服务后 session 被清空Token 失效则显示服务已重启或 Token 已失效401/403时自动清空 Token 并展开连接栏引导重新登录Send 前还会主动校验 Token 有效性。7.2 按需主机权限与 Origin 识别Validate 点击事件直接绑定optional_host_permissions申请流程浏览器权限框只针对当前所填写的 CyberStrikeAI 服务 origin已授权地址不会重复弹窗。服务端一侧同样做了配套从 app.go 的corsMiddleware源码看服务端除了放行同源与操作员显式配置的 origin 外还内置了 Chromium 扩展 origin 识别逻辑——isChromiumExtensionOrigin校验 scheme 为chrome-extension、extension ID 由 16 个 a–p 字符组成Chrome/Edge 扩展 ID 的合法格式并额外拒绝携带端口的 origin不合法的跨域请求直接返回 403cross-origin request denied。cors_security_test.go 中的测试用例验证了合法扩展 origin 会被回显到Access-Control-Allow-Origin而too-short等非法 ID 被拒绝。这意味着升级服务后无需复制插件 ID 或配置 CORS 白名单插件 Validate 即可直连。八、界面说明与按钮速查┌─ 连接栏Validate 成功后可收起────────────────────────────┐ │ Logo │ https://host:port │ 连接设置 │ ● OK │ ├─ 操作栏 ────────────────────────────────────────────────────┤ │ Send │ Latest XHR │ Stop │ Copy │ Clear │ ●捕获中/○已暂停 │ │ XHR/Fetch only │ Debug │ Markdown │ ├──────────────┬──────────────────────────────────────────────┤ │ Test History │ Output │ Request │ Response │ │ Captured Req │ Progress Final Response │ └──────────────┴──────────────────────────────────────────────┘区域说明连接栏Host、Port、HTTPS、Password、Validate成功后收起为https://host:port摘要Test History最多 50 次 Send 记录可回看 Progress / FinalCaptured Requests当前 Tab 捕获列表最多 200 条支持搜索Output默认 Tab流式 Progress Final ResponseRequest / Response查看选中流量的 HTTP/1.1 格式原文控件作用Validate登录并校验 Token进行中再次点击为 Cancel连接设置 / 收起展开或折叠 Host/Port/Password 表单Send对选中捕获发起到 CyberStrikeAILatest XHR选中最近 XHR/Fetch 并 SendStop停止当前 AI 流本地 服务端Clear Output清空当前 run 的 Progress / Final● 捕获中 / ○ 已暂停启用或暂停 Network 捕获XHR/Fetch only只捕获 API 类请求Debug events在 Progress 显示更多 SSE 事件MarkdownFinal 完成后渲染富文本Clear All清空 Test HistoryClear清空当前 Tab 捕获列表九、数据与内存上限不会无限增长所有内存数据都有硬上限集中在 constants.js 的CSAI_LIMITS中数据上限位置清理时机捕获请求200 条 / TabBackground Panel 内存超出丢弃最旧可手动 ClearTab 捕获槽20 个 TabBackground 内存超出丢弃非当前 Tab测试历史50 条Panel 内存超出丢弃最旧Clear AllProgress512KB / runPanel 内存超出截断Final进行中无硬上限Panel 内存—Final历史100KB 软截断Panel 内存切换到其他 run 时配置 Token极小chrome.storage手动改配置三个天然回收点关闭 DevTools→ Panel 内存清空关闭浏览器→ Session Token 失效Service Worker 被 Chrome 回收→ Background 捕获队列清空。十、性能说明场景影响未开 DevTools无影响不监听 NetworkDevTools 开 捕获暂停几乎无影响DevTools 开 捕获中 XHR only仅匹配请求有轻微开销高流量 SPA建议保持XHR/Fetch only不需要时点已暂停源码中对应的优化手段过滤器标志内存化避免每请求读 storage、静态资源不读 body、捕获列表增量插入、搜索防抖、requestAnimationFrame节流流式 UI 更新。十一、打包发布在仓库根目录下执行bash plugins/browser-extension/cyberstrikeai-browser-extension/package.sh # → dist/cyberstrikeai-browser-extension.zippackage.sh 会把扩展目录zip -r打包排除dist/、package.sh与.DS_Store。图标由项目根 logo 图片 生成macOS 使用 sipsLOGOimages/logo.png ICONSplugins/browser-extension/cyberstrikeai-browser-extension/icons for size in 16 48 128; do sips -z $size $size $LOGO --out $ICONS/icon${size}.png done十二、常见问题扩展更新后报错chrome.runtime.connectundefined扩展重载后旧 DevTools 面板上下文失效。请关闭 DevTools → 重新加载扩展 → 再开 F12。Token 过期会自动刷新吗不会自动续期无 refresh token。插件保存expires_at、显示剩余时间每 30s 向服务端校验切回 DevTools 时立即校验。服务重启后 session 清空需重新 Validate。重启服务后状态还显示 OKv0.3.7 起每 30s 探测/api/auth/validate不可达显示黄色警告Token 失效则清空并展开连接栏。重载扩展后请关闭 DevTools 再开 F12。Request 里为什么曾经有:authority、:method那是 HTTP/2 伪首部。展示与 AI Prompt 已归一化为 HTTP/1.1见上文 http-normalize.js 的实现原始 HAR 仍保存在内存 entry 中。Console 里 localhost CORS 报错是插件造成的吗不是。那是页面自身请求本机服务被浏览器拦截与扩展无关。Validate 显示cross-origin request denied升级并重启 CyberStrikeAI 服务。新版服务会自动识别格式合法的 Chrome/Edge 扩展 Origininternal/app/app.go的isChromiumExtensionOrigin无需复制插件 ID 或配置 CORS 白名单插件首次 Validate 时仍会请求访问目标服务地址的浏览器权限。HTTPS 显示无法连接但 Burp 正常Burp 插件会信任自签名证书浏览器扩展不能绕过 Chromium 的 TLS 校验。请先在浏览器中打开服务地址并信任证书生产环境建议使用包含服务 IP/域名 SAN 的受信任证书。Test History 很多会挡住 Captured Requests 吗不会。历史区最高占侧边栏 42%超出部分区域内滚动捕获区占剩余空间。会拖慢网页吗日常浏览不开 DevTools无影响。调试时可用已暂停完全停止捕获。十三、已知限制Chrome不提供Network 面板右键菜单 API → 扩展因此采用Latest XHR一键选中 自建捕获列表的方案Firefox 需about:debugging临时加载storage.session不可用时 Token 回退到local存储无法一键从 Popup 跳转到 DevTools 指定面板Chrome API 限制。小结CyberStrikeAI 浏览器扩展把真实浏览器流量直接接入了 AI 安全测试管线MV3 三层结构devtools 预过滤 → Service Worker 每 Tab 队列 → Panel 订阅保证了高流量页面下的低开销HTTP/2 到 HTTP/1.1 的归一化让 AI Prompt 与 Burp 插件输出保持一致Session Token 30s 探测 服务端扩展 Origin 识别构成了闭环的认证与 CORS 策略全部内存数据都有明确上限与回收时机。对于希望在真实 Web 应用中边调试边做 AI 辅助渗透测试的场景它提供了一条DevTools 即 Proxy的轻量路径。【免费下载链接】CyberStrikeAIThe system of action for AI-native cybersecurity—where intent becomes governed execution, evidence becomes operational memory, and every operation improves the next.项目地址: https://gitcode.com/GitHub_Trending/cy/CyberStrikeAI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

FluidVoice支持哪些语言:Parakeet 25种与Whisper 99种语言完整清单 2026/9/17 21:23:09

FluidVoice支持哪些语言:Parakeet 25种与Whisper 99种语言完整清单

FluidVoice支持哪些语言:Parakeet 25种与Whisper 99种语言完整清单 【免费下载链接】FluidVoice Fastest and only macOS Dictation app with on-device STT and custom trained AI enhancement model. Windows pre-build available! A local Wispr Flow alternativ…

阅读更多 →
Dify离线部署全攻略:Docker镜像与插件离线安装实践 2026/9/17 21:23:09

Dify离线部署全攻略:Docker镜像与插件离线安装实践

先说结论:Dify这玩意儿一旦要在隔离网环境里部署,最折腾的其实不是主程序本身,而是它那套依赖镜像和插件市场机制。我前前后后帮客户搞过好几台离线服务器,从最早的社区版到后来的插件化版本,踩过的坑攒了一堆。这篇就…

阅读更多 →
Burp Suite抓包改包实战:HTTP请求与响应拦截修改全流程 2026/9/17 21:23:09

Burp Suite抓包改包实战:HTTP请求与响应拦截修改全流程

动手抓包和改包这件事,做 Web 开发、接口联调、安全测试的朋友迟早要正面碰上。Burp Suite 是我日常流里面使用频率最高的代理工具,它的核心能力说白了就一句话:站在浏览器和服务器之间,把 HTTP 请求(request&#xff…

阅读更多 →
AD20快捷键底层逻辑:重构PCB设计肌肉记忆 2026/9/17 21:23:09

AD20快捷键底层逻辑:重构PCB设计肌肉记忆

1. 为什么AD20的快捷键不是“背下来就行”,而是必须重构操作肌肉记忆在PCB设计领域,Altium Designer 20(AD20)的快捷键从来就不是一张静态的“按键对照表”——它是一套动态的操作操作系统。我带过三届硬件设计新人,发…

阅读更多 →
Yuxi 产品体验与界面设计规范实战指南:从 Token 体系到 Agent 协作开发 2026/9/17 21:23:09

Yuxi 产品体验与界面设计规范实战指南:从 Token 体系到 Agent 协作开发

Yuxi 产品体验与界面设计规范实战指南:从 Token 体系到 Agent 协作开发 【免费下载链接】Yuxi 可私有部署的多租户知识智能体平台:统一 RAG、知识图谱、多智能体、MCP/Skills、沙盒与权限管理。Self-hosted knowledge agent platform for RAG, knowledge…

阅读更多 →
DeepSeek工程落地:MoE、vLLM、LoRA与显存优化 2026/9/17 21:19:59

DeepSeek工程落地:MoE、vLLM、LoRA与显存优化

简介:《DeepSeek大模型介绍与展望》面向人工智能学习者、算法研究者及技术产品人员,围绕DeepSeek大模型的技术脉络、应用版图与未来趋势展开,帮助读者快速建立从基础概念到产业落地的系统认知。压缩包内仅含1个pptx文件,约24.07MB…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞