സോഫ്റ്റ്‌വെയറിന് എപ്പോഴും കുറവായിരുന്ന ഒരു 'ന്യൂട്രീഷൻ ലേബൽ'

2021 ഡിസംബർ 9-ന്, Log4j എന്ന Java ലൈബ്രറിയിൽ ഒരു സുരക്ഷാ വീഴ്ച കണ്ടെത്തി ഒരു സെക്യൂരിറ്റി റിസർച്ചർ. 72 മണിക്കൂറിനുള്ളിൽ കോടിക്കണക്കിന് സിസ്റ്റങ്ങൾ അപകടസാധ്യത നേരിട്ടു.

പ്രശ്നം ആ സുരക്ഷാ വീഴ്ച മാത്രമല്ലായിരുന്നു. പ്രശ്നം അതിന്റെ ദൃശ്യപരതയുടെ (visibility) കുറവായിരുന്നു. തങ്ങളുടെ സോഫ്റ്റ്‌വെയറിനുള്ളിൽ Log4j ഉണ്ടോ എന്ന് മിക്ക കമ്പനികൾക്കും അറിയില്ലായിരുന്നു.

ഈ സംഭവം Software Bill of Materials (SBOM)-നെ കമ്പനികളുടെ ബോർഡുകൾക്ക് മുൻഗണന നൽകേണ്ട ഒന്നാക്കി മാറ്റി.

നിങ്ങളുടെ സോഫ്റ്റ്‌വെയറിലെ ഓരോ ഘടകത്തിന്റെയും ഒരു ഇൻവെന്ററിയാണ് SBOM. ഇത് കോഡിനായുള്ള ഒരു 'ന്യൂട്രീഷൻ ലേബൽ' പോലെ പ്രവർത്തിക്കുന്നു. ഇത് ഓപ്പൺ സോഴ്‌സ് ലൈബ്രറികൾ, തേർഡ് പാർട്ടി പാക്കേജുകൾ, ആന്തരിക ഭാഗങ്ങൾ എന്നിവയെ പട്ടികപ്പെടുത്തുന്നു. ഇതിൽ പതിപ്പുകളും (versions) ലൈസൻസുകളും ഉൾപ്പെടുന്നു.

ആധുനിക സോഫ്റ്റ്‌വെയറുകൾ സങ്കീർണ്ണമാണ്. ഒരു ആപ്ലിക്കേഷൻ പലപ്പോഴും 500 മുതൽ 1,500 വരെ തേർഡ് പാർട്ടി ഭാഗങ്ങൾ ഉപയോഗിക്കുന്നു. ഇവ മാനുവലായി ട്രാക്ക് ചെയ്യാൻ കഴിയില്ല.

ഇന്ന് പ്രധാനമായും രണ്ട് സ്റ്റാൻഡേർഡുകൾ നിലവിലുണ്ട്:

• SPDX: ലൈസൻസ് കംപ്ലയൻസിനെ (license compliance) കേന്ദ്രീകരിക്കുന്നു. ലീഗൽ ടീമുകൾക്ക് അനുയോജ്യം. • CycloneDX: സുരക്ഷയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു. DevSecOps ടീമുകൾക്ക് അനുയോജ്യം.

നിങ്ങളുടെ പ്രതികരണത്തിന്റെ വേഗത നിങ്ങളുടെ SBOM-നെ ആശ്രയിച്ചിരിക്കുന്നു. Log4j പ്രതിസന്ധിക്കിടയിൽ, SBOM ഉള്ള കമ്പനികൾ മണിക്കൂറുകൾക്കുള്ളിൽ തങ്ങളുടെ അപകടസാധ്യത കണ്ടെത്തി. അവ ഇല്ലാത്ത കമ്പനികൾ മാനുവൽ ഓഡിറ്റിനായി ആഴ്ചകൾ ചെലവഴിച്ചു.

XZ Utils പോലുള്ള സമീപകാല ആക്രമണങ്ങൾ ഈ വിടവ് ഇപ്പോഴും നിലനിൽക്കുന്നുണ്ടെന്ന് തെളിയിക്കുന്നു. ആക്രമണകാരികൾ സാധാരണ ലൈബ്രറികളിൽ ബാക്ക്‌ഡോറുകൾ (backdoors) ഒളിപ്പിക്കുന്നു. ഓട്ടോമേഷൻ ഇല്ലെങ്കിൽ നിങ്ങൾക്ക് അവ കണ്ടെത്താൻ കഴിയില്ല.

നിയമങ്ങളും മാറിക്കൊണ്ടിരിക്കുകയാണ്:

• US Executive Order 14028: ഫെഡറൽ വെണ്ടർമാർ SBOM നൽകണം. • FDA Guidance: മെഡിക്കൽ ഉപകരണങ്ങൾക്ക് SBOM ആവശ്യമാണ്. • EU Cyber Resilience Act: 2027-ഓടെ EU-വിലെ സോഫ്റ്റ്‌വെയറുകൾക്ക് SBOM ആവശ്യമാണ്.

എങ്ങനെ തുടങ്ങാം:

  1. ഒരു സ്റ്റാൻഡേർഡ് തിരഞ്ഞെടുക്കുക. സുരക്ഷയ്ക്കായി CycloneDX അല്ലെങ്കിൽ ലൈസൻസുകൾക്കായി SPDX ഉപയോഗിക്കുക.
  2. നിർമ്മാണം ഓട്ടോമേറ്റ് ചെയ്യുക. ഇമേജുകൾക്കായി Syft അല്ലെങ്കിൽ പൈപ്പ്‌ലൈനുകൾക്കായി Snyk പോലുള്ള ടൂളുകൾ ഉപയോഗിക്കുക.
  3. ഡാറ്റാബേസുകളുമായി ബന്ധിപ്പിക്കുക. നിങ്ങളുടെ ലിസ്റ്റ് NIST NVD അല്ലെങ്കിൽ OSV-യുമായി ബന്ധിപ്പിക്കുക.
  4. ഒരു ഷെഡ്യൂൾ നിശ്ചയിക്കുക. ഓരോ ബിൽഡിനൊപ്പവും ഒരു SBOM നിർമ്മിക്കുക.

നിങ്ങളുടെ മുഴുവൻ പോർട്ട്‌ഫോളിയോയും ഒരേസമയം പരിഹരിക്കാൻ ശ്രമിക്കരുത്. ഒരു ആപ്ലിക്കേഷനിൽ നിന്ന് തുടങ്ങുക.

ഓർക്കുക, ഒരു SBOM എന്നത് ഒരു ഡയഗ്നോസ്റ്റിക് ടൂൾ (diagnostic tool) ആണ്. നിങ്ങളുടെ പക്കൽ എന്താണെന്ന് അത് നിങ്ങളോട് പറയുന്നു. അത് പ്രശ്നം പരിഹരിച്ചു തരില്ല. ഒരു SBOM 23 സുരക്ഷാ വീഴ്ചകൾ കാണിക്കുന്നുണ്ടെങ്കിൽ, അവ പാച്ച് (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