Co to jest SBOM (Software Bill of Materials)?
Software Bill of Materials (SBOM) to szczegółowy spis komponentów, które składają się na oprogramowanie, w tym bibliotek zewnętrznych i open-source oraz wersji frameworków. To jak lista składników wewnątrz aplikacji.
Śledząc każdy komponent wewnątrz aplikacji, zespół deweloperski może szybko wykryć, kiedy zostaną odkryte nowe podatności.
Dlaczego SBOM jest ważny w cyberbezpieczeństwie
Nowoczesne aplikacje są budowane poprzez łączenie setek lub tysięcy zależności zewnętrznych i bibliotek open-source w celu przyspieszenia rozwoju. Jeśli jedna z nich ma podatności, naraża to całą aplikację na ryzyko.
SBOM pomaga zespołowi deweloperskiemu:
- Wcześniej identyfikować podatności poprzez mapowanie dotkniętych komponentów
- Poprawić zgodność ze standardami takimi jak NIST, ISO czy Executive Order 14028 w USA
- Zwiększyć bezpieczeństwo łańcucha dostaw poprzez zapewnienie przejrzystości w składzie oprogramowania
- Budować zaufanie z klientami i partnerami poprzez pokazanie, jakie komponenty są zawarte
Kluczowe elementy SBOM
Prawidłowy SBOM zazwyczaj zawiera:
- Nazwa komponentu (np.
lodash) - Wersja (np. 4.17.21)
- Informacje o licencji (open source lub własnościowa)
- Dostawca (projekt lub dostawca, który go utrzymuje)
- Relacje (jak komponenty są od siebie zależne)
Przykład w praktyce: Naruszenie Apache Struts (Equifax, 2017)
W 2017 roku atakujący wykorzystali krytyczną lukę w frameworku Apache Struts (CVE-2017-5638), który był używany w aplikacjach internetowych Equifax (amerykańskiej międzynarodowej agencji raportującej kredyty konsumenckie). Łatka na tę lukę była dostępna, ale Equifax nie zastosował jej na czas.
Z powodu braku widoczności wszystkich zależności i bibliotek w swojej aplikacji, wada w bibliotece Struts pozostała niezauważona, co doprowadziło do jednego z największych wycieków danych w historii, w wyniku którego ujawniono ponad 147 milionów danych osobowych.
Gdyby SBOM był wdrożony, Equifax mógłby szybko:
- Zidentyfikować, że ich aplikacje używają podatnej wersji Apache Struts
- Priorytetyzować zastosowanie łatki zaraz po ujawnieniu luki
- Skrócić czas, jaki mieli atakujący na wykorzystanie słabości
Ten przypadek pokazuje, jak krytyczną rolę odgrywa SBOM w zabezpieczaniu komponentów oprogramowania, pomagając organizacjom szybciej reagować na nowo ujawnione luki.