Malvér, ktorý bol z PyPI stiahnutý 41 000-krát, bol prekvapivo plagiát
PyPI-11, open source úložisko používané veľkými a malými spoločnosťami na sťahovanie kódovaných knižníc, hosťuje škodlivé balíčky, ktoré boli stiahnuté viac ako 41 000-krát, čo je jedna z najnovších správ ohrozujúcich reťazec distribúcie softvéru.
JFrog, bezpečnostná firma, ktorá monitoruje PyPI a ďalšie úložiská na prítomnosť škodlivého softvéru, uviedla, že balíky boli významné pre dĺžku, ktorú vývojárom trvalo skryť svoj škodlivý kód pred detekciou siete. V týchto dĺžkach existuje inovatívny mechanizmus, ktorý je známy ako a Obrátený plášť Na proxy kontakty s riadiacimi servermi prostredníctvom rýchlej siete distribúcie obsahu. Ďalšia technika DNS tunel, JFrog povedal, že nikdy predtým nevidel škodlivý softvér nahraný do PyPI.
Silný vektor
„Správcovia balíkov predstavujú rastúci a mocný vektor pre náhodnú inštaláciu škodlivého kódu a ako sme zistili s týmito 11 novými balíkmi PyPI, útočníci sú vo svojom prístupe čoraz sofistikovanejší,“ napísal Shachar Menashe, senior riaditeľ JFrog Research, v e-maile. Techniky úniku, ako je nový exit alebo DNS tunelovanie (ktoré sme prvýkrát videli v balíkoch nahraných do PyPI), naznačujú tendenciu útočníkov na open source softvér stať sa plagiátmi.“
Výskumníci uviedli, že PyPI rýchlo odstránil všetky škodlivé balíčky, len čo ich JFrog nahlásil.
Používanie úložísk s otvoreným zdrojovým kódom na spúšťanie malvéru sa datuje minimálne do roku 2016, keď vysokoškolský študent nahral škodlivé balíčky do PyPI, RubyGems a npm. Balíkom dal rovnaké názvy ako bežne používané balíky, ktoré už predložili iní používatelia.
V priebehu niekoľkých mesiacov bol jeho pseudokód vykonaný viac ako 45 000-krát na viac ako 17 000 samostatných doménach a viac ako v polovici prípadov získal jeho kód všetky výkonné administratívne práva. Dve dotknuté domény skončili v .mil, čo naznačuje, že jeho skript mohli spustiť tí v americkej armáde.
V roku 2017 Slovenská komisia pre národnú bezpečnosť zistila, že škodlivé balíky stiahnuté z PyPI boli integrované do softvéru viacerých produktov v priebehu troch mesiacov. Odvtedy sa v úložiskách vyskytlo množstvo prípadov škodlivého softvéru.
V júli JFrog zistil škodlivé PyPI balíčky, ktoré boli stiahnuté 30 000-krát, pričom sa dopustili rôznych škodlivých činov, vrátane krádeže údajov o kreditných kartách a vstrekovania škodlivého kódu do infikovaných počítačov. Začiatkom tohto roka výskumník vyvinul nový typ útoku na dodávateľský reťazec, ktorý by mohol mať vážne následky. Takzvané „pro-mätúce útoky“ fungujú tak, že sa škodlivé balíky nahrávajú na verejné úložiská kódu a priraďujú sa podobné názvy legitímnym balíkom uloženým v internom úložisku Microsoftu, Apple alebo iného významného vývojára softvéru. Aplikácie vývojárov na správu softvéru často uprednostňujú externé kódovacie knižnice pred internými, takže sťahujú a používajú škodlivé balíky bez toho, aby používali nejaký spoľahlivý.
Od útočníka cez Fastleyho až po obeť
Teraz je čoraz ťažšie odhaliť tieto typy útokov. Najväčšie zlepšenie v manévroch, ktoré výskumníci našli, bolo v dvoch balíkoch, jeden „kritický balík“ (alebo alternatívne „kritický balík“) a druhý „10Cent10“ (alebo „10Cent11“). Balíky používajú Fastly CDN na skrytie komunikácie medzi infikovaným počítačom a riadiacim serverom.
Škodlivý kód skrytý v balíkoch odošle požiadavku HTTPS na pypi.python.org na nerozoznanie od formálnej žiadosti o PyPI. Požiadavky boli nakoniec prevedené spoločnosťou Fastley na požiadavku HTTP na riadiaci server psec.forward.io.global.prod.fastly.net. Server potom posiela odpovede cez rovnaký systém, ktorý umožňuje obojsmernú komunikáciu. Ľuďom umožňuje rýchlo a jednoducho zaregistrovať svoje domény v službe. V mnohých prípadoch môže byť registrácia vykonaná aj anonymne.
Vedci JFrog Andrey Polkovnychenko a Menashe vysvetlili:
Infraštruktúra PyPI je rýchlo hosťovaná na CDN. Používa tento hosting Lak Explicitný HTTP proxy na utesnenie spojenia medzi klientmi a backendom. Najskôr doprava a Terminátor TLS Šifrovanie, takže server proxy môže kontrolovať obsah paketu HTTP. Proxy analyzuje HTTP hlavičky z požiadaviek používateľov a na požiadanie presmeruje na príslušný backend
Host
Názov. Tento proces sa opakuje v opačnom smere, čo umožňuje malvéru sledovať duplexnú interakciu s PyPI.Výsledkom je, že relácia príkazu a riadenia (C2) je zašifrovaná a podpísaná platným serverovým certifikátom, ktorý je na nerozoznanie od interakcie s legitímnymi zdrojmi PyPI.
Tunel DNS, ďalšia pokročilá detekčná technika zistená výskumníkmi, funguje pomocou kanála DNS – zvyčajne priradeného na mapovanie názvov domén na adresy IP – na prenos komunikácie medzi infikovaným počítačom a riadiacim serverom. DNS tunel nie je nový, ale výskumníci uviedli, že to bolo prvýkrát, čo videli technológiu používanú v malvéri nahratú do PyPI.
Vniknutie škodlivého kódu do PyPI a iných úložísk naznačuje, že jeho používanie bude pravdepodobne pokračovať v šírení malvéru. Vývojári, ktorí sa spoliehajú na verejné úložiská, by mali venovať zvýšenú pozornosť tomu, aby sa ubezpečili, že v názve balíka, ktorý sťahujú, nie sú preklepy ani preklepy.