Dezvoltarea de Software se bazează în mare măsură pe utilizarea unor componente terțe pre-construite pentru a eficientiza procesele, unele dintre acestea fiind open source. Aceste componente sunt elementele de bază ale aplicațiilor web moderne, dar pot introduce și vulnerabilități, oferind infractorilor cibernetici potențiale puncte de intrare în sistemul dumneavoastră.
Pentru a obține vizibilitate asupra componentelor și pentru a gestiona vulnerabilitățile de dependență care alcătuiesc software-ul dumneavoastră, menținerea unei liste numite SBOM (software bill of materials) este esențială pentru consolidarea securității, a gestionării riscurilor și a conformității aplicației dumneavoastră.
Ce este SBOM?
A Software Bill of Materials (SBOM) este un inventar detaliat al tuturor componentelor, bibliotecilor și dependențelor închise și open-source utilizate într-o aplicație. În termeni mai simpli, la fel cum un produs fizic poate veni cu o listă de părți componente și materiale, software-ul are și el componentele sale.
Dezvoltatorii și vânzătorii construiesc frecvent software prin combinarea codului open-source și comercial. SBOM detaliază sistematic aceste componente pentru a asigura transparența și trasabilitatea componentelor de cod fundamentale din produsele software, contribuind la facilitarea securității lanțului de aprovizionare și la asigurarea conformității cu reglementările.
Care sunt beneficiile unui SBOM?
În esență, un SBOM oferă trei beneficii principale:

Transparență
Acesta oferă o imagine clară a compoziției software-ului, permițând părților interesate - fie că sunt dezvoltatori, auditori sau utilizatori finali - să înțeleagă componentele care intră în stiva lor de software.

Vulnerability Management
Securitatea este una dintre cele mai presante preocupări în dezvoltarea de software. Un SBOM poate identifica rapid componentele unui produs software, facilitând astfel identificarea, abordarea și remedierea vulnerabilităților.
Atunci când este publicat un aviz de securitate, acesta conține, de obicei, informații actualizate despre vulnerabilitățile componentelor software. Făcând trimiteri încrucișate între un SBOM și cele mai recente avize de securitate, organizațiile pot determina rapid dacă aplicațiile lor sunt expuse riscului și pot lua măsurile de atenuare necesare pentru a se asigura că acestea sunt securizate în mod corespunzător.

Integrarea în SDLCSoftware Development Lifecycle)
Pe măsură ce software-ul avansează în procesul de dezvoltare, acesta este actualizat în mod continuu, de la conceptualizare și proiectare până la implementare și întreținere. Un SBOM servește ca o înregistrare dinamică care asigură o imagine clară a componentelor, dependențelor și relațiilor software-ului în fiecare etapă a SDLC.
Cine are nevoie de un SBOM?
În linii mari, un consumator de software ar putea fi orice entitate, comercială sau necomercială, care își procură componentele și utilitățile software de la furnizori de la terți. Acești furnizori acoperă un spectru vast:
- Editorii de software comercial
- Dezvoltatorii de software contractuali care livrează componente software
- Furnizori FOSS (Free and Open-Source Software) care gestionează codul în depozite deschise sau manager de pachete
În special, acești furnizori poartă mai multe pălării. Ei pot fi producători, dezvoltatori, mentenanți sau furnizori. În mod ideal, aceste entități ar trebui, de asemenea, să curete SBOM-uri pentru capacitățile lor software. O distincție unică de reținut este că majoritatea furnizorilor sunt și consumatori. Cu toate acestea, un furnizor fără componente în amonte este în general etichetat ca entitate rădăcină.
SBOM în sectorul public
Agențiile federale joacă un rol esențial în adoptarea și punerea în aplicare a standardelor SBOM. Supravegherea acestora nu se referă doar la stabilirea de repere, ci și la asigurarea conformității cu aceste repere în interesul public general. Emis în mai 2021, Ordinul executiv 14028 al SUA însărcinează mai multe agenții cu jurisdicții extinse, inclusiv NIST (Institutul Național de Standarde și Tehnologie), cu îmbunătățirea securității cibernetice printr-o varietate de inițiative legate de securitatea și integritatea lanțului de aprovizionare cu software.
Secțiunea 10 (j) din Ordinul executiv 14028 definește un SBOM ca fiind o "înregistrare formală care conține detaliile și relațiile din lanțul de aprovizionare ale diverselor componente utilizate în crearea de software". SBOM-urile au potențialul de a oferi o mai mare transparență, proveniență și rapiditate cu care departamentele și agențiile federale pot identifica și remedia vulnerabilitățile.
Tipuri de SBOM și definiții
În funcție de stadiul de dezvoltare și de implementare a software-ului, sunt generate diferite tipuri de SBOM-uri, fiecare având un scop unic și oferind informații distincte despre componentele software. Iată șase tipuri comune de documente SBOM.
Design
În această etapă de dezvoltare a aplicației, este posibil ca unele componente să nu existe încă. Acest tip de SBOM este de obicei derivat dintr-o specificație de proiectare, RFP (cerere de ofertă) sau dintr-un concept inițial.
Sursa
Format direct din mediul de dezvoltare, acesta oferă informații despre fișierele sursă și dependențele necesare pentru a construi un artefact de produs. De obicei, este generată de instrumente SCA (analiza compoziției software), necesitând ocazional clarificări manuale.
Construiți
Produs ca parte a procesului de construire a software-ului, acesta consolidează datele din fișierele sursă, componentele construite și alte dependențe. Acest lucru este deosebit de valoros, deoarece este generat în timpul creării unui artefact software care poate fi lansat.
Analizat
Acest SBOM este derivat din analiza post-construcție a artefactelor software, cum ar fi executabilele sau imaginile mașinilor virtuale. Acesta implică diverse euristici și este uneori numit SBOM "terț".
Desfășurat
Un inventar exhaustiv al software-ului prezent pe un sistem. Generat prin documentarea SBOM a componentelor software instalate pe sisteme, acesta oferă informații despre implementarea software-ului în lumea reală.
Care sunt elementele unui SBOM?
Elementele minime ale unui SBOM includ numele furnizorului de software, componentele, versiunile acestora, identificatorii unici, relația dintre dependențe, autorul datelor SBOM și marcajul de timp, conform NTIA (National Telecommunications and Information Administration). În plus, datele SBOM ar trebui să conțină următoarele elemente pentru a fi eficiente și cuprinzătoare:
- Câmpuri de date: Trebuie să aibă câmpuri de date clar definite care să detalieze numele, versiunile și atributele componentelor software. Acest lucru garantează că fiecare parte interesată înțelege bine componența software-ului.
- Suport pentru automatizare: Având în vedere natura dinamică a dezvoltării de software, un SBOM ar trebui să poată fi actualizat automat și integrat în conductele de dezvoltare și implementare a software-ului. Acest lucru asigură acuratețe și eficiență în timp real.
- Practici și procese: Dincolo de simpla enumerare a componentelor, un SBOM ar trebui să fie integrat în cele mai bune practici și procese care guvernează crearea, întreținerea și utilizarea acestuia.
Formate SBOM
Formatele SBOM populare includ:
- SPDXSoftware Package Data Exchange)-dezvoltat de Fundația Linux
- CycloneDX - Utilizat în mod obișnuit pentru securitatea aplicațiilor
- SWIDSoftware Identification Tagging)-Definit de ISO/IEC 19770-2
Prin catalogarea fiecărei componente, un SBOM permite organizațiilor să identifice în mod clar licențele asociate fiecărei bucăți de software, asigurându-se că acestea rămân conforme cu termenii de licențiere și evită eventualele capcane juridice.
Rămâneți în conformitate și Secure în SDLC-ul dumneavoastră
Din cauza creșterii numărului de atacuri asupra lanțului de aprovizionare, guvernul federal și sectorul privat recunosc importanța identificării software-ului. Un SBOM este esențial pentru detalierea componentelor software, în special a componentelor terțe. Datele SBOM ajută la prevenirea vulnerabilităților și asigură transparența în crearea SBOM. Fiecare software ar trebui să includă un SBOM complet pentru a consolida măsurile de securitate.
Prin catalogarea fiecărei componente, un SBOM permite organizațiilor să identifice în mod clar licențele asociate fiecărei bucăți de software, asigurându-se că acestea rămân conforme cu termenii de licențiere și evită eventualele capcane juridice.
Cu OPSWAT SBOM, dezvoltatorii pot identifica vulnerabilitățile cunoscute, pot valida licențele și pot genera inventarul componentelor pentru OSS (software open-source), dependențe de la terți și containere. Pentru a afla mai multe despre securizarea lanțului de aprovizionare cu software cu soluții SBOM robuste, vizitați soluțiaOPSWAT Software Supply Chain Security.