A modern alkalmazás nagy része idegen kód. Hogyan tartsa nyilván, mi van benne, és mit tegyen, ha megjelenik egy komponens-sérülékenység.
Egy mai alkalmazás kódjának töredékét írja a fejlesztő csapat, a többi külső könyvtárakból jön. Ezek a könyvtárak további könyvtárakat hoznak magukkal, és néhány szint után senki nem tudja, mi fut valójában.
A probléma akkor válik láthatóvá, amikor egy széles körben használt komponensben súlyos sérülékenységet találnak, és a kérdés az, hogy érintett-e a rendszer.
Tranzitív függőségek. A közvetlenül behivatkozott tíz könyvtár mögött több száz további áll. A sérülékenység jellemzően a mélyebb rétegben van.
Verzió-eltérés. A fejlesztői gépen, a tesztkörnyezetben és az élesben nem feltétlenül ugyanaz a verzió fut.
Konténerek. Az alkalmazás mellett az alap image is tartalmaz csomagokat, saját sérülékenységekkel.
Régi rendszerek. Ami évek óta fut és senki nem nyúl hozzá, arról jellemzően nincs is nyilvántartás.
A Software Bill of Materials a szoftver összetevőinek jegyzéke: mely komponens, milyen verzióban, milyen licenccel. Gépi olvasható formátumban (CycloneDX vagy SPDX), tehát automatikusan összevethető a sérülékenységi adatbázisokkal.
Az SBOM önmagában nem véd meg semmitől. Az értéke abban van, hogy egy új sérülékenység megjelenésekor percek alatt megválaszolható, érintett-e a rendszer, ahelyett hogy napokig keresgélnének.
1. Generálás a build során. A legtöbb csomagkezelőhöz és build-eszközhöz van SBOM-generátor. A kulcs, hogy a build része legyen, ne külön futtatott feladat, mert különben elavul.
2. Tárolás verzióhoz kötve. Minden kiadott verzióhoz tartozzon egy SBOM. Ha három hónap múlva kérdés merül fel a februári verzióról, meg kell tudni nézni.
3. Automatizált illesztés. Az SBOM-ot rendszeresen össze kell vetni a sérülékenységi adatbázisokkal. Nem elég a build idején egyszer, mert az új sérülékenység később jelenik meg.
4. Beszállítói SBOM bekérése. Ha vásárolt szoftvert használ, kérje el az SBOM-ját. Ez egyre gyakoribb szerződéses elvárás.
Egy közepes alkalmazás függőség-vizsgálata több száz találatot ad. Ugyanaz a logika érvényes, mint az általános sérülékenységkezelésnél:
Erről részletesen a sérülékenységkezelésről szóló cikkünkben írtunk.
A függőségek nem csak sérülékenységet hordoznak, hanem támadási felületet is:
Elgépelés-alapú csomagok. A támadó a népszerű csomag nevéhez hasonló nevű csomagot tesz közzé, abban a reményben, hogy valaki elgépeli.
Átvett csomagok. Egy elhagyott, de sokak által használt csomagot a támadó átvesz, és rosszindulatú kódot ad hozzá.
Build-lánc kompromittálódás. Nem a csomag, hanem a fordítási folyamat sérül.
Ezek ellen a csomagok verziójának rögzítése (lockfile), a belső csomagtükör és a build-környezet izolálása véd.
Az IT biztonsági szolgáltatásaink között a fejlesztési folyamat biztonsági felülvizsgálata is szerepel.
Az OWASP Top 10 legfontosabb tételei érthetően: jogosultsági hibák, injektálás, hitelesítés. Mit tesztel…
Miért félrevezető a CVSS-pontszám önmagában, mit ad hozzá az EPSS és a KEV-katalógus, és hogyan építsen…
Nem kell teljes DevSecOps program. Melyik öt lépés adja a legnagyobb védelmet a fejlesztési folyamatban,…
Szakértőink szívesen átbeszélik, mit jelent mindez az Ön szervezetének környezetében.