Készítsen szoftveres anyagjegyzéket

Bár előfordulhatnak olyan napok, amikor az “SBOM-okat” balra és jobbra szeretné dobni, a technológiai területen nem beszélünk egy másik kifejezésről egy négybetűs szóra, amely “S”-vel kezdődik.

Az SBOM a Software Bill of Materials rövidítése, és a biztonság kritikus szempontjává vált a vállalatok és a fejlesztők számára. Az SBOM lényegében a szoftverek beágyazott készlete, amely egy nagyobb egészet szolgál ki. Az SBOM-ok elengedhetetlenek a sikeres üzletvitelhez szükséges magas biztonsági szabványok fenntartásához, különös tekintettel az ellátási lánc kockázatkezelésére.

Tudod, minden valaha készített szoftver tartalmazhat sebezhetőséget, de lehet, hogy nem. Ez csak egy része a technológiával való foglalkozásnak. Ez egyre nehezebbé válik, mivel egy szoftver egyre több függőséget igényel.

Hadd magyarázzam.

Tegyük fel, hogy telepítenie kell a Szoftver X-et annak érdekében, hogy egy adott funkcionalitást biztosítson a rendszeren vagy az ellátási láncon. Amikor elkezdi telepíteni a Software X szoftvert, azt tapasztalhatja, hogy az az 1. szoftverre, a 2. szoftverre, a 3. szoftverre és a 4. szoftverre támaszkodik. Tehát a Szoftver X telepítéséhez telepítenie kell az összes többi bitet is.

Ez mindig nagyon nyilvánvaló nyílt forráskódú szoftverek telepítésekor. Például, ha a Node.js-hoz hasonlót fog telepíteni, észre fogja venni, hogy ehhez a libc-ares2, libjs-highlight.js, libnode72 és a nodejs-doc fájlokra is szükség van. Ezzel nem számoltál. És bár lehet, hogy ellenőrizte a Node.js aktuális sebezhetőségeit, valószínűleg nem tudta, hogy minden mást ellenőriznie kell.

Ez különösen igaz a konténerek kezelésekor. Miért? Mert olyan képektől függ, amelyeket nem te készítettél, és amelyek felett nincs befolyásod. Honnan tudhatod, hogy a legújabb NGINX kép mentes-e a sebezhetőségektől? És amikor teljes veremű konténertelepítéseket készít, hirtelen több képfájlt kell figyelembe vennie, amelyek mindegyike tartalmazhat sebezhetőséget.

Ehhez egy eszközt használva szoftveranyag-jegyzéket gyűjt minden egyes használt képhez. Az egyik ilyen eszköz a Syft, amely lehetővé teszi, hogy könnyen generáljon SBOM-ot a használt képekhez. De hogyan olvassa el ezeket az információkat? Ha találna egy olyan eszközt, mint a Syft, amely több adatot generál, mint amennyit látni szeretne, mit gondol?

Lássuk, bele tudunk-e ásni és tisztázni tudunk.

SBOM szabványok

Szerencsére léteznek szabványok az SBOM-okra, amelyek közös formátumot biztosítanak a telepített szoftverek (vagy tárolóképek) összetételének leírására, amelyek jelentősen megkönnyítik a jelentett adatok felhasználását.

Két általánosan használt szabvány létezik az SBOM-okhoz:

  • Szoftvertermék-adatcsere (SPDX) – egy nemzetközi nyílt szabvány a szoftverekhez kapcsolódó összetevők, licencek és szerzői jogok megjelenítésére. A használt formátumok: RDF, XLS, SPDX, YAML és JSON.
  • CycloneDX – alkalmazásbiztonsági környezetekben és ellátási lánc összetevőinek elemzésére használható. A használt formátumok az XML és a JSON.

Az SBOM-okat biztonsági és fejlesztői csapatok egyaránt használják, így a szabványoknak való megfelelés általában sokkal könnyebbé teszi a használatukat.

Mi van az SBOM-okban?

Az SBOM-ok a kérdéses alkalmazás teljes jegyzékét mutatják, beleértve az összes nyílt forráskódú összetevőt, a licencet, a verzióinformációkat és a sebezhetőséget. Az egyetlen figyelmeztetés az, hogy az olyan eszközök, mint a syft, csak az SBOM-ot generálják, amely nem tartalmaz sebezhetőséget. Ha sebezhető pontokat szeretne hozzáadni a keverékhez, adjon hozzá egy olyan eszközt, mint a grype.

Ennek ellenére hozzunk létre egy SBOM-ot syfttel, majd egy sebezhetőségi listát a grype segítségével, és nézzük meg, mit mutat.

SBOM létrehozása a syft segítségével

A syft telepítéséhez nyisson meg egy terminálablakot, és adja ki a következő parancsot (rendszergazdai jogosultságokkal):

A syft telepítése után húzzon ki egy beolvasni kívánt tárolóképet, például:

Most futtassa a vizsgálatot a következővel:

A Syft betölti a képet, majd miután a vizsgálat befejeződött, mindent kiad a terminálra. A megjelenített információ valahogy így néz ki:

Ez csak egy töredéke annak a kimenetnek, amelyet látni fog, és elég könnyen érthetőnek kell lennie. A bal oldali oszlopban a szoftver neve, a középső oszlopban a verziószám, a jobb oldali oszlopban pedig a tárolókép-alkalmazás telepítéséhez használt csomagkezelő látható.

Ezen információk birtokában megkeresheti az egyes telepített csomagverziókat, hogy megtudja, vannak-e ismert biztonsági rések. Vagy választhat a könnyebb útvonalon, és használhatja az Anchore-ból származó grypet.

Sebezhetőségi jelentés létrehozása a grype segítségével

Az SBOM-információ sok részletet ad, de hiányzik egy nagyon fontos elem: a sebezhetőségek. Ehhez telepítjük a grypet a következő paranccsal:

Most futtassunk egy grype vizsgálatot ugyanazon a tárolóképen a következővel:

A parancs kimenete olyan részleteket tartalmaz, mint például:

Most beszélünk. Így olvassa el a fenti kimenetet:

  • 1. oszlop (bal szélső) – a telepített szoftvercsomag neve.
  • 2. oszlop – a telepített szoftvercsomag verziószáma.
  • 3. oszlop – a szoftver telepítéséhez használt csomagkezelő.
  • 4. oszlop – CVE biztonsági rések listája.
  • 5. oszlop – CVE sebezhetőségi besorolás.

Ezen a ponton nemcsak a konténerképbe telepített szoftverek mindegyikét ismeri, hanem azt is, hogy tartalmaz-e ismert sebezhetőséget. Ezek az információk felbecsülhetetlen értékűek mind a biztonsági, mind a fejlesztői csapatok számára. Például, amint fentebb látható, az NGINX tárolóban található zlib1g csomagban található egy kritikus biztonsági rést. A CVE-lista lehetővé teszi, hogy kutasson, hogy megtudja, van-e olyan dolog, ami hatással lehet vállalkozására. Ha igen, a fejlesztőcsapat kijavíthatja a biztonsági rést, vagy megvárhatja a hivatalos NGINX-kép javítását.

Bár kísértést érezhet, hogy figyelmen kívül hagyja a syftet a grype mellett, mindkét eszköznek megvan a maga haszna. De függetlenül attól, hogy melyik eszközt használja az SBOM-ok generálásához, győződjön meg arról, hogy megértette a kimenetet, hogy hatékonyabban tudja használni.

Csoport Sketch segítségével készült.

Leave a Comment

%d bloggers like this: