
تطبيق ويب أحادي الملف يعمل دون اتصال يستوعب ملفات SBOM بصيغ CycloneDX وSPDX وsyft، ويشغّل مجموعة من ماسحات CVE، ويثري النتائج بـ EPSS وCISA-KEV وnuclei، ويصدّر SARIF وCSAF وPDF.
تطبيق ويب أحادي الملف التنفيذي يعمل دون اتصال بالشبكة لفحص ملفات SBOM (قائمة مكوّنات البرمجيات). ارفع ملف SBOM أو استورد مجلدًا يحتوي عليها، وحلّل كلًّا منها بمجموعة من الأدوات المستقلة، وراجع النتائج الموحّدة في واجهة محلية واحدة، ثم صدّر النتيجة بثمانية صيغ. لا تثبيت، ولا وصول إلى الشبكة، ولا قياسات عن بُعد.
NOASSERTION الصريح من المورّد والحقل الغائب ببساطة.تسرد الصفحة الرئيسية (/) كل ملف SBOM مخزّن وتبقى قابلة للاستخدام مع نمو
المجموعة:
log4j أو openssl يجد كل ملف SBOM
يشمل ذلك المكوّن. الاستعلام محدود الطول ويُحلَّل بتسامح.يجيب /components عن السؤال المعاكس — أيّ من ملفات SBOM لديّ تُصرّح بهذا
المكوّن — عبر المجموعة كاملة دفعة واحدة، باسم المكوّن أو بعنوان الحزمة
الدقيق. وهو يقرأ فهرس مكوّنات مخصّصًا يُبنى عند الاستيعاب، منفصلًا عن الفهرس
النصّي الكامل للوحة التحكم.
ولأن فهرسًا قديمًا سيجعل ملف SBOM متأثرًا فعلًا يظهر كـ"غير متأثر"، توضّح الصفحة عدد ملفات SBOM غير المفهرسة بعد وتوفّر Rebuild index، الذي يعيد تحليل البايتات المحتفظ بها لتلك الملفات تحديدًا. ولا يكتمل البحث إلا بعد زوال ذلك التحذير.
تعني "مفهرس" أن الفهرس قد بُني، وهذا ليس مماثلًا لـ"أنتج صفوفًا": فملف
SBOM يحتوي على بيانات وصفية فقط لا يُصرّح بأي مكوّنات، فلا يسهم بأي منها ومع
ذلك يكون مفهرسًا بالكامل. ويسجّل المخزن واقعة الفهرسة لكل ملف SBOM
(schema v8، components_indexed_at) بدلًا من استنتاجها من وجود الصفوف — إذ
كان استنتاجها يعني أن ملف SBOM خاليًا من المكوّنات لا يمكن أن يغادر مجموعة
"غير المفهرس بعد"، فيبقى التحذير بعد كل إعادة بناء ويُبلّغ الزر عن الملفات
نفسها كمفهرسة حديثًا إلى الأبد. والترقية تُرحّل تلقائيًا وتملأ ما كان له صفوف
بالفعل؛ وتُسوّي إعادة بناء واحدة ما تبقّى.
كل أداة اختيارية وقت التشغيل وتُكتشف على PATH (يمكن تجاوز الملف التنفيذي
بـ SBA_TOOL_<NAME>_BIN). ولا تعتمد النتائج أبدًا على أداة واحدة. وقبل كل
فحص تُشغَّل الأداة مرة واحدة بوسيط الإصدار الخاص بها: عدم وجود الملف التنفيذي
يعني skip (not found on PATH)، أما الملف التنفيذي الذي يتعذّر تشغيله أو
لا يعطي إجابة خلال 15 ثانية فيعني fail مع ذلك السبب.
| الأداة | الدور | تم التحقق منها مقابل |
|---|---|---|
| syft | موحّد SBOM / محوّل CycloneDX 1.6 | 1.52.0 |
| grype | مطابق CVE | 0.119.0 |
| trivy | ماسح الثغرات | 0.74.0 |
| osv-scanner | استعلامات قاعدة بيانات OSV | 2.4.0, 2.6.0 |
| bomber | مطابق مستقل ضمن المجموعة | 0.5.1 |
| bomdrift | انحراف سلسلة التوريد / typosquat (SARIF) | 0.9.9 |
| inspektr | ماسح ثغرات SBOM (JSON) | 0.1.9 |
| shieldbom | ماسح CVE مدمج/إنترنت الأشياء دون اتصال (SARIF) | 0.3.0 |
| provenant | الترخيص / حقوق النشر / المصدر (ScanCode) | 1.0.10 |
"تم التحقق منها مقابل" هو الإصدار الذي جُرّب به كل استدعاء فعليًا، وليس حدًّا
أدنى ولا تثبيتًا: فالأدوات تُحلّ على PATH وقت التشغيل وأي إصدار متوافق
يعمل. ويُدرج osv-scanner إصدارين لأن 2.6.0 أُعيد التحقق منه بعد أن غيّر
خط 2.x طريقة تسجيله — فالصيغة الموثّقة scan --lockfile <input> --format json
لم تتغيّر وما زالت تُخرج رمز خروج غير صفري عند وجود نتائج، لذا لم تكن هناك
حاجة لتغيير الشيفرة.
تسهم الأدوات الثماني الأولى بـنتائج ثغرات على شكل CVE؛ أما provenant
فمختلف — إذ يبلّغ عن مصدر الترخيص وحقوق النشر والمالك والمؤلف، وهو ما
يخزّنه المدقّق ويعرضه بشكل نتيجة خاص به (قسم "Licence & provenance" لكل
تشغيل، مُضمَّن في تصدير Markdown) بدلًا من إهماله.
لا تستطيع الماسحات قراءة كل صيغة مباشرة: فـ bomber يستهلك CycloneDX ≤ 1.6
فقط، ولا يقرأ أي من الماسحات SPDX 3.0 JSON-LD. وفي كلتا الحالتين يوحّد
المدقّق المدخل إلى CycloneDX عبر syft convert أولًا، ويتخطّى بسبب موثّق
عندما يكون syft غير متاح بدلًا من أن تُبلّغ أداة عن صفر حزم. وتُحدَّث قاعدة
بيانات ثغرات grype مرة واحدة لكل تشغيل (خارج النطاق) بحيث يكون التقادم
الروتيني فحصًا جديدًا لا فحصًا فاشلًا.
بعد التحليل، تُثرى كل نتيجة على شكل CVE بثلاث إشارات حقيقية مسحوبة من خدمة vulnlookup (الافتراضية https://vulnlookup.ndaal.eu):
تُظهر كل نتيجة قيم KEV وNuclei وEPSS وSource الخاصة بها، حيث يربط Source عودةً إلى سجل vulnlookup، وتُرتَّب النتائج من الأكثر إلحاحًا أولًا: تتصدّر المدخلات المعروفة بأنها مستغَلّة (KEV)، ثم تلك ذات المئين المئوي الأعلى في EPSS؛ أما النتائج بلا إثراء فتحتفظ بالترتيب الذي أنتجها به المحلّل. وينتقل الإثراء إلى كل صيغة تصدير — SARIF 2.1 / 2.2 وMarkdown وODT وDOCX وPDF وCSAF 2.1 / 2.2، حيث يحمل CSAF قيمة EPSS كمقياس أصلي ويسجّل CISA-KEV وnuclei كملاحظات — ونموذج التصدير الآن يحدّد كل الصيغ افتراضيًا.