Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vibegate — خطاف أمان قبل الكتابة مستقل عن المضيف لعامل الترميز: يكتشف أنماط إدخال المستخدم عبر Semgrep ويصدر إرشادات أمان حتمية بدون LLM. | Kitploit
أدوات/GitHubGitHub/themiddleblue/vibegate
التحليل الثابتماسحات الثغرات الأمنيةتحليل الكودDevSecOpsأمن سلسلة التوريدسوء التكوينالتعلم والتعليمأمن الذكاء الاصطناعي
GitHubthemiddleblue/vibegate

vibegate

خطاف أمان قبل الكتابة مستقل عن المضيف لعامل الترميز: يكتشف أنماط إدخال المستخدم عبر Semgrep ويصدر إرشادات أمان حتمية بدون LLM.

عرض المستودع
816منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

شعار VibeGate

CI License: MIT

نقطة تفتيش أمنية لأدوات البرمجة بالذكاء الاصطناعي. تفحص كل ملف يكتبه مساعد الذكاء الاصطناعي، وتوقف الملفات الخطيرة قبل وصولها إلى القرص.

ما المشكلة التي تحلها هذه الأداة؟

مساعدات البرمجة بالذكاء الاصطناعي (Claude Code, Codex, …) تكتب الأكواد بسرعة — بما في ذلك أكواد تتعامل مع أشياء مثل كلمات المرور، عناوين البريد الإلكتروني، مفاتيح الAPI، أو مدخلات المستخدم الخام. من السهل على المساعد أن يغذي تلك البيانات مباشرةً في استعلام قاعدة بيانات، أمر شل، أو استجابة HTTP دون التفكير في الأمان.

VibeGate يجلس بين المساعد ونظام الملفات الخاص بك. في كل مرة يحاول المساعد كتابة أو تعديل ملف، يقوم VibeGate بفحص الكود الجديد أولاً:

  • يكتشف المدخلات التي يتحكم فيها المستخدم في الكود (باستخدام Semgrep)
  • يحدد نوع البيانات (بريد إلكتروني؟ كلمة مرور؟ مفتاح API؟) وأين تتجه (استعلام قاعدة بيانات؟ أمر شل؟ استجابة HTTP؟)
  • يحذر أو يمنع، اعتمادًا على مدى خطورة هذا المزيج

لا يوجد أي LLM مشارك في التحليل نفسه — إنه تحليل ثابت سريع وحتمي، لذلك لا يختلق أبدًا ولا يكلفك رموزًا (tokens).

فيما يلي كل ما يتحقق منه VibeGate حاليًا:

الفحصما يكتشفهالنتيجة
حقن الأوامرمدخلات غير منقاة تصل إلى أمر شليمنع
حقن SQLمدخلات غير منقاة تصل إلى استعلام قاعدة بياناتيمنع
حقن NoSQLيُستخدم نص الطلب مباشرةً كعامل تصفية لقاعدة البياناتيمنع
حقن القوالب (SSTI)مصدر القالب نفسه، وليس بياناته فقط، يأتي من إدخال المستخدميمنع
إلغاء التسلسل غير الآمنبيانات غير موثوقة تصل إلى أداة إلغاء تسلسل غير آمنة (pickle, YAML غير آمن، ...)يمنع
اجتياز المسارمدخلات غير منقاة تصل إلى قراءة/كتابة/حذف ملفيمنع
XXEيتم تحليل XML غير موثوق به مع تمكين الكيانات الخارجيةيمنع
XSSيتم عرض مدخلات غير منقاة كـ HTML خاميمنع
رفع ملف غير مقيديُستخدم اسم الملف المرفوع نفسه لبناء مسار الحفظيمنع
SSRFيقوم الخادم بجلب رابط غير مُثبت في الكود الثابتيحذر
إعادة توجيه مفتوحةهدف إعادة توجيه غير مُثبت في الكود الثابتيحذر
إسناد جماعييُمرر نص الطلب بالكامل إلى مُنشئ نموذج أو تحديثهيحذر
بيانات حساسة في نص الطلبرسائل بريد إلكتروني، كلمات مرور، رموز مميزة، إلخ. مقروءة من نص الطلبيحذر
بيانات حساسة في رابط/استعلامرسائل بريد إلكتروني، كلمات مرور، رموز مميزة، إلخ. مقروءة من سلسلة الاستعلاميحذر
بيانات حساسة في الرؤوسرسائل بريد إلكتروني، كلمات مرور، رموز مميزة، إلخ. مقروءة من رؤوس الطلبيحذر
مسار ملف من إدخال المستخدميُستخدم متغير، وليس سلسلة ثابتة، كمسار ملفيحذر
وسائط سطر الأوامرتأتي البيانات من وسائط سطر الأوامريحذر
الإدخال القياسيتأتي البيانات من stdinيحذر
متغيرات البيئةتأتي البيانات من متغير بيئةيحذر
إجراء GitHub غير مثبتيستخدم سير العمل علامة قابلة للتغيير (@v4) بدلاً من SHA للالتزاميحذر
pull_request_target غير آمنيستخدم سير العمل مشغل pull_request_targetيحذر

القائمة الكاملة الحالية موجودة في guidance.TECHNICAL_RISKS و formatter.BLOCKING_CATEGORIES، في حالة ابتعاد هذا الجدول عن الدقة.

ماذا يحدث عند تفعيلها

root@kitploit:~
                    ┌───────────────────────────────┐
                    │   تطلب من Claude Code أن      │
                    │   يكتب أو يعدل ملفًا          │
                    └───────────────┬───────────────┘
                                    │
                                    ▼
                    ┌───────────────────────────────┐
                    │   يحاول Claude Code حفظ       │
                    │   الملف (أداة Write/Edit)     │
                    └───────────────┬───────────────┘
                                    │
                                    ▼
                    ┌───────────────────────────────┐
                    │        خطاف VibeGate          │
                    │   (يعمل تلقائيًا،             │
                    │    قبل حفظ الملف)             │
                    └───────────────┬───────────────┘
                                    │
                     يفحص الكود الجديد باستخدام Semgrep
                                    │
              ┌─────────────────────┼─────────────────────┐
              │                     │                     │
              ▼                     ▼                     ▼
    ┌────────────────────┐ ┌────────────────────┐ ┌──────────────────────┐
    │  لم يتم العثور     │ │  مدخل خطير،        │ │  مدخل خطير يصل     │
    │  على مدخل خطير     │ │  لكن خطر أقل       │ │  إلى مصدر حاسم    │
    │                    │ │  (مثل العرض في     │ │  (SQL/أمر/RCE،      │
    │                    │ │  رد HTTP)          │ │  حقن القالب)        │
    └─────────┬──────────┘ └─────────┬──────────┘ └───────────┬──────────┘
              │                      │                        │
              ▼                      ▼                        ▼
      يتم حفظ الملف،         يتم حفظ الملف،            لا يتم حفظ الملف.
      لا يظهر شيء.            بالإضافة إلى تحذير        يرى Claude Code
                              في الطرفية مع             سبب المنع
                              الخطر وكيفية إصلاحه.       ويُقال له ما يجب
                                                         إصلاحه.

باختصار: الكود الآمن يمر دون تغيير، الكود الخطير لكن قابل للبقاء يُحفظ مع تحذير مرفق، والكود الذي يفصله خطوة واحدة عن أشياء مثل حقن SQL أو حقن الأوامر أو تنفيذ التعليمات البرمجية عن بُعد يُوقف قبل وصوله إلى القرص على الإطلاق.

إذا واجه VibeGate خطأً غير متوقع، فإنه يسمح دائمًا بالكتابة — فلا ينبغي أبدًا أن يكون وجود خلل في الخطاف هو السبب في منع عملك.

يحمل كل تحذير ومنع أيضًا تعليمات صريحة تطلب من Claude Code ذكر النتيجة لك في ردوده، وليس فقط إصلاحها بصمت. هذا ما يجعل نشاط VibeGate مرئيًا في المحادثة، وليس فقط في سجل طرفية تحتاج إلى البحث عنه.

ما يراه VibeGateما يحدث
لا يوجد إدخال مستخدم، أو لغة لا يدعمها بعديُحفظ الملف بشكل طبيعي، لا يظهر شيء
تم العثور على إدخال مستخدم، لكن الخطر متوسط (مثل إعادة التوجيه المفتوحة، الإسناد الجماعي)يُحفظ الملف، تظهر في الطرفية تحذير + إرشادات
يتدفق إدخال المستخدم غير المنقى إلى مصدر حاسم (استعلام SQL/NoSQL، أمر شل، محرك قوالب، أداة إلغاء تسلسل، محلل XML، مسار ملف، اسم ملف مرفوع، أو مخرجات HTML خام)لا يتم حفظ الملف — يُخبر Claude Code بسبب المنع

انظر الجدول في "ما المشكلة التي تحلها هذه الأداة؟" أعلاه للاطلاع على التفصيل الكامل لكل فحص: ما يمنع مقابل ما يحذر فقط.

اليوم يدعم VibeGate Python، JavaScript/TypeScript، Go، Java، PHP، و Ruby، ويتصل بـ Claude Code و Codex. يمكن إضافة المزيد من اللغات والأدوات دون الحاجة إلى تعديل المنطق الأساسي.

كما يفحص ملفات سير عمل GitHub Actions لخطأين شائعين في سلسلة توريد CI/CD: الإجراءات المثبتة بعلامة قابلة للتغيير (@v4) بدلاً من SHA للالتزام، والمحفز غير الآمن pull_request_target. كلاهما يحذر بدلاً من المنع، لأنهما فحوصات تقوية وليس دليلاً على استغلال فعال.

شاهده أثناء العمل

هذا تسجيل حقيقي لـ Claude Code وهو يبني تطبيق قارئ خلاصات RSS من البداية، مع تشغيل VibeGate طوال الوقت. لاحظ اللحظات التي يتوقف فيها Claude Code ويذكر بوضوح ما أشار إليه VibeGate، ولماذا، قبل المتابعة — بما في ذلك خطر حقيقي لـ SSRF في كود جلب الخلاصة يعمل على إصلاحه في الحال.

متصفحك لا يدعم الفيديو المضمن. نزّل التسجيل بدلاً من ذلك.

هذا مثال ثانٍ، كصورة ثابتة: Claude Code يبني تطبيقًا يسمح للأشخاص برفع صورة ورؤية تفاصيلها. يلاحظ VibeGate أن اسم الملف وتفاصيل أخرى عن الملف سيتم عرضها لاحقًا على الشاشة، ويحذر من أن هذا يمكن استخدامه لحقن كود ضار في الصفحة (وهذا يُسمى XSS). يقوم Claude Code بتعديل الكود بحيث تُعرض المعلومات بأمان.

تحذير VibeGate لـ Claude Code من خطر XSS من تفاصيل ملف مرفوع، وقام Claude Code بإصلاحه

في كلتا الحالتين، لم يتم منع أي شيء دون سبب، ولم يضطر أحد لقراءة الكود سطرًا سطرًا لاكتشاف المشكلة. اكتشفها VibeGate في لحظة كتابة الملف، وأصلحها الذكاء الاصطناعي في الحال.

لماذا تستخدم البوابة رموزًا أقل من تحميل مهارة (skill)

هناك طريقتان لجعل مساعد الذكاء الاصطناعي يكتب كودًا أكثر أمانًا. الأولى هي تحميل مجموعة كبيرة من التعليمات حول البرمجة الآمنة في المحادثة قبل البدء، مثل قائمة مرجعية تغطي حقن SQL، XSS، التعامل مع كلمات المرور، رفع الملفات، وغيرها. الطريقة الأخرى هي ما يفعله VibeGate: فحص الكود تلقائيًا، عند كتابة الملف، ولا يتحدث إلا عند وجود خطأ فعلي.

الطريقة الأولى تكلف رموزًا (tokens) في كل رسالة، سواء كانت ضرورية أم لا. قائمة مرجعية نموذجية للبرمجة الآمنة تغطي عدة فئات من المخاطر يمكن أن تضيف بسهولة بضعة آلاف من الرموز. إذا كتب مساعد ذكاء اصطناعي 50 ملفًا في جلسة واحدة، وتم إعادة تحميل تلك القائمة المرجعية أو الاحتفاظ بها في السياق في كل مرة، فقد تدفع مقابل أكثر من مائة ألف رمز من النصائح التي، في معظم الأوقات، لا تنطبق على الملف الذي يُكتب حاليًا. صفحة تسجيل وملف ثابت بلون بسيط لا يحتاجان إلى نفس التحذيرات، لكن القائمة المرجعية المحملة لا تستطيع التمييز بينهما مسبقًا.

VibeGate يعكس هذا الأمر. يظل صامتًا، ولا يكلف شيئًا إضافيًا، لكل ملف لا يحتوي على نمط خطير. فقط عندما يجد شيئًا، مثل تدفق إدخال المستخدم إلى استعلام قاعدة بيانات، يضيف ملاحظة قصيرة ومحددة حول تلك المشكلة الواحدة، عادةً جزء صغير من حجم القائمة المرجعية الكاملة. لذا بدلاً من دفع تكلفة ثابتة من الرموز على كل ملف بغض النظر، تدفع تكلفة صغيرة فقط على الملفات التي تحتاج فعلاً إلى الاهتمام، وتكون تلك التكلفة موجهة بدقة إلى المشكلة التي تم العثور عليها، وليس محاضرة عامة عن الأمان.

هذا أيضًا يجعل التوجيه أكثر موثوقية. مساعد الذكاء الاصطناعي المطلوب منه "مراعاة الأمان" أثناء كتابة مئات الأسطر من الكود يمكنه ببساطة أن يفوت سطرًا خطيرًا بين الكثير. البوابة لا تتعب ولا تشتت انتباهها: تفحص كل كتابة، في كل مرة، باستخدام نفس القواعد الثابتة.

البدء

قم بتثبيته مرة واحدة — هذا أيضًا يسحب Semgrep، الذي يعتمد عليه VibeGate:

root@kitploit:~
pipx install git+https://github.com/theMiddleBlue/vibegate

ثم قم بتفعيله داخل المشروع الذي تريد حمايته:

root@kitploit:~
cd your-project
vibegate on        # تفعيل هنا (أعد تحميل Claude Code بعد ذلك)
vibegate status     # تحقق مما إذا كان مفعلاً لهذا المشروع
vibegate off        # إيقاف هنا

vibegate on يضيف خطاف PreToolUse لـ Write|Edit|MultiEdit إلى ملف .claude/settings.local.json الخاص بالمشروع. النطاق لكل مشروع، لذا فإن تفعيله في مستودع واحد لا يؤثر على أي مستودع آخر.

يقوم Claude Code بتشغيل الخطاف كـ vibegate run --host claude_code — لا توجد مسارات مطلقة متضمنة، لذا يظل يعمل حتى إذا أعدت التثبيت أو نقلت الأشياء.

vibegate status يعرض أيضًا سجلًا جاريًا لما التقطه VibeGate بالفعل في هذا المشروع — كل تحذير ومنع، مع الملف والسطر والفئة — حتى تتمكن من رؤية نشاطه بمرور الوقت بدلاً من مجرد معرفة ما إذا كان مفعلاً:

root@kitploit:~
$ vibegate status

█   █ █████ ████  █████  ████  ███  █████ █████
...
● VibeGate مفعّل في .claude/settings.local.json

النشاط الأخير (آخر 2 من أصل 2 مسجل، الأحدث أولاً):

  2026-07-02T17:35:48+00:00  ⛔ تم المنع  server.py:3  EXEC_INPUT (FREE_TEXT)
  2026-07-02T17:35:46+00:00  ⚠ تم التحذير   app.py:2     HTTP_BODY (EMAIL)

هذا السجل موجود في .vibegate/activity.jsonl في جذر المشروع — أضفه إلى .gitignore الخاص بك، إنها حالة مطور محلية، وليست شيئًا يجب الالتزام به.

يقوم VibeGate بتحديد المضيف الذي يتحدث إليه بهذا الترتيب: علامة صريحة --host <name>، ثم متغير البيئة VIBEGATE_HOST، ثم الكشف التلقائي من البيانات الواردة، مع الرجوع إلى claude_code.

قمع نتيجة

إذا قام VibeGate بوضع علامة على شيء قررت عمدًا أنه آمن، أضف تعليق vibegate-ignore على نفس السطر — يعمل مع أي صيغة تعليق (#, //, …)، لأن VibeGate يبحث فقط عن النص:

root@kitploit:~
query = f"SELECT * FROM users WHERE id = {user_id}"  # vibegate-ignore

لقمع فئات محددة فقط بدلاً من كل شيء على هذا السطر، اذكرها بعد نقطتين (تطابق إما الفئة التقنية أو النوع الدلالي، مفصولة بفواصل، غير حساسة لحالة الأحرف):

root@kitploit:~
query = f"SELECT * FROM users WHERE id = {user_id}"  # vibegate-ignore: DB_QUERY

كيف يتم تنظيم الكود

root@kitploit:~
src/vibegate/
├── hook.py            # نقطة الدخول
├── cli.py              # أوامر التشغيل/الإيقاف/الحالة + الشعار ASCII
├── activity_log.py     # يحفظ التحذيرات/المنع في .vibegate/activity.jsonl
├── colors.py           # رموز ألوان ANSI مشتركة (التقرير + شعار CLI)
├── core.py            # خط أنابيب مستقل عن المضيف
├── models.py          # InputEvent / ClassifiedFinding / AnalysisResult
├── semgrep_runner.py  # تشغيل Semgrep كعملية فرعية (آمن من الفشل)
├── classifier.py      # يربط قاعدة Semgrep ← فئة، اسم متغير ← نوع بيانات
├── guidance.py         # التقارير الثابتة للمخاطر/الإصلاح
├── formatter.py        # يحول النتائج إلى تقرير طرفية + سياق المضيف
├── adapters/           # القاعدة، claude_code، codex + سجل صغير
└── rules/              # قواعد Semgrep — ملف واحد لكل لغة (Python، JS/TS،
                         # Go، Java، PHP، Ruby) بالإضافة إلى عنصر نائب عام

خط الأنابيب نفسه (core.py) لا يتحدث أبدًا مباشرة إلى مضيف معين — جميع المدخلات/المخرجات الخاصة بالمضيف موجودة في adapters/، لذا فإن إضافة مضيف جديد لا يتطلب لمس منطق التحليل.

تشغيل الاختبارات

root@kitploit:~
semgrep --validate --config src/vibegate/rules/   # تحقق من صحة القواعد
pytest tests/                                      # اختبارات الوحدة + التكامل

لرؤيته يعمل من البداية إلى النهاية بدون Claude Code:

root@kitploit:~
python3 -c 'import json; print(json.dumps({"tool_name":"Write","tool_input":{"file_path":"/tmp/t.py","new_content":"email = request.json.get(\"email\")"}}))' \
  | python3 src/vibegate/hook.py --host claude_code

توسيع VibeGate

  • إضافة لغة — أضف rules/<lang>-user-input.yaml، سجّل معرفات القاعدة الجديدة في classifier.RULE_TO_TECHNICAL، واربط امتداد الملف في core.EXT_TO_LANGUAGE.
  • إضافة نوع بيانات جديد للتعرف عليه — أضف كلمة مفتاحية إلى classifier.VARNAME_TO_SEMANTIC ووصفًا في guidance.SEMANTIC_GUIDANCE.
  • إضافة مصدر حاسم جديد للكشف عنه (مثل طريقة جديدة يمكن إساءة استخدام البيانات بها) — أضف قاعدة Semgrep، إدخالًا في RULE_TO_TECHNICAL، وبطاقة في guidance.TECHNICAL_RISKS.
  • إضافة أداة مضيف جديدة — أضف محولاً تحت adapters/ وسجله في adapters/__init__.py.

معلومات مفيدة

  • محول codex هو تعيين مبكر بأفضل جهد. تحقق من عقد الحدث الخاص به مقابل إصدار Codex الخاص بك قبل الاعتماد عليه لمنع أي شيء.
  • الطبقة المجانية من Semgrep ترجع "requires login" بدلاً من السطر المطابق الفعلي، لذلك يعيد المصنف بناء المقتطف بنفسه من محتوى الملف باستخدام أرقام الأسطر.
  • بالنسبة لـ Edit/MultiEdit، يعيد محول claude_code بناء الملف الكامل بعد التعديل من القرص بحيث يظل المصدر الملوث والمصدر الحاسم الذي تم إدخاله من خلال تعديلات منفصلة متصلين — ولكن يتم الإبلاغ فقط عن النتائج على الأسطر التي لمستها التعديلات بالفعل. إذا كان المصدر الحاسم موجودًا بالفعل وأضاف تعديل لاحق المصدر الملوث الذي يصل إليه فقط، فلن يتم اكتشاف ذلك (لم يكن سطر المصدر الحاسم جزءًا من التعديل الجديد). هذه إعادة البناء خاصة بـ Claude-Code؛ محول codex لا يفعل ذلك بعد.
تنزيل الأداة
تسجيل بيانات الاعتماد
يتم تمرير كلمة مرور أو مفتاح API أو رمز مميز إلى print/console.log/أداة تسجيل
يحذر
سر مخزَّن في الكود الثابتمتغير يُسمى مثل سر يُعطى قيمة حرفية تبدو حقيقيةيحذر