Die Entwickler der VoIP-Plattform Telnyx haben die Benutzer über die Kompromittierung des Pakets telnyx im PyPI-Repository informiert, das monatlich 756.000 Downloads verzeichnet und ein SDK für den Zugriff auf die Telnyx-API aus Python-Anwendungen bereitstellt. Am 27. März gelang es den Angreifern, zwei schadhafte Versionen von telnyx 4.87.1 und 4.87.2 zu veröffentlichen, nachdem sie Zugriff auf PyPI durch die Kompromittierung der Anmeldedaten des Betreuers erhalten hatten. Die schadhaften Versionen wurden von 6:51 bis 13:13 (MSK) verteilt und danach von der Verwaltung von PyPI blockiert. Die Infrastruktur, die API, die Sprachdienste und die Plattform von Telnyx blieben unversehrt.
Die Kompromittierung fand im Rahmen eines umfangreicheren Supply-Chain-Angriffs durch TeamPCP statt, bei dem kürzlich die Python-Pakete LiteLLM und Trivy kompromittiert und schadhafter Code in das OpenVSX-Plugin Checkmarx integriert sowie ein schadhafter Wurm in 68 Paketen im NPM-Repository eingesetzt wurde. Der zur Verschlüsselung gesendeter Daten verwendete RSA-Schlüssel stimmte mit Schlüsseln überein, die in anderen Angriffen der Gruppe TeamPCP eingesetzt wurden.
In die von Angreifern erstellten Versionen wurde ein bösartiger Code eingebettet, der in die Datei „_client.py“ integriert war und beim Import des Moduls aktiviert wurde. Nach der Aktivierung Server von den Angreifern die Audiodatei ringtone.wav für Unix-ähnliche Systeme und hangup.wav für Windows heruntergeladen. Diese Dateien wurden erfolgreich als Audiodateien wiedergegeben, enthielten jedoch durch Steganographie integrierte schadhafte Handler.
Auf der Plattform Windows wurde der böswillige Handler im System als „%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\msbuild.exe“ gespeichert und bei jedem Login ausgeführt. Unter macOS und Linux wurden SSH-Schlüssel, Anmeldedaten, Inhalte von Umgebungsvariablen, API-Zugangs-token, Verbindungsparameter zu Cloud-Diensten wie AWS, GCP, Azure und K8s, Schlüssel von Krypto-Wallets, Datenbankpasswörter usw. gesucht und gesendet. Die gefundenen Daten wurden mit den Algorithmen AES-256-CBC + RSA-4096 verschlüsselt und per HTTP POST-Anfrage an einen externen Host gesendet.
Quelle: opennet.ru
