كيف يعمل
من رابط المستودع إلى نتائج مؤكدة
تعكس سلسلة المعالجة ما وصفته Anthropic عن OSS Scanner — نموذج التهديدات، والتدقيق، والتحقق المزدوج، والسبب الجذري، والرقعة — وهي مبنية على أحدث نماذج Claude المتاحة عبر واجهة API عامة.
- 1
استنساخ آمن
نجلب الفرع الذي طلبته باستخدام git clone سطحي مع تصفية الكائنات الثنائية عبر HTTPS. تُعطّل خطافات Git، وتُستخرج الروابط الرمزية كملفات عادية، ويُرفض كل نقل لا يستخدم HTTPS. تُحظر عناوين الشبكات الخاصة، لذلك لا يمكن توجيه الماسح إلى مضيفين داخليين.
لا يُنفّذ أي شيء من المستودع مطلقًا: لا عمليات بناء، ولا تثبيت للحزم، ولا اختبارات. يُحذف مجلد العمل عند انتهاء الفحص.
- 2
الجرد وترتيب المخاطر
يُدرج كل ملف مصدر نصي مع لغته وحجمه. ويُتخطى الشفرة المضمّنة من جهات خارجية، والملفات المُولّدة، والحزم المصغّرة، وملفات القفل. تحصل كل الملفات على درجة مخاطر تستند إلى نقاط النهاية الخطرة — نسخ الذاكرة، وتنفيذ الصدفة، وإلغاء التسلسل، وبناء استعلامات SQL، وعرض القوالب، وضم المسارات، وشفرة التشفير والمصادقة — وإلى المسارات الساخنة مثل المحللات ومعالجات البروتوكولات وتوجيه الطلبات.
- 3
نموذج التهديدات
إذا كان المستودع يحتوي على .oss-scanner/threat_model.md (الملف نفسه الذي يقرأه ماسح Anthropic)، أو SECURITY.md، أو نموذج تهديدات قدمته عند التسجيل، يتبعه الماسح. وإلا، يقرأ أحد النماذج ملف README وبنية المجلدات والملفات الأعلى خطورة، ثم يصوغ نموذجًا يوضح ماهية المشروع، ومواضع دخول المدخلات غير الموثوقة، وما يقع خارج النطاق.
يحدد نموذج التهديدات أيضًا الملفات التي يجب التركيز عليها، كي تُخصّص ميزانية التدقيق للشفرة التي يستطيع المهاجم الوصول إليها فعليًا.
- 4
التدقيق
تُجمع الملفات الأعلى خطورة في دفعات كبيرة مع أرقام الأسطر، وتُرسل إلى نموذج استدلال مرفقًا به نموذج التهديد. يبحث النموذج عن المشكلات التي قد يبلغ عنها مدقق بشري دقيق:
- أمان الذاكرة: تجاوزات، واستخدام بعد التحرير، واقتطاع الأعداد الصحيحة
- الحقن: SQL، والأوامر، والقوالب، واجتياز المسارات، وSSRF
- منطق المصادقة والتفويض والجلسات
- إلغاء التسلسل غير الآمن والتباس المحللات
- إساءة استخدام التشفير والتعامل مع الأسرار
تستخدم عمليات الفحص السريعة Claude Haiku بميزانية متوسطة. أما عمليات الفحص المتعمقة للمشاريع المسجلة فتستخدم Claude Sonnet وتقرأ ما يصل إلى أربعة أضعاف كمية الشيفرة.
- 5
التحقق المستقل
يُرسل كل اكتشاف محتمل إلى وكيل تحقق منفصل بسياق جديد. ومهمته دحض الاكتشاف: تتبّع تدفق البيانات، والبحث عن عمليات تحقق في مواضع أخرى، والتأكد مما إذا كان المهاجم يتحكم فعلًا في المدخلات وفقًا لنموذج التهديدات. لا تبقى إلا الاكتشافات التي يؤكدها أو يقيّم احتمال صحتها بأنه مرتفع؛ أما البقية فتُحتسب ضمن الاكتشافات المرفوضة.
يكتب وكيل التحقق للاكتشافات التي اجتازت التحقق السبب الجذري، ومُدخلًا لإعادة إنتاج المشكلة، ورقعة مرشحة بسيطة بصيغة الفرق الموحّد.
- 6
تحديد الالتزام المُدخِل للمشكلة والتقرير
تُدمج الاكتشافات المكررة التي تشترك في سبب جذري. ويحدد git blame على الأسطر المعرضة للثغرات أحدث التزام عدّلها — وهو عادةً الالتزام الذي أدخل الخلل — كي تتمكن من إضافة وسم Fixes: ومعرفة الإصدارات المتأثرة.
يُخزّن التقرير تحت معرّف عشوائي يتعذر تخمينه. ويمكنك تصديره بصيغة Markdown لنشرة أمنية، أو JSON للأدوات، أو SARIF 2.1.0 لفحص الشفرة في GitHub.
ما لا يفعله الماسح
- لا يشغّل شفرتك، ولا يبنيها، ولا يجلب التبعيات.
- لا ينشر الاكتشافات، ولا ينشئ مشكلات، ولا يتواصل مع أحد باستثناء المشرفين المسجلين.
- لا يحتفظ بنسخة من شفرتك المصدرية بعد الفحص. تتضمن التقارير مقتطفات قصيرة من الأسطر المتأثرة.
- لا يضمن أي شيء: فالنماذج قد تفوّت الأخطاء وأحيانًا تبلغ عن أخطاء غير موجودة. والتقرير الخالي من الاكتشافات ليس شهادة أمان.
لماذا تظل مُدخلات إعادة الإنتاج مخفية
يمكن لأي شخص لصق رابط مستودع عام، بمن فيهم غير المشرفين. يساعد السبب الجذري والرقعة المدافعين؛ أما إثبات المفهوم القابل للتشغيل فيفيد المهاجمين بالدرجة الأولى. لذلك تظل مُدخلات إعادة الإنتاج مخفية إلى أن يضيف أحدهم ملفًا رمزيًا إلى المستودع — دليلًا على قدرته على إصدار إصلاح. ويتبع ذلك إرشادات Linux kernel التي تنص على مشاركة مُدخلات إعادة الإنتاج للثغرات التي عثر عليها الذكاء الاصطناعي عند طلب المشرف.
كيف يختلف هذا عن OSS Scanner من Anthropic
تشغّل Anthropic ماسحها داخل بيئات معزولة غير متصلة بالإنترنت، مع بناء مشروعك من Dockerfile، ما يتيح للوكلاء ترجمة الشفرة وتنفيذها لتأكيد الأخطاء ديناميكيًا. ويستخدم الماسح أقوى نماذجها، ومنها Claude Mythos، غير المتاح للعامة. أما نحن فنفحص الشفرة ساكنًا باستخدام نماذج Claude المتاحة للعامة. وفي المقابل، يمكن لأي شخص استخدام ossscanner.org خلال دقائق، من دون تقديم طلب أو استخدام Dockerfile.