Korábban már megírtuk, hogy a GitHub egy fertőzött Visual Studio Code-bővítményen keresztül csúszott el: egy alkalmazott gépe kompromittálódott, a támadók pedig a cég vizsgálata szerint nagyjából 3800 belső kódtárhoz férhettek hozzá. A GitHub akkor azt közölte, hogy az incidens a saját belső repositoryjait érintette, és nincs bizonyíték arra, hogy ügyféladatok vagy a platformon tárolt külső projektek kerültek volna veszélybe. Ez önmagában is kellemetlen ügy volt, de a Wired friss háttéranyaga alapján egyre inkább úgy néz ki, hogy a GitHub csak a legismertebb állomása egy sokkal nagyobb támadássorozatnak. A lap szerint a TeamPCP nevű kiberbűnözői csoport az elmúlt hónapokban olyan intenzitással támadta a fejlesztői ökoszisztémát, amire a szoftverellátási lánc elleni támadások világában is ritkán látni példát. A Socket biztonsági cég adatai alapján a csoport 20 külön támadási hullámot hajtott végre, több mint 500 különböző nyílt forráskódú eszközbe rejtett kártékony kódot, a különböző fertőzött verziókat is beleszámolva pedig ezres nagyságrendű kompromittált csomagról lehet szó. A GitHub tehát nem elszigetelt célpont volt, hanem egy olyan kampány leglátványosabb áldozata, amely fejlesztőkön, bővítményeken és nyílt forráskódú csomagokon keresztül próbál egyre mélyebbre jutni vállalati rendszerekbe.
A módszer azért veszélyes, mert pontosan arra épít, amitől a modern szoftverfejlesztés gyors és kényelmes lett. A fejlesztők naponta telepítenek bővítményeket, npm- és PyPI-csomagokat, biztonsági eszközöket, adatvizualizációs könyvtárakat és más nyílt forráskódú komponenseket. Ha ezek közül egy legitimnek tűnő eszközbe kártékony kód kerül, az nem a végfelhasználót támadja először, hanem azt a gépet, amelyen forráskód, hozzáférési tokenek, felhős kulcsok, belső jogosultságok és publikálási adatok találkoznak. A TeamPCP éppen ezt használja ki: megszerez egy fejlesztői hozzáférést, azzal újabb eszközöket fertőz meg, majd azokon keresztül újabb fejlesztői gépekhez és céges rendszerekhez jut el.
A Wirednek nyilatkozó Wiz-kutató ezt egy önmagát hajtó supply chain-lendkerékként írta le. A támadók bejutnak egy olyan hálózatba, ahol valamilyen fejlesztői eszköz készül, kártékony kódot rejtenek el benne, majd amikor más fejlesztők telepítik vagy frissítik az eszközt, a fertőzés újabb hitelesítő adatokat szed össze. Ezekkel a hozzáférésekkel aztán újabb csomagokat vagy bővítményeket lehet kompromittálni, és a kör elölről kezdődik. Ez már nem egy sima adathalász kampány, hanem a szoftverfejlesztés bizalmi modelljének módszeres kihasználása.
A TeamPCP legfrissebb eszközei között a Mini Shai-Hulud nevű önterjesztő féreg is felbukkant. A név a Dűne homokférgeire utal, és olyan GitHub-repositorykhoz kapcsolódik, amelyekben a kártevő titkosított, ellopott hitelesítő adatokat helyez el. A Wired szerint a csoport ezzel már részben automatizálta a szoftverellátási láncos támadásokat, vagyis nemcsak kézzel fertőzött csomagokról van szó, hanem olyan mechanizmusról, amely a megszerzett kulcsokkal és tokenekkel újabb fertőzéseket tud előkészíteni.
A támadássorozat hatása jóval túlmutat a GitHubon. A Wired összefoglalója szerint a TeamPCP akciói több száz szervezetet érinthettek, a korábbi és kapcsolódó incidensek között pedig megjelent az OpenAI, a Mercor, az Európai Bizottság nyilvános weboldala, a Trivy biztonsági szkenner, a LiteLLM, a Checkmarx infrastruktúrája, a TanStack és a Mistral AI neve is. Fontos, hogy ezeknél nem minden esetben ugyanarról a típusú kompromittálódásról van szó, és például az OpenAI-nál a beszámoló két dolgozói eszköz érintettségét említi, nem a vállalat központi rendszereinek feltörését. A minta viszont így is egyértelmű: a támadók olyan pontokon keresztül próbálnak bejutni, amelyeket a cégek gyakran megbízható fejlesztői alaprétegként kezelnek.
A GitHub-ügyben a TeamPCP a megszerzett belső kódot kiberbűnözői fórumon próbálta értékesíteni, és azt állította, hogy nem zsarolni akarja a céget, hanem vevőt keres az adatokra. A csoport működése azonban ennél szélesebb: a Wired szerint pénzügyi motivációjú szereplőről van szó, amely adatlopással, zsarolással, ransomware-kapcsolatokkal és eladási kísérletekkel is dolgozik. A kép azért is zavarosabb, mert a TeamPCP időnként geopolitikai irányba is elmozdulni látszott, például egy CanisterWorm nevű, Kubernetes-infrastruktúrákat célzó kártevővel, amely bizonyos iráni célpontok ellen romboló funkciót is bevetett.
A védekezés itt nem merül ki abban, hogy egy cég nem telepít gyanús bővítményeket. A szakértők szerint az egyik legnagyobb probléma a hosszú életű hozzáférési tokenek és felhős kulcsok használata. Ha egy ilyen credential kikerül, a támadó sokszor meglepően messzire jut vele, főleg akkor, ha túl széles jogosultságok tartoznak hozzá, és senki nem rotálja rendszeresen. A Palo Alto Networks kutatója szerint érdemes újragenerálni a GitHub-, GitLab-, AWS-, Azure-, Google Cloud-, Alibaba Cloud- és Oracle-féle hozzáféréseket is, ha egy környezet akár közvetve érintett lehetett. A fejlesztői világban régóta alapreflex, hogy a friss verzió biztonságosabb, ezért minél gyorsabban érdemes telepíteni. A TeamPCP támadássorozata pont ezt a reflexet fordítja fegyverré. A Wiz és a Socket szakértői ezért azt javasolják, hogy a cégek vezessenek be hűtési időt és ellenőrzést a nyílt forráskódú frissítésekre: a kritikus biztonsági javításokat továbbra is gyorsan kell kezelni, de minden frissen publikált csomagverzió automatikus telepítése ma már komoly kockázat.