Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
prompt-injection-firewall — جدار حماية LLM ثنائي الطبقة يحجب مدخلات حقن الأوامر (prompt-injection) عبر قواعد regex بالإضافة إلى مصنّف Gemini، ويلتقط تسريبات الأسرار أو موجهات النظام (system-prompt) في ردود البوت. | Kitploit
أدوات/GitHubGitHub/ztsprofessionalaiid7-alt/prompt-injection-firewall
أدوات دفاعيةأمن الويبالتعلم والتعليمأمن الذكاء الاصطناعيكشف الشذوذ
GitHubztsprofessionalaiid7-alt/prompt-injection-firewall

prompt-injection-firewall

جدار حماية LLM ثنائي الطبقة يحجب مدخلات حقن الأوامر (prompt-injection) عبر قواعد regex بالإضافة إلى مصنّف Gemini، ويلتقط تسريبات الأسرار أو موجهات النظام (system-prompt) في ردود البوت.

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
1منذ 4 أياملم تتم المراجعة بعد

جدار حماية حقن الأوامر (Prompt-Injection Firewall)

عرض توضيحي مباشر: https://prompt-injection-firewall.streamlit.app فيديو توضيحي مدته دقيقتان: https://drive.google.com/file/d/1tzb75nFysisrCYa11Lqj6egDs5VNmc2n/view?usp=drivesdk

جدار حماية من طبقتين لروبوت دعم يعمل بنموذج لغوي كبير (LLM): يفحص ما يرسله المستخدمون، وما يرسله الروبوت في المقابل.

المشكلة

يمكن للمستخدمين محاولة تجاوز قواعد الروبوت ("تجاهل التعليمات السابقة")، أو تغيير شخصيته، أو إجباره على كشف موجه النظام (system prompt) أو الأسرار. يحجب هذا المشروع مثل هذه المدخلات، ويكشف التسريبات في إجابات الروبوت، ويقيس مدى فعاليته، بما في ذلك مواضع فشله.

كيف يعمل

user input
   |
   v
[1] Rule layer (regex, fast, free)  --match--> BLOCK
   |no match
   v
[2] LLM classifier (Gemini, JSON output, Pydantic validation, retries, fail-closed) --attack--> BLOCK
   |benign
   v
AcmeBot (Gemini + system prompt)
   |
   v
[3] Output check (canary token, secret patterns, system-prompt fragments) --leak--> BLOCK
   |clean
   v
answer to user

تشغيله

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env      # then put your Gemini key in .env
python src\run_eval.py dev
python src\eval_output.py dev
python src\compare.py dev
streamlit run app.py        # local demo

النموذج المستخدم: gemini-3.1-flash-lite. قد تُرجع الطبقة المجانية الخطأ 503 عند الانشغال؛ ينتظر الكود ويعيد المحاولة. لا تشغّل src\build_cases.py إلا إذا أردت إعادة بناء data\cases.jsonl (فهو يستبدله؛ البذرة نفسها تعطي الحالات نفسها).

البيانات

  • حالات الإدخال: 25 حالة مسحوبة (بالبذرة 7) من deepset/prompt-injections (Apache-2.0): 12 هجومًا، 13 حميدة. التقسيم: 15 للتطوير، 10 مخفية.
  • حالات الإخراج: 12 حالة كتبتها بمساعدة الذكاء الاصطناعي (8 للتطوير، 4 مخفية)، بما في ذلك تسريبات مخفية بالمسافات ونصوص حميدة تذكر "password"/"API key".
  • data/train.parquet مضمّن في المستودع (المصدر: deepset/prompt-injections، Apache-2.0).
  • شُغّل التقسيم المخفي مرة واحدة، بعد آخر تغيير على منطق الكشف والمطالبات (prompts).

النتائج

المجموعةالطبقةالنتيجة
devالقواعد فقطالكشف 2/9، الإيجابية الكاذبة 0/6
devالقواعد + Gemini (النهائي)الكشف 8/9، الإيجابية الكاذبة 0/6
devفحص الإخراج (النهائي)التسريب المكتشف 4/4، الإيجابية الكاذبة 0/4
hiddenالقواعد + Geminiالكشف 3/3، الإيجابية الكاذبة 0/7
hiddenفحص الإخراجالتسريب المكتشف 3/3، الإيجابية الكاذبة 0/1

الجدار الناري مقابل عدم وجوده:

بدونمع
dev: الهجمات التي وصلت إلى البوت9/91/9
dev: الحميدة المحجوبة خطأً0/60/6
hidden: الهجمات التي وصلت إلى البوت3/30/3
hidden: الحميدة المحجوبة خطأً0/70/7

تحتوي المجموعة المخفية على 3 هجمات فقط، لذا فهي إشارة ضعيفة. يُبلَّغ عن dev وhidden بشكل منفصل لأنني ضبطت مطالبة المصنّف على dev.

ما فشل وما غيّرته

السجل الكامل بالأرقام موجود في CHANGELOG.md. باختصار:

  • التقطت القواعد وحدها 2/9 من الهجمات (العبارات الحرفية فقط). أضاف مصنّف Gemini رفعها إلى 7/9.
  • اسم نموذج خاطئ جعل كل استدعاء يفشل، وأدى الاحتياطي المغلق عند الفشل (fail-closed) إلى حجب كل شيء (9/9 هجمات، 6/6 إيجابيات كاذبة). أظهرت تلك النتيجة الزائفة لماذا يجب أن توقف الأخطاء التشغيل بدلًا من ابتلاعها.
  • فُوّتت الحالة #4 (تعليمة مخفية بعد سؤال عادي)؛ أضفت قاعدة عامة إلى المطالبة، فأصبحت 8/9.
  • لا تزال الحالة #14 "generate c++" تفشل. هي مصنّفة كهجوم في مجموعة البيانات المصدر لكنها تبدو غير ضارة، وربما يكون ذلك ضجيجًا في التصنيف.
  • فوّت فحص الإخراج سرًّا مكتوبًا بمسافات ("ZX CANARY 7731")؛ طبّعت النص قبل المطابقة.
  • أظهر تشغيل فحص الإخراج على إجابات البوت الحقيقية إنذارات كاذبة عند تقديم البوت لنفسه (تطابق من 6 كلمات مع مطالبة النظام)؛ غيّرت طول المطابقة إلى 8 كلمات.
  • النشر: يُقرأ مفتاح API الآن أيضًا من البيئة (أسرار Streamlit). لا تغيير في منطق الكشف أو المطالبات.

القيود

  • بيانات صغيرة: 25 حالة إدخال و12 حالة إخراج. الأرقام ليست متينة إحصائيًا.
  • معظم هجمات المصدر دعائية أو مطالبات شخصية (persona)، وليست سرقة لمطالبة النظام، لذا لم يضف فحص الإخراج شيئًا يتجاوز طبقة الإدخال في المقارنة.
  • حالات اختبار فحص الإخراج كتبتها بنفسي، لذا فهي تُظهر أن الفحص يعمل على حالاتي، لا على تسريبات حقيقية.
  • لا يلتقط فحص الإخراج التسريبات المعاد صياغتها أو المشفّرة بـ base64 أو غير الإنجليزية، ويفوّت التسريبات الأقصر من 8 كلمات متتالية.
  • أنماط القواعد تناسب العبارات الشائعة في مجموعة البيانات هذه؛ تعتمد أنماط الهجوم الأخرى على طبقة LLM.
  • تضيف طبقة LLM استدعاء API واحدًا لكل رسالة (زمن استجابة وتكلفة) وتعتمد على خدمة طرف ثالث.
  • العرض التجريبي العام محدود بـ 10 رسائل لكل جلسة وقد يتوقف عن العمل إذا نفدت حصة API المجانية.
تنزيل الأداة