قائمة مكوّنات للبرمجيات

قائمة مكوّنات البرمجيات (SBOM) هي قائمة منظّمة بالمكوّنات التي تتألف منها البرمجية: الحزم وإصداراتها ومورّدوها وتراخيصها والعلاقات بينها. إنها قائمة المكوّنات المطبوعة على جانب العلبة.

الفكرة ليست جديدة، لكنها أصبحت ملحّة. فحين يُعلَن عن ثغرة خطيرة في مكتبة واسعة الاستخدام، يكون أول سؤال تطرحه كل مؤسسة: هل نحن متأثرون؟ ودون SBOM، تتطلب الإجابة البحث في المستودعات وسؤال الفرق والأمل. أما معه فهي مجرد استعلام. ويتزايد توقع العملاء والجهات التنظيمية أن يكون المورّدون قادرين على الإجابة عن هذا السؤال بسرعة، وSBOM هو وسيلة ذلك.

تنسيقان، وكلاهما مفتوح

يهيمن تنسيقان مفتوحان. فتنسيق SPDX، الذي يُدار تحت مظلة Linux Foundation، بدأ بالتركيز على معلومات التراخيص ونُشر بوصفه المعيار الدولي ISO/IEC 5962. وهو قوي بشكل خاص في وصف التراخيص وحقوق النشر والعلاقات بين الملفات والحزم والمستندات، مما يجعله ملائمًا بطبيعته لأعمال الامتثال.

أما CycloneDX، وهو مشروع تابع لـ OWASP، فقد بدأ بالتركيز على الأمن. وهو مدمج، ومدعوم على نطاق واسع في أدوات الأمن، ويمتد بشكل طبيعي إلى معلومات ذات صلة مثل الثغرات المعروفة والخدمات وقابلية استغلال النتيجة في سياقها. وكثيرًا ما يكون التنسيق المفضل في خطوط معالجة أمن سلسلة توريد البرمجيات.

في الواقع العملي، يتداخل التنسيقان كثيرًا، وتوجد أدوات للتحويل بينهما. والقرار الأهم ليس أي تنسيق تختار، بل ما إذا كنت تُنشئ قوائم SBOM باتساق وتلقائيًا وبدقة. وكثير من المؤسسات تُنتج كليهما، وتستخدم كلًّا منهما حيث تكون أدواته أقوى.

إنشاء قوائم SBOM بشكل جيد

قائمة SBOM المكتوبة يدويًا تصبح قديمة لحظة حفظها. والنهج الوحيد القابل للاستدامة هو إنشاؤها جزءًا من عملية البناء، من المدخلات نفسها التي تُنتج البرمجية. وبضع عادات تصنع الفرق بين SBOM مفيدة وأخرى للزينة:

  • أنشئها وقت البناء، من ملفات القفل والمنتج المبني، لا من حاسوب أحد المطورين.
  • أدرج التبعيات غير المباشرة، لا الحزم التي سمّيتها مباشرة فقط.
  • سجّل الإصدارات الدقيقة ومعرّفات الحزم كي تتمكن قواعد بيانات الثغرات من مطابقتها.
  • احفظ كل SBOM إلى جانب الإصدار الذي تصفه، وبرقم الإصدار نفسه.
  • وقّع SBOM أو أرفق بها مجموع تحقق كي يثق المستلمون بأنها لم تُعدَّل.

استخدام قوائم SBOM لا مجرد إنتاجها

قائمة SBOM القابعة في مجلد لا تحمي أحدًا. فقيمتها تأتي مما تفعله بها. من الجانب الأمني، يمكن تغذية ماسح الثغرات بقوائم SBOM باستمرار، بحيث تُطابَق أي مشكلة يُكشف عنها حديثًا مع كل ما شحنته، لا مع ما تبنيه اليوم فقط. ومن جانب الامتثال، يمكن التحقق من بيانات التراخيص مقابل سياستك قبل الإصدار، فتُكتشف المشكلة حين يكون إصلاحها رخيصًا.

وتساعد قوائم SBOM أيضًا في النقاشات خارج نطاق الهندسة. إذ تستطيع إدارة المشتريات طلبها من المورّدين. ويستطيع فريق العمليات استخدامها لتخطيط الترقيات. وحين يسأل عميل عما إذا كان مكوّن معين موجودًا في منتجك، يمكنك الإجابة بالدليل لا بالطمأنة.

حدود صريحة

دقة SBOM لا تتجاوز دقة الأداة التي أنتجتها، والأدوات تتفاوت في قدرتها على اكتشاف المكوّنات المضمَّنة أو المنسوخة أو المبنية من المصدر. وهي تصف ما هو موجود، لا ما إذا كان قابلًا للاستغلال، فهذا الحكم لا يزال يحتاج إلى أشخاص وسياق. والقائمة التي تتضمن كل شيء قد تكون مربكة، لذا استثمر في التصفية وتحديد الأولويات بدلًا من مجرد توليد المزيد من البيانات.

لا شيء من هذا سبب للانتظار. ابدأ بأهم تطبيقاتك، وأنشئ له SBOM بكلا التنسيقين، وانظر إلى ما تخبرك به، وأصلح المفاجآت. ستجد بعضها على الأرجح، وهذا هو المقصود.