For et par dage siden blev det annonceret, at 11 pakker indeholdende skadelig kode var blevet identificeret i PyPI-mappen (Python-pakkeindeks).
Før problemerne blev identificeret, blev pakkerne downloadet cirka 38 gange i alt , og det er værd at bemærke, at de opdagede ondsindede pakker skiller sig ud ved deres brug af sofistikerede metoder til at skjule kommunikationskanaler med angribernes servere.
De pakker, der blev opdaget, er følgende:
- vigtig pakke (6305 downloads) e vigtig-pakke (12897): disse pakker oprette forbindelse til en ekstern server under dække af at oprette forbindelse til pypi.python.org for at give shell-adgang til systemet (omvendt skal) og brug trevorc2-programmet til at skjule kommunikationskanalen.
- pptest (10001) og ipboards (946): brugte DNS som en kommunikationskanal til at overføre information om systemet (i den første pakke, værtsnavnet, arbejdsbiblioteket, intern og ekstern IP, i den anden, brugernavnet og værtsnavnet).
- uglemåne (3285) DiscordSafety (557) og yiffparty (1859) - Identificer Discord-tjenestetokenet på systemet og send det til en ekstern vært.
- trrfab (287): Sender identifikatoren, værtsnavnet og indholdet af / etc / passwd, / etc / hosts, / hjem til en ekstern vært.
- 10 cent10 (490) - Etablerede en omvendt skalforbindelse til en ekstern vært.
yandex-yt (4183): viste en besked om det kompromitterede system og omdirigeret til en side med yderligere oplysninger om yderligere handlinger, udstedt gennem nda.ya.ru (api.ya.cc).
Derfor nævnes det, at der skal lægges særlig vægt på den metode, der bruges til at tilgå eksterne værter i importantpackage- og important-package-pakkerne, som bruger Fastly-indholdsleveringsnetværket, der bruges i PyPI-kataloget, til at skjule deres aktivitet.
Faktisk blev anmodningerne sendt til pypi.python.org-serveren (inklusive angivelse af navnet på python.org i SNI i HTTPS-anmodningen), men navnet på serveren kontrolleret af angriberen blev angivet i HTTP-headeren "Host" ». Indholdsleveringsnetværket sendte en lignende anmodning til angriberens server ved at bruge parametrene for TLS-forbindelsen til pypi.python.org ved overførsel af data.
PyPIs infrastruktur drives af Fastly Content Delivery Network, som bruger Varnishs transparente proxy til at cache typiske anmodninger og anvender TLS-certifikatbehandling på CDN-niveau i stedet for endpoint-servere til at videresende HTTPS-anmodninger via proxyen. Uanset destinationsværten sendes anmodninger til proxyen, som identificerer den ønskede vært ved hjælp af HTTP "Host"-headeren, og domæneværtsnavne er bundet til typiske CDN-load balancer-IP-adresser, der findes på alle Fastly-klienter.
Angribernes server er også registreret hos CDN Fastly , som tilbyder gratis abonnementer og endda tillader anonym registrering. Det er værd at bemærke, at en lignende ordning bruges til at sende anmodninger til offeret, når en "reverse shell" oprettes, men initieres af angriberens vært. Udefra set ser interaktionen med angriberens server ud til at være en legitim session med PyPI-mappen, krypteret med PyPI TLS-certifikatet. En lignende teknik, kendt som "domain fronting", blev tidligere brugt til aktivt at skjule værtsnavnet ved at omgå blokke. Dette involverede brug af HTTPS-indstillingen, der leveres af nogle CDN'er, angivelse af dummy-værten i SNI'en og videregivelse af det anmodede værtsnavn i HTTP-værtsheaderen i en TLS-session.
For at skjule den ondsindede aktivitet blev TrevorC2-pakken desuden brugt, hvilket gør interaktionen med serveren lig med normal web-browsing.
pptest- og ipboards-pakkerne brugte en anden tilgang til at skjule netværksaktivitet, baseret på kodning af nyttig information i anmodninger til DNS-serveren. Ondsindet software transmitterer information ved at udføre DNS-forespørgsler, hvor data, der sendes til kommando- og kontrolserveren, kodes ved hjælp af base64-formatet i underdomænenavnet. En angriber accepterer disse meddelelser ved at kontrollere domænets DNS-server.
Endelig, hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.