För några dagar sedan tillkännagavs att 11 paket innehållande skadlig kod hade identifierats i PyPI-katalogen (Python package index).
Innan problemen identifierades laddades paketen ner totalt cirka 38 000 gånger , och det är värt att notera att de upptäckta skadliga paketen utmärker sig genom sin användning av sofistikerade metoder för att dölja kommunikationskanaler med angriparnas servrar.
Paketen som upptäcktes är följande:
- viktigt paket (6305 nedladdningar) e viktigt-paket (12897): dessa paket upprätta en anslutning till en extern server under sken av att ansluta till pypi.python.org för att ge skal åtkomst till systemet (omvänd skal) och använd trevorc2-programmet för att dölja kommunikationskanalen.
- pptest (10001) och 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).
- ugglemåne (3285), DiscordSafety (557) y yiffparty (1859) - Identifiera Discord-tjänsttokenen på systemet och skicka den till en extern värd.
- trrfab (287): Skickar identifieraren, värdnamnet och innehållet för / etc / passwd, / etc / hosts, / hem till en extern värd.
- 10 cent10 (490) - Etablerade en omvänd skalanslutning till en extern värd.
yandex-yt (4183): visade ett meddelande om det komprometterade systemet och omdirigerades till en sida med ytterligare information om ytterligare åtgärder, utfärdat via nda.ya.ru (api.ya.cc).
Därför nämns det att särskild uppmärksamhet bör ägnas åt metoden för att komma åt externa värdar som används i importantpackage- och important-package-paketen, vilka använder innehållsleveransnätverket Fastly som används i PyPI-katalogen för att dölja sin aktivitet.
Faktum är att förfrågningarna skickades till pypi.python.org-servern (inklusive angivande av namnet på python.org i SNI inom HTTPS-förfrågan), men namnet på servern som kontrollerades av angriparen sattes i HTTP-rubriken "Host" ». Innehållsleveransnätverket skickade en liknande begäran till angriparens server, med hjälp av parametrarna för TLS-anslutningen till pypi.python.org vid överföring av data.
PyPIs infrastruktur drivs av Fastly Content Delivery Network, som använder Varnishs transparenta proxy för att cacha typiska förfrågningar och använder TLS-certifikatbehandling på CDN-nivå, snarare än slutpunktsservrar, för att vidarebefordra HTTPS-förfrågningar via proxyn. Oavsett destinationsvärd skickas förfrågningar till proxyn, som identifierar önskad värd med HTTP "Host"-headern, och domänvärdnamn är bundna till typiska CDN-belastningsutjämnare-IP-adresser som finns på alla Fastly-klienter.
Angriparnas server är också registrerad hos CDN Fastly , som erbjuder gratisplaner och till och med tillåter anonym registrering. Det är värt att notera att ett liknande schema används för att skicka förfrågningar till offret när ett "reverse shell" skapas, men initieras av angriparens värd. Utifrån sett verkar interaktionen med angriparens server vara en legitim session med PyPI-katalogen, krypterad med PyPI TLS-certifikatet. En liknande teknik, känd som "domain fronting", användes tidigare för att aktivt dölja värdnamnet genom att kringgå block. Detta innebar att använda HTTPS-alternativet som tillhandahålls av vissa CDN:er, specificera dummy-värden i SNI:n och skicka det begärda värdnamnet i HTTP-värdhuvudet inom en TLS-session.
För att dölja den skadliga aktiviteten användes dessutom TrevorC2-paketet, vilket gör att interaktionen med servern liknar normal webbsurfning.
Paketen pptest och ipboards använde ett annat tillvägagångssätt för att dölja nätverksaktivitet, baserat på kodning av användbar information i förfrågningar till DNS-servern. Skadlig programvara överför information genom att utföra DNS-frågor, där data som överförs till kommando- och kontrollservern kodas med formatet base64 i underdomännamnet. En angripare accepterar dessa meddelanden genom att kontrollera domänens DNS-server.
Slutligen, om du är intresserad av att lära dig mer, kan du hitta detaljerna på följande länk.