لم تعد قائمة مواد البرامج مجرد وثيقة "من المفيد الحصول عليها" للمؤسسات. لقد أصبح الآن "أمرًا ضروريًا" لمجموعة واسعة من الأسباب. بصرف النظر عن حقيقة أن اللوائح الفيدرالية جعلت الكشف عن مكونات برنامجك إلزاميًا، فقد أدركت شركات البرمجيات الآن أن إدراج جميع التبعيات مفتوحة المصدر والتبعيات التجارية المستخدمة في تطبيقك يعد ممارسة مفيدة للأمن السيبراني.
ومن المثير للاهتمام، أنه على الرغم من إدراك الحاجة إلى SBOM، إلا أن إنشائها لا يزال يمثل تحديًا كبيرًا. وذلك لأن عملية إنشاء قائمة مواد البرنامج لمنتج ما يمكن أن تكون معقدة ومملة وتستغرق وقتًا طويلاً. وأيضًا، نظرًا لأن السلطات التنظيمية توصي بإنشاء SBOM دقيق ودقيق لكل تكرار لمنتجك، فإن تنفيذه يدويًا في كل مرة يتطلب استخدامًا كثيفًا للموارد إن لم يكن غير عملي تمامًا.
عندما يتعلق الأمر بتنفيذ SBOMs الشامل، فمن المستحسن دائمًا اتباع مسار الأتمتة. كل برنامج عبارة عن حزمة معقدة تتكون من تبعيات متعددة والتي على الأرجح لها تبعيات خاصة بها أيضًا. وهذا يعني أنه حتى أبسط البرامج قد تحتوي على مئات أو حتى آلاف التبعيات. سوف يستغرق الأمر الكثير من العمل لتجميع كل هذه العناصر والاحتفاظ بها منظمة يدويًا. تشرح هذه المقالة سبب أهمية الأتمتة لتنفيذ SBOMs وكيفية تنفيذ الأتمتة لتخفيف الضغط الذي يأتي مع إنشاء SBOMs يدويًا.
لماذا تعتبر أتمتة عملية SBOM أمرًا مهمًا
قائمة مواد البرنامج هي ببساطة قائمة بمكونات منتج البرنامج (على غرار قائمة المكونات الموجودة في منتج صالح للأكل). بشكل عام، كل ما تحتاجه لإنشاء قائمة مواد البرنامج هو جدول بيانات يسرد هذه المكونات. ومع ذلك، فإن هذا تبسيط مبالغ فيه نادرًا ما يكون عمليًا على الإطلاق. SBOM هي قائمة شاملة تحتوي على مجموعة دقيقة من المعلومات المطلوبة. من الواضح أن محاولة معالجة هذه القائمة يدويًا ستستغرق وقتًا طويلاً ومعقدة.
ببساطة لا يمكن لـ SBOMs اليدوية أن تفي بالغرض، ولهذا السبب تعد الأتمتة أمرًا حيويًا في تنفيذ واستيعاب SBOMs. وبصرف النظر عن صعوبة تنفيذ SBOMs اليدوية، هناك أيضًا مخاطر مرتبطة بإنشاء SBOMs يدويًا - ناهيك عن مشكلات الامتثال. فيما يلي بعض الأسباب التي تجعل من الأفضل إنشاء SBOMs باستخدام نظام آلي يجمع قائمة شاملة من البرامج ويخزنها في مستودع يسهل على الإنسان قراءته والاستعلام عنه.
تهديدات سلسلة التوريد السيبرانية
الهدف الرئيسي من إنشاء SBOM شامل هو فهم مكونات البرنامج بشكل أفضل وتحليل نقاط الضعف المحتملة. لقد أصبح هذا إجراءً مهمًا للأمن السيبراني للتخفيف من التهديدات لكل منتج برمجي. يجعل SBOM الآلي عملية القيام بذلك أكثر سلاسة. لا تعد قائمة مواد البرنامج الآلية أكثر أمانًا فحسب (بفضل توقيع التشفير والتحقق الآلي من المكونات)، ولكن تضمن الأتمتة أيضًا فحص المكونات بشكل مستمر عبر مسار التكامل والنشر لتكرار البرنامج.
توفير الوقت
إن أتمتة تنفيذ SBOM تعني أنك تعتمد على الأدوات المتقدمة التي تعمل بسرعة الجهاز لإنشاء قائمة مواد البرنامج الخاصة بك. وهذا يوفر عليك الوقت بأكثر من طريقة. أولاً، يعد إنشاء SBOM بهذه الطريقة أسرع من محاولة تحديد المكونات الفردية يدويًا وإدراجها في جدول بيانات.
كما أن أتمتة SBOMs تجعل اكتشاف الثغرات الأمنية أسهل وأسرع. باستخدام وحدات SBOM المجمعة يدويًا، يعد تحديد المواقع المحتملة لنقاط الضعف عملية طويلة جدًا.
تكون التحديثات أسرع أيضًا مع SBOMs. تقوم الأنظمة الآلية بإجراء فحوصات متكررة على SBOM الخاص بك لتحديد نقاط الضعف بناءً على التبعيات المحدثة حديثًا. بهذه الطريقة، يمكنك تخفيف المخاطر بشكل أسرع واستثمار وقتك ومواردك في مهام مهمة أخرى بدلاً من إضاعة الوقت في إنشاء SBOMs أو الاستعلام عنها يدويًا.
NIST والمتطلبات الفيدرالية
بالإضافة إلى كونها مفيدة، فإن أتمتة SBOMs تحمل أيضًا أهمية تنظيمية. تنص المتطلبات الفيدرالية بشأن SBOMs، مثل قانون إدارة سلسلة التوريد السيبرانية والشفافية لعام 2014، على أنه يجب استخدام الحلول والأدوات التلقائية لإنشاء SBOMs.
وبالمثل، في يوليو 2021، نشرت الإدارة الوطنية للاتصالات والمعلومات (NTIA) إرشادات معتمدة اتحاديًا توضح بالتفصيل الحد الأدنى من العناصر التي يجب تضمينها في كل SBOM. تم إدراج دعم الأتمتة في هذه الوثائق كأحد العناصر الحيوية لكل SBOM.
وفقًا لـ NTIA، يجب أن تكون قائمة مواد البرنامج قابلة للقراءة بواسطة الإنسان والآلية وقادرة على الإنشاء التلقائي. يؤدي تنفيذ SBOM الآلي إلى تسهيل تتبع البيانات المضمنة في المستند.
جداول البيانات غير فعالة وعرضة للخطأ
كما ذكرنا سابقًا، تحتوي كل حزمة برامج على مئات التبعيات. وهذا يعني أن هناك الآلاف من نقاط البيانات التي يجب تغطيتها في قائمة مواد البرنامج النموذجية. إن جداول البيانات ببساطة غير مجهزة لإدارة هذا الحجم من البيانات. يؤدي إدخال جميع نقاط البيانات هذه يدويًا إلى فتح الباب أمام الأخطاء البشرية التي يمكن أن تكون لها عواقب وخيمة إذا لم يتم اكتشافها في الوقت المحدد. من المرجح أن تقوم بإنشاء SBOM دقيق وشامل عندما تختار نظامًا آليًا بدلاً من ذلك.
اتساق
تتمثل إحدى الفوائد الرئيسية لأتمتة عملية إنشاء SBOM في أنها تساعد في الحفاظ على الاتساق عبر مسار CI/CD للتكرارات المختلفة لمنتج البرنامج. يتضمن ذلك جميع التغييرات التي تم إجراؤها على المنتج أثناء إنشائه وحتى بعد إصداره.
SBOM ليس ثابتًا. مع تطور المنتج، يتم إجراء المراجعات على قائمة مواد البرنامج الخاصة به لالتقاط كل تبعية جديدة تتم إضافتها. ويجب إبلاغ هذه التغييرات إلى جميع المستخدمين وأصحاب المصلحة الآخرين داخليًا وعبر سلسلة التوريد الخاصة بالبرنامج. من المهم أن يتمكن كل صاحب مصلحة من الوصول إلى أحدث إصدار من SBOM بالإضافة إلى جميع الإصدارات السابقة من البرنامج.
باستخدام SBOM المُعد يدويًا، يكون الحفاظ على الاتساق والتحكم في الإصدار أمرًا صعبًا، وقد يؤدي ذلك إلى حدوث تعارضات ومشاكل أخرى. يتأكد SBOM الآلي من أن التغييرات التي تم إجراؤها متسقة، ومن الأسهل معرفة متى وكيف تم إجراء هذه التغييرات. وهذا أمر يصعب تحقيقه باستخدام النظام اليدوي.
طرق أتمتة قوائم المواد البرمجية
تنص المعايير التنظيمية، مثل الحد الأدنى من متطلبات NTIA لـ SBOM، على تنسيقات محددة لقائمة مواد البرنامج. تتضمن هذه المعايير تبادل بيانات حزمة البرامج (SPDX) وCycloneDX. يجب أن تعلم فرق أمان البرامج أن طبيعة هذه المعايير تشير بالفعل إلى أن SBOMs من المفترض أن تكون آلية.
وبالتالي، يجب على كل فريق أمان برمجيات ضمان إنشاء واستخدام SBOMs عن طريق إضافة خطوة تلقائية ليتم تنفيذها في نقطة استراتيجية ضمن مسار التطوير الخاص بهم لإنشاء SBOM. يمكن أن تكون هذه أداة مفتوحة المصدر لفحص مكونات البرنامج بعد اكتمال الإنشاء أو أداة SCA مدمجة ضمن مسار التطوير المستمر للبرنامج. تم توضيح الطرق المختلفة لأتمتة قائمة مواد البرنامج أدناه.
استخدم أداة مفتوحة المصدر
إحدى أرخص الطرق لإنشاء قائمة مواد البرامج هي استخدام أداة مفتوحة المصدر. إنها مجانية عمليا، ولكنها تقدم ميزات بدائية فقط. هناك العديد من الأدوات مفتوحة المصدر التي تعمل على أتمتة عملية تنفيذ SBOM. ومع ذلك، يتم إنشاء التقارير التي يتم إنشاؤها بواسطة معظم هذه الأدوات بتنسيقين فقط؛ سيكلون دي إكس و إس بي دي إكس.
من الأمثلة الجيدة على أداة أتمتة SBOM مفتوحة المصدر مولد SBOM من مايكروسوفت. تم تصميم هذا المولد المخصص لوقت البناء للأغراض العامة لمساعدة المؤسسات على إنشاء وحدات SBOM لحزم البرامج الخاصة بها. توفر الأداة دعمًا عبر الأنظمة الأساسية وتقوم بإنشاء SBOMs بتنسيق تبادل بيانات حزمة البرامج (SPDX) القياسي.
يمكن دمج منشئ SBOM من Microsoft في حزم البرامج المبنية باستخدام أطر عمل NPM وPyPI وMaven وRust Crates وRuby Gems وLinux وNuGet لإنشاء قائمة التبعيات والمكونات. ويمكن أيضًا دمجه مع مستودعات GitHub العامة.
تقوم الأداة بإخراج معلومات عامة حول وثائق SBOM كما هو محدد في الحد الأدنى لمتطلبات SBOM. كما أنه يسرد جميع الملفات والحزم مع العلاقات بينها.
استخدم أداة البرنامج المساعد
هناك طريقة أخرى لإنشاء SBOMs تلقائيًا وهي القيام بذلك ضمن التكامل المستمر وخط أنابيب النشر المستمر (خط أنابيب DevOps). يمكنك القيام بذلك باستخدام مكون Maven الإضافي الذي يتكامل في مرحلة الإنشاء في سير العمل الخاص بك. يعد هذا الأسلوب طريقة ملائمة وقابلة للتطوير لأتمتة عملية إنشاء قائمة مواد البرنامج مباشرةً ضمن المسار.
ستجد أن هذا أسهل كثيرًا لأنك تفعل ذلك داخل البيئة المبنية لمشروعك. عليك فقط تمرير بعض الوسائط لإنشاء SBOM تلقائيًا. بالنسبة للمكون الإضافي Maven، يتم إنشاء SBOM بتنسيق Cyclone DX.
يمكن للمكون الإضافي Maven إنشاء SBOM شامل يعرض تفاصيل جميع التبعيات داخل مشروعك. للقيام بذلك، يجب أن تبدأ بتكوين ملف pom.xml قبل تشغيل الأمر "mvn Verify" لإنشاء ملفات SBOM. يتم إنشاء ملف bom.json أولاً قبل ملف SBOM.
يأتي المكون الإضافي Maven مزودًا بأداة SCA مدمجة تقوم بتدقيق ملفات SBOM التي تم إنشاؤها للتبعيات. بمجرد تدقيق الملف، يمكنك تشغيل أداة SCA مرة أخرى لإنشاء قائمة مواد البرنامج مرة أخرى.
أحد الأمثلة على هذه الأداة الإضافية هو منصة الكاتب، والتي تمكن منتجي البرامج من إنشاء SBOMs تلقائيًا. إنه يتجاوز إنشاء SBOM ويساعد المستخدمين على إدارة ومشاركة SBOMs الخاصة بهم أيضًا، والتحقق من صحة التكامل، وتتبع نقاط الضعف في حاوياتهم، وتبعياتهم، وخطوط الأنابيب الخاصة بهم. فيما يلي نظرة عامة بسيطة على كيفية عمل Scribe لأتمتة إنشاء SBOM:
- خطوة 1 قم بالتسجيل وتسجيل الدخول (مجانًا) على Scribe Hub. يقوم المستخدمون بتسجيل وإعداد مشاريعهم باستخدام واجهة الويب هذه. يقوم جامع الأدلة المنفصل، الذي يعمل على أجهزة MAC وأجهزة Linux، بإنشاء SBOM نفسه.
- الخطوة 2: دمج Scribe مع خط أنابيب التكامل المستمر الخاص بك. ستؤدي إضافة مقتطفات التعليمات البرمجية من Scribe Hub إلى مسار التكامل المستمر و/أو صورة البناء النهائية إلى تحقيق ذلك.
- الخطوة 3: إنشاء قائمة مواد البرنامج وتصديرها. يتم إنشاء قائمة مواد البرنامج باستخدام أداة Scribe gensbom CLI. يمكن تصدير SBOM الذي تم إنشاؤه بتنسيق CycloneDX JSON.
استخدم أداة تحليل التركيب (SCA).
الطريقة الثالثة لإنشاء SBOMs لمنتج البرنامج الخاص بك تلقائيًا هي استخدام أداة تحليل تكوين البرامج التابعة لجهة خارجية. تقوم أداة SCA بتحليل منتجك لتحديد مكونات وتراخيص الطرف الثالث داخل البرنامج. تقوم الأداة بتقييم شرعية الكود بالإضافة إلى الامتثال لمتطلبات الترخيص.
تقوم SCAs بفحص الكود المصدري والملفات الثنائية وصور الحاوية وملفات البيان الخاصة بأحد البرامج من أجل تحديد تركيبها وقائمة جميع المكونات مفتوحة المصدر المضمنة في البرنامج. كجزء من SBOM، ستقوم SCA أيضًا بتشغيل هذه المكونات على قواعد بيانات مختلفة لاستخراج معلومات الأمان والتراخيص ونقاط الضعف المعروفة.
تعمل أداة تحليل تكوين البرامج على أتمتة وتسريع عملية إنشاء SBOMs. تم تصميم الأداة لمسح آلاف نقاط البيانات خلال فترة زمنية قصيرة من أجل تجميع قائمة مواد البرنامج لمنتجك. تساعدك أدوات SCA على تأمين مسار DevOps الخاص بك من خلال توفير الإشراف الكامل على مكونات حزمة البرامج ومصدر هذه المكونات.
وفي الختام
على الرغم من أن بعض الشركات تقوم فقط بإنشاء SBOMs لأنها أصبحت إلزامية بموجب المتطلبات التنظيمية، فقد أثبتت هذه الممارسة نفسها كضرورة فيما يتعلق بتخفيف تهديدات سلسلة توريد البرامج. تعد أتمتة العملية أكثر أهمية لأنها تساعد في تقليل العمل الشاق والمستهلك للوقت لتجميع SBOMs يدويًا. يمكن لأتمتة SBOM، كما هو موضح في كل من التقنيات المشمولة في هذه المقالة، تسريع عملية إنشاء SBOM وجعلها أكثر دقة وموثوقية أيضًا. تتيح أداة البرنامج الإضافي مثل Scribe إمكانية أتمتة إنشاء SBOM مباشرةً ضمن مسار تطوير برنامجك. قم بمراجعة مدونتنا والموارد الأخرى لمعرفة كيفية عمل Scribe لأتمتة إنشاء SBOM وكيف يمكنك الاستفادة منه.