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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-bench — معيار لتقييم وكلاء الذكاء الاصطناعي في إصلاح الثغرات الأمنية الواقعية. | Kitploit
أدوات/GitHubGitHub/giovannigatti/cve-bench
التحليل الثابتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةتحليل الكوداختبار الاختراقDevSecOpsتعلم الآلةالتعلم والتعليمأمن الذكاء الاصطناعي
GitHubgiovannigatti/cve-bench

cve-bench

معيار لتقييم وكلاء الذكاء الاصطناعي في إصلاح الثغرات الأمنية الواقعية.

14منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-Bench

Blog Harness Coverage

معيار تقييم لوكلاء LLM على إصلاح الثغرات الأمنية الواقعية. يعمل الوكلاء داخل حاويات Docker معزولة (sandboxed)، ويُقيَّمون وفقًا لمجموعة اختبارات الأمان الخاصة بالمُطوِّر.


المتطلبات

  • Python 3.12+
  • Docker
  • OPENAI_API_KEY و/أو ANTHROPIC_API_KEY و/أو POOLSIDE_API_KEY في بيئتك (أو في ملف .env)

ثبّت التبعيات:

root@kitploit:~
pip install poetry
poetry install

بنية المهمة

تقع كل مهمة تحت tasks/{CVE-ID}/ وتحتوي على:

root@kitploit:~
tasks/CVE-2026-33175/
├── meta.json           # GHSA ID, CWE, CVSS, repo URL, vulnerable and fixed SHAs
├── setup.sh            # Clones repo, checks out the vulnerable SHA, installs dependencies
├── run_tests.sh        # Injects test_security.py into the repo and runs pytest
├── test_security.py    # Security tests (xfail on vulnerable code, pass on the fix)
├── advisory.md         # Full GHSA advisory (richest prompt)
├── diagnose.md         # Behavioural description only — no file or function names
├── locate.md           # File and function only — no description of the flaw
└── Dockerfile          # Optional; only present when the task needs extra system deps

مثال meta.json:

root@kitploit:~
{
  "ghsa_id": "GHSA-xxxx-xxxx-xxxx",
  "cwe": ["CWE-287"],
  "cvss": 9.1,
  "repo": {
    "url": "https://github.com/org/project",
    "vulnerable_sha": "abc123^",
    "fixed_sha": "abc123"
  }
}

البرنامج النصي setup.sh تكراريّ التنفيذ (idempotent) وآمن لإعادة تشغيله. يُبقى test_security.py مخفيًا عن الوكيل أثناء التشغيل ولا يُحقن إلا بعد انتهاء الوكيل.


بناء صور Docker

root@kitploit:~
python build.py

يقوم هذا ببناء:

  1. صورة أساسية مشتركة (cve-bench/base) — Python 3.12 وgit وpoetry والأداة المساعدة (harness).
  2. صورة مهمة واحدة لكل مهمة (cve-bench/{task-id}) — توسّع الصورة الأساسية، وتنسخ دليل المهمة، وتشغّل setup.sh.

الخيارات:

root@kitploit:~
# Build specific tasks only
python build.py --task CVE-2026-33175 CVE-2026-42561

# Skip rebuilding the base image
python build.py --skip-base

تُبنى صور المهام بشكل متوازٍ (حتى 5 عمال). إذا كان دليل المهمة يحتوي على Dockerfile، يُستخدم بدلاً من القالب العام docker/task.Dockerfile.


التحقق من المهام

قبل تشغيل المعيار، تأكد من أن اختبارات الأمان لكل مهمة تميّز بشكل صحيح بين الكود المُعرَّض للثغرة والكود المُصحَّح:

root@kitploit:~
python validate.py

لكل مهمة، تُنفَّذ ثلاث مراحل داخل حاوية المهمة:

المرحلةما يتحقق منه
المُعرَّض للثغرةيجب أن تفشل اختبارات الأمان (أو تُعلَّم xfail) على SHA المُعرَّض للثغرة
المُصحَّحيجب أن تنجح اختبارات الأمان على SHA المُصحَّح
الانحداريجب أن تنجح الاختبارات غير الأمنية على SHA المُصحَّح

تُعرض النتائج في جدول مباشر. رمز الخروج هو 1 إذا فشلت أي مهمة في أي مرحلة.

root@kitploit:~
# Validate specific tasks only
python validate.py --task CVE-2026-33175 GHSA-r758-8hxw-4845

# Skip rebuilding images before validation
python validate.py --skip-build

تشغيل المعيار

root@kitploit:~
python benchmark.py --model openai:gpt-5.5 poolside:laguna-m.1 --prompt-type advisory

الخيارات:

الموفّرون المدعومون:

يُنتج كل تشغيل ملف نتائج بصيغة JSON داخل results/:

root@kitploit:~
results/{task-id}__{provider}:{model}__{prompt-type}.json

تُتخطى ملفات النتائج الموجودة تلقائيًا. تُنفَّذ عمليات التشغيل بشكل متزامن عبر المهام (حتى 20 عاملًا)، مع تحديد معدل الطلبات لكل موفّر (طلب نشط واحد لكل موفّر في كل مرة) لتجنب أخطاء 429.


تنسيق النتيجة

كل ملف نتيجة هو كائن JSON بالبنية التالية:

root@kitploit:~
{
  "cve_id": "CVE-2026-33175",
  "model_id": "openai:gpt-5.5",
  "prompt_type": "advisory",
  "timestamp": "2026-05-01T12:00:00",
  "model_duration_s": 142.3,
  "test_duration_s": 8.1,
  "turns": [
    {
      "tool_calls_and_results": [...],
      "input_tokens": 12400,
      "output_tokens": 310
    }
  ],
  "tests": [
    {
      "kind": "security",
      "name": "test_email_verified",
      "outcome": "passed"
    }
  ]
}

قيمة tests[].kind هي إما "security" (من test_security.py) أو "regression" (من مجموعة اختبارات المشروع نفسه). لا يُعتبر التشغيل ناجحًا إلا إذا نجحت جميع اختبارات الأمان ولم يفشل أي اختبار انحدار.


توليد الرسوم البيانية

root@kitploit:~
python generate_charts.py

يقرأ جميع ملفات النتائج من results/ ويكتب رسومًا بيانية بصيغة SVG إلى docs/images/charts/. يتطلب Chrome/Chromium لتصدير Bokeh بدون واجهة رسومية (headless) (عبر chromedriver-binary).


بنية الأداة المساعدة (Harness)

تعمل الأداة المساعدة داخل كل حاوية Docker عبر python -m harness.run. وهي مسؤولة عن تحميل الموجه، وتشغيل حلقة الوكيل، وكتابة ملف النتيجة.

root@kitploit:~
src/harness/
├── run.py                  # Entry point; parses args, wires components, calls BenchmarkRunner
├── client/
│   ├── factory.py          # Parses provider:model-id, returns the correct LLMClient
│   ├── _client.py          # Abstract LLMClient, ToolCall and LLMTurn dataclasses
│   ├── anthropic.py        # Anthropic SDK integration
│   └── oai.py              # OpenAI SDK integration (also used for Poolside)
├── agent/
│   ├── core.py             # Agentic loop: calls client, dispatches tool calls, threads messages
│   └── runner.py           # Wraps Agent, tracks timing and turn list
├── bench/
│   ├── runner.py           # Orchestrates setup → agent → security tests → regression tests
│   ├── result.py           # BenchmarkResult and TestResult dataclasses, JSON serialisation
│   └── repository.py       # Writes result files to disk
└── task/
    ├── tools.py             # Tool implementations: ListFiles, ReadFile, SearchInFiles,
    │                        #   EditFile, CreateFile, DeleteFile, RunPytest
    └── prompt_loader.py     # Reads advisory.md / diagnose.md / locate.md

الأدوات المتاحة للوكيل:

تتحقق جميع الأدوات من المسارات مقابل جذر المستودع لمنع اجتياز الدلائل (directory traversal). لا يملك الوكيل حق الوصول إلى test_security.py أو إلى سجل git.

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


إضافة مهمة

  1. أنشئ tasks/{CVE-ID}/ وأضف meta.json وsetup.sh وrun_tests.sh وtest_security.py وadvisory.md وdiagnose.md وlocate.md.
  2. اجعل setup.sh وrun_tests.sh قابلين للتنفيذ (chmod +x).
  3. تحقق: python validate.py --task {CVE-ID}.
  4. ابنِ: python build.py --task {CVE-ID}.

الإفصاح

أُجري هذا العمل كبحث مستقل. في وقت إجراء البحث وإعداد هذا المستودع، لم تكن لي أي انتماءات مؤسسية.


الاستشهاد بهذا العمل

root@kitploit:~
@misc{gattipinheiro2026cvebench,
  author       = {Gatti Pinheiro, Giovanni},
  title        = {{CVE-Bench}: Benchmarking {LLM} Agents on Real-World Security Vulnerability Fixes},
  year         = {2026},
  howpublished = {\url{https://giovannigatti.github.io/cve-bench}},
  note         = {Code available at \url{https://github.com/GiovanniGatti/cve-bench}}
}

الترخيص

MIT — انظر LICENSE.

تنزيل الأداة
الخيارالوصفالافتراضي
--modelسلسلة واحدة أو أكثر بصيغة provider:model-idجميع النماذج المُعدّة
--prompt-typeadvisory أو diagnose أو locate أو أي مجموعة منهاالأنواع الثلاثة
--taskمعرّف مهمة واحد أو أكثرجميع المهام
--cleanحذف النتائج الموجودة للنطاق المحدد قبل البدءمعطّل
الموفّرالصيغةمتغير بيئة مفتاح API
OpenAIopenai:gpt-5.5OPENAI_API_KEY
Anthropicanthropic:claude-haiku-4-5-20251001ANTHROPIC_API_KEY
Poolsidepoolside:laguna-m.1POOLSIDE_API_KEY
الأداةالوصف
list_filesسرد الملفات والدلائل في المستودع
read_fileقراءة محتويات ملف، مع إمكانية تحديد نطاق أسطر
search_in_filesبحث بتعبيرات regex في قاعدة الكود مع نمط glob اختياري للملفات
edit_fileاستبدال نطاق من الأسطر في ملف موجود
create_fileإنشاء ملف جديد
delete_fileحذف ملف
run_pytestتشغيل مجموعة اختبارات المشروع؛ يعيد تقريرًا بصيغة JSON