传统安全扫描器擅长按规则匹配漏洞,但面对复杂业务流程、需要登录的页面、动态 JavaScript 和多个漏洞串联时,往往只能给出线索,不能说明漏洞是否真的可利用。Strix 试图把“发现问题、编写利用代码、验证影响、生成修复建议”放到同一个 AI 渗透测试工作流中。
Strix 的官方定位是“开源 AI penetration testing tool”,强调让自主 AI 黑客像真实渗透测试人员一样运行目标代码、映射攻击面、尝试利用并产出可复现的 Proof of Concept。它不是只读的 SAST 报告器:在获得授权和明确范围后,Agent 可以使用浏览器、HTTP 代理、Shell、Python 利用运行时、静态/动态分析和多 Agent 协作工具,对本地代码、部署中的 Web 应用、API 合约或 GitHub 仓库进行测试。
截至 2026 年 8 月 13 日,GitHub API 快照显示 Strix 约有 51,612 个 Star、5,542 个 Fork 和 278 个未关闭 Issue,主要语言为 Python,默认分支为 main,采用 Apache-2.0 许可证。最新正式 Release 为 v1.5.3,发布于 2026 年 8 月 10 日;PyPI 项目 strix-agent 与仓库 pyproject.toml 也标记为 1.5.3。仓库处于 Alpha 级别并快速迭代,部署前应固定版本并阅读变更说明。
Strix 是什么?
Strix 是一个以 Python CLI 为核心的 AI 渗透测试框架。用户提供一个或多个目标,配置 LLM Provider,Strix 在 Docker 等运行时中启动安全 Agent,使用工具与目标交互,记录发现和会话状态,最后生成本地报告。目标可以是本地应用目录、GitHub 仓库、线上 Web 应用、API 域名、OpenAPI/Swagger 文档或 Postman Collection。
它的“AI”部分主要负责规划测试路径、理解代码和业务语义、选择工具、编写验证脚本以及在多 Agent 之间共享发现;它的“安全工程”部分则负责沙箱、代理、浏览器、扫描模式、PoC、严重性、CVSS、OWASP 分类和报告产物。两者缺一不可:没有工具和隔离,模型只能给建议;没有模型的推理与协调,大量安全工具又容易变成互不相连的命令集合。
一次扫描的工作流
- 定义范围:用户指定目标、额外指令、排除项、扫描模式和是否使用差异范围。
- 准备运行时:本地 CLI 读取配置,启动 Docker 沙箱、Caido 代理和浏览器等组件。
- 建立攻击面:Agent 枚举路由、子域、API、参数、认证流程、依赖和代码入口。
- 分工测试:主 Agent 可以创建侦察、漏洞类型或组件专门 Agent,让它们并行调查。
- 动态验证:Agent 运行请求、浏览器操作、Shell 命令和自定义 Python PoC,确认输入是否能导致真实影响。
- 去重与分级:报告层合并重复发现,补充严重性、CVSS、OWASP 分类和证据。
- 输出修复:生成本地 Dashboard、报告、SARIF 或修复建议;在允许的工作流中,还可以生成补丁并重新扫描验证。
与“扫描器发现一个可疑参数就报高危”不同,Strix 的系统提示要求 Agent 先理解目标,再用 PoC 验证;只有报告 Agent 才能创建正式漏洞报告。这种 Discovery → Validation → Reporting 链路有助于减少误报,但也意味着运行时间、模型成本和基础设施开销会更高。
Agent 工具箱
浏览器与 Web 交互
Strix 使用自动化浏览器测试登录、表单、跨站脚本、CSRF、点击劫持、权限绕过和复杂 JavaScript 流程。Agent 可以观察 DOM、截图、填写输入、维持会话并验证页面行为。浏览器会话在多 Agent 场景中需要独立命名,否则一个 Agent 的导航可能改变另一个 Agent 当前页面。
HTTP 拦截代理
项目集成 Caido 作为请求与响应分析层。所有经过代理的流量可以被记录、修改和查询,适合做参数变异、认证头分析、重放和漏洞证据收集。代理带来的好处是可观察性强,代价是目标数据、Cookie、Authorization 头和请求正文会进入本地运行环境,日志与结果目录必须按敏感数据管理。
Shell 与利用运行时
Agent 可以使用交互式终端安装依赖、运行测试、查看进程、编写脚本和复现漏洞;Python Sandbox 用于编写 PoC 并验证影响。Shell 是最强也最危险的工具之一:它可能执行删除、网络扫描、依赖安装或凭据读取命令,CI 和服务器环境必须使用专用账户、最小权限与可回滚工作区。
侦察与代码分析
Strix 将 OSINT、子域枚举、指纹识别、SAST 与 DAST 结合。系统提示还列出了 Nuclei、Trivy、Wapiti、CVE 映射和其他安全工具的协作方式。工具结果会被 Agent 汇总到攻击面和漏洞假设中,再交给专门 Agent 验证。
支持的漏洞类型
README 将能力覆盖到 OWASP Top 10 及更广范围,包括:
- 访问控制:IDOR、越权、权限提升和认证绕过。
- 注入:SQL/NoSQL 注入、命令注入和服务端模板注入。
- 服务端漏洞:SSRF、XXE、不安全反序列化和 RCE。
- 客户端漏洞:存储型、反射型和 DOM XSS、CSRF、原型污染。
- 业务逻辑:竞态、支付篡改、工作流绕过和批量操作缺陷。
- 认证与会话:JWT 攻击、会话固定和凭据滥用路径。
- 基础设施与云:错误配置、暴露服务和云安全问题。
- API 安全:认证缺陷、批量赋值、速率限制绕过和未保护接口。
这份清单是能力方向,不是保证清单。模型、目标状态、登录凭据、网络连通性和工具版本都会影响覆盖率;一轮扫描没有报告漏洞,不等于应用不存在漏洞。
多 Agent Graph:像红队一样协作
Strix 的多 Agent 编排是其区别于普通扫描器的核心之一。它可以让不同 Agent 分别负责侦察、认证分析、SQL 注入、XSS、业务逻辑或报告验证,并通过共享上下文传递端点、凭据、已知假设和证据。多个目标还可以并行执行,缩短大范围评估时间。
项目系统提示明确要求“一个 Agent 一个任务”“发现后再创建专门 Agent”“每个漏洞都要有独立验证链”。这样做可以减少一个泛化 Agent 同时处理几十种漏洞时的上下文混乱,但也可能增加模型调用次数和成本。实际运行时应根据目标规模限制并发、预算和每类工具调用次数。
多 Agent 不等于多台隔离机器。源码提示说明 Agent 可能共享同一个 Docker 容器,但拥有各自终端会话;浏览器默认也可能共享,需要显式传入独立 session。若测试目标包含账号、支付流程或高风险操作,必须验证会话和浏览器隔离是否符合你的规则。
扫描模式与目标类型
本地代码与 White-box
把应用目录作为目标时,Strix 可以读取源代码、依赖、配置和测试,结合动态启动的服务进行白盒或灰盒分析。源代码上下文有助于理解危险数据流,例如用户输入如何到达数据库或命令执行点;但它也意味着模型会接触整个仓库,密钥、客户数据和私有业务逻辑应在扫描前清理或脱敏。
线上黑盒与 Gray-box
对于部署中的域名,Strix 可以做黑盒 Web 测试;通过 --instruction 或指令文件,还可以提供测试账号和灰盒规则。必须明确允许的域名、路径、时间窗、请求频率、禁止动作和数据处理方式,不能把“能访问”误解成“可以测试”。
API 合约
OpenAPI/Swagger 文件和 Postman Collection 能让 Agent 直接知道所有声明端点,而不必完全依赖爬虫发现。Strix 支持本地 JSON/YAML 文件、Postman Collection ID 与环境变量解析;使用线上合约时,应确认 API Key、环境变量和集合内容没有把生产凭据写入结果目录。
差异范围扫描
在 Pull Request 或 CI 中,可以使用 --scan-mode quick 和 --scope-mode diff 把重点限制到变更文件。README 提醒,GitHub Actions 需要完整历史(例如 fetch-depth: 0),否则差异范围无法解析;也可以显式提供 --diff-base。这类扫描更快、更适合门禁,但不替代定期全量测试。
本地报告与 Viewer
每次运行都会把结果写入 strix_runs/<run-name>。执行 strix view 可以打开最近一次运行,或用 strix view my-run-name 查看指定报告。Viewer 启动轻量本地服务器,绑定 127.0.0.1 的随机端口,并通过带 Token 的私有链接打开;README 强调数据直接读取本地文件,不需要上传云端。
Dashboard 通常包含运行状态、目标、严重性分布、每个已验证漏洞的详情和复现步骤、Agent Graph、实时 Steering、历史运行和报告生成。Viewer 的本地优先设计适合处理敏感漏洞证据,但分享报告或通过邮件发送前,必须检查请求头、Cookie、内部域名、源码片段和个人信息是否已经脱敏。
安装与首次扫描
Strix 要求 Python 3.12 或更高版本,并需要 Docker 运行沙箱。首次扫描会自动拉取沙箱镜像。官方提供安装脚本和 PyPI 包,适合先在独立虚拟环境或测试主机验证:
# 先下载并审阅安装脚本,再执行
curl -sSL https://strix.ai/install -o /tmp/strix-install
less /tmp/strix-install
bash /tmp/strix-install
export STRIX_LLM="openai/gpt-5.4"
export LLM_API_KEY="YOUR_TEST_PROVIDER_KEY"
# 只扫描你拥有或获得书面授权的本地目录
strix --target ./app-directory
# 查看最近一次本地结果
strix view若使用 Python 包,可以通过 uv 创建环境并安装 strix-agent。项目依赖 OpenAI Agents、LiteLLM、Pydantic、Docker SDK、Caido SDK、ReportLab、pypdf、CVSS 等;因此建议使用锁定的 uv.lock,避免因依赖漂移导致 Agent、沙箱或报告格式变化。
LLM Provider 与配置
Strix 通过 LiteLLM 和 OpenAI Agents 接入多家模型。README 给出的示例包括 OpenAI、Anthropic、Google Vertex AI、Amazon Bedrock、本地模型和 OpenRouter 等。主要配置变量有:
STRIX_LLM:Provider 与模型标识,例如openai/gpt-5.4。LLM_API_KEY:模型服务凭据,应通过 CI Secret 或本地密钥管理器注入。LLM_API_BASE:自定义或本地模型端点,例如 Ollama、LM Studio 或企业代理。PERPLEXITY_API_KEY:需要搜索能力时使用。STRIX_REASONING_EFFORT:控制推理强度,默认偏高,快速扫描可降低。STRIX_RUNTIME_BACKEND:运行时后端,默认是 Docker。
配置会自动保存到 ~/.strix/cli-config.json。这个文件包含环境配置和敏感信息,必须设置合适的文件权限,不能进入版本控制、Docker 镜像和普通日志。若使用 ChatGPT 订阅登录,应把它视作账户授权凭据,采用最小权限和专用账号,不要在共享服务器上复用个人浏览器会话。
Docker 沙箱架构
Strix 的 Runtime 层在 Docker 容器中启动 Agent 工具和目标环境。默认镜像来自 ghcr.io/usestrix/strix-sandbox,容器会配置浏览器、Caido、网络和文件挂载。源码对容器资源做了多项保护:可以设置 CPU/内存、限制容器日志,绑定 host.docker.internal 到宿主机网关,并把暴露端口绑定到本机。
Docker 并不是万能沙箱。容器如果挂载了宿主机目录、拥有过高能力、加入可访问生产网络的 Docker network,Agent 仍可能影响宿主机或其他服务。源码支持自定义网络和只读挂载,使用时应只提供必要代码、测试数据和端口;绝不要把 Docker Socket、云凭据目录或生产文件系统直接挂给扫描容器。
README 的系统提示还明确说明:沙箱内部不能再运行 Docker。需要容器级操作时,应由外层运行时创建或管理,而不是让 Agent 在沙箱内自行启动特权容器。这个边界可以防止常见的 Docker-in-Docker 逃逸和权限混淆。
CI/CD 与 Pull Request 门禁
Strix 支持在 GitHub Actions 中对 Pull Request 执行快速安全评估。典型流程是检出完整 Git 历史、安装 Strix、注入 STRIX_LLM 和 LLM_API_KEY Secret,再以非交互模式执行差异范围扫描:
name: strix-penetration-test
on:
pull_request:
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install Strix
run: curl -sSL https://strix.ai/install | bash
- name: Run Strix
env:
STRIX_LLM: ${{ secrets.STRIX_LLM }}
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
run: strix -n -t ./ --scan-mode quick非交互模式会在发现漏洞时以非零状态退出,适合阻断不安全变更。CI 中必须避免把 PoC、日志和测试凭据上传到公开 Artifact;对于外部贡献者的 Pull Request,应使用隔离 Secret 策略,防止恶意代码借助 Agent 获得高权限环境变量。
从 Coding Agent 调用 Strix
仓库提供四个可供 Claude Code、Cursor、Codex 或兼容 SKILL.md 的 Agent 使用的技能:本地渗透测试、托管平台渗透测试、修复并复扫、CI 安全扫描。安装技能后,上层 Coding Agent 可以启动 Strix、读取结果、生成修复并再次验证。这样能把安全测试加入开发循环,但也形成“Agent 调用 Agent”的权限叠加。
实践中应让上层 Agent 只获得必要技能和目标范围,并要求它在执行扫描前展示授权范围,在提交修复前展示 Diff,在重新扫描后保留证据。托管平台 REST 调用与本地 CLI 的数据流不同,使用云平台前要单独核对代码上传、报告保留、BYOK、SSO、合规和地区要求。
发现、验证与报告
Strix 的报告层不只记录“可能存在 SQL 注入”。它可以保存请求与响应、复现步骤、PoC 输出、影响说明、CVSS、OWASP 分类、代码位置和修复建议。去重模块用于避免同一根因产生几十条重复发现;SARIF 输出则方便接入 GitHub Code Scanning 或其他安全平台。
验证过程是最值得关注的部分。安全团队应审阅 PoC 是否在授权范围内,是否修改了真实数据,是否产生副作用,是否只验证了测试账号,是否需要回滚状态。高质量报告需要保留最小可复现证据,而不是上传完整数据库、密码、Session Cookie 或未脱敏的用户资料。
安全使用边界
Strix README 明确写着“Authorized use only”:只能对自己拥有或获得明确书面许可的系统进行测试,并遵守约定范围。未经授权扫描公网、枚举他人子域、尝试登录、发送利用载荷或运行破坏性 PoC,可能违法,也可能造成服务中断。工具的 Apache-2.0 许可证不等于目标系统授权。
建立 Rules of Engagement
开始扫描前,应记录目标域名和 IP、允许的路径、时间窗口、并发和请求速率、允许的测试账号、禁止的高风险动作、数据处理方式、紧急联系人和停止条件。通过 --instruction-file 把规则传给 Agent,并在 CI 和本地运行中复用同一份经过审查的文件。
隔离凭据与网络
为扫描创建专用账号和最小权限 API Key,避免使用生产管理员凭据。将目标放在测试环境或只读数据副本中,限制沙箱出口网络,禁止访问云元数据、内部管理面和无关网段。对于外部目标,先通过授权文件确认网络路径和第三方服务允许被测试。
控制成本与副作用
多 Agent、浏览器、代理和 LLM 推理都可能消耗大量资源。设置每轮工具调用限制、模型预算、超时、并发和容器日志上限;在支付、删除、发信、注册和数据写入路径上优先使用模拟环境。发现漏洞后暂停自动扩大范围,先由人工确认影响。
Strix 的优势
- 验证优先:强调可运行 PoC 和复现步骤,目标是减少传统扫描器的误报。
- 黑盒到白盒:既能测试线上 Web,也能阅读本地代码和 API 合约。
- 工具丰富:浏览器、Caido、Shell、Python、OSINT、SAST、DAST 和漏洞知识库可以协作。
- 多 Agent:能按漏洞类型、组件或阶段拆分专门任务。
- 开发者友好:CLI、Viewer、SARIF、CI/CD、自动修复和重新扫描更容易进入研发流程。
- 本地优先:开源 CLI 的扫描结果默认写在本机,不强制上传云端。
局限与风险
AI 渗透测试不是人工红队的完全替代。模型可能遗漏关键业务流程、误解认证状态、生成不安全的 PoC,或因为环境限制无法到达真实目标。多 Agent 只能增加探索路径,不能保证完整覆盖;“没有发现”不能当作安全证明。
Strix 还处于 Alpha 级别,依赖 OpenAI Agents、LiteLLM、Docker、Caido、浏览器和多种安全工具,升级链路较长。容器、代理、浏览器和目标应用之间的网络配置会影响结果;报告与日志包含高敏感安全数据,Viewer、邮件分享和 CI Artifact 都需要额外保护。
成本也不可忽视。深度扫描需要多轮 LLM 调用、浏览器操作和自定义利用,可能比传统扫描昂贵和耗时。建议先用 quick/diff 扫描建立门禁,再定期用 standard 或完整范围做深度评估,并把高风险漏洞交给人工复核。
许可证与第三方组件
Strix 主项目采用 Apache License 2.0,允许商业使用、修改和再分发,但分发修改版本时需要保留许可证和归属声明,并对修改文件作适当标注。项目还集成 LiteLLM、Caido、Nuclei、Playwright、Bubble Tea 等开源组件,二次分发或打包时应核对每个依赖的许可证、商标和 NOTICE 要求。
许可证只解决代码使用权,不解决渗透测试授权、模型服务条款、目标数据隐私、第三方网络扫描许可或报告合规。准备将 Strix 集成到商业安全平台时,应同时审查这些边界。
适合谁使用?
Strix 适合应用安全团队、红队、DevSecOps 团队、漏洞赏金研究者和希望把安全验证加入 CI 的开发者。它尤其适合拥有测试环境、能配置 Docker 沙箱、愿意维护模型凭据并能人工复核 PoC 的团队。
如果你只想快速检查依赖漏洞,Trivy 或包管理器审计可能更轻量;如果需要正式合规渗透测试、复杂业务判断或对关键生产系统负责,Strix 应作为辅助工具,不能替代有资质人员和正式 Rules of Engagement。没有隔离环境或书面授权时,不应运行主动测试。
总结
Strix 将 LLM 推理、多 Agent 协作、浏览器、HTTP 代理、Shell、PoC 沙箱和报告系统组合成一条“发现—验证—修复—复扫”的 AI 渗透测试链路。它的价值在于把安全测试从静态告警推进到可复现证据和开发者可执行的修复建议,并通过 CLI、Viewer、SARIF 与 CI/CD 接入研发流程。
它的前提同样明确:所有测试必须获得授权,目标范围必须可追踪,沙箱和凭据必须隔离,PoC 与报告必须脱敏,自动修复必须经过 Diff 和人工复核。把 Strix 当作可审计的安全工程工具,而不是“自动攻击器”,才能在提高发现速度的同时控制法律、隐私、成本和业务风险。



