乐于分享
好东西不私藏

Strix,融合源码理解与运行态验证的 AI 渗透测试框架

Strix,融合源码理解与运行态验证的 AI 渗透测试框架

在传统的供应链安全中,有两个重要工具:静态扫描工具(SAST),直接扫描代码,找代码的未知漏洞,动态扫描工具(DAST),如OWASP ZAP,Nessus等,一般用于发现系统中存在的已知漏洞。两者结合,解决软件的漏洞问题。但这两个工具都有些问题无法解决,包括:
1.SAST一般为各种规则为主,误报率高,无法在实际环境中确认漏洞是否真正起效。
2.DAST 主要依赖预定义攻击模式,对业务逻辑、权限关系和代码层缺陷的理解能力有限,因此难以系统性验证 SAST 发现的问题。
解决这个问题的办法就是渗透测试,渗透测试又分为黑盒和白盒,黑盒是指不看源代码,直接寻找漏洞,效率非常低,白盒是指在分析源代码的基础上,通过实际运行发现漏洞,这个效率更高。研发内部的渗透测试一般使用白盒,效率比较高。但即使如此,人工的渗透测试仍然是成本非常高的活动,很多时候被迫忽略。
看了很多的AI代码安全工具及渗透测试工具,大部分仍然集中在黑盒或白盒的层面,而Strix,则是把黑盒和白盒结合在一起的AI工具(第一个?),这是个非常好的创新。

01

Strix介绍

strix的安装和使用非常方便。
安装
#Install Strixcurl -sSL https://strix.ai/install | bash#Or via pipxpipx install strix-agent
扫描代码或应用
# Scan a local codebasestrix --target ./app-directory# Security review of a GitHub repositorystrix --target https://github.com/org/repo# Black-box web application assessmentstrix --target https://your-app.com
最重要的是,你可以同时把代码和应用送给它,这就是标准的白盒渗透模式
# Multi-target testing (source  code + deployed app)strix -t https://github.com/org/app -t https://your-app.com
启动时,Strix 会在 Docker 容器内创建一个沙箱。所有程序都在隔离环境中运行,因此不会有任何危险程序泄漏。
在沙箱环境中,多个AI代理开始协同工作。它们扫描你的路由,发送HTTP请求,注入有效载荷,并解读响应。
如果漏洞看起来真实存在,Strix 会更进一步。它会创建一个可用的漏洞利用程序,安全地运行它,并确认攻击是否真的有效。
输出结果将保存在本地文件夹中,其中包含详细日志、概念验证和建议的修复方案。
这个思路非常好,它只报真漏洞,最大化的降低误报的处理成本。
让我们来看几个例子,了解一下 Strix 的实际应用。
1)不安全的直接对象引用 (IDOR)
想象一下,有一个 API 可以根据用户 ID 返回用户发票。
GET /invoices/123Authorization: Bearer <token>
该端点通过数字 ID 查找发票并返回记录,而不验证请求者是否拥有该记录。
运行 Strix 时,侦察代理会映射路由,认证代理会检查令牌行为。这些代理会自动尝试访问相邻的 ID,并重用其他测试帐户的令牌。
Strix 会发送一个请求,例如GET /invoices/124使用用户 A 的令牌,并观察响应。如果 API 返回的发票属于用户 B,则 Strix 确认 IDOR。
该报告包括成功的确切请求、受影响的资源 ID 以及建议的修复方案,例如强制执行服务器端所有权检查并将 ID 映射到用户范围,而不是接受原始数字标识符。
2)通过不安全反序列化实现远程代码执行 (RCE)
考虑一个接受序列化作业负载以进行后台处理的微服务。
@app.post("/jobs")def create_job(payload: bytes):    job = pickle.loads(payload)    job.run()    return {"status""queued"}

如果服务盲目地反序列化并执行来自不受信任输入的对象,攻击者可以发送精心构造的对象,在服务器上运行代码。
Strix 在安全的 Docker 沙箱中运行该服务,代理程序会构建一个无害的测试载荷。反序列化后,它会触发沙箱内的操作。
如果服务执行了该对象,Strix 会记录结果,并保存序列化的概念验证及其生成的输出。报告会显示有效负载和输出,以便您自行查看问题所在。

02

strix的架构及原理

strix架构图
架构设计理念
Strix是一个AI驱动的渗透测试编排框架,其核心设计理念是通过AI智能代理模拟人类安全专家的思维模式,实现自主化的安全测试。与传统的工具集成平台不同,Strix本质上是一个认知型编排系统,它不是简单地调用预设工具,而是像真正的黑客一样思考、规划和行动。
三层架构体系
  1. LLM认知层 系统顶层集成了多种大语言模型(OpenAI GPT、Anthropic Claude、本地LLM等),为AI代理提供推理和决策的认知能力。这一层是整个系统的”大脑”,赋予代理理解上下文、分析问题和制定策略的能力。
  2. AI智能编排层(核心) 这是Strix的核心引擎,包含四个关键组件:
  • 主控管理代理:负责高层战略规划,将复杂的渗透测试任务分解为可执行的子任务
  • ReAct认知循环:实现”推理→行动→观察→思考”的迭代过程,使系统能够根据实时反馈动态调整策略
  • 专门工作代理组:包括侦察、扫描、利用、验证和报告等专门代理,每个代理负责特定领域的任务
  • 多代理协作机制:确保各代理之间的信息共享和策略协同,构建完整的攻击链

3. Docker沙箱执行层

 所有实际的测试操作都在隔离的Docker容器中执行,确保安全性。该层提供六大内置核心能力:HTTP代理引擎用于流量操控、浏览器自动化进行客户端测试、系统Shell访问执行命令级操作、Python运行时开发自定义利用、攻击知识库提供模式参考、智能报告器生成结构化输出。

运行流程
测试启动后,用户通过CLI、CI/CD等提交目标(代码库、Web应用或API)。主控管理代理接收任务,利用LLM的认知能力分析目标特征并制定初始策略。随后,通过ReAct循环,系统开始迭代式探索:先进行侦察收集信息,发现潜在攻击面后分配专门代理深入测试,发现漏洞后立即在沙箱中尝试利用并验证。
整个过程中,AI代理会根据实时反馈不断调整策略,就像经验丰富的渗透测试专家一样灵活应对。最终,系统输出包含漏洞详情、PoC验证代码、CVSS评分和修复建议的完整报告,并可自动生成代码补丁或阻止CI/CD流程。
这种架构设计使Strix能够在保持高度自动化的同时,提供接近人工渗透测试的智能性和准确性,将传统需要数周的测试工作压缩到几小时内完成。

03

Strix 的思考方式

在幕后,Strix 使用了一种叫做协调图的技术。它是一个由人工智能代理组成的网络,这些代理可以共享数据和任务。
一个代理可能负责映射端点,另一个代理可能负责生成有效载荷,而第三个代理则负责记录成功的攻击。
这种协作方式使 Strix 更高效、更灵活。代理可以将大型任务分配到应用程序的不同区域,共享结果并不断提高准确性。
它感觉不像是一个单一的工具,而更像是一个了解你应用程序结构的专业黑客小团队。
Strix 的设计旨在自然融入开发人员的工作流程。它通过一个简单的命令行界面运行。
报告以纯文本文件形式存储,您可以使用任何编辑器打开。无需学习复杂的仪表盘,也无需安装任何大型代理程序。
您可以扫描本地项目目录、GitHub 代码库或在线 Web 应用。您甚至可以向 Strix 发出特定指令。例如,您可以说“重点关注身份验证和权限提升”,人工智能就会优先处理这些方面。
结果会保存在指定文件夹中agent_runs。每份报告都包含清晰的描述、已确认的漏洞利用方法以及分步修复建议。您可以将这些结果直接推送到您的问题跟踪系统或持续集成 (CI) 流水线中。

04

小结

从目前的情况看,Strix能够分析源码,并结合应用进行渗透测试。它不是做一个“全自动漏洞扫描器”,而是做一个“会思考、会验证、会放弃错误假设的 AI 渗透测试员”,它追求 “发现一个 → 验证一个 → 只报真漏洞”。
Strix 本质上不是 SAST + DAST 的拼接,而是用 SAST 线索,驱动 DAST 行为,由 LLM 判断“值不值得继续验证”。
这个动作,就是现在研发白盒渗透测试的方法和思路,补齐了代码测试最大的一块短板,价值巨大。
附:Strix开源地址
https://github.com/usestrix/strix

END

推荐阅读
要测试AI的代码分析能力,可以用的Benchmark
HexStrike代理:让大模型继承专家经验,显著提升渗透测试效率

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Strix,融合源码理解与运行态验证的 AI 渗透测试框架

评论 抢沙发

1 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮