
Коллекция реальных эксплойтов AI/ML для ответственно раскрытых уязвимостей
У мира ИИ есть проблема безопасности, и она не ограничивается только вводимыми данными для LLM, таких как ChatGPT. Основываясь на исследованиях, проведенных Protect AI и независимыми экспертами по безопасности на платформе Huntr Bug Bounty, существуют гораздо более эффективные и практичные атаки на инструменты, библиотеки и фреймворки, используемые для создания, обучения и развертывания моделей машинного обучения. Многие из этих атак приводят к полному захвату систем и/или потере конфиденциальных данных, моделей или учетных данных, чаще всего без необходимости аутентификации.
С выпуском этого репозитория Protect AI надеется демистифицировать для сообщества специалистов по информационной безопасности, как выглядят практические атаки на инфраструктуру ИИ/машинного обучения в реальном мире, и повысить осведомленность о количестве уязвимых компонентов, которые в настоящее время существуют в экосистеме ИИ/МО. Больше уязвимостей можно найти здесь:
Этот репозиторий ai-exploits представляет собой коллекцию эксплойтов и шаблонов сканирования для ответственно раскрытых уязвимостей, затрагивающих инструменты машинного обучения.
Каждый уязвимый инструмент содержит ряд подпапок с тремя типами утилит: модули Metasploit, шаблоны Nuclei и CSRF-шаблоны. Модули Metasploit предназначены для специалистов по безопасности, желающих эксплуатировать уязвимости, а шаблоны Nuclei — для сканирования большого количества удаленных серверов на наличие уязвимостей.
Видео, демонстрирующее запуск одного из модулей Metasploit против Ray:
Самый простой способ использовать модули и шаблоны сканирования — собрать и запустить Docker-образ, предоставленный Dockerfile в этом репозитории. В Docker-образе уже будут установлены Metasploit и Nuclei со всеми необходимыми настройками.
Соберите образ:
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 (новые модули будут доступны в категории 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
Создайте папку ~/.msf4/modules/exploits/protectai и скопируйте в неё модули эксплойтов.
mkdir -p ~/.msf4/modules/exploits/protectai
cp ai-exploits/ray/msfmodules/* ~/.msf4/modules/exploits/protectai
msfconsole
msf6 > use exploit/protectai/<имя_эксплойта.py>
Nuclei — это движок сканирования уязвимостей, который можно использовать для сканирования большого количества серверов на наличие известных уязвимостей в веб-приложениях и сетях.
Перейдите в папку с шаблонами Nuclei, например ai-exploits/mlflow/nuclei-templates. В Docker-контейнере они хранятся в папке /root/nuclei-templates. Затем просто укажите файл шаблона и целевой сервер.
cd ai-exploits/mlflow/nuclei-templates
nuclei -t mlflow-lfi.yaml -u http://<цель>:<порт>
Уязвимости межсайтовой подделки запросов (CSRF) позволяют злоумышленникам поднять веб-сервер, размещающий вредоносную HTML-страницу, которая выполнит запрос к целевому серверу от имени жертвы. Это распространенный вектор атак для эксплуатации уязвимостей в веб-приложениях, включая веб-приложения, которые доступны только через интерфейс localhost и не выходят в более широкую сеть. Ниже приведен простой демонстрационный пример использования CSRF-шаблона для эксплуатации уязвимости в веб-приложении.
Запустите веб-сервер в папке csrf-templates. Python позволяет поднять простой веб-сервер в любой директории. Перейдите в папку с шаблоном и запустите сервер.
cd ai-exploits/ray/csrf-templates
python3 -m http.server 9999
Теперь перейдите по адресу веб-сервера, который вы только что подняли (http://127.0.0.1:9999), и нажмите F12, чтобы открыть инструменты разработчика, затем перейдите на вкладку "Сеть". Нажмите на ссылку ray-cmd-injection-csrf.html. Вы должны увидеть, что браузер отправил запрос на уязвимый сервер от вашего имени.
Мы приветствуем вклад в этот репозиторий. Пожалуйста, ознакомьтесь с нашими Рекомендациями по внесению вклада, чтобы узнать больше о том, как внести свой вклад.
Этот проект лицензирован в соответствии с лицензией Apache 2.0.