从手动渗透测试到自动化:Strix AI 应用安全测试落地指南
【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix
Strix 是一款开源的 AI 渗透测试工具:一组自主智能体在隔离的 Docker 沙箱中,像你信任的资深红队成员一样,动态执行代码、发现漏洞并生成可复现的概念验证(PoC)。它面向需要快速、准确应用安全测试但又不想承担人工渗透成本或静态扫描误报的开发者与安全团队。
它解决什么问题
传统安全测试的三条路都不便宜:人工渗透按周计费、静态扫描误报率高、通用 DAST 工具缺少智能攻击路径探索。Strix 的思路是把资深渗透测试者的方法论沉淀成"技能包",注入到一组协同工作的 LLM 智能体中,让它们在真实沙箱里跑起来,用 PoC 而非猜测来证明漏洞。
与静态扫描工具的根本区别在于验证纪律:Strix 智能体必须为每个候选漏洞走一遍"发现 → 独立验证 → 报告(含内联修复补丁)"的链路,静态分析只能作为定位线索,不能替代动态复现。
技能注入:把通才变成专才
大模型对 SQL 注入"知道",但缺少 WAF 绕过、盲注技术、验证方法这些只有资深测试者才有的细节。Strix 通过技能系统弥补这个缺口:每个技能是一个 Markdown 文件,包含攻击面、方法论、技术手法、绕过方法、验证步骤五段结构。
- 加载时机:智能体创建时,根据其任务上下文最多注入 5 个相关技能到系统提示词
- 覆盖范围:
strix/skills/目录下按 8 大类组织(漏洞类型 / 框架 / 技术平台 / 协议 / 工具调用 / 侦察 / 云 / 自定义),覆盖 OWASP Top 10 及业务逻辑漏洞 - 按需加载:未预加载的技能可通过
load_skill工具在运行时拉取,避免污染提示词预算 - 扩展性:每个技能就是一个带 YAML frontmatter 的
.md文件,团队可以按自身技术栈贡献新技能
参考 技能系统文档 与 strix/skills/ 目录结构。
多代理协同:一次扫描的分工模型
Strix 采用根智能体 + 专科子智能体的树形协作。根智能体只负责编排:拆解目标、派发任务、跟踪覆盖度;真正的探测与验证由专科子智能体执行。
根智能体(编排) ├─ 侦察子智能体:端口扫描、子域枚举、攻击面映射 ├─ 漏洞发现子智能体:按漏洞类型×组件派发 │ └─ 验证子智能体:为每个候选漏洞构建 PoC │ └─ 报告子智能体:提交漏洞报告 + 内联修复补丁关键机制:
- 共享状态:
notes、coverage、threat_model是跨智能体的共享账本,下一个智能体看到的是上一个留下的状态而非推理过程 - 验证强制:只有报告智能体能调用
create_vulnerability_report,且 LLM 去重防止重复提交 - 闭环纪律:每个候选漏洞必须以
confirmed/ruled_out/open_proof_gap之一收尾,不允许"移过去"这种模糊状态
沙箱与工具链
所有智能体运行在同一个 Kali Linux Docker 容器里(默认ghcr.io/usestrix/strix-sandbox),共享/workspace目录与代理历史。容器预装了与专业红队相同的核心工具链:
| 类别 | 内置工具 |
|---|---|
| 侦察 | nmap、subfinder、naabu、httpx、gospider |
| 漏洞扫描 | nuclei、sqlmap、wapiti、trivy |
| 模糊测试 | ffuf、katana、arjun、dirsearch |
| 静态分析 | semgrep、ast-grep、bandit、gitleaks、trufflehog |
| 代理 | Caido(支持 HTTPQL 查询) |
| 浏览器 | Playwright(agent-browser会话隔离) |
| 编程 | Python 3 + uv、Node.js |
沙箱内智能体可自由apt/pip安装额外工具,也可通过 Python 脚本调用caido_api做自动化。
从零部署:三步跑起第一个扫描
前置条件:Docker 运行中 + 任一受支持 LLM 提供商的 API Key。
# 1. 安装 curl -sSL https://strix.ai/install | bash # 或 pipx install strix-agent # 2. 配置 LLM export STRIX_LLM="openrouter/z-ai/glm-5.3" export LLM_API_KEY="your-key" # 3. 扫描 strix --target ./your-app首次运行会自动拉取沙箱镜像,结果写入strix_runs/<run-name>。用strix view可在本地打开仪表盘查看结果与实时智能体图谱。
进阶目标形态(按测试深度选):
| 场景 | 命令 | 说明 |
|---|---|---|
| 黑盒 Web 应用 | strix -t https://app.com | 外部侦察 + 动态测试 |
| 白盒代码库 | strix -t ./src | 静态 triage + 动态复现 |
| 灰盒认证测试 | strix -t https://app.com --instruction "Use credentials: user:pass" | 传入凭据做授权测试 |
| API 契约测试 | strix -t ./openapi.yaml -t https://api.app.com | 直接测试契约声明的所有端点 |
| 多目标联合 | strix -t https://github.com/org/app -t https://app.com | 代码 + 部署联合分析 |
影响结果的少数配置项
真正影响扫描质量与成本的配置项不多,挑最值得关注的:
| 配置项 | 默认值 | 说明 |
|---|---|---|
--scan-mode | deep | quick(分钟级,CI 用)/standard(30 分钟到 1 小时)/deep(1-4 小时) |
--max-budget | 无限制 | 扫描总 LLM 花费上限(USD),达到后干净停机并产出报告 |
--max-turns | 500 | 每个智能体的最大轮数,防止单智能体死循环 |
STRIX_REASONING_EFFORT | high | 推理模型思考深度,quick模式自动降为medium |
STRIX_DEDUPE_MODEL | 同主模型 | 漏洞去重分类用更小更便宜的模型,不占主扫描预算 |
STRIX_TELEMETRY | 1 | 设为0关闭 PostHog/Scarf/OTEL 遥测 |
扫描模式选择原则:PR 用quick(自动 diff-scope 到变更文件)、每周例行用standard、大版本发布前用deep。详见 扫描模式文档。
接入 CI/CD 与团队协作
Strix 原生支持 headless 模式(-n或--non-interactive),退出码即语义:0无漏洞、1执行错误、2发现漏洞。
# GitHub Actions 示例:PR 触发,自动 diff-scope 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 quickPR 场景下quick模式会自动将扫描范围收敛到变更文件(需要fetch-depth: 0拉取完整历史)。同样的 headless 命令可直接嵌入 GitLab CI、Jenkins、CircleCI。
与编码智能体协同:Strix 通过SKILL.md兼容协议让 Claude Code、Cursor、Codex 等编码智能体可以调用本地 CLI 或托管云执行渗透测试、修复发现、配置 CI 扫描——见 AGENTS.md。
运维要点
- 本地结果落盘:每次扫描的完整事件流写入
strix_runs/<run>/events.jsonl,可离线回放 - 远程遥测(可选):设置
TRACELOOP_BASE_URL与TRACELOOP_API_KEY可双写 OpenTelemetry 到远端 - 本地仪表盘:
strix view --host 0.0.0.0 --port 8080 --no-open可对外共享,但打印 URL 的 token 具备读取和操控权限,需防火墙限制 - 资源约束:
STRIX_SANDBOX_EXECUTION_TIMEOUT(默认 120s)控制单条命令沙箱执行上限,长任务按需调大 - 故障定位:headless 退出码
1时先检查 Docker 可用性与LLM_API_KEY;退出码2说明有漏洞,直接查看strix_runs报告
落地清单
- 明确授权边界:只对自己拥有或已获书面授权的系统运行,
--instruction中明确测试范围 - 分层扫描:PR 用
quick、周例行用standard、大版本用deep,按节奏而非一刀切 - 设预算上限:
--max-budget防止 LLM 成本失控,子智能体在 90% 时自动停止 - 技能定制:针对自有技术栈贡献技能文件,比泛用扫描器更能命中业务逻辑漏洞
- 接入编码智能体:通过
SKILL.md协议让编码智能体在本地或云端直接调用 Strix 引擎
Strix 以 Apache 2.0 协议开源,技能系统与工具链均可二次扩展,为企业级 AI 安全测试平台提供了可审计、可复现的技术底座。
【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考