Strix
1.简介
Strix 是开源的 AI 驱动安全测试工具,能帮助开发人员和安全团队快速发现、验证应用程序中的漏洞。工具通过模拟真实黑客攻击,动态运行代码,减少误报。Strix 支持本地代码库、GitHub 仓库和 Web 应用的安全评估,具备自主安全工具、全面漏洞检测和分布式代理网络等功能。Strix提供企业平台,支持大规模扫描和 CI/CD 集成
想象一下,你拥有一个由AI驱动的虚拟渗透测试团队,它们能够自主协作、分析目标、制定攻击计划、执行测试并验证发现的漏洞。Strix 就是这样一个团队的数字化体现
2.核心目标
1.自动化安全测试流程:从信息收集、漏洞识别到漏洞验证,尽可能减少人工干预。
2.提高漏洞检测的准确性:通过动态执行和AI推理,降低误报,确保发现的漏洞是真实可利用的。
3.生成可行动的结果:不仅指出漏洞所在,还能提供详细的概念验证(Proof-of-Concept, PoC)代码或步骤,帮助开发者快速复现和修复问题。
4.降低安全测试门槛:使开发人员也能在开发周期早期进行有效的安全自查。
3.主要功能
1.全面漏洞检测:涵盖多种漏洞类型,包括访问控制、注入攻击、服务器端漏洞、客户端漏洞和业务逻辑漏洞等。
2.自主安全工具:内置 HTTP 代理、浏览器自动化、终端环境、Python 运行时和代码分析等工具,支持多种测试场景。
3.动态测试与验证:通过动态运行代码和实际利用漏洞,验证漏洞的可利用性,减少误报。
4.分布式代理网络:支持分布式测试,可扩展性强,能动态协调多个测试节点,提高测试效率。
5.容器隔离与安全:所有测试在沙盒化的 Docker 容器中进行,确保测试的隔离性和数据安全。
6.自动修复与报告:自动生成修复建议和详细报告,帮助开发人员快速理解和修复漏洞。
7.企业级平台支持:提供执行仪表板、自定义微调模型、CI/CD 集成、大规模扫描和企业级支持等功能,满足企业需求。
4.功能特色
4.1自治AI代理团队协作
4.2集成黑客工具和环境
HTTP代理:用于拦截、分析和修改HTTP请求/响应,是Web应用测试的基础。
浏览器自动化:类似Selenium或Playwright的功能,用于模拟用户交互,检测XSS、CSRF等客户端漏洞。
终端环境:提供一个受限的命令行环境,允许AI代理执行系统命令,模拟服务器端攻击和信息收集。
Python运行时:集成Python解释器,使AI代理能够动态生成和执行Python脚本,用于开发和利用漏洞(如编写PoC)。
信息收集工具:集成了WHOIS查询、DNS解析、端口扫描、目录爆破等功能的接口。
代码分析工具:能够对目标代码库进行静态分析,寻找潜在的代码漏洞模式。
知识管理系统:帮助AI代理存储、检索和利用在测试过程中获取的各种信息。
4.3全面的漏洞检测与验证能力
|--------|----------------------------|---------------------------------------|
| 漏洞大类 | 具体漏洞示例 | 支持的技术栈/协议示例 |
| 注入攻击 | SQL注入, 命令注入 | 通用Web应用, SQL数据库, 命令行接口 |
| 访问控制 | IDOR, 权限提升 | 通用Web应用, API |
| 服务器端漏洞 | SSRF, XXE, RCE | 通用Web应用, XML处理器, 存在配置缺陷的服务 |
| 客户端漏洞 | XSS, CSRF | Web前端, 浏览器 |
| 框架专项 | Django调试模式泄露, FastAPI未授权访问 | Django, Flask, FastAPI, React, Vue.js |
| API专项 | GraphQL接口未授权访问, OAuth配置错误 | GraphQL, REST API, OAuth 2.0, JWT |
| 数据存储 | 敏感信息泄露, 不安全的存储 | Supabase, Firebase, 数据库 |
4.4.开发者友好与自动化集成
简洁的命令行界面(CLI):通过简单的命令即可启动测试,配置选项清晰明了。
详细的可行动报告:测试结果以清晰的格式呈现,包含漏洞描述、严重级别、PoC、修复建议等。
CI/CD 集成:可以轻松集成到GitHub Actions、GitLab CI、Jenkins等持续集成/持续部署管道中,实现代码提交后的自动安全扫描,将安全测试左移(Shift Left)。
自动修复建议:部分漏洞可以提供自动修复的代码建议,加速漏洞修复过程。
4.5.安全的测试环境与数据隐私
容器化隔离:Strix 使用Docker容器来运行测试 payload 和模拟攻击,确保测试过程不会对目标系统或测试执行环境造成意外损害,提供了良好的沙箱隔离。
本地处理:测试过程主要在本地环境中进行,敏感的测试数据和目标信息不会被发送到外部服务器(除了必要的LLM API调用),保障了数据隐私和安全性。
5.技术原理
****1.AI 驱动的漏洞发现:****Strix 用先进的人工智能(AI)和机器学习(ML)技术来分析代码和运行时行为。AI 模型能识别潜在的安全漏洞,通过静态代码分析,识别潜在的安全问题,如注入攻击、不安全的代码实现等。在动态运行环境中,实时监控应用程序的行为,发现运行时漏洞,如服务器端请求伪造(SSRF)、跨站脚本(XSS)等。
****2.模拟真实攻击:****Strix 模拟真实黑客攻击,通过动态测试验证漏洞的存在,拦截和修改 HTTP 请求和响应,模拟各种攻击场景。用自动化工具(如 Selenium)模拟用户交互,测试 Web 应用的安全性。在隔离的环境中运行代码,模拟真实攻击环境,确保测试的安全性和准确性。
****3.动态测试与验证:****Strix通过动态测试验证这些漏洞是否真实存在。尝试利用发现的漏洞,验证可利用性。通过动态验证,减少误报,提高测试结果的准确性。
****4.分布式代理网络:****Strix 支持分布式测试,通过代理网络协调多个测试节点,能同时处理多个测试任务,提高测试效率。根据测试需求动态分配资源,优化测试流程。
6.应用场景
****1.开发阶段的安全测试:****开发人员用 Strix 对本地代码库进行安全评估,通过静态代码分析和动态测试发现潜在漏洞,及时修复问题,减少安全风险。
****2.持续集成与持续部署(CI/CD):****无缝集成到 CI/CD 流程中,自动运行安全测试,确保每次代码提交都符合安全标准。
****3.Web 应用安全评估:****通过 HTTP 代理和浏览器自动化工具,对 Web 应用进行安全测试,检测常见漏洞、验证可利用性,确保 Web 应用的安全性。
****4.开源代码和第三方库的安全审查:****开发人员分析开源代码和第三方库,检测已知安全漏洞,评估引入代码的安全性,避免因第三方代码引入的安全问题。
****5.企业级安全测试:****企业处理复杂测试需求,通过执行仪表板实时监控测试进度和结果,生成详细报告满足合规性和安全审计要求。
在kali OS 上部署Strix
准备工作:安装kali,开启ssh远程登录
1.kali安装
2.检查ssh服务状态
sudo systemctl status ssh
若不存活,修改ssh配置文件
sudo nano /etc/ssh/sshd_config
打开文件后,你需要找到并修改以下两个关键参数,以允许密码验证登录:
#PermitRootLogin prohibit-password
修改为:PermitRootLogin yes
说明:此项允许 root 用户通过 SSH 登录。在安全的生产环境中,通常不建议这样做,但在个人实验环境中可以临时开启以方便操作。
#PasswordAuthentication yes
取消注释:确保该行前面没有 # 号,并设置为 yes。
说明:此项开启了使用用户名和密码进行身份验证的登录方式。
修改完成后,按 Ctrl+X,然后按 Y 和回车键保存并退出 nano 编辑器。
修改配置后,需要重启 SSH 服务使其生效,并设置为开机自启动。
重启 SSH 服务
sudo systemctl restart ssh
设置 SSH 服务开机自启
sudo systemctl enable ssh
检查 SSH 服务状态
sudo systemctl status ssh
当看到状态显示为 active (running) 时,说明 SSH 服务已成功启动。
3.核心依赖安装:Docker
3.1更新软件包列表与依赖安装
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
3.2添加Docker的GPG密钥
为了确保我们下载的 Docker 软件包是官方且未经篡改的,需要添加 Docker 官方(此处使用阿里云镜像)的 GPG 密钥。
curl -fSSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
3.3. 添加 Docker 的软件源
接下来,将 Docker 的软件仓库地址添加到你的系统中。这样 apt 就能从中找到并安装 Docker。
注意:Kali 是基于 Debian 的,因此我们应使用 Debian 的仓库。bookworm 是 Debian 12 的代号,请根据你的 Kali 版本对应的 Debian 代号进行调整。
echo"deb[arch=amd64signedby=/etc/apt/trusted.gpg.d/docker.gpg]https://mirrors.aliyun.com/docker-ce/linux/debianbookwormstable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3.4.安装Dockers引擎
再次更新软件包列表,以包含刚刚添加的 Docker 仓库
sudo apt-get update
安装 Docker CE (Community Edition)
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
3.5.启动并配置Docker服务,并且设置为开机自启动
sudo systemctl start docker
sudo systemctl enable docker
3.6.处理Docker用户权限
将当前用户($USER)添加到 docker 组
sudo usermod -aG docker $USER
4.安装Strix Agent
推荐使用 pipx 进行安装,因为它可以将 Python 应用安装在独立隔离的环境中,避免与系统或其他项目的依赖产生冲突。
4.1安装pipx
查看版本如果没有,可以通过pip安装
pipx --version
如果没有,可以通过pip安装
python3 -m pip install --user pipx
python3 -m pipx ensurepath
4.2使用pipx安装strix-agent
pipx install strix-agent
4.3配置Strix
Strix 需要知道使用哪个大语言模型(LLM)以及对应的 API 密钥。这通过环境变量来配置。
设置要使用的 LLM 模型,例如 OpenAI 的 gpt-4
export STRIX_LLM="openai/gpt-4"
设置你的 API 密钥
export LLM_API_KEY="sk-YourActualApiKey"
4.4测试运行
strix --target https://xxxx.com
如果优如下报错:沙箱镜像拉取失败,或者其他也可以尝试
┌──(kali㉿kali)-[~/Desktop]
└─$ docker pull ghcr.io/usestrix/strix-sandbox:0.1.11
failed to connect to the docker API at unix:///run/user/1000/podman/podman.sock; check if the path is correct and if the daemon is running: dial unix /run/user/1000/podman/podman.sock: connect: no such file or directory
核心问题是 Docker 客户端仍错误指向 Podman 套接字路径(而非 Docker 官方套接字),即使 ghcr.io 网络已通,也无法正常拉取镜像
步骤一:强制重置 Docker 套接字路径
1. 清除 Podman 残留的 Docker 模拟配置
sudo apt purge -y podman-docker && sudo apt autoremove -y
2. 强制指定 Docker 官方套接字(临时+永久)
export DOCKER_HOST=unix:///var/run/docker.sock # 临时生效
echo 'export DOCKER_HOST=unix:///var/run/docker.sock' >> ~/.bashrc # 永久生效
3. 重启 Docker 服务确保套接字正常
sudo systemctl restart docker
4. 验证 Docker 连接(无报错即正常)
docker info | grep -i "Server Version"
步骤 2:重新拉取 Strix 沙箱镜像(该过程可能需要时间比较长)
此时 Docker 已指向正确套接字,直接拉取
docker pull ghcr.io/usestrix/strix-sandbox:0.1.11
步骤 3:验证镜像并启用沙箱运行 Strix
1. 确认镜像拉取成功
docker images | grep strix-sandbox
2. 取消沙箱禁用 + 加载 DeepSeek 配置,我这里使用的是deepseek,export STRIX_LLM="deepseek/deepseek-chat",可自行选择
unset STRIX_DISABLE_SANDBOX
export STRIX_LLM="deepseek/deepseek-chat"
export DEEPSEEK_API_KEY="你的API密钥"
export LLM_API_BASE="https://api.deepseek.com/v1"
export LLM_API_KEY=$DEEPSEEK_API_KEY
3. 启用沙箱执行扫描,测试工具是否安装完成
strix --target ~/strix-test --scan-mode quick -n

