A Wiz Red Agent öt nap alatt jutott be a Snowflake belső Jira-rendszerébe

A Wiz Red Agent egy GitHub Actions-munkafolyamat kritikus parancsinjektálási hibáját fedezte fel a Snowflake egyik nyilvános GitHub-tárházában. A résen keresztül egy támadó Jira-hitelesítő adatokat szerezhetett volna meg, a Snowflake azonban még a felfedezés napján javította a hibát.
- A Wiz Red Agent kritikus GitHub Actions-parancsinjektálást talált a Snowflake egyik nyilvános tárházában.
- A hiba június 18-án vált élessé, a Wiz június 23-án fedezte fel és jelentette.
- A rés Jira-hitelesítő adatok kinyerését és tetszőleges parancsok futtatását tette lehetővé.
- A GitHub Advanced Security és a Copilot ellenőrzése sem jelezte a kritikus hibát.
- A Snowflake még a bejelentés napján javította a munkafolyamatot, majd lecserélte a tokent.
Öt napig volt éles a sérülékenység
A Wiz Research augusztus 17-én közzétett beszámolója szerint a Red Agent a Snowflake HackerOne programján keresztül végzett biztonsági kutatás során vizsgálta a vállalat GitHub-szervezetét. Az autonóm, mesterséges intelligenciával működő biztonsági kutatóeszköz a snowflakedb/snowflake-connector-net tárház jira_issue.yml munkafolyamatában talált hibát.
A sérülékeny kód a PR #1218 összeolvasztásakor, június 18-án vált élessé. A Wiz június 23-án azonosította, kihasználta és jelentette a problémát a Snowflake-nek, vagyis a hiba öt napig volt jelen a nyilvános tárházban.
A munkafolyamat minden új GitHub-issue megnyitásakor elindulhatott, az issue címét pedig közvetlenül egy shell-parancsba illesztette. Egy speciálisan kialakított cím így tetszőleges parancsok futtatását tehette lehetővé hitelesítés nélküli felhasználónak a GitHub Actions-futtatón.
A biztonsági ellenőrzés sem jelezte a hibát
A korábbi, biztonságos megoldás környezeti változót és a jq --arg feldolgozási mintát használt. A PR ezt közvetlen szövegbeillesztésre cserélte, így az issue címe ellenőrizetlenül került a futtatott shell-szkriptbe. A munkafolyamatban szereplő védelminek tűnő feltétel sem akadályozta meg a kihasználást, mert issue-eseményeknél a github.event.pull_request értéke mindig null.
A GitHub Advanced Security elemezte a végleges PR-változatot, és a sérülékeny munkafolyamatot is felismerte, a parancsinjektálást azonban nem jelezte. A Wiz beszámolója szerint a PR ellenőrzésében társszerzőként részt vevő Copilot a kódváltozást rendben lévőnek találta. A frissített leírás ugyanakkor hozzáteszi, hogy nem egyértelmű, maga a kódmódosítás AI segítségével készült-e.
A Red Agent módosította a támadási kísérletet
A Wiz ügynöke először egy szokásos, # karaktert használó terheléssel próbálta kinyerni az adatokat, de a futtató bash-szintaktikai hibát adott. A karakter a parancs lezárásához szükséges zárójelet is kommentként kezelte.
A Red Agent önállóan elemezte a hibát, módosította a terhelést, majd sikeresen küldte ki a Jira-adatokat egy külső visszahívási címre. A GitHub Actions-futtatótól másodperceken belül megérkezett a visszahívás, amely base64-kódolt hitelesítő adatokat tartalmazott.
A megszerzett token a [email protected] felhasználóként hitelesített a Snowflake Atlassian-rendszerében, és olvasási hozzáférést adott a mérnöki, biztonsági megfelelőségi és hibajelentési projektekhez.
A Snowflake még aznap javított
A Snowflake június 23-án javította a munkafolyamatot a PR #1402 keretében, visszaállítva a biztonságos környezeti változós és jq --arg alapú feldolgozást. A Jira-token visszavonását és cseréjét június 24-én végezték el.
A vállalat naplóelemzése szerint a kitettség öt napja alatt nem fértek hozzá külső felek a végponthoz, az összes rendellenes lekérdezés a Wiz tesztelési IP-címeihez kapcsolódott. A Wiz közölte, hogy a bizonyítási célú tesztelés során elért adatokat biztonságosan törölte.
A kutatás a Wiz szerint arra hívja fel a figyelmet, hogy az AI-val támogatott kódolás mellett is szükség van szigorú statikus elemzésre és biztonsági felülvizsgálatra. A beszámoló szerint az automatizált felfedezés miatt a sérülékenységek észlelési ideje órákra csökkenhet, ezért a gyors javítás és a rövid élettartamú hitelesítő adatok használata kiemelt szerepet kap.


