
في متجر PwnzzAI، تقدم كل شريحة بيتزا جرعة من التعليم الشامل لأمن الذكاء الاصطناعي. تُعِدّ هذه المنصة التعليمية العملية المتخصصين لفهم حماية تقنيات الذكاء الاصطناعي على نطاق واسع عبر سيناريو متجر بيتزا ممتع وعملي.
وكما أن المكوّن الخاطئ يمكن أن يفسد البيتزا، فإن التلقين المعيب أو البنية غير الملائمة قد يجعلان تقنيات الذكاء الاصطناعي عرضة لتهديدات خطيرة، بما في ذلك خروقات المعلومات، وسرقة الملكية الفكرية، أو الوصول غير المشروع.
هنا، ستستكشف أمثلة عملية حول كيفية إنشاء الثغرات واستغلالها والتخفيف من حدتها. ستحتاج إلى تسجيل الدخول باسم alice/alice أو bob/bob لبعض الصفحات. خذ شريحة، وتعمق، واكتشف كم يمكن أن يكون تعلّم أمن الذكاء الاصطناعي شهيًا.
جدول المحتويات
يمثل متجر PwnzzAI منصة تعليمية عملية صُممت عمدًا للتدريب على حماية تقنيات الذكاء الاصطناعي. يعرض هذا التطبيق القائم على Flask والمُعرَّض عمدًا للثغرات مجموعة واسعة من نقاط الضعف في أمن الذكاء الاصطناعي عبر تجربة متجر بيتزا غامرة.
الشريك المؤسس: OWASP AI Exchange
صُمم PwnzzAI كمنصة تعليمية شاملة ومتطورة تتوافق مع التصنيف المرجعي للمخاطر في AI Exchange. ويتوسع نطاقه تدريجيًا بما يتوافق مع أطر تحليل الأمان وإرشادات الدفاع الخاصة بـ OWASP AI Exchange، مما يضمن استمرار ملاءمته على المدى الطويل مع نضوج ممارسات أمن الذكاء الاصطناعي. يدرج المشروع حاليًا OWASP Top 10 لأنظمة LLM، مع بنية مُخطط لها عمدًا لتتوافق مع تصنيفات مخاطر AI Exchange. وبمرور الوقت، يهدف PwnzzAI إلى النضوج ليصبح نظامًا تعليميًا منظمًا يدعم:
التدريب على حماية الذكاء الاصطناعي والدفاع عنه، بما في ذلك مسارات التعلم الذاتي
برامج تدريب أمني عملي مع تمارين قائمة على سيناريوهات واقعية
مبادرات تعلم جماعية لمهندسي الأمن والممارسين
تعليم أمني شامل للذكاء الاصطناعي، يمتد من التصميم والتطوير إلى النشر والتشغيل
اختر إحدى هذه الطرق الثلاث لتشغيل 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
# 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 لسحب النماذج.
تابع السجلات إذا لزم الأمر:
# App logs
docker compose logs -f pwnzzai-app
# Ollama logs (optional)
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، الربط، والتحقق من المتغيرات البيئية).
أبقِ خدمة 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
استخدم هذا الخيار إذا كنت تريد تشغيل Python مباشرة (بدون Docker للتطبيق).
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. يغطي التنفيذ الحالي OWASP Top 10 لتطبيقات LLM وفئات التهديدات الأساسية في AI Exchange، مع بنية قابلة للتوسعة صُممت لتغطية مخاطر الذكاء الاصطناعي المستقبلية.
تتضمن كل نقطة ضعف معروضة في PwnzzAI:
وفقًا لـ تهديدات OWASP AI Exchange و OWASP Top 10 لتطبيقات LLM 2025:
حقن التلقين AI Exchange: حقن التلقين المباشر، حقن التلقين غير المباشر، Top 10: LLM-01.
كشف البيانات AI Exchange: كشف البيانات الحساسة في مخرجات النموذج، Top 10: LLM-02
ثغرات سلسلة التوريد AI Exchange: تسميم نموذج سلسلة التوريد، Top 10: LLM 03
تسميم البيانات والنماذج AI Exchange: تسميم البيانات، تسميم النماذج، Top 10: LLM04
،
وأيضًا،
⚠️ للأغراض التعليمية فقط: يحتوي هذا التطبيق على ثغرات أمنية مقصودة. لا تستخدمه في بيئات الإنتاج.
الوكالة المفرطة AI Exchange: أقل امتياز للنموذج، الإشراف، Top 10:LLM06
تسريب تلقين النظام AI Exchange: كشف المعلومات الحساسة، Top 10:LLM07
ثغرات المتجهات والتضمين AI Exchange: تسرب بيانات التوسعة المباشر، Top 10:LLM08
المعلومات المضللة AI Exchange: التلاعب ببيانات التوسعة، Top 10:LLM09
الاستهلاك غير المحدود AI Exchange: استنزاف موارد الذكاء الاصطناعي، Top 10:LLM10