
مهارات لنمذجة التهديدات، المسح، الفرز، التصحيح، بالإضافة إلى أداة مسح آلية مستقلة يمكنك تخصيصها /customize
تطبيق مرجعي للاكتشاف الذاتي للثغرات ومعالجتها باستخدام Claude، استنادًا إلى ما تعلمناه من الشراكة مع فرق الأمان في عدة مؤسسات منذ إطلاق Claude Mythos Preview. لمزيد من التفاصيل حول هذه الدروس وأفضل الممارسات، راجع منشور المدونة المصاحب (متوفر أيضًا في blog-post.md). للحصول على دليل خفيف باستخدام SDK فقط حول نفس الحلقة (الاستطلاع → البحث → الفرز → التقرير → التصحيح)، راجع الكتاب المصاحب.
هذا المستودع غير مُدار ولا يقبل المساهمات.
🔒 هل تريد خيارًا مُدارًا؟ تقدم Anthropic Claude Security، وهو منتج مُستضاف يجد ويصلح الثغرات في شيفرتك المصدرية عبر مشاريع متعددة. يقوم Claude Security بمسح مستودعك بحثًا عن الثغرات، ويطبق أنبوب تحقق متعدد المراحل لتقليل النتائج الإيجابية الخاطئة، ويتيح لك إدارة النتائج طوال دورة حياتها: الفرز، والتحقق من الإصلاح، وإنشاء الإصلاحات السريعة.
هذا المستودع هو تطبيق مرجعي مفتوح المصدر يعتمد على أفضل الممارسات العامة لإيجاد الثغرات باستخدام Claude. يمكنك استخدامه لبناء أنبوب البحث عن الثغرات الخاص بك، وتخصيص المنطق، ويمكن استخدامه مع أي وصول لديك إلى واجهات Claude API (بما في ذلك Bedrock، أو Vertex، أو Azure).
/quickstart، /threat-model، /vuln-scan،
/triage، /patch، /customize: تحديد النطاق التفاعلي، والمسح، والفرز،
والتصحيح. افتح هذا المستودع في Claude Code وشغّل /quickstart للتعرف
على البيئة.harness/: أنبوب المرجع الذاتي (الاستطلاع → البحث → التحقق
→ التقرير → التصحيح)، مُهيّأ لإيجاد ثغرات الذاكرة في C/C++
باستخدام Docker وASAN. هذا التسخين هو مرجع، وليس منتجًا.
الشكل العام، والموجهات، والعزل الصندوقي قابلة لإعادة الاستخدام، لكن التسخين
لن يعمل على كل قاعدة شيفرات مباشرة. شغّل /customize لنقله
إلى لغتك، أو أداة الكشف، أو فئة الثغرات الخاصة بك.⚠️ الأمان:
/quickstart،/threat-model،/vuln-scan، و/triageيقرؤون ويكتبون الملفات فقط. تشغيل/patchعلى النتائج الثابتة (TRIAGE.jsonأوVULN-FINDINGS.json) هو أيضًا للقراءة والكتابة فقط./customizeيعدّل شيفرة التسخين ويشغل أوامر التحقق. أي من هذه المهارات آمنة للتشغيل دون عزل صندوقي، طالما أنك تراجع وتوافق على كل استخدام للأداة في Claude Code. أنبوب المرجع الذاتي (بما في ذلك/patchعلى نتائج الأنبوب) ينفذ الشيفرة الهدف، لذلك يرفض التشغيل خارج صندوق عزل gVisor ما لم يتم تجاوزه صراحةً. للإعداد، شغّلscripts/setup_sandbox.shمرة واحدة، ثم استدعِ الأنبوب عبرbin/vp-sandboxed. راجع docs/security.md و docs/agent-sandbox.md لمزيد من التفاصيل.
git clone https://github.com/anthropics/defending-code-reference-harness
cd defending-code-reference-harness
claude
# مقدمة 30 ثانية + تشغيل أول موجه على الهدف الكناري
> /quickstart
> /quickstart كيف أنقل الأنبوب إلى Java؟
> /quickstart كيف أفرز كل هذه الأخطاء؟
أكثر فرق الأمان نجاحًا التي تعاونا معها هي تلك التي تبدأ العمل العملي بأسرع وقت. على الرغم من أن الإغراء بقضاء شهور في تصميم الأنبوب المثالي، إلا أننا نوصي بالبدء صغيرًا في اليوم الأول والبناء من هناك مع ظهور الدروس. الخطوات التالية تتبع هذا النمط وتحدد وتيرة طموحة (لكن معقولة) بناءً على ما رأيناه.
| الخطوة 1 | اليوم 1 | بناء نموذج تهديد وتشغيل أول مسح ثابت + فرز |
| الخطوة 2 | اليوم 2 | تشغيل أنبوب المرجع على مكتبة C/C++ |
| الخطوة 3 | الأيام 3-5 | تخصيص الأنبوب لهدفك |
| الخطوة 4 | الأسبوع 2 | بدء المسح الذاتي، والفرز، والتصحيح |
اليوم 1 يركز على رؤية الحلقة الكاملة من البداية إلى النهاية. باستخدام المهارات التفاعلية فقط، ستبني نموذج تهديد، وتشغل مسحًا ثابتًا محددًا به، وتفرز ما يعود، وتصوغ إصلاحات مقترحة. ستنهي اليوم بنموذج تهديد، وقائمة مرتبة من النتائج الثابتة، وتصحيحات مقترحة.
المهارات ذات الصلة تقرأ وتكتب الملفات فقط في مستودعك. طالما أنك تشغّل Claude Code تفاعليًا وتوافق على كل استخدام للأداة، لا حاجة لعزل صندوقي.
# ثبت كل وكيل فرعي على النموذج الذي تريده
export CLAUDE_CODE_SUBAGENT_MODEL=<model-id>
claude
# 0. مقدمة + تشغيل أول موجه
> /quickstart
# 1. بناء نموذج تهديد (صوّب قبل أن تطلق)
> /threat-model bootstrap targets/canary
# 2. تشغيل مسح ثابت، محددًا بواسطة نموذج التهديد
> /vuln-scan targets/canary
# 3. تحقق، أزل التكرارات، ورتب ما عاد
> /triage targets/canary/VULN-FINDINGS.json
# 4. إنشاء إصلاحات مقترحة للنتائج المؤكدة
> /patch ./TRIAGE.json --repo targets/canary
ينتج هذا التدفق THREAT_MODEL.md، VULN-FINDINGS.{json,md}،
TRIAGE.{json,md}، و PATCHES/.
نتائج الثغرات المحتملة المنتجة في الخطوة 1 تأتي من المراجعة الثابتة لـ Claude للشيفرة المصدر (لا شيء يُبنى أو يُشغّل)، لذا توقع نتائج إيجابية خاطئة أكثر على أي أهداف غير الكناري. في الخطوة 2، ستنتج نتائج مؤكدة بالتنفيذ.
ملاحظة: على الهدف الكناري، قد يتجاهل
/triageنتائج المسح كإيجابيات خاطئة.entry.cيعلن عن نفسه كشيفرة تجريبية معرضة عمدًا، و/triageيستبعد الأخطاء في شيفرة الاختبار / التجريب بشكل صحيح. لرؤية التدفق الكامل للتأكيد / إزالة التكرار / الإيجابيات الخاطئة، شغّله على التجربة المنظمة بدلاً من ذلك (/triage .claude/skills/triage/fixtures/canary-findings.json --repo targets/canary) أو وجّه مهارات الخطوة 1 إلى شيفرتك الخاصة.
في اليوم 2، ستنتقل من المهارات التفاعلية إلى أول تشغيل ذاتي باستخدام أنبوب المرجع. ستشغل حلقة الاستطلاع → البحث → التحقق → التقرير الكاملة في بيئتك على مكتبة مفتوحة المصدر معروفة الثغرات، ثم تنشئ تصحيحًا مقترحًا لما تجده. ستنهي اليوم بمجموعة من الأعطال القابلة للتكرار، وتقارير قابلية الاستغلال، وتصحيحات مقترحة، مع شعور بكيفية عمل الأنبوب.
تشغيل الأنبوب بسيط: