PwnzzAI ショップでは、すべてのスライスが、包括的なAIセキュリティ教育を提供します。この実践的な学習プラットフォームは、専門家がAI技術全般の保護を理解できるよう準備します。魅力的で実践的なピザショップのシナリオを通じて提供されます。
不適切な材料がピザを台無しにするように、欠陥のあるプロンプトや不十分なアーキテクチャは、情報漏洩、知的財産の盗難、不正アクセスなどの深刻な脅威に対してAI技術を脆弱なままにします。
ここでは、脆弱性がどのように作成され、悪用され、緩和されるかを実践的な例で探求します。一部のページでは、alice/alice または bob/bob でログインする必要があります。スライスを手に取り、味わい、AIセキュリティについて学ぶことがどれほどおいしいかを発見してください。
目次
PwnzzAI ショップは、AI技術保護に関する教育のために意図的に構築された実践的な学習プラットフォームです。この意図的に脆弱性を含んだFlaskベースのWebアプリケーションは、没入型のピザショップ体験を通じて、幅広いAIセキュリティの弱点を紹介します。
設立パートナー: OWASP AI Exchange
PwnzzAI は、AI Exchangeリスク分類法 に準拠した、包括的で進化する学習プラットフォームとして設計されています。その範囲は、OWASP AI Exchangeのセキュリティ分析フレームワークおよび防御ガイダンスと歩調を合わせて段階的に拡大し、AIセキュリティプラクティスの成熟に伴う長期的な関連性を確保します。 このプロジェクトは現在、OWASP Top 10 for LLMsを組み込んでおり、アーキテクチャはAI Exchangeのリスク分類に意図的にマッピングされています。時間の経過とともに、PwnzzAI は以下をサポートする構造化された学習エコシステムへと成熟することを目指しています:
自己学習パスを含むAI保護および防御トレーニング
実践的なシナリオ主導の演習を備えたハンズオンセキュリティトレーニングプログラム
セキュリティエンジニアおよび実践者向けのチームベース学習イニシアチブ
設計、開発、デプロイ、運用にわたるエンドツーエンドのAIセキュリティ教育
次の3つの方法のいずれかを選択して PwnzzAI を実行します:
https://www.docker.com/products/docker-desktop からDocker Desktopをインストールします。git clone https://github.com/OWASP/PwnzzAI.git
cd PwnzzAI
ラボは初期状態で無料のローカルモデルで動作します。クラウドモデルタブ(OpenAI / Gemini / Claude)も使用するには、2つのものが必要です – APIキーとモデル名:
.env (OPENAI_API_KEY=...) に設定できます。ラボ設定からのキーが優先されます。.env から提供する必要があります。コードにデフォルトはないため、設定されていない場合、呼び出しは LLM Provider NOT provided で失敗します。テンプレートから .env を作成し、モデル行のコメントを解除します:
cp .env.example .env
# then edit .env and set, for example:
# OPENAI_MODEL=gpt-4o-mini
# (or LITELLM_MODEL=gemini/gemini-2.5-flash, etc.)
.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 は docker-compose.yml のデフォルトの pwnzzai-app イメージを使用します(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で実行したい場合は、このオプションを使用します。
WSLでOllamaを実行し、DockerでPwnzzAIを実行する場合、接続の問題(Connection refused、host.docker.internal、バインディング、env検証)については、
OLLAMA_CONNECTION_TROUBLESHOOTING.md
を参照してください。
Ollamaサービスを実行したままにします。
Ollamaがリモートマシン上にある場合は、起動前に OLLAMA_HOST を設定します(OllamaがDockerと同じマシン上にあり、docker-compose.external-ollama.yml のデフォルト http://host.docker.internal:11434 で到達可能な場合はスキップします)。
Linux/macOS:
export OLLAMA_HOST=http://your-ollama-server:11434
Windows PowerShell:
$env:OLLAMA_HOST="http://your-ollama-server:11434"
docker compose -f docker-compose.external-ollama.yml up -d
デフォルトのアプリイメージがGHCRからプルできない場合は、ローカルでビルドし、デフォルトイメージがプルできない場合(ローカルでビルド) のように PWNZZAI_IMAGE を設定します。
ブラウザで http://localhost:8080 にアクセスしてアプリケーションを表示します。Basicページから開始してラボを設定します。
必要に応じてアプリのログを確認します:
docker compose -f docker-compose.external-ollama.yml logs -f pwnzzai-app
docker compose -f docker-compose.external-ollama.yml down
アプリにDockerを使用せずにPythonを直接実行したい場合は、このオプションを使用します。
Linux/macOS:
python -m venv venv
source venv/bin/activate
Windows PowerShell:
python -m venv venv
.\venv\Scripts\Activate.ps1
./install.sh
Ollamaが利用可能であることを確認します:
http://localhost:11434 または OLLAMA_HOST 経由の別のエンドポイント。
アプリを実行します:
flask run --host=0.0.0.0 --port=8080
http://localhost:8080
詳細が必要な場合は、 このウォークスルー をご覧ください。セットアップ手順を順を追って説明しています。
このプラットフォームは、OWASP AI Exchange包括的脅威分類法 に準拠した、広範なAI保護課題を紹介しています。現在の実装は、OWASP Top 10 for LLM Applicationsと主要なAI Exchange脅威カテゴリをカバーし、将来のAIリスクカバレッジのために構築された拡張可能なアーキテクチャを備えています。
PwnzzAIで実証されるすべての弱点には次の特徴があります:
以下はOWASP AI Exchange脅威 および OWASP Top 10 for LLM Applications 2025 に基づいています:
Prompt Injection AI Exchange: Direct Prompt Injection, Indirect Prompt Injection, Top 10: LLM-01.
Data Disclosure AI Exchange: Disclosure of sensitive data in model output , Top 10: LLM-02
Data and Model Poisoning AI Exchange: Data Poisoning, Model Poisoning, Top 10: LLM04
Improper Output Handling AI Exchange: Output Contains Conventional Injection, Top 10:LLM05
Excessive Agency AI Exchange: Least Model Privilege, Oversight, Top 10:LLM06
System Prompt Leakage AI Exchange: Sensitive Information Disclosure, Top 10:LLM07
Vector and Embedding Weakness AI Exchange: Direct augmentation data leak, Top 10:LLM08
Misinformation AI Exchange: Augmentation data manipulation, Top 10:LLM09
Unbounded Consumption AI Exchange: AI Resource Exhaustion, Top 10:LLM10
and,
⚠️ 教育目的のみ: このアプリケーションには意図的なセキュリティ脆弱性が含まれています。本番環境では使用しないでください。