إطار مراجعة أمنية تطبيقية ثابتة متعدد الوكلاء لوكلاء البرمجة بالذكاء الاصطناعي: يرسم خرائط لقواعد الأكواد، ويتقصّى فئات الثغرات، ويسلسل النتائج ويتحقق منها، ويقدّم التقارير بصيغ SARIF وJSON وPDF.
أداة مراجعة أمن التطبيقات متعددة الوكلاء لـ Claude Code (ولاحقًا، وكلاء ذكاء اصطناعي آخرين). مهارة موجّه واحدة توزّع المهام إلى خط أنابيب أمني هجومي كامل يقوم بـ رسم خريطة قاعدة الشيفرة، واصطياد الثغرات باستخدام قاعدة معرفية لكل فئة، وتسلسل النتائج إلى تصعيدات، والتحقق من التأثير الحقيقي، والإبلاغ إلى README / JSON / SARIF / doc / PDF.
النطاق: تنفّذ هذه الأداة تحليلًا ساكنًا (مراجعة الشيفرة المصدرية، تتبّع تدفّق البيانات، بناء PoC/payload) على شيفرة تملكها أو مصرّح لك باختبارها. لا تهاجم أنظمة طرف ثالث حيّة.
security-harness/ # a plugin marketplace └── plugins/security-harness/ ├── skills/ │ ├── sh-router # single entry point - routes any appsec request │ ├── sh-security-review # the pipeline orchestrator (Stages 0-5) │ └── sh-kb-* (15) # per-vuln-class knowledge bases ├── agents/ │ ├── sh-recon # map: Graft graph + stack/SBOM/CVE + attack surface │ ├── sh-hunter # find: source→sink hunting, one per class (parallel) │ ├── sh-chainer # escalate: combine findings into attack chains │ ├── sh-verifier # confirm: offensive + seceng + dev verification + PoC │ └── sh-reporter # deliver: README/JSON/SARIF/HTML/PDF/doc └── references/ # shared contracts (finding schema, SARIF map, state files, rubrics)
### فئات الثغرات المغطاة (مهارات `sh-kb-*`)
التحكم في الوصول (IDOR/BOLA/تصعيد الصلاحيات) · sqli · xss · ssrf · الحقن (cmd/code/SSTI/LDAP) · المصادقة (الجلسة/JWT)
· إلغاء التسلسل · اجتياز المسار (LFI/RFI) · الأسرار · csrf · xxe · إعادة التوجيه المفتوح · التشفير · حالات التسابق
· رفع الملفات. يتم التعامل مع ثغرات التبعيات CVEs/SBOM بواسطة مرحلة الاستطلاع.
## التثبيت
تتوفر أداة التشغيل لعدة وكلاء. تفاصيل التغليف الكاملة وقائمة التحقق
قبل الإصدار موجودة في [`docs/DISTRIBUTION.md`](https://github.com/dmdhrumilmistry/security-harness/blob/main/docs/DISTRIBUTION.md).
**Claude Code** - أضف هذا المستودع كسوق إضافات (plugin marketplace) وثبّت الإضافة:```
/plugin marketplace add dmdhrumilmistry/security-harness
/plugin install security-harness
/plugin marketplace add يقبل أيًا مما يلي: مسار GitHub owner/repo (كما هو موضح أعلاه)، أو عنوان URL كامل لـ git
(https://github.com/dmdhrumilmistry/security-harness.git)، أو مسار محلي إلى نسخة مستنسخة
(على سبيل المثال /plugin marketplace add ./security-harness من الدليل الذي يحتوي على نسختك المستنسخة).
ثم شغّل /plugin install security-harness وأعد التحميل عند المطالبة.
Gemini CLI - إضافة أصلية، ملف manifest في جذر المستودع:```bash gemini extensions install https://github.com/dmdhrumilmistry/security-harness
**opencode أو Codex أو أي وكيل [agentskills.io](https://agentskills.io)** - انسخ
المهارات إلى دليل الاكتشاف. كما يلتقط Codex ملف `AGENTS.md` من تلقاء نفسه:```bash
git clone https://github.com/dmdhrumilmistry/security-harness
cd security-harness
python3 scripts/sync-agent-skills.py --install agents # ~/.agents/skills
python3 scripts/sync-agent-skills.py --install opencode # ~/.config/opencode/skills
يتم تثبيت Graft وإعداده تلقائيًا بواسطة خط الأنابيب. تشغّل المرحلة 0 الأمر npm install -g @nanonets/graft إذا كان مفقودًا (يتطلب Node/npm)، ثم graft init <target> --no-agents --no-global
لتسجيل خادم Graft MCP وخطافات الحداثة للمستودع الهدف. يُبنى الرسم البياني نفسه (<target>/graft/،
يُتجاهل تلقائيًا بواسطة git) أثناء الاستطلاع. للتثبيت المسبق يدويًا: npm install -g @nanonets/graft. البناء
الهيكلي لـ Graft مجاني ولا يحتاج إلى مفتاح API؛ تمريرة LLM الاختيارية --deep تستخدم GRAFT_API_KEY /
GRAFT_PROVIDER / GRAFT_MODEL عند تعيينها.
تُثبَّت الأدوات الأخرى أيضًا تلقائيًا بواسطة المرحلة 0 عند فقدانها (عبر أي مدير حزم موجود على
الجهاز - winget/choco/scoop، brew، apt، npm/pip/go - انظر references/tooling-setup.md). يُعلَن عن
عمليات التثبيت، وتُفضَّل طرق عدم رفع الصلاحيات، ولا تعيق التشغيل أبدًا: أي شيء يتعذر تثبيته يُوسَم ببساطة
غير متاح ويتحول خط الأنابيب إلى البديل. تثبّت المرحلة 0 فقط ما يملأ مجموعة قدرات مفقودة:
syft · CVEs: أحد grype
(المفضّل)، trivy، أو osv-scannerwkhtmltopdf أو pandoc (لـ PDF/DOCX)؛ وإلا فستحصل على report.html (أو PDF عبر headless-Chrome).جميعها اختيارية - يتحول خط الأنابيب بسلاسة إلى البحث الأصلي + تحليل المانيفست إذا لم يُثبَّت أي منها.
استدعِ الموجّه (router) بطلب باللغة الطبيعية:``` /sh-router full security review of ./api /sh-router find SQLi and IDOR in src/ /sh-router just map this codebase # recon only
أو استدعِ خط الأنابيب مباشرةً:```
/sh-security-review . classes:sqli,access-control,ssrf depth:deep
/sh-security-review . stage:report # regenerate reports for the latest run
تعمل كل مرحلة على نموذج يتناسب مع حملها المعرفي، بحيث تُنفق الرموز (tokens) حيث تعتمد جودة الاكتشاف فعليًا عليها، وتُوفَّر في الأعمال الميكانيكية. هذا هو الإعداد الافتراضي - لا حاجة إلى وسائط.
| المرحلة | النموذج الافتراضي |
|---|---|
| recon | sonnet |
| hunt (لكل فئة) | haiku لفئات الأنماط (secrets, crypto, open-redirect, csrf) · sonnet لتتبع المصدر→المصب (sqli, xss, ssrf, injection, path-traversal, xxe, file-upload, auth) · opus لفئات المنطق العميق (access-control, race-conditions, deserialization) |
| chain | opus |
| verify | opus (بوابة الدقة - تبقى قوية) |
| report | haiku |
يمكن التجاوز باستخدام الوسيطة models: (تُمرَّر عبر الموجّه أيضًا):```
/sh-security-review . # default tiered map above
/sh-security-review . models:max # every stage + hunter on opus (max quality, max cost)
/sh-security-review . models:cheap # aggressive downshift (trades some verify precision)
/sh-security-review . models:verify=opus,hunt=sonnet # per-stage overrides
/sh-security-review . models:report=sonnet,hunt.pattern=sonnet # per-hunter-tier override
المراحل: `setup, recon, hunt, chain, verify, report`. النماذج: `opus, sonnet, haiku, inherit`. بالنسبة لـ `hunt`،
نموذج مجرّد يسطّح جميع الصيادين إليه؛ `hunt.pattern` / `hunt.trace` / `hunt.logic` تستهدف طبقة واحدة.
موفّرات الرموز الأخرى مدمجة: recon يُنشئ صيادين فقط للفئات ذات سطح هجوم حقيقي، والصيادون
يستعلمون من مخطط Graft بدلاً من قراءة الملفات كاملة، ويتم إنشاء `findings.json`/SARIF بواسطة
سكربت حتمي بدلاً من النموذج.
### المخرجات
كل شيء يستقر تحت `<target>/.security-harness/<run-id>/`:
- `recon.md`، `codebase-map.json` - الخريطة (stack، SBOM، CVEs، سطح الهجوم).
- `findings.jsonl` → `chains.md` → `verified.jsonl` - حالة العمل (انظر `references/state-files.md`).
- `reports/` - `README.md`، `findings.json`، `results.sarif`، `report.html`، `report.pdf` (+ `report.docx`).
كل اكتشاف منشور يحمل payload، وPoC، وحكم التحقق، ومعرّفات CWE/OWASP، وCVSS، و
تخفيفاً على مستوى الكود.
## مراجعة طلب السحب
`sh-pr-review` يراجع طلب سحب واحد بدلاً من قاعدة كود كاملة، وينشر
النتيجة كتعليقات مضمّنة **على طلب السحب نفسه**، ويضبط حالة commit باسم `security/pr-review`
يمكن لحماية الفرع فرضها.
**شغّله من جهازك الخاص، على أي PR يمكنك قراءته.** ثبّت الإضافة واسأل:```
review https://github.com/acme/api/pull/128
review PR 42
security review this PR
الصق رابط PR وسيقوم بمراجعة ذلك PR في ذلك المستودع، مع استنساخه إلى دليل مؤقت أولاً، لأن الصيادين يقرؤون الملفات وليس الرقعة فقط. لا شيء يُكتب في المستودع الذي تعمل فيه.
مرّر رقمًا مجردًا وسيتم حله مقابل المستودع الذي أنت فيه حاليًا، الذي
يشير إليه git remote. مرّر لا شيء وسيأخذ الـ PR المفتوح لفرعك الحالي.
المرحلة 7 تطبع النتائج والحكم وتسأل قبل نشر أي شيء - الرفض نتيجة طبيعية، وتبقى الحمولة على القرص لتنشرها لاحقًا.
قبل إنفاق أي تحليل يتحقق مما إذا كان بإمكانك الكتابة فعلاً إلى المستودع الهدف، لذا فإن مراجعة مشروع شخص آخر تخبرك مقدمًا أن النشر سيعيد 403 بدلاً من اكتشاف ذلك بعد عشر دقائق.