सॉफ्टवेअरला नेहमीच आवश्यक असलेली 'न्यूट्रिशन लेबल' (Nutrition Label)

९ डिसेंबर २०२१ रोजी, एका सुरक्षा संशोधकाने Log4j नावाच्या Java लायब्ररीमध्ये एक त्रुटी शोधली. ७२ तासांच्या आत, करोडो सिस्टिम्सना धोक्याचा सामना करावा लागला.

समस्या केवळ त्या त्रुटीची (vulnerability) नव्हती. समस्या होती दृश्यमानतेची (visibility). बहुतेक कंपन्यांना हेच माहित नव्हते की त्यांच्या स्वतःच्या सॉफ्टवेअरमध्ये Log4j वापरले गेले आहे की नाही.

या घटनेमुळे Software Bill of Materials (SBOM) हे कंपनीच्या बोर्डांसाठी एक प्राथमिकता बनले.

SBOM म्हणजे तुमच्या सॉफ्टवेअरमधील प्रत्येक घटकाची (component) एक यादी आहे. हे कोडसाठी 'न्यूट्रिशन लेबल' प्रमाणे काम करते. यामध्ये ओपन-सोर्स लायब्ररी, थर्ड-पार्टी पॅकेजेस आणि अंतर्गत भागांची यादी असते. यात व्हर्जन आणि लायसन्सचाही समावेश असतो.

आधुनिक सॉफ्टवेअर अत्यंत गुंतागुंतीचे असते. एक ॲप्लिकेशन अनेकदा ५०० ते १,५०० थर्ड-पार्टी भागांचा वापर करते. तुम्ही या गोष्टी मॅन्युअली ट्रॅक करू शकत नाही.

आज दोन मुख्य मानके (standards) अस्तित्वात आहेत:

• SPDX: लायसन्स अनुपालनावर (license compliance) लक्ष केंद्रित करते. कायदेशीर टीमसाठी उपयुक्त. • CycloneDX: सुरक्षेवर लक्ष केंद्रित करते. DevSecOps टीमसाठी उपयुक्त.

तुमच्या प्रतिसादाचा वेग तुमच्या SBOM वर अवलंबून असतो. Log4j संकटकाळात, ज्या कंपन्यांकडे SBOM होते, त्यांनी काही तासांतच आपला धोका शोधून काढला. ज्यांच्याकडे ते नव्हते, त्यांना मॅन्युअल ऑडिटसाठी आठवडे खर्च करावे लागले.

XZ Utils सारखे अलीकडील हल्ले सिद्ध करतात की ही त्रुटी अजूनही कायम आहे. हल्लेखोर सामान्य लायब्ररीमध्ये बॅकडोअर्स (backdoors) लपवतात. ऑटोमेशनशिवाय, तुम्हाला ते दिसणार नाहीत.

नियम देखील बदलत आहेत:

• US Executive Order 14028: फेडरल विक्रेत्यांना SBOM प्रदान करणे अनिवार्य आहे. • FDA Guidance: वैद्यकीय उपकरणांसाठी SBOM आवश्यक आहे. • EU Cyber Resilience Act: २०२७ पर्यंत EU मधील सॉफ्टवेअरसाठी SBOM आवश्यक आहे.

सुरुवात कशी करावी:

  1. एक मानक निवडा. सुरक्षेसाठी CycloneDX किंवा लायसन्ससाठी SPDX वापरा.
  2. निर्मितीचे ऑटोमेशन करा. इमेजेससाठी Syft किंवा पाइपलाइनसाठी Snyk सारखी साधने वापरा.
  3. डेटाबेसशी जोडा. तुमची यादी NIST NVD किंवा OSV शी जोडा.
  4. वेळापत्रक निश्चित करा. प्रत्येक बिल्डसोबत (build) SBOM तयार करा.

तुमच्या संपूर्ण पोर्टफोलिओला एकाच वेळी सुधारण्याचा प्रयत्न करू नका. एका ॲप्लिकेशनपासून सुरुवात करा.

लक्षात ठेवा, SBOM हे एक डायग्नोस्टिक टूल (diagnostic tool) आहे. तुमच्याकडे काय आहे हे ते तुम्हाला सांगते. ते तुमच्यासाठी समस्या सोडवत नाही. जर SBOM मध्ये २३ त्रुटी (vulnerabilities) दिसत असतील, तर तुम्हाला त्या पॅच करण्यासाठी (patch) अजूनही योजनेची गरज आहे.

सर्वोत्तम कंपन्यांकडे केवळ साधने नसतात, तर त्यांच्याकडे एक प्रक्रिया असते. संकट येण्यापूर्वीच त्यांच्याकडे कोणत्या डिपेंडन्सीचा (dependency) मालक कोण आहे, याची माहिती असते.

Source: https://dev.to/spicykim/the-nutrition-label-that-software-always-lacked-213 Full details: lucas8.com/what-is-sbom-software-bill-of-materials