_))
> * _~
`;'__-' _
____ | ) _ _____________________
____ / / `` w w ____________________
____ w w ________________AI_Goat______
______________________________________
Presented by: rootcauz
تعلم أمان الذكاء الاصطناعي من خلال سلسلة من تحديات LLM CTF الضعيفة. لا توجد اشتراكات، ولا رسوم سحابية، قم بتشغيل كل شيء محليًا على نظامك.
بدأت العديد من الشركات في إنشاء برامج تتكامل مع نماذج اللغات الكبيرة ذات الذكاء الاصطناعي (LLMs) بسبب إصدار ChatGPT ومحركات أخرى. وقد أدى هذا الانفجار في الاهتمام إلى أنظمة التطور السريع التي تعيد تقديم نقاط الضعف القديمة وتفرض فئات جديدة من التهديدات غير المفهومة. قد لا تكون العديد من فرق الأمان في الشركة مجهزة تجهيزًا كاملاً للتعامل مع أمان LLM حيث لا يزال المجال ينضج باستخدام الأدوات وموارد التعلم.
لقد قمت بتطوير AI Goat للتعرف على تطوير LLM والمخاطر الأمنية التي تواجهها الشركات التي تستخدمها. يعد تنسيق CTF طريقة رائعة للباحثين في مجال الأمن لاكتساب الخبرة العملية والتعرف على مدى ضعف هذه الأنظمة وإمكانية استغلالها. شكرًا لك على اهتمامك بهذا المشروع وآمل أن تستمتع به!
يعد OWASP Top 10 لتطبيقات LLM مكانًا رائعًا لبدء التعرف على التهديدات الأمنية وعمليات التخفيف من مخاطر LLM. أنصحك بقراءة الوثيقة بدقة حيث يتم استكشاف العديد من المفاهيم في AI Goat وهي توفر ملخصًا رائعًا لما ستواجهه في التحديات.
تذكر أن محرك LLM الموجود في تطبيق ويب مستضاف في بيئة سحابية سيكون خاضعًا لنفس التهديدات الأمنية السحابية التقليدية وتطبيقات الويب. بالإضافة إلى هذه التهديدات التقليدية، ستخضع مشاريع LLM أيضًا لقائمة التهديدات غير الشاملة التالية:
يستخدم AI Goat برنامج Vicuna LLM المشتق من Meta's LLaMA ومقترنًا ببيانات استجابة ChatGPT. عند تثبيت AI Goat، يتم تنزيل الملف الثنائي LLM من HuggingFace محليًا على جهاز الكمبيوتر الخاص بك. هذا الملف الثنائي الذي يبلغ حجمه 8 جيجابايت تقريبًا هو محرك الذكاء الاصطناعي الذي تتمحور حوله التحديات. يأخذ ثنائي LLM بشكل أساسي مدخلاً "موجهًا" ويعطي مخرجًا "استجابة". يتكون الموجه من ثلاثة عناصر متسلسلة معًا في سلسلة. وهذه العناصر هي: 1. التعليمات؛ 2. سؤال؛ و 3. الاستجابة. يتكون عنصر التعليمات من القواعد الموصوفة لماجستير القانون. من المفترض أن يصفوا لـ LLM كيف من المفترض أن يتصرفوا. عنصر السؤال هو المكان الذي تسمح فيه معظم الأنظمة بإدخال المستخدم. على سبيل المثال، سيتم وضع التعليق الذي تم إدخاله في محرك الدردشة في عنصر السؤال. وأخيرًا، ينص قسم الإجابة على أن يقدم LLM إجابة على السؤال.
تحتوي صورة Docker المعدة مسبقًا، ai-base، على جميع المكتبات اللازمة لتشغيل LLM والتحديات. يتم تنزيل هذه الحاوية أثناء عملية التثبيت مع برنامج LLM الثنائي. يقوم إنشاء عامل الإرساء الذي يطلق كل اختبار بإرفاق ملفات اختبار LLM الثنائية والمحددة، ويكشف عن منافذ TCP اللازمة لإكمال كل اختبار. راجع أقسام التثبيت والإعداد للحصول على إرشادات حول البدء.
تم إعداد حاوية CTFd اختيارية تتضمن كل وصف للتحدي وتلميحات وفئة وإرسال العلم. تتم استضافة صورة الحاوية في dockerhub الخاص بنا ويتم استدعاؤها ai-ctfd بجانب صورة ai-base. يمكن إطلاق حاوية ai-ctfd من ai-goat.py والوصول إليها باستخدام متصفحك.
sudo apt install git -y
sudo apt install python3-pip -y
sudo usermod -aG docker $USER
reboot
git clone https://github.com/dhammon/ai-goat
cd ai-goat
pip3 install -r requirements.txt
chmod +x ai-goat.py
./ai-goat.py --install
يتوقع هذا القسم أنك قد اتبعت بالفعل خطوات Installation
.
يوفر لك استخدام ai-ctfd قائمة بجميع التحديات وتقديم العلم. إنها أداة رائعة يمكنك استخدامها بنفسك أو عند استضافة CTF. إن استخدامه كفرد يوفر لك خريطة للتحديات ويساعدك على تتبع التحديات التي أكملتها. إنه يقدم إرسال العلم لتأكيد إكمال التحدي ويمكنه تقديم تلميحات تدفعك في الاتجاه الصحيح. يمكن أيضًا إطلاق الحاوية واستضافتها على خادم داخلي حيث يمكنك استضافة CTF الخاص بك لمجموعة من المتحمسين للأمان. يقوم الأمر التالي بتشغيل ai-ctfd في الخلفية ويمكن الوصول إليه على المنفذ 8000:
./ai-goat.py --run ctfd
هام: بمجرد إطلاقه، يجب عليك إنشاء مستخدم يقوم بتسجيل حساب مستخدم. يبقى هذا التسجيل محليًا على الحاوية ولا يتطلب عنوان بريد إلكتروني حقيقيًا.
يمكنك تغيير العلامات داخل الكود المصدري للتحديات ثم في CTFD (يجب أن تتطابق).
ai-goat/app/challenges/1/app.py
وقم بتغيير العلامة في السلسلة في السطر 12.ai-goat/app/challenges/2/entrypoint.sh
وقم بتغيير العلامة في السطر 3../ai-goat.py --run ctfd
وافتح المتصفح على http://127.0.0.1:8000
) ثم قم بتسجيل الدخول باستخدام المستخدم root
باستخدام qVLv27Dsy5WuXRubjfII
ككلمة المرور.استمتع!
راجع قسم Challenges
للحصول على وصف لكل تحدي أو راجع صفحة الويب ai-ctfd من Step 1
. الأمر التالي يطلق التحدي الأول:
./ai-goat.py --run 1
سيتم تشغيل حاوية التحدي في الخلفية وستوفر إرشادات حول كيفية التفاعل مع التحدي. يحتوي كل تحدٍ على علم، وهو عبارة عن سلسلة محاطة بأقواس متعرجة. على سبيل المثال: {eXampl3F!ag}
. يمكنك التحقق من العلامة من خلال الإرسال إلى تحدي الموضوع في صفحة ai-ctfd.
هام: في بعض الأحيان يقوم حاملو شهادات LLM بتكوين قيمة العلامة، لذا تأكد من التحقق من العلامة في ai-ctfd ;)
هام: يمكن أن تستغرق استجابة LLM 30 ثانية أو نحو ذلك
./ai-goat.py --run
. سيقوم هذا الأمر بإعادة تشغيل الحاوية إذا كانت قيد التشغيل بالفعل.docker container ps
. لإيقاف حاوية: docker stop
. سيحتوي الفرع الرئيسي دائمًا على أحدث إصدار. سيتم الاحتفاظ بالنسخ التاريخية في الفروع المعنية. تعليمات الترقية:
cd ai-goat
git pull
pip3 install -r requirements.txt
chmod +x ai-goat.py
./ai-goat.py --install
هام: سيبدأ ai-ctfd فعليًا من الصفر، لذا تأكد من إنشاء مستخدم جديد وإعادة إرسال/إعادة أي تحديات سابقة إذا رغبت في ذلك.
تؤثر هجمات الحقن السريع الناجحة على LLM للرد بالمعلومات التي ليس من المفترض الكشف عنها. في هذا التحدي، يقوم برنامج الدردشة الآلي الذي يعمل بالذكاء الاصطناعي والذي يعمل على المنفذ 9001 بتخزين العلم باعتباره سرًا وتمت مطالبته بعدم التخلي عنه. هل يمكنك إقناع الروبوت أو خداعه ليعطيك العلم؟
./ai-goat.py -r 1
LLM01: الحقن الفوري | LLM07: تسرب البيانات
لا ينبغي الوثوق بمخرجات نظام LLM، خاصة عند استخدام هذا المخرج في العمليات النهائية مثل أوامر نظام التشغيل أو مكالمات الشبكة. يتضمن هذا التحدي روبوت دردشة آخر يعمل بالذكاء الاصطناعي يعمل على المنفذ 9002 ويستقبل سؤال المستخدم ويعيد عنوان موقع الويب. يتم تحويل إدخال المستخدم إلى عنوان URL بواسطة chatbot حيث يتم استخدامه لطلب مصدر هذا الموقع أثناء نسخ العنوان. ما هي الأشياء الأخرى التي يمكن لروبوت الدردشة هذا الوصول إليها عبر الشبكة؟
./ai-goat.py -r 2
LLM02: التعامل مع المخرجات غير الآمنة
الإصدار الأخير هو الفرع الرئيسي. يمكنك العثور على الإصدار في ملف CHANGELOG.md
. يتم إنشاء الفروع لكل إصدار خاص بها.
محرك CTF: CTFD
الفن بواسطة: ejm97 على ascii.co.uk
تقنية الحاويات بالذكاء الاصطناعي: