A Google bemutatta az SLSA-t a kártékony módosítások védelme érdekében a fejlesztési folyamatban

A Google bemutatta az SLSA (Supply-chain Levels for Software Artifacts) keretrendszert, amely összegzi a meglévő tapasztalatokat a fejlesztési infrastruktúra védelméről a kódírás, tesztelés, gyűjtés és termékmegosztás szakaszában bekövetkező támadásokkal szemben.

A fejlesztési folyamatok egyre bonyolultabbá válnak, és egyre inkább függenek harmadik féltől származó eszközöktől, ami kedvező feltételeket teremt az olyan támadások számára, amelyek nem a végtermékben található sérülékenységek azonosítására és kihasználására irányulnak, hanem a fejlesztési folyamat kompromittálására (az „ellátási lánc”-támadások jellemzően a kódírás során végrehajtott rosszindulatú változások beiktatására, valamint a terjesztett komponensek és függőségek helyettesítésére összpontosítanak).

A keretrendszer nyolc támadástípust vesz figyelembe, amelyek a kódfejlesztés, gyűjtés, tesztelés és termékmegosztás szakaszában bekövetkező rosszindulatú változtatásokkal kapcsolatos fenyegetéseket jelentik.

A Google bemutatta az SLSA-t a kártékony módosítások védelme érdekében a fejlesztési folyamatban
  • A. Rosszindulatú változtatások, amelyek hátsó bejáratokat vagy rejtett hibákat tartalmaznak, amelyek sérülékenységeket eredményeznek a forráskódban.

    Támadás példája: „Hypocrite Commits” – A Linux kernelébe a sérülékenységekkel rendelkező javítások előmozdításának kísérlete.

    A javasolt védelmi módszer: minden változtatás független felülvizsgálata két fejlesztő által.

  • B. A forráskód kezelésére szolgáló platform kompromittálása.

    Támadás példája: rosszindulatú commitok hátsó bejárattal való beillesztése a PHP projekt Git-tárhelyére a fejlesztők jelszavainak kiszivárgása után.

    A javasolt védelmi módszer: A forráskódot kezelő platform védelmének javítása (a PHP esetében a támadást egy kevéssé használt HTTPS-értelmezés útján hajtották végre, amely lehetővé tette a jelszóval való bejelentkezést anélkül, hogy ellenőrizték volna az SSH-kulcsot, miközben a jelszavak hasheléséhez megbízhatatlan MD5-öt használtak).

  • C. Változtatások bevezetése a kód átadása során az építési rendszerbe vagy a folyamatos integrációba (a gyűjtött kód nem felel meg a repozitóriumban lévő kódnak).

    Támadás példája: hátsó bejárat beillesztése a Webminbe a gyűjtési infrastruktúrába történő változtatásokkal, amelyek olyan fájlokat használnak, amelyek különböznek a repozitóriumban lévő fájloktól.

    A javasolt védelmi módszer: A kód forrásának ellenőrzése és az integritás az építési folyamat során. szerveren.

  • D. Az építési platform kompromittálása.

    Támadás példája: a SolarWinds támadása, amely során az építési szakaszban hátsó bejárat beiktatása történt a SolarWinds Orion termékbe.

    Javasolt védelmi módszer: kiterjesztett biztonsági intézkedések bevezetése a gyűjtőplatform védelme érdekében.

  • E. Rossz minőségű függőségek által terjesztett rosszindulatú kód.

    Támadási példa: hátsó ajtó bevezetése a népszerű event-stream könyvtárba ártalmatlan függőség hozzáadásával, amelyet később egy ilyen függőség frissítésében rosszindulatú kódra cseréltek (a rosszindulatú módosítás nem volt látható a git-reposzitoriumban, csak a kész MNP-csomagban volt jelen).

    Javasolt védelmi módszer: az SLSA követelmények rekurzív alkalmazása minden függőségre (az event-stream esetében a vizsgálat kimutatta volna, hogy a kód összegyűjtése nem felel meg a fő Git-reposzitorium tartalmának).

  • F. Olyan artefaktumok letöltése, amelyeket nem a CI/CD rendszerben készítettek.

    Támadási példa: rosszindulatú kód hozzáadása a CodeCov szkripthez, amely lehetővé tette a támadók számára, hogy információt nyerjenek ki a folyamatos integrációs rendszerek környezeteiben tárolt adatokból.

    Javasolt védelmi módszer: az artefaktumok forrásának és épségének ellenőrzése (a CodeCov esetén megállapítható lett volna, hogy a codecov.io webhelyről szolgáltatott Bash Uploader szkript nem felel meg a projekt reposzitoriumának kódjának).

  • G. Csomagrepository kompromittálása.

    Támadási példa: kutatóknak sikerült népszerű csomagrepositoryk tükörképét létrehozniuk, a rosszindulatú csomagok terjesztésének céljából.

    Javasolt védelmi módszer: Ellenőrizni kell, hogy a terjesztett artefaktumok a megadott forráskódokból készültek.

  • H. A felhasználót zavarba ejtő csomag telepítése.

    Támadási példa: a típusra való rászorítás (NPM, RubyGems, PyPI) használata a csomagrepositorykban, amelyek írásban hasonlítanak a népszerű alkalmazásokra (például coffe-script a coffee-script helyett).

A megjelölt fenyegetések blokkolására az SLSA ajánl egy sor javaslatot, valamint automatizálási eszközöket a nyilvántartási metaadatok létrehozásához. Az SLSA összefoglalja a tipikus támadási módszereket, és bevezeti a védelmi szintek fogalmát. Minden szint bizonyos követelményeket támaszt az infrastruktúrával szemben, amelyek garantálják a fejlesztés során használt artefaktumok épségét. Minél magasabb az SLSA támogatott szintje, annál több védelmi eszköz van érvényben, és annál biztonságosabb az infrastruktúra a tipikus támadásokkal szemben.

  • SLSA 1 — teljesen automatizált gyártási folyamatot követel meg, amely metadátumokat generál a gyűjtés folyamatáról, beleértve az forrástextusokat, függőségeket és a gyártási folyamatot (a GitHub Actions esetében példát javasoltak a metadátumok auditálására). A SLSA 1 nem tartalmaz védelmet a kártékony módosítások ellen, csupán az egyszerű kódazonosítást biztosítja, és metadátumokat nyújt a sebezhetőségek kezeléséhez és kockázatelemzéshez.
  • SLSA 2 — kiterjeszti az első szintet az verziókezelő rendszer és az autentikált metadátumokat generáló gyártó szolgáltatások használatának követelményével. A SLSA 2 alkalmazása lehetővé teszi a kód származásának nyomon követését, és megakadályozza a jogosulatlan módosítások végrehajtását a kódban, ha megbízható gyártószolgáltatásokat használnak.
  • SLSA 3 — megerősíti, hogy a forrástextusok és a gyártási platform megfelel a szabványok követelményeinek, amelyek garantálják a kód auditálásának lehetőségét és a megadott metadátumok integritását. Feltételezhető, hogy az auditorok képesek tanúsítani a platformok megfelelőségét a szabványoknak.
  • SLSA 4 — a legmagasabb szint, amely kiegészíti az előző szinteket a következő követelményekkel:
    • Minden módosítás kötelező felülvizsgálata két különböző fejlesztő által.
    • Minden gyártási lépés, kód és függőség teljes mértékben deklarálva kell legyen, minden függőséget külön kell kinyerni és ellenőrizni, és a gyártási folyamatnak hálózati hozzáférés nélkül kell végbe mennie.
    • A megismételhető gyártási folyamat alkalmazása — lehetőség arra, hogy a gyártási folyamatot saját magunk ismételjük meg, és biztosítsuk, hogy az végrehajtható fájl a megadott forrástextusokból készült.

    A Google bemutatta az SLSA-t a kártékony módosítások védelme érdekében a fejlesztési folyamatban


    Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster