AI 漏洞利用
AI 世界存在安全问题,而这不仅仅局限于输入给 ChatGPT 等大型语言模型的内容。根据 Protect AI 和 Huntr 漏洞赏金平台上的独立安全专家进行的研究,针对用于构建、训练和部署机器学习模型的工具、库和框架的攻击更具影响力和实用性。这些攻击中的许多都会导致系统完全被接管和/或敏感数据、模型或凭据的丢失,而且通常无需进行身份验证。
通过发布此存储库,Protect AI 希望向信息安全社区揭示现实世界中针对 AI/机器学习基础设施的实际攻击是什么样的,并提高人们对 AI/ML 生态系统中当前存在的大量易受攻击组件的认识。更多漏洞可以在这里找到:
概述
这个名为 ai-exploits 的存储库是一个包含影响机器学习工具的已负责任披露漏洞的漏洞利用和扫描模板集合。
每个易受攻击的工具都有一些子文件夹,包含三种类型的实用程序:Metasploit 模块、Nuclei 模板和 CSRF 模板。Metasploit 模块适用于希望利用漏洞的安全专业人员,而 Nuclei 模板则用于扫描大量远程服务器以确定它们是否易受攻击。
演示
以下视频演示了针对 Ray 运行 Metasploit 模块之一:
设置和使用
使用模块和扫描模板的最简单方法是构建并运行本存储库中 Dockerfile
提供的 Docker 镜像。Docker 镜像将预装 Metasploit 和 Nuclei 以及所有必要的配置。
Docker
-
构建镜像:
git clone https://github.com/protectai/ai-exploits && cd ai-exploits docker build -t protectai/ai-exploits .
-
运行 Docker 镜像:
docker run -it --rm protectai/ai-exploits /bin/bash
后一个命令将使您进入容器中的 bash
会话,其中 msfconsole
和 nuclei
已准备就绪。
使用 Metasploit 模块
使用 Docker
启动 Metasploit 控制台(新模块将在 exploits/protectai
类别下可用),加载模块,设置选项,然后运行漏洞利用。
msfconsole
msf6 > use exploit/protectai/ray_job_rce
msf6 exploit(protectai/ray_job_rce) > set RHOSTS <目标 IP>
msf6 exploit(protectai/ray_job_rce) > run
在本地安装 Metasploit
创建文件夹 ~/.msf4/modules/exploits/protectai
并将漏洞利用模块复制到其中。
mkdir -p ~/.msf4/modules/exploits/protectai
cp ai-exploits/ray/msfmodules/* ~/.msf4/modules/exploits/protectai
msfconsole
msf6 > use exploit/protectai/<exploit_name.py>
使用 Nuclei 模板
Nuclei 是一个漏洞扫描引擎,可用于扫描大量服务器以检测 Web 应用程序和网络中的已知漏洞。
导航到 Nuclei 模板文件夹,如 ai-exploits/mlflow/nuclei-templates
。在 Docker 容器中,这些模板存储在 /root/nuclei-templates
文件夹中。然后只需指向模板文件和目标服务器。
cd ai-exploits/mlflow/nuclei-templates
nuclei -t mlflow-lfi.yaml -u http://<目标>:<端口>`
使用 CSRF 模板
跨站请求伪造(CSRF)漏洞使攻击者能够搭建一个托管恶意 HTML 页面的 Web 服务器,该页面将代表受害者向目标服务器执行请求。这是一种常见的攻击途径,用于利用 Web 应用程序中的漏洞,包括仅在本地主机接口上暴露而不暴露于更广泛网络的 Web 应用程序。以下是如何使用 CSRF 模板来利用 Web 应用程序中的漏洞的简单演示示例。
在 csrf-templates 文件夹中启动 Web 服务器。Python 允许在任何目录中启动一个简单的 Web 服务器。导航到模板文件夹并启动服务器。
cd ai-exploits/ray/csrf-templates
python3 -m http.server 9999
现在访问您刚刚启动的 Web 服务器地址(http://127.0.0.1:9999),然后按 F12 打开开发者工具,点击"网络"选项卡。点击 ray-cmd-injection-csrf.html 的链接。您应该会看到浏览器代表您向易受攻击的服务器发送了请求。
贡献指南
我们欢迎对此存储库的贡献。请阅读我们的贡献指南以获取更多关于如何贡献的信息。
许可证
本项目采用 Apache 2.0 许可证。