Útočníkům se podařilo přidat do repozitáře Plone nezjištěný škodlivý kód.

Vývojáři Plone, open-source systému pro správu obsahu napsaného v Pythonu a JavaScriptu/NodeJS, oznámili incident, při kterém byl do repozitáře projektu na GitHubu přidán škodlivý kód. Původně byly 7. ledna v repozitáři detekovány tři změny (1, 2, 3), které přidaly škodlivý kód do JavaScriptových souborů projektu (1, 2, 3). Vyšetřování incidentu odhalilo, že škodlivý kód byl vložen prostřednictvím kompromitovaného účtu jednoho z vývojářů, jehož přístupový token byl útočníky zachycen poté, co byl v jejich systému spuštěn malware.

Dne 14. ledna byl napadený účet zablokován a vývojářům projektů bylo doporučeno analyzovat commity od 1. do 14. ledna. 27. ledna bylo zjištěno, že útok se neomezoval pouze na pozorované commity a že pět repozitářů projektů (plone/volto, plone/mockup, plone/plone.app.mosaic, plone/critical-css-cli, plone/plonetheme.barceloneta) bylo nenápadně injikováno škodlivým kódem. V případě repozitáře plone.app.mosaic se útočníkům podařilo nahradit větev master. K útoku došlo dva měsíce poté, co byl unesen přístupový token vývojáře.

Pro integraci změn útočníci místo běžných commitů použili operaci „force push“ (git push s volbou „--force“), která jim umožňuje násilně nahradit větev v externím repozitáři vlastním obsahem a následně přepsat historii změn (po nahrazení se zobrazí historie z větve načtené útočníkem). Aby se takovému nahrazování větví v budoucnu zabránilo, vývojáři Plonu zahrnuli do GitHubu pravidla, která blokují operace „force push“ pro hlavní větve a tagy.

Aby útočníci znemožnili detekci kompromitace v repozitáři plone.app.mosaic, vložili do větve master škodlivý commit s fiktivním datem 18. prosince v domnění, že se vyhledávání škodlivého kódu zaměří na změny přidané po jejich počáteční aktivitě v repozitáři. Škodlivá změna byla ve vloženém commitu prezentována jako začátek nové testovací verze, ale kromě změny čísla verze v metadatech (z 4.0.0a1 na 4.0.0a2.dev0) byl škodlivý kód přidán do souboru JavaScript prettier.config.js, který byl volán během procesu sestavení. Aby se změna skryla při zobrazení v terminálu, byl kód přidán na stejný řádek jako legitimní operace a odsazen od viditelné oblasti pomocí mezer. V rozhraní GitHub se tento kód také ve výchozím nastavení nezobrazoval a vyžadoval kliknutí na tlačítko „Načíst rozdíl“.

 Útočníkům se podařilo přidat do repozitáře Plone nezjištěný škodlivý kód.

Útok cílil spíše na vývojáře projektu než na jeho uživatele. Škodlivé změny nebyly ve vydání zahrnuty. Škodlivý kód byl aktivován během sestavení, načítal exploity pro eskalaci oprávnění, konfiguroval automatické spouštění voláním procesů ze spouštěcích skriptů a umožňoval vzdálené ovládání. serverNainstalovaná škodlivá komponenta navíc vyhledávala a odesílala důvěrná data, jako jsou přístupové tokeny, profily prohlížečů a klíče krypto peněženek.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster