على الرغم من الاعتماد المتزايد على قائمة مواد البرامج (SBOM) لتكون بمثابة أداة لإدارة الثغرات الأمنية والأمن السيبراني، لا تزال العديد من المؤسسات تكافح من أجل فهم تنسيقي SBOM الأكثر شيوعًا والمستخدمين اليوم، SPDX وCycloneDX. في هذه المقالة، سنقوم بمقارنة هذين التنسيقين لمساعدتك في اختيار التنسيق المناسب لاحتياجاتك.
ما هي تنسيقات SBOM
عند تطوير قوائم مواد البرامج لتطوير البرامج وإدارة الثغرات الأمنية، هناك حاجة إلى الالتزام بتنسيق أو معايير محددة. تحدد تنسيقات SBOM القياسية بنية محددة وموحدة لإنشاء SBOM وتحدد أيضًا كيفية مشاركتها مع العملاء والمستخدمين في سلسلة توريد البرامج. تحدد تنسيقات SBOM أيضًا تكوين البرنامج بتنسيق يسهل على أدوات الأمن السيبراني الأخرى فهمه. بشكل عام، هناك ثلاثة تنسيقات SBOM. يشملوا:
تبادل بيانات حزمة البرامج (SPDX): هذا مشروع SBOM مفتوح المصدر ويمكن قراءته آليًا بواسطة مؤسسة Linux. لقد تم تصميمه في المقام الأول لضمان الامتثال والشفافية في إدارة التعليمات البرمجية مفتوحة المصدر والملكية من قبل فرق التطوير والشركات.
إعصار دي إكس (CDX): وهذا أيضًا تنسيق SBOM مفتوح المصدر ويمكن قراءته آليًا تم تطويره بواسطة مجتمع Open Web Application Security Project (OWASP). إنه تنسيق SBOM خفيف الوزن يركز على سهولة اعتماد وأتمتة إنشاء SBOM عبر مسار تطوير البرامج لديك.
علامات تعريف البرامج (SWID): تعتبر علامات SWID بمثابة معرف برنامج أكثر من تنسيق SBOM. فهو يوفر طريقة بسيطة وشفافة لتتبع مخزون البرامج عن طريق تخزين معلومات محددة حول إصدار البرنامج.
بشكل عام، يتم التعرف رسميًا على تنسيقات SPDX وCycloneDX SBOM فقط. الاستخدام الأساسي لتنسيق SWID هو تعريف البرامج لأنه لا يقدم قدرًا كبيرًا من المعلومات مثل التنسيقين الآخرين.
يحتوي SPDX وCycloneDX على معلومات متداخلة، وقد جادل الكثيرون بأنه يمكن استخدامهما بالتبادل نظرًا لعدم وجود تنسيق SBOM "قياسي" واحد. ومع ذلك، فإن كلا التنسيقين لهما حالات استخدام مختلفة تقليديًا خلال دورة حياة تطوير البرمجيات. لذلك، يتعين على المؤسسات المختلفة تحديد أي منها يناسبها بشكل أفضل بناءً على احتياجاتها الفريدة في مجال الأمن السيبراني والامتثال.
اضغط هنا لل تعرف على المزيد حول تنسيقات SBOM القياسية.
مقارنة SPDX وCycloneDx
SPDX وCyclonDX هما التنسيقان القياسيان لإنشاء SBOM، ومن المرجح أن يظلا هكذا لفترة طويلة قادمة. تدعم معظم منصات إنشاء SBOM كلا التنسيقين. ومع ذلك، فهي أدوات متميزة مع حالات استخدام مختلفة. يتم تسليط الضوء على بعض الاختلافات الأساسية الخاصة بهم أدناه:
نظرة عامة على CycloneDX
CycloneDX هو مشروع SBOM مفتوح المصدر من قبل إحدى المنظمات الرائدة في مجال أمن البرمجيات، مشروع أمان تطبيقات الويب المفتوحة (OWASP). تم إطلاق المشروع في عام 2017 كمنصة لتحليل المكونات لمساعدة المستخدمين على تحديد المخاطر في سلسلة توريد البرمجيات. يظل تحديد الثغرات الأمنية هو حالة الاستخدام الأساسية لـ CycloneDX. يساعد تنسيق SBOM هذا أيضًا في الامتثال للترخيص وفي تحديد مكونات البرامج القديمة.
يركز CycloneDX على الأتمتة وتسهيل اعتماد متطلبات SBOM طوال دورة إنشاء البرنامج. يتم استخدام التنسيق من قبل كل من مؤسسات البرمجيات مفتوحة المصدر والملكية لحالات الاستخدام الأمني.
باعتباره تنسيقًا لقائمة مكونات الصنف (BOM)، فإن CycloneDX لديه تطبيقات أخرى تتجاوز إعداد قوائم المواد البرمجية. ويمكن استخدامه أيضًا لتجميع المكونات ونقاط الضعف وخدمات الأجهزة والأنظمة السحابية. SBOMs المعدة بتنسيق Cyclone DX تسرد نقاط الضعف في ثلاثة مجالات رئيسية. هؤلاء هم:
- تعداد النظام الأساسي المشترك (CPE): الثغرات الأمنية داخل التطبيق أو الأجهزة أو نظام التشغيل.
- SWID: يتم استخدام علامة تعريف البرنامج لتحليل مكونات البرنامج المثبت
- عنوان URL للحزمة (PURL). يسرد CycloneDX أيضًا البيانات التعريفية لحزمة البرامج.
بالإضافة إلى ذلك، يدعم تنسيق CycloneDX أيضًا تتبع مصدر منتجات البرامج ومكوناتها. وهذا يجعل من السهل التعرف على مؤلفي وموردي البرامج وجميع مكوناتها.
نظرة عامة على SPDX
يعنيSPDX تبادل بيانات حزمة البرامج. إنه مشروع مفتوح المصدر من قبل مؤسسة Linux تم إنشاؤه بهدف العمل كتنسيق مشترك لجمع ومشاركة بيانات البرامج، وخاصة معلومات الترخيص.
تم تطوير معيار SPDX في الأصل في عام 2011 كأداة لإدارة التراخيص مفتوحة المصدر. على مر السنين، تم تحسين التنسيق على مر السنين ليشمل حقولًا جديدة تعمل على تحسين قدرة التنسيق على التقاط المعلومات المهمة المتعلقة بالأمان وجعله أكثر قابلية للتشغيل المتبادل مع تنسيقات SBOM القياسية الأخرى.
في سبتمبر 2021، اعترفت منظمة المعايير الدولية بتنسيق SPDX كمعيار معترف به دوليًا لنشر SBOM. SPDX هو تنسيق SBOM الوحيد الذي حقق هذا العمل الفذ.
الآن في الإصدار 2.2.2، تم تطوير الإصدار الأصلي من مواصفات SPDX لتسهيل الامتثال لسياسات ترخيص البرامج. أضافت الإصدارات اللاحقة بعض الإمكانيات التي تجعلها مفيدة لمجموعة واسعة من حالات الاستخدام، بما في ذلك تحديد نقاط الضعف في البرامج.
تم تصميم أحدث إصدار من SPDX بما يتماشى مع معيار NTIA الخاص بـ "الحد الأدنى من العناصر الخاصة بقائمة مواد البرنامج". فهو يسرد المكونات وحقوق النشر والتراخيص والمراجع الأمنية لأحد البرامج.
من المتوقع أن يحتوي مستند SBOM بتنسيق SPDX على حقول وأقسام محددة كما هو موضح أدناه:
- معلومات إنشاء المستند: يتم استخدام هذه المعلومات لتحديد التوافق مع أدوات المعالجة القياسية
- معلومات الحزمة: تحدد معلومات الحزمة الكيانات المهمة التي تشترك في نفس السياق داخل حزمة البرامج، مثل الحاويات والمكونات والمنتجات.
- معلومات الملف: معلومات تعريفية لملفات البرنامج، مثل الاسم والترخيص ومعلومات حقوق النشر لكل ملف.
- معلومات المقتطف: هذا لا ينطبق دائمًا. تكون معلومات المقتطف ضرورية فقط عندما تكون بيانات البرنامج من مصدر مختلف.
● العلاقات والشروح: يشير SBOM بتنسيق SPDX أيضًا إلى العلاقة بين المستندات والملفات والحزم المختلفة المستخدمة داخل البرنامج مع تعليقات توضيحية واضحة تسهل على أي شخص مراجعة علاقات مكونات البرنامج.
سبدكس | سيكلون DX |
---|---|
المعلومات: يلتقط تنسيق SPDX SBOM معلومات حول مؤلف قائمة مكونات الصنف للبرنامج وكيفية إنشائها ومتى تم إنشاؤها لكل إصدار من ملف SPDX. | بيانات تعريف BOM: يلتقط تنسيق CycloneDX معلومات مهمة حول الشركة المصنعة/المورد للبرنامج والمكونات المستهدفة. ويتضمن أيضًا معلومات الترخيص والبيانات الوصفية للأدوات المستخدمة لإنشاء قائمة المواد. |
معلومات الحزمة: تتضمن البيانات المتعلقة بالخصائص المشتركة لحزمة البرامج بأكملها. | المكونات: تحدد جميع مكونات البرنامج عبر سلسلة التوريد بأكملها. |
معلومات الملف: البيانات المتعلقة بجميع الملفات المضمنة في حزمة البرنامج. | الخدمات: تحدد واجهات برمجة التطبيقات الخارجية وعناوين URL لنقطة النهاية ومتطلبات المصادقة. الثقة في اجتياز الحدود والمتطلبات الخارجية الأخرى للبرنامج. |
معلومات المقتطف: البيانات المتعلقة بجزء معين من الملف. | التبعيات: يحدد هذا المجال العلاقة المباشرة والانتقالية بين المكونات المختلفة للبرنامج |
معلومات الترخيص: حقل لالتقاط البيانات حول التراخيص غير المدرجة في قائمة تراخيص SPDX. | الامتدادات: توفر بيانات حول نقاط الامتداد التي ستكون مفيدة لحالات الاستخدام والوظائف المستقبلية. |
الارتباط بين عناصر SPDX: يوضح الحقل كيفية ربط الملفات والمستندات والحزم المختلفة المفصلة في وثائق SPDX ببعضها البعض. | |
الحواشي: معلومات إضافية لشرح كيفية مراجعة وثيقة SPDX ومن قام بمراجعتها ومتى تمت مراجعتها. | |
ما هو الفرق بين SPDX وCycloneDX؟
يمكن استخدام تنسيقي SBOM القياسيين الموضحين أعلاه لإنشاء بيانات SBOM ومشاركتها وإدارتها. أنها تسمح للمستخدمين بإنشاء معلومات دقيقة حول مكونات منتج البرنامج. تم تصميم تنسيق SPDX (تبادل بيانات حزمة البرامج) في المقام الأول كوسيلة لإدارة تراخيص البرامج مفتوحة المصدر ومشاركة المعلومات حول الحزم. من ناحية أخرى، يسمح CycloneDX للمستخدمين بإنشاء SBOMs (قائمة مواد البرنامج) التي توفر معلومات مفصلة حول مكونات البرنامج.
ما هو المعيار الأفضل للاستخدام؟
نظرًا لأن التنسيق الذي تختاره يحدد بنية مستند SBOM الخاص بك ومكوناته وكيفية إنشائه وكيفية مشاركته مع المستخدمين، فمن المهم أن تختار تنسيق SBOM المناسب لـ توليد SBOM بناءً على الاحتياجات الفريدة لمؤسستك.
على الرغم من أن SPDX وCycloneDX لديهما تطبيقات متشابهة جدًا، إلا أنهما مختلفان من حيث حالات الاستخدام الأصلية. تم إنشاء تنسيق SPDX مرة أخرى في عام 2011 كأداة لإدارة التراخيص. واليوم، لا يزال من المفيد مشاركة المعلومات التفصيلية حول مكونات نظام برمجي مع البشر على طول سلسلة التوريد. وهذا يجعل هذا التنسيق أكثر فائدة لأغراض تطوير البرمجيات.
من ناحية أخرى، تم تطوير CycloneDX (CDX) مؤخرًا لغرض أساسي وهو إنشاء وثائق SBOM مما يجعلها أداة أكثر كفاءة لإدارة الثغرات الأمنية حيث أنها تعرض تفاصيل جميع المكونات القياسية لمنتج البرنامج. إن طبيعة CycloneDX خفيفة الوزن تجعلها أيضًا أداة فعالة لإنشاء قوائم مواد برمجية قابلة للقراءة آليًا والتي يمكنك مشاركتها ومعالجتها بسرعة
في نهاية المطاف، ليس هناك تنسيق "أفضل" بين هذين الاثنين. يعتمد اختيار الخيار إلى حد كبير على الاحتياجات المحددة لمؤسستك وحالة الاستخدام المقصودة لمستند SBOM الذي تنوي إنشاءه.
يتم تقديم هذا المحتوى إليك بواسطة Scribe Security، وهي شركة رائدة في مجال توفير حلول أمان سلسلة توريد البرامج الشاملة - حيث توفر أحدث الأمان لعناصر التعليمات البرمجية وعمليات تطوير التعليمات البرمجية وتسليمها عبر سلاسل توريد البرامج. تعرف على المزيد.