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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
FuzzingBrain-Bench — A benchmark for LLM-driven bug discovery: 77 challenges across 43 open-source projects (C/C++/Java). | Kitploit
أدوات/GitHubGitHub/fuzzingbrain/fuzzingbrain-bench
Dynamic Analysis (Sandboxing)Vulnerability AnalysisFuzzingLearning & EducationAI SecurityLabs & Practice
GitHubfuzzingbrain/fuzzingbrain-bench

FuzzingBrain-Bench

A benchmark for LLM-driven bug discovery: 77 challenges across 43 open-source projects (C/C++/Java).

عرض المستودع
8378منذ 7 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

FuzzingBrain Bench

معيار لتقييم إعادة إنتاج الثغرات بواسطة نماذج اللغة الكبيرة على 77 ثغرة حقيقية من نوع zero-day عبر 43 مشروعًا مفتوح المصدر (C / C++ / Java).

يمنح كل تحدٍّ للوكيل فقط أداة fuzz harness (الهدف) ومصدر المشروع عند النسخة المعرضة للثغرة — لا يوجد patch، ولا commit للإصلاح، ولا سطر مستهدف. يجب على الوكيل اكتشاف مدخلات تعيد إثارة خطأ تحت أداة sanitizer. كل درجة حتمية (بدون LLM كحَكَم) وتحدث داخل الصورة وبلا اتصال: يُشغَّل المرشح عبر الـ harness الرسمي المزوَّد بـ sanitizer والمدمج في حاوية التحدي، وتُحتسب النتيجة بناءً على الأعطال المميزة التي أثارها الوكيل. لا يغادر أي شيء الجهاز ولا يلزم تشغيل أي خدمة.

التحدياتالمشاريعاللغاتالمُقيِّم
77 من البداية إلى النهاية43C · C++ · Javaحتمي — داخل الصورة، بلا اتصال

لا يكشف أي شيء في الصور أو هذا المستودع عن ماهية الثغرة — تُسمَّى التحديات بأسماء مستعارة محايدة (<project>-NN، مثل avro-03)، ومفتاح الإجابة (PoC، الخطأ المتوقع، البناء المُصلَح) ليس في أيٍّ منهما: بل يبقى مع المُشرف. تصفّح جميع الـ 77: tools/sealed/CHALLENGES.md.


بدء سريع

1. الإعداد

git clone https://github.com/fuzzingbrain/FuzzingBrain-Bench
cd FuzzingBrain-Bench

python3 -m venv .venv && source .venv/bin/activate   # موصى به (ومطلوب على
                                                     # Debian/Ubuntu، PEP 668)
pip install -e .                              # يتطلب Python ≥ 3.10 و Docker

# ضع مفتاح (مفاتيح) نموذجك في ./.env — يُحمَّل تلقائيًا في كل تشغيل، لا حاجة للتصدير
cat > .env <<'EOF'
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
DEEPSEEK_API_KEY=sk-...
EOF

fb-bench list                                 # التحديات الـ 77 (بالأسماء المستعارة)
fb-bench models                               # النماذج المدعومة + أي المفاتيح محمَّلة

(يُقرأ ./.env تلقائيًا؛ كما يعمل export ANTHROPIC_API_KEY=... العادي أيضًا.)

أعد تنفيذ source .venv/bin/activate في كل نافذة طرفية جديدة. أو تجاوز الـ venv باستخدام pip install --break-system-packages -e . (غير موصى به).

fb-bench run يسحب صورة التحدي العامة، ويُشغِّل حلقة الوكيل على المضيف (باستدعاء واجهة برمجة نموذجك)، ويقيّم كل مرشح داخل تلك الصورة — بدون شبكة، ولا شيء يمكن الوصول إليه. لا يلزم سوى Docker ومفتاح نموذجك، وتُحتسب النتيجة بناءً على الأعطال المميزة التي وجدها الوكيل — هوية العطل هي نوع خطأ الـ sanitizer بالإضافة إلى إطارات المكدس العلوية، لذا فإن نفس الخطأ الذي يُصاب عشرين مرة يُحتسب مرة واحدة.

الوضع الافتراضي --arm api لا يتطلب شيئًا سوى ما سبق. أما وضعا --arm codex و --arm claudecode فيتطلبان واجهات CLI إضافية من البائعين — اختيارية، تُثبَّت بشكل منفصل (وليست أبدًا جزءًا من pip install -e .)؛ انظر §4.

2. تشغيل تحدٍّ واحد بنموذج

# عائلة Claude  (haiku هو الأرخص/الأسرع؛ استبدله بـ opus/sonnet للتشغيلات الأصعب)
fb-bench run avro-03 --model claude-haiku-4-5

# عائلة GPT
fb-bench run avro-03 --model gpt-5.5

# عائلة Gemini
fb-bench run avro-03 --model gemini-3.1-pro-preview

# عائلة DeepSeek  (نقطة نهاية متوافقة مع OpenAI؛ تتطلب DEEPSEEK_API_KEY)
fb-bench run avro-03 --model deepseek-v4-flash

النماذج: claude-haiku-4-5 · claude-sonnet-4-6 · claude-opus-4-8 · gpt-5.5 · gpt-5.4 · gpt-5 · gemini-3.1-pro-preview · gemini-2.5-flash · deepseek-v4-pro · deepseek-v4-flash (أي معرّف كتالوج يعمل عبر --model؛ انظر fb-bench models).

3. تشغيل العديد — نفس الأمر، واحد أو متعدد

fb-bench run يقبل ثغرة واحدة أو عدة، ونموذجًا واحدًا أو عدة. التشغيل الواحد هو مجرد مصفوفة بحجم واحد، لذا لا يوجد أمر "مسح" منفصل:

# التشغيل الكامل الموصى به: نموذج واحد على كامل المجموعة، مخرجات مسماة، PoCs
# محفوظة (الافتراضي) للفحص لاحقًا. يستمر الوكيل في البحث بعد أول عطل
# ما لم تمرر --stop-on-crash
fb-bench run all --model claude-haiku-4-5 --output run1 --max-turns 100

# التشكيلة المنسقة عبر النماذج، جميع التحديات، 4 خلايا بالتوازي
fb-bench run all --model default-lineup --output sweep1 --jobs 4

# ثغرتان، 3 عينات لكل منهما
fb-bench run avro-03,jq-01 --model gpt-5.5 --samples 3 --output probe

# فقط أعد طباعة لوحة الصدارة من تشغيل موجود
fb-bench run all --model claude-haiku-4-5 --output run1 --report-only

<bugs> هو اسم مستعار واحد، أو قائمة مفصولة بفواصل، أو all؛ --model هو معرّف واحد، أو قائمة مفصولة بفواصل، أو default-lineup، أو all. تظهر النتائج في output/<name>/<bug>/<model>/seed-N/ (score.json، episode.jsonl، transcript.jsonl، cost.json، traj.md مقطَّر)؛ وتُطبع لوحة صدارة في النهاية. --output يقبل اسمًا بسيطًا (متداخلًا تحت output/) أو مسارًا (يُستخدم كما هو). كل تشغيل يحصل على مجلده الخاص: احذف --output وسيُحفظ في output/run_<timestamp>؛ سمِّ مجلدًا موجودًا بالفعل وسيتفرع تشغيل جديد إلى <name>_<timestamp> بدلًا من الاستئناف فيه — لذا لا يتشارك تشغيلان النتائج أبدًا (--report-only هو القارئ الوحيد، ويفتح مجلدًا في مكانه).

4. أوضاع الوكيل — نفس run، اختر الواجهة الخلفية بـ --arm

تتقاسم الواجهات الخلفية الثلاث للوكيل نقطة دخول واحدة. يحدد --arm أيُّها يقود التحدي؛ وكل شيء آخر (<bugs>، --jobs، --samples، --output، مجلد كل تشغيل، لوحة الصدارة) متطابق عبر الأذرع.

fb-bench run avro-03 --model gpt-5.5            # --arm api (الافتراضي): نموذج المزود
fb-bench run avro-03 --arm codex               # OpenAI codex CLI (الافتراضي gpt-5.5)
fb-bench run avro-03 --arm claudecode --model sonnet --auth sub   # Claude Code CLI
fb-bench run all     --arm codex --jobs 4      # كامل المجموعة، على دفعات
  • --arm codex يقود codex exec من OpenAI عبر خادم MCP الخاص بالمعيار. يحدد --model نموذج codex (الافتراضي gpt-5.5)، مثبَّتًا عبر config.toml الخاص به.
  • --arm claudecode يقود واجهة Claude Code CLI. يختار --model نموذج claude (sonnet/opus/haiku).

يقبل ذراعا البائع --auth {api,sub}: api = مفتاح واجهة برمجة المزود (OPENAI_API_KEY / ANTHROPIC_API_KEY، دفع حسب الاستخدام، بدون تقييد)، sub = تسجيل دخول باشتراك (codex: خطة ChatGPT Plus/Pro/Business/Edu/Enterprise؛ claudecode: OAuth من claude.ai). الافتراضي هو تلقائي — يُفضَّل api عند وجود مفتاح الواجهة، وإلا فالعودة إلى sub.

اختياري — تثبيت واجهة CLI الخاصة بالبائع للذراع الذي تستخدمه

هذه إضافات اختيارية وليست مثبَّتة بواسطة pip install -e .. الوضع الافتراضي --arm api لا يحتاجها أبدًا. ثبِّت فقط واجهة CLI الخاصة بالذراع الذي تخطط لتشغيله (كلاهما يتطلب Node):

# --arm codex → OpenAI Codex CLI. سجّل الدخول مرة واحدة، مطابقًا لـ --auth الذي تستخدمه:
npm install -g @openai/codex
#   --auth api (الافتراضي عند تعيين OPENAI_API_KEY):
printenv OPENAI_API_KEY | codex login --with-api-key
#   --auth sub (يتطلب خطة ChatGPT Plus/Pro/Business/Edu/Enterprise؛ حساب
#   ChatGPT المجاني لا يمكنه استخدام نماذج codex):
codex login                                  # سجّل الدخول بخطة ChatGPT الخاصة بك

# --arm claudecode → Claude Code CLI.
npm install -g @anthropic-ai/claude-code
#   --auth api (الافتراضي عند تعيين ANTHROPIC_API_KEY): لا شيء يجب فعله
#   --auth sub: تسجيل دخول OAuth لمرة واحدة من claude.ai
claude

المهمة دائمًا عمياء

يحصل الوكيل على أداة fuzz harness ومصدر المشروع عند النسخة المعرضة للثغرة — بدون وصف، وبدون patch، وبدون commit إصلاح، وبدون سطر مستهدف. يجب أن يجد مدخلًا يسبب الانهيار من الصفر. ميزانية الأدوار هي 100 والحد الزمني للحلقة الواحدة هو 1800 ثانية؛ لا تتوقف الحلقة عند أول انهيار بل تستمر في البحث عن المزيد من الأعطال المميزة حتى تنفد إحدى الميزانيتين.

أداة sanitizer التي يُقيَّم البناء بموجبها، ووصف العائلة العامة لأخطاء تلك الأداة، معلنان — فالمدقق الحقيقي يعرفها دائمًا من بنائه الخاص. أما فئة الانهيار المحددة فلا تُذكر أبدًا، لأنها هي القدرة قيد الاختبار.

ما تُحتسبه النتيجة

أعطال مميزة، مرجَّحة بالصعوبة. هوية العطل هي نوع خطأ الـ sanitizer بالإضافة إلى إطارات التطبيق الثلاثة العلوية، لذا فإن نفس الخطأ الذي يُصاب عشرين مرة يُحتسب مرة واحدة، وتتقلص التكرارات عبر عينات التحدي إلى واحدة.

تنزيل الأداة