A harmadik féltől származó könyvtárak nélkülözhetetlenek a szoftverfejlesztési életciklus felgyorsításához. Ahelyett, hogy a nulláról kódolnának, a fejlesztők gyakran integrálnak nyílt forráskódú könyvtárakat különböző célokból - legyen szó költséghatékonyságról, erőforráshiányról vagy nagyobb rugalmasságról. Az olyan repozitóriumok, mint a Maven Central és a PyPI, valamint a függőségkezelő eszközök egyszerűsítik ezt a folyamatot és növelik a termelékenységet. Ez a fajta függőség azonban potenciális biztonsági kockázatokkal is jár.
A projekt nyílt forráskódú függőségek kezelése kihívást jelenthet, beleértve a beágyazott függőségeket (egy vagy több függőség egy függőségen belül) és a függőségkezeléssel kapcsolatos korlátozott szakértelmet. A külső könyvtárak integrálása bővíti a támadási felületet és növeli a biztonsági kockázatokat. Egy könyvtárban lévő sebezhetőség felfedezése veszélyeztetheti az adott komponensre támaszkodó összes szoftvert. Ezért elengedhetetlen a függőségi keresőeszközök használata a harmadik féltől származó függőségekből származó ismert sebezhetőségek azonosítására és kezelésére.
Software újrafelhasználás és függőség elfogadása
Ahogy a disztribúciós ökoszisztémák egyre elérhetőbbé válnak, a fejlesztők a meglévő szoftverek újrafelhasználása mellett döntenek, hogy felgyorsítsák a komplex szoftverfejlesztést. Ez a kényelem azonban váratlan biztonsági problémákat vethet fel, ha nem kezelik gondosan. Ezeket a meglévő szoftvereket elsősorban csomagok formájában terjesztik az interneten keresztül - olyan archívumok formájában, amelyek könyvtáraknak nevezett kiadási verziókat tartalmaznak, a verziót, szerzőt, licencet, hivatkozásokat és egyéb releváns információkat tartalmazó metaadatokkal együtt. A csomagolószoftverek egyszerűsítik a terjesztési és verzióellenőrzési folyamatokat.
A fejlesztők gyakran nyilvánosan, nyílt forráskódú licencek alatt osztják meg kódjukat, lehetővé téve a kód felülvizsgálatát, a közösségi együttműködést és az egyszerű integrációt. Bármely fejlesztő újra felhasználhatja, módosíthatja vagy hozzájárulhat a kódbázishoz. A projektek minősége, karbantartása és támogatása nagymértékben eltér egymástól. A szerzők azért adják ki ezeket a csomagokat, hogy könnyebben hozzáférhetővé tegyék őket, de a támogatás és a felelősség a licenctől függ.
Amint egy csomagra egy másik projektben hivatkoznak, az egy külső csomagreferenciát jelentő projektfüggőséggé válik. A függőségek egyirányú kapcsolatokat hoznak létre a szoftvercsomagok között, ahol az egyik a másikra támaszkodik a megfelelő működéshez. A fejlesztők a függőségeket beépítik az alkalmazásaikba, a build idején feloldják azokat, és lekérik a szükségeseket.
Az ellátási lánc a folyamatban részt vevő valamennyi külső beszállítóra vonatkozik, különösen a szoftverfüggőséget biztosító beszállítókra. Az ellátási lánc menedzsmentje az utóbbi években egyre nagyobb teret nyert a szoftverfejlesztésben, a vállalatok a beszállítói követelményeket, jogi dokumentumokat és szerződéseket tartalmazó irányelveket hoznak létre, hogy biztosítsák a jogszabályi megfelelőséget, mielőtt elfogadnak egy beszállítót.
Függőségkezelés
A függőségek kezelése gyorsan túlterhelővé válhat, ami a "függőségi pokol" nevű folyamathoz vezethet. A modern alkalmazásoknak több száz vagy akár több ezer közvetlen függősége is lehet, ami kihívássá teszi a sebezhetőségek nyomon követését. Íme néhány forgatókönyv, ahol a nagy mennyiségű függőségek kezelése kihívást jelent.
- A kódellenőrzés hiánya: A nyílt forráskódú átláthatóság ellenére a csapatok néha kihagyják a kód felülvizsgálatát, ami a biztonság hamis érzetéhez vezet.
- Implicit bizalom: A fejlesztők gyakran a szerzők alapos ellenőrzése nélkül vesznek fel függőségeket, kizárólag az adattárba való felvételre hagyatkozva.
- Kiterjedt függőséghasználat: A fejlesztők gyakran nagymértékben támaszkodnak a csomagokra, még akkor is, ha csak a funkcionalitásuk töredékére van szükségük, ami a függőségek felduzzadásához vezet.
- Változások: A csomagok frissítése összetett lehet, és törésszerű változtatásokat eredményezhet, ami tétovázáshoz és elavult csomagokhoz vezethet.
- Felelősségi kérdések: Ez vitákhoz és a projektfejlesztők irreális elvárásaihoz vezethet, ami potenciálisan bizonytalan csomagokat eredményezhet.
A harmadik féltől való függőségeket célzó támadások számának növekedése aggodalmat keltett a szoftverbiztonsággal kapcsolatban. Az olyan kiemelt incidensek, mint a Log4Shell sebezhetőség 2021-ben vagy a nemrég, 2024 márciusában történt, több ezer Maven csomagot érintő XZ Utils hátsó ajtó 2024 márciusában aláhúzták az ilyen sebezhetőségek széles körű hatását. Ugyanebben az évben egy népszerű NPM-csomagban, az ua-parser-jswas-ben található rosszindulatú szoftver felfedezése rávilágított a harmadik féltől származó könyvtárak alkalmazáscsomagokban való használatával járó kockázatokra.
Egy másik figyelemre méltó támadás 2024 januárjában a MavenGate, egy új szoftverellátási lánc támadási módszer, a függőségek eltérítése elhagyott könyvtárakon keresztül. E hiányosságok sikeres kihasználása lehetővé teheti a rosszindulatú szereplők számára, hogy sebezhető artefaktumokat találjanak a függőségekben, és rosszindulatú kódot juttassanak be az alkalmazásba, vagy ami még rosszabb, egy rosszindulatú bővítményen keresztül veszélyeztessék az építési folyamatot.
A nyílt forráskódú könyvtárak használatának növekedésével e kockázatok megértése és mérséklése kiemelkedően fontossá válik. Ez további vizsgálatokat tesz szükségessé a nyílt forráskódú könyvtárak sebezhetőségének elterjedtségére, típusaira és fennmaradására, valamint a projektjellemzőkkel és a commitokkal való kapcsolatukra vonatkozóan.
Függőségek biztosítása az OPSWAT SBOM segítségével
Az ellátási láncot ért támadásokra reagálva az Amerikai Egyesült Államok 2021 májusában jóváhagyta a "Végrehajtási rendeletet a nemzet kiberbiztonságának javításáról", amely meghatározza az ellátási láncra vonatkozó politikák javításának lépéseit. Az egyik legfontosabb követelmény, hogy minden termékhez SBOM-ot kell biztosítani.
OPSWAT A szoftver anyagjegyzék (SB OM) folyamatosan fejlődik, hogy megfeleljen a biztonságos környezetben történő szoftverfejlesztés növekvő igényeinek. az OPSWAT SBOM egyik legfontosabb jellemzője a függőségi vizsgálat. Ezt a funkciót úgy tervezték, hogy a projektek függőségeiben lévő sebezhetőségek azonosításával javítsa a kódbázis láthatóságát.
Csomagfüggőségi szkennelés
OPSWAT Az SBOM a fejlesztés és a tesztelés során automatikusan felismeri a szoftverfüggőségek biztonsági réseit. Az SBOM például tudatja a csapatokkal, ha az alkalmazás olyan nyílt forráskódú könyvtárat használ, amelyről ismert, hogy sebezhető. A csapatok ezután lépéseket tehetnek az alkalmazás védelme érdekében.
Függőség ellenőrzése Python segítségével
Container Képszkennelés
OPSWAT Az SBOM a konténerkép minden rétegét megvizsgálja a sebezhetőségek vagy fenyegetések azonosítása érdekében, beleértve az operációs rendszer (OS) csomagjait és az alkalmazás által használt függő szoftverkönyvtárakat. Ez a proaktív megközelítés lehetővé teszi a potenciális problémák észlelését és megoldását, mielőtt azok nagyobb problémává fokozódnának.
Ellenőrizze a függőséget az Alpine-nal
A fejlesztők és a biztonsági csapatok számára előnyös a függőségi sebezhetőségek gyakori típusainak, elterjedtségének és fennmaradásának megértése, ami lehetővé teszi számukra a súlyosság felmérését és a javítási stratégiák feltárását.
Az SBOM átvizsgálja a projekt függőségeit ismert sebezhetőségek után. Az észlelést követően az SBOM részletes információkat nyújt, beleértve a súlyossági szinteket, a sebezhetőség leírását és az elérhető javításokat.
Részletes jelentés exportálható a csapatok számára, hogy nyomon követhessék:
- A vizsgált függőségek száma összesen
- Az összes függőségben talált sebezhetőségek száma összesen
- Többféle változat beolvasása
- Ismert CVE-k
- A kritikus, magas, közepes és alacsony súlyosságú sebezhetőségek száma összesen
OPSWAT Az SBOM azt ajánlja a biztonsági csapatoknak, hogy frissítsenek minden sebezhető csomagot a legújabb, sebezhetőséget javító verzióra. Ez lehetővé teszi a csapatok számára, hogy foglalkozzanak a csomagok karbantartóinak sebezhetőségével, vagy eltávolítsák a csomagokat a függőségi fáról. Ez a proaktív megközelítés lehetővé teszi a csapatok számára, hogy még azelőtt kezeljék a potenciális biztonsági kockázatokat, mielőtt azok problémává válnának, jelentősen javítva ezzel a szoftverprojektek biztonságát és integritását. Emellett az OPSWAT SBOM segít a szervezeteknek abban, hogy a szoftverellátási láncban megfelelőek és biztonságosak maradjanak. A csapatoknak erősen ajánlott:

Függőségek feltérképezése
Használja az eszközöket a környezetben meglévő függőségek és azok kapcsolatainak azonosítására.

Szükségtelen függőségek megszüntetése
A támadási felület csökkentése érdekében távolítsa el a szükségtelen vagy nem alapvető függőségeket.

Bevált repozitóriumok használata
Biztosítsa, hogy a függőségek megbízható forrásokból származnak.

Ellenőrizze az összes függőséget
Mielőtt bármilyen szoftverben függőségeket használna, ellenőrizze azokat, hogy tisztában legyen a biztonsági vagy minőségi problémákkal.
Záró gondolatok
Az olyan függőségvizsgálati eszközökkel, mint az OPSWAT SBOM, proaktívan azonosíthatja és kezelheti a projekt függőségeiben található sebezhetőségeket, és csökkentheti a potenciális biztonsági kockázatokat, mielőtt azok kihasználhatók lennének. Használja ki a függőségi vizsgálatok és az SBOM-ok erejét a biztonságos, megfelelő és rugalmas szoftveralkalmazások létrehozásához.