
Практическая платформа для изучения безопасности ИИ с намеренно уязвимыми LLM-приложениями. Исследуйте OWASP Top 10 для LLM на интерактивных сценариях пиццерии, охватывающих внедрение промптов, раскрытие данных и риски цепочки поставок.
В PwnzzAI Shop каждый кусочек подаёт порцию целостного обучения безопасности ИИ. Эта практическая платформа готовит специалистов к пониманию защиты AI-технологий в широком смысле через увлекательный практический сценарий пиццерии.
Подобно тому, как неправильный ингредиент может испортить пиццу, некорректный промпт или неадекватная архитектура могут оставить AI-технологии уязвимыми для серьёзных угроз, включая утечку информации, кражу интеллектуальной собственности или несанкционированный доступ.
Здесь вы изучите практические примеры того, как уязвимости создаются, эксплуатируются и устраняются. Для некоторых страниц необходимо войти как alice/alice или bob/bob. Берите кусочек, погружайтесь и узнайте, каким вкусным может быть обучение безопасности ИИ.
Содержание
PwnzzAI Shop представляет собой практическую платформу обучения, намеренно созданную для обучения защите AI-технологий. Это намеренно небезопасное Flask-приложение демонстрирует широкий спектр уязвимостей безопасности ИИ через иммерсивный опыт пиццерии.
Партнёр-основатель: OWASP AI Exchange
PwnzzAI разработан как всеобъемлющая, развивающаяся обучающая платформа, соответствующая таксономии рисков AI Exchange. Его область применения постепенно расширяется в ногу с фреймворками анализа безопасности и защитными рекомендациями OWASP AI Exchange, обеспечивая долгосрочную актуальность по мере развития практик безопасности ИИ. В настоящее время проект включает OWASP Top 10 для LLM, с архитектурой, намеренно сопоставленной с классификацией рисков AI Exchange. Со временем PwnzzAI стремится стать структурированной образовательной экосистемой, поддерживающей:
Выберите один из 3 способов запуска PwnzzAI:
https://www.docker.com/products/docker-desktop.git clone https://github.com/OWASP/PwnzzAI.git
cd PwnzzAI
Лабораторные работы изначально работают на бесплатной локальной модели. Чтобы также использовать вкладки облачных моделей (OpenAI / Gemini / Claude), вам понадобятся две вещи — API-ключ и имя модели:
.env (OPENAI_API_KEY=...). Ключ из Lab Setup имеет приоритет..env. В коде нет значения по умолчанию, поэтому при отсутствии вызовы завершаются ошибкой LLM Provider NOT provided.Создайте .env из шаблона и раскомментируйте строку модели:
cp .env.example .env
# затем отредактируйте .env и укажите, например:
# OPENAI_MODEL=gpt-4o-mini
# (или LITELLM_MODEL=gemini/gemini-2.5-flash и т.д.)
После редактирования .env перезапустите приложение. Полное описание провайдеров и моделей см. в Настройка облачных моделей (OpenAI, Claude, Gemini и др.).
Используйте этот вариант, если хотите, чтобы Docker запускал как приложение PwnzzAI, так и Ollama.
docker compose up -d
docker compose ps
http://localhost:8080
В приложении перейдите на страницу Basics и выполните настройку Ollama для загрузки моделей.
При необходимости следите за логами:
# Логи приложения
docker compose logs -f pwnzzai-app
# Логи Ollama (опционально)
docker compose logs -f ollama
docker compose down
docker compose down -v
Если вы публикуете образ приложения под другим адресом реестра, переопределите имя образа при запуске:
PWNZZAI_IMAGE=ghcr.io/owasp/pwnzzai:latest docker compose up -d
docker compose использует образ pwnzzai-app по умолчанию из docker-compose.yml (переопределяется с помощью PWNZZAI_IMAGE). Если docker compose up завершается с ошибкой denied, unauthorized или подобной при загрузке этого образа, возможно, требуется вход в реестр или у вашей учётной записи нет прав на загрузку. Вы всё ещё можете запустить всё из этого репозитория, собрав образ приложения локально и указав compose на него.
Из корня репозитория:
docker build -t pwnzzai-local:dev .
PWNZZAI_IMAGE=pwnzzai-local:dev docker compose up -d
Windows PowerShell:
docker build -t pwnzzai-local:dev .
$env:PWNZZAI_IMAGE="pwnzzai-local:dev"; docker compose up -d
Затем откройте http://localhost:8080. Первая загрузка может кратковременно завершиться ошибкой, пока Flask запускается внутри контейнера; подождите несколько секунд и обновите страницу, если видите ошибку соединения.
Если у вас есть доступ к образу в реестре, вы можете сначала аутентифицироваться (пример для GitHub Container Registry):
docker login ghcr.io
Тот же подход с PWNZZAI_IMAGE=pwnzzai-local:dev применим к Варианту 2, если вы используете docker-compose.external-ollama.yml и сталкиваетесь с той же ошибкой загрузки.
Используйте этот вариант, если Ollama уже запущен где-то ещё и вы хотите запустить только PwnzzAI в Docker.
Если вы запускаете Ollama на WSL, а PwnzzAI в Docker, см.
OLLAMA_CONNECTION_TROUBLESHOOTING.md
для устранения проблем с подключением (Connection refused, host.docker.internal, привязка и проверка переменных окружения).