Támadás a PyTorch infrastruktúrája ellen, veszélyeztetve a tárolót és a kiadásokat

Kiderültek a PyTorch gépi tanulási keretrendszer fejlesztése során használt infrastruktúra elleni támadás részletei, amely lehetővé tette a GitHubon és AWS-en lévő projektkiadásokkal tetszőleges adatok tárolására alkalmas hozzáférési kulcsok kinyerését, valamint a kód helyettesítését. az adattár fő ágában, és adjon hozzá egy hátsó ajtót a függőségeken keresztül. A PyTorch kiadás hamisítása felhasználható olyan nagyvállalatok támadására, mint a Google, a Meta, a Boeing és a Lockheed Martin, amelyek a PyTorch-ot használják projektjeikben. A Bug Bounty program részeként a Meta 16250 XNUMX dollárt fizetett a kutatóknak a problémával kapcsolatos információkért.

A támadás lényege, hogy a kódot folyamatos integrációs kiszolgálókon futtathatja, amelyek újraépítéseket hajtanak végre, és feladatokat futtatnak, hogy teszteljék a lerakatba küldött új módosításokat. A probléma azokat a projekteket érinti, amelyek saját külső „Self-Hosted Runner” kezelőjüket használják GitHub-műveletekkel. A hagyományos GitHub-műveletekkel ellentétben a Self-Hosted kezelők nem a GitHub infrastruktúrán futnak, hanem saját szervereiken vagy a fejlesztők által karbantartott virtuális gépeken.

Az összeállítási feladatok végrehajtása a kiszolgálókon lehetővé teszi a vállalat belső hálózatának átvizsgálására alkalmas kódok elindítását, titkosítási kulcsok és hozzáférési jogkivonatok keresését a helyi FS-ben, valamint környezeti változók elemzését a külső tárolók vagy felhőszolgáltatások eléréséhez szükséges paraméterekkel. Az összeállítási környezet megfelelő elkülönítésének hiányában a talált bizalmas adatokat el lehet küldeni a külső támadóknak, például külső API-khoz való hozzáférésen keresztül. Annak meghatározására, hogy a projektek használnak-e Self-Hosted Runnert, a Gato eszközkészlet használható a nyilvánosan elérhető munkafolyamat-fájlok és CI-feladatindítási naplók elemzésére.

A PyTorch-ban és sok más, a Self-Hosted Runner-t használó projektben csak azok a fejlesztők futhatnak összeállítási feladatokat, akiknek a módosításait korábban szakértői felülvizsgálták és a projekt kódbázisában szerepeltették. A „közreműködő” státusz a tárhely alapértelmezett beállításainak használatakor lehetővé teszi a GitHub Actions kezelők elindítását lekérési kérések küldésekor, és ennek megfelelően a kód végrehajtását a lerakathoz vagy a projektet felügyelő szervezethez társított bármely GitHub Actions Runner környezetben.

A „közreműködő” státuszra mutató hivatkozás könnyen megkerülhetőnek bizonyult - elegendő először egy kisebb módosítást benyújtani, és megvárni, amíg az elfogadásra kerül a kódbázisba, majd a fejlesztő automatikusan megkapta az aktív résztvevő státuszt, amelyek lekérései külön ellenőrzés nélkül tesztelhetők a CI infrastruktúrában. Az aktív fejlesztői státusz elérése érdekében a kísérlet kisebb kozmetikai változtatásokat tartalmazott a dokumentáció elírási hibáinak javítására. A PyTorch-kiadások tárházához és tárhelyéhez való hozzáférés érdekében a támadás a „Self-Hosted Runner” kód futtatása közben elfogta a GitHub tokent, amelyet a tárolóhoz való hozzáférésre használt összeállítási folyamatokból, valamint az összeállítási eredmények mentésére használt AWS-kulcsokat. .

A probléma nem specifikus a PyTorchra, és sok más nagy projektet érint, amelyek a GitHub Actions „Self-Hosted Runner” alapértelmezett beállításait használják. Például hasonló támadások végrehajtását említették, hogy hátsó ajtót telepítsenek néhány milliárd dolláros nagy kriptovaluta pénztárcába és blokklánc-projektbe, módosítsák a Microsoft Deepspeed és TensorFlow kiadásait, kompromittálják a CloudFlare alkalmazásokat, és végrehajtsák kódot a Microsoft hálózatán lévő számítógépen. Ezen incidensek részleteit még nem hozták nyilvánosságra. A meglévő hibajavító programok keretében a kutatók több mint 20 kérelmet nyújtottak be több százezer dollár értékű jutalomért.

Forrás: opennet.ru

Hozzászólás