Pred nekaj dnevi je bilo objavljeno, da je bilo v imeniku PyPI (indeks paketov Python) identificiranih 11 paketov, ki vsebujejo zlonamerno kodo.
Preden so bile težave odkrite, so bili paketi preneseni skupno približno 38-krat , pri čemer je treba omeniti, da odkriti zlonamerni paketi izstopajo po uporabi sofisticiranih metod za prikrivanje komunikacijskih kanalov s strežniki napadalcev.
Paketi, ki so bili odkriti, so naslednji:
- pomemben paket (6305 prenosov) e pomemben paket (12897): ti paketi vzpostavite povezavo z zunanjim strežnikom pod krinko povezave s pypi.python.org za zagotovitev dostopa lupine do sistema (obrnjena lupina) in s programom trevorc2 skrijete komunikacijski kanal.
- pptest (10001) in 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) y yiffparty (1859) – Identificirajte žeton storitve Discord v sistemu in ga pošljite zunanjemu gostitelju.
- trrfab (287): Pošlje identifikator, ime gostitelja in vsebino / etc / passwd, / etc / hosts, / home zunanjemu gostitelju.
- 10cent10 (490) - Vzpostavljena povratna povezava lupine z zunanjim gostiteljem.
yandex-yt (4183): pokazal sporočilo o ogroženem sistemu in preusmerjen na stran z dodatnimi informacijami o dodatnih dejanjih, izdanimi prek nda.ya.ru (api.ya.cc).
Zato je treba posebno pozornost nameniti metodi dostopa do zunanjih gostiteljev, ki se uporabljajo v paketih importantpackage in important-package, ki za skrivanje svoje dejavnosti uporabljajo omrežje za dostavo vsebin Fastly, ki se uporablja v katalogu PyPI.
Pravzaprav so bile zahteve poslane strežniku pypi.python.org (vključno z navedbo imena python.org v SNI v zahtevi HTTPS), vendar je bilo ime strežnika, ki ga nadzoruje napadalec, nastavljeno v glavi HTTP »Host ». Omrežje za dostavo vsebine je poslalo podobno zahtevo na napadalčev strežnik, pri čemer je pri prenosu podatkov uporabilo parametre povezave TLS na pypi.python.org.
Infrastrukturo PyPI poganja omrežje Fastly Content Delivery Network, ki za predpomnjenje tipičnih zahtev uporablja prozorni proxy Varnish in za posredovanje zahtev HTTPS prek proxyja uporablja obdelavo potrdil TLS na ravni CDN namesto končnih strežnikov. Ne glede na ciljnega gostitelja se zahteve pošljejo proxyju, ki želenega gostitelja identificira z glavo HTTP »Host«, imena gostiteljev domen pa so vezana na tipične naslove IP uravnalnika obremenitve CDN, ki jih najdemo na vseh odjemalcih Fastly.
Strežnik napadalcev je registriran tudi pri omrežju za dostavo podatkov (CDN Fastly) , ki ponuja brezplačne pakete in celo omogoča anonimno registracijo. Omeniti velja, da se podobna shema uporablja za pošiljanje zahtev žrtvi, ko je ustvarjena »obratna lupina«, vendar jo sproži napadalčev gostitelj. Od zunaj se zdi, da je interakcija s napadalčevim strežnikom legitimna seja z imenikom PyPI, šifrirana s potrdilom TLS PyPI. Podobna tehnika, znana kot »domain fronting«, se je prej uporabljala za aktivno prikrivanje imena gostitelja z obhodom blokov. To je vključevalo uporabo možnosti HTTPS, ki jo ponujajo nekateri CDN-ji, določitev navideznega gostitelja v SNI in posredovanje zahtevanega imena gostitelja v glavi gostitelja HTTP znotraj seje TLS.
Za skrivanje zlonamerne dejavnosti je bil dodatno uporabljen paket TrevorC2, zaradi česar je interakcija s strežnikom podobna običajnemu brskanju po spletu.
Paketi pptest in ipboards so uporabljali drugačen pristop za skrivanje omrežne aktivnosti, ki temelji na kodiranju koristnih informacij v zahtevah do strežnika DNS. Zlonamerna programska oprema prenaša informacije z izvajanjem poizvedb DNS, pri katerih so podatki, poslani na ukazni in nadzorni strežnik, kodirani v obliki base64 v imenu poddomene. Napadalec sprejme ta sporočila z nadzorom strežnika DNS domene.
Nenazadnje, če vas zanima več informacij, lahko podrobnosti najdete na naslednji povezavi.