
خدمة تبني المستودعات مفتوحة المصدر المسجَّلة في أجهزة افتراضية معزولة دون اتصال بالإنترنت وتفحصها بحثًا عن الثغرات الأمنية، وترسل النتائج عبر البريد الإلكتروني مع أدوات إعادة الإنتاج والتصحيحات المقترحة.
OSS Scanner هي خدمة من Anthropic لفحص المستودعات مفتوحة المصدر الحيوية بحثًا عن الثغرات الأمنية. تعرّف على المزيد حول الخدمة على red.anthropic.com/oss-scanner.
ملاحظة: يخضع استخدام هذه الأداة للشروط والأحكام الموضحة في شروط OSS Scanner.
سجّل مشروعًا مفتوح المصدر عن طريق فتح طلب سحب (pull request) يضيف دليلًا واحدًا:
projects/<name>
يقوم ماسح الأمان لدينا ببناء مشروعك في جهاز افتراضي معزول، ثم يحلله دون اتصال بالإنترنت ويرسل ما يجده عبر البريد الإلكتروني إلى primary_contact (وأي عناوين CC)، مع خطوات إعادة الإنتاج وترقيع مقترح حيثما توفر. التقارير مُولَّدة بواسطة النموذج ولا يراجعها إنسان. ولهذا السبب لا نفرض فترة إفصاح مدتها 90 يومًا على هذه النتائج ولن نجعلها علنية. ينبغي لمالكي المشروع توفير project.yaml (لتهيئة الماسح)، وDockerfile (يوضح كيفية بناء المشروع)، واختياريًا threat_model.md (لتوفير نمذجة تهديدات خاصة بالمشروع).
ابدأ من templates/project.yaml:
repo: https://github.com/example/project # required: the git repository to scan; add #branch to pin one
primary_contact: [email protected] # required: reports and build problems go here (one address)
auto_ccs: # optional: more addresses on every mail
- [email protected]
homepage: https://example.org # optional
disabled: false # optional: true pauses reports without removing the enrolment
dockerfile: .oss-scanner/Dockerfile # required unless a Dockerfile sits in this repo next to your project.yaml
threat_model: .oss-scanner/threat_model.md # optional; also supports placing the file in this repository
repo وprimary_contact مطلوبان دائمًا. dockerfile مطلوب ما لم تحتفظ بـ Dockerfile بجوار project.yaml (انظر أدناه). البقية اختيارية.
عناوين البريد الإلكتروني في project.yaml علنية. استخدم عناوين لا تمانع في نشرها، مثل عنوان بريد أمني مستعار.
لتلقّي التقارير مشفّرة، أضف مفتاحك العام OpenPGP بصيغة armored. عندئذٍ تُرسل التقارير إلى primary_contact فقط؛ ولا يمكن الجمع بين pgp وauto_ccs:
pgp: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF...
-----END PGP PUBLIC KEY BLOCK-----
يجب عليك توفير Dockerfile، في واحد بالضبط من موضعين:
dockerfile: على مساره (نقترح موضعًا مثل .oss-scanner/Dockerfile). هذا هو الخيار المفضّل لأنه يتيح لك تحديث البناء دون طلب سحب هنا؛ أو،project.yaml، باسم projects/<name>/Dockerfile، دون ضبط مفتاح Dockerfile: في project.yaml. إذا كنت تفضّل عدم إضافة ملفات إلى مستودعك، ضعه هنا وسيبني الماسح تمامًا كما لو كان نسخة داخل المستودع.(تعمل نمذجة التهديدات بالطريقة نفسها. اضبط حقل threat_model على موقعه في مستودعك، أو ضعه هنا في projects/<name>/threat_model.md.)
الغرض من Dockerfile هو تهيئة بيئتك، وتثبيت كل التبعيات، وبناء المشروع. تعمل تهيئة المشروع الأولية مع تمكين الوصول إلى الشبكة، لكن التدقيق الأمني بعدها يعمل دون اتصال بالإنترنت. أي شيء يحتاجه البناء أو الاختبارات يجب جلبه أثناء تهيئة Dockerfile الأولية. نوصي بالتحقق من نجاح اختباراتك داخل الصورة المبنية.
يتيح لك ملف threat_model.md (اختياري لكن يُوصى به بشدة) تزويد الماسح بوثائق حول أهدافك الأمنية المقصودة. وجدنا أنه من الأكثر فائدة تقديم إرشادات حول كيفية تقييمك لخطورة التقارير (على سبيل المثال، هل تعتبر SQLi بعد المصادقة عالية أم حرجة؟ هل تُحدَّد تجاوزات المخزن المؤقت دون استغلالات مُثبتة عند درجة عالية؟ متى يكون XSS المخزّن متوسطًا أو عاليًا أو حرجًا؟) يمكن لهذا الملف أيضًا توضيح ما يفعله المشروع، ومن أين يدخل المدخل غير الموثوق، وأي المكوّنات مهمة وأيها خارج النطاق، وكيف تريد أن تبدو التقارير والترقيعات، أو أي شيء آخر تراه مهمًا أو مفيدًا.
نقترح تشغيل أمرين قبل فتح طلب سحب:
tools/validate.py من projects/<name>/ وفقًا للقواعد أعلاه.tools/check <name> مشروعك بالطريقة التي سيفعلها ماسحنا، ويفتح صدفة (shell) في الصورة النهائية دون شبكة. إذا نجحت اختباراتك في هذه الحاوية، فمن المرجح أن يعمل ماسحنا مع مشروعك. يفعل tools/check --qemu <name> الشيء نفسه داخل أجهزة افتراضية مُهيّأة مثل أجهزة الماسح.تحتاج هذه الأدوات إلى أن يكون مضيفك قد ثبّت git وDocker وPython 3 مع PyYAML (pip install pyyaml)؛ يحتاج --qemu إلى Linux على x86-64 مع QEMU بدلًا من Docker.
primary_contact برسالة خطأ.primary_contact وأي عناوين CC إضافية مع خطوات إعادة الإنتاج وترقيع مقترح حيثما توفر.يمكنك تعديل مشروعك في أي وقت عبر PR. لإلغاء تسجيل مشروعك، اضبط حقل disabled على true لإيقاف التقارير مؤقتًا أو احذف projects/\<name\>/ لسحب المشروع بالكامل.
tools/check ملف Dockerfile الخاص بمشروعك مع وصول إلى الشبكة، كما يفعل docker build. مع --qemu يعمل البناء داخل جهاز افتراضي، ما يبعده عن ملفاتك، لكنه لا يزال قادرًا على الوصول إلى الخدمات على حاسوبك وشبكتك المحلية. افحص فقط المشاريع التي تثق بها، أو استخدم جهازًا لا شيء فيه لتخسره.tools/check أداة Claude Code في الصورة التي يبنيها (كما يفعل الماسح). تخضع Claude Code لشروطها الخاصة.يُرجى زيارة red.anthropic.com/oss-scanner.
حالة الصيانة: يُصان هذا المستودع بنشاط من قِبل Anthropic. نحن نراجع وندمج طلبات سحب التسجيل فقط (التغييرات تحت projects/<name>/)؛ ولا نقبل مساهمات أخرى، بما في ذلك التغييرات على tools/ أو templates/. راجع CONTRIBUTING.md لمعرفة كيفية التسجيل، وSECURITY.md للإبلاغ عن ثغرة في هذا المستودع، وCODE_OF_CONDUCT.md.