Prieš kelias dienas buvo paskelbta, kad „PyPI“ kataloge („Python“ paketų indekse) buvo identifikuoti 11 paketų, kuriuose yra kenkėjiško kodo.
Prieš nustatant problemas, paketai buvo atsisiųsti iš viso maždaug 38 000 kartų , ir verta paminėti, kad aptikti kenkėjiški paketai išsiskiria tuo, kad naudoja sudėtingus metodus ryšio kanalams su užpuolikų serveriais nuslėpti.
Buvo aptikti šie paketai:
- svarbus paketas (6305 atsisiuntimai) e svarbu-paketas (12897): šie paketai užmegzti ryšį su išoriniu serveriu prisidengiant prisijungimu prie pypi.python.org suteikti apvalkalo prieigą prie sistemos (atvirkštinis apvalkalas) ir naudokite programą trevorc2, kad paslėptumėte ryšio kanalą.
- pptest (10001) ir ipboards (946): naudojo DNS kaip ryšio kanalą informacijai perduoti apie sistemą (pirmame pakete – pagrindinio kompiuterio pavadinimas, darbo katalogas, vidinis ir išorinis IP, antrajame – vartotojo vardas ir kompiuterio pavadinimas).
- pelėda mėnulis (3285) DiscordSafety (557), y yiffparty (1859) – sistemoje atpažinkite „Discord“ paslaugos prieigos raktą ir nusiųskite jį į išorinį pagrindinį kompiuterį.
- trrfab (287): siunčia / etc / passwd, / etc / hosts, / home identifikatorių, pagrindinio kompiuterio pavadinimą ir turinį išoriniam kompiuteriui.
- 10 centų 10 (490) – Sukurtas atvirkštinis apvalkalo ryšys su išoriniu pagrindiniu kompiuteriu.
yandex-yt (4183) - rodomas pranešimas apie pažeistą sistemą ir nukreiptas į puslapį su papildoma informacija apie papildomus veiksmus, paskelbtą per nda.ya.ru (api.ya.cc).
Todėl paminėtina, kad ypatingas dėmesys turėtų būti skiriamas prisijungimo prie išorinių kompiuterių metodui, naudojamam „importantpackage“ ir „important-package“ paketuose, kurie savo veiklai slėpti naudoja „PyPI“ kataloge naudojamą „Fastly“ turinio pristatymo tinklą.
Tiesą sakant, užklausos buvo išsiųstos į pypi.python.org serverį (įskaitant python.org pavadinimo nurodymą SNI HTTPS užklausoje), tačiau užpuoliko valdomo serverio pavadinimas buvo nustatytas HTTP antraštėje „Host“ ». Turinio pristatymo tinklas išsiuntė panašią užklausą užpuoliko serveriui, naudodamas TLS ryšio parametrus į pypi.python.org, kai perduoda duomenis.
„PyPI “ infrastruktūrą palaiko „Fastly Content Delivery Network“, kuris naudoja „Varnish“ skaidrų tarpinį serverį tipinėms užklausoms kaupti talpykloje ir naudoja CDN lygio TLS sertifikatų apdorojimą, o ne galinius serverius, HTTPS užklausoms persiųsti per tarpinį serverį. Nepriklausomai nuo paskirties kompiuterio, užklausos siunčiamos tarpiniam serveriui, kuris identifikuoja norimą kompiuterį pagal HTTP „Host“ antraštę, o domenų kompiuterių pavadinimai yra susieti su tipiniais CDN apkrovos balansavimo įrenginio IP adresais, esančiais visuose „Fastly“ klientuose.
Užpuolikų serveris taip pat registruotas CDN „Fastly“ , kuris siūlo nemokamus planus ir netgi leidžia anoniminę registraciją. Verta paminėti, kad panaši schema naudojama užklausoms siųsti aukai, kai sukuriamas „atvirkštinis apvalkalas“, bet jį inicijuoja užpuoliko pagrindinis kompiuteris. Iš išorės sąveika su užpuoliko serveriu atrodo kaip teisėta sesija su PyPI katalogu, užšifruota PyPI TLS sertifikatu. Panaši technika, žinoma kaip „domeno frontingas“, anksčiau buvo naudojama norint aktyviai nuslėpti pagrindinio kompiuterio vardą apeinant blokus. Tai apėmė kai kurių CDN teikiamos HTTPS parinkties naudojimą, nurodant netikrą pagrindinį kompiuterį SNI ir perduodant prašomą pagrindinio kompiuterio vardą HTTP pagrindinio kompiuterio antraštėje TLS sesijos metu.
Norėdami paslėpti kenkėjišką veiklą, papildomai buvo naudojamas TrevorC2 paketas, dėl kurio sąveika su serveriu yra panaši į įprastą naršymą internete.
„pptest“ ir „ipboards“ paketuose buvo naudojamas kitoks tinklo veiklos slėpimo būdas, pagrįstas naudingos informacijos kodavimu DNS serverio užklausose. Kenkėjiška programinė įranga perduoda informaciją vykdydama DNS užklausas, kurių metu komandų ir valdymo serveriui perduodami duomenys subdomeno pavadinime užkoduojami naudojant base64 formatą. Užpuolikas priima šiuos pranešimus valdydamas domeno DNS serverį.
Galiausiai, jei norite sužinoti daugiau, išsamią informaciją galite rasti šioje nuorodoje.