PyTorch: Toolkit für maschinelles Lernen von Weihnachten bis Neujahr PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

PyTorch: Toolkit für maschinelles Lernen von Weihnachten bis Neujahr

PyTorch ist eines der beliebtesten und am weitesten verbreiteten Toolkits für maschinelles Lernen.

(Wir werden uns nicht darauf verlassen, wo es auf der Rangliste der künstlichen Intelligenz steht – wie bei vielen weit verbreiteten Open-Source-Tools in einem Wettbewerbsumfeld scheint die Antwort davon abzuhängen, wen Sie fragen und welches Toolkit sie zufällig verwenden sich.)

Ursprünglich als Open-Source-Projekt von Facebook, jetzt Meta, entwickelt und veröffentlicht, wurde die Software Ende 2022 an die Linux Foundation übergeben, die sie nun unter dem Dach der PyTorch Foundation betreibt.

Unglücklicherweise, Das Projekt wurde durch einen Supply-Chain-Angriff kompromittiert während der Ferienzeit Ende 2022, zwischen dem 2022. Weihnachtsfeiertag [12] und dem Tag vor Silvester [25].

Die Angreifer erstellten böswillig ein Python-Paket namens torchtriton auf PyPI, dem beliebten Python-Paketindex-Repository.

Der Name torchtriton wurde so gewählt, dass er mit dem Namen eines Pakets im PyTorch-System selbst übereinstimmt, was zu einer gefährlichen Situation führt erklärt vom PyTorch-Team (unsere Betonung) wie folgt:

[A] bösartiges Abhängigkeitspaket (torchtriton) […] wurde in das Code-Repository des Python-Paketindex (PyPI) mit demselben Paketnamen hochgeladen wie der, den wir im nächtlichen Paketindex von PyTorch versenden. Da der PyPI-Index Vorrang hat, Dieses bösartige Paket wurde anstelle der Version aus unserem offiziellen Repository installiert. Dieses Design ermöglicht es jemandem, ein Paket mit dem gleichen Namen wie eines zu registrieren, das in einem Drittanbieter-Index vorhanden ist, und pip wird ihre Version standardmäßig installieren.

Das Programm pip, übrigens, früher bekannt als pyinstall, und ist anscheinend ein rekursiver Witz, der kurz für ist pip installs packages. Trotz seines ursprünglichen Namens dient es nicht dazu, Python selbst zu installieren – es ist die Standardmethode für Python-Benutzer, um in Python geschriebene Softwarebibliotheken und Anwendungen wie PyTorch und viele andere beliebte Tools zu verwalten.

Pwned durch einen Supply-Chain-Trick

Jeder, der das Pech hatte, die pwned-Version von PyTorch während der Gefahrenperiode zu installieren, endete mit ziemlicher Sicherheit mit einer datenstehlenden Malware, die auf seinem Computer implantiert wurde.

Laut PyTorch ist es kurz, aber nützlich Analyse der Malwarehaben die Angreifer einige, die meisten oder alle der folgenden wichtigen Daten von infizierten Systemen gestohlen:

  • Systeminformationen, einschließlich Hostname, Benutzername, bekannte Benutzer auf dem System und der Inhalt aller Systemumgebungsvariablen. Umgebungsvariablen sind eine Möglichkeit, reine Speichereingabedaten bereitzustellen, auf die Programme beim Start zugreifen können, häufig einschließlich Daten, die nicht auf der Festplatte gespeichert werden sollen, wie kryptografische Schlüssel und Authentifizierungstoken, die den Zugriff auf Cloud-basierte Dienste ermöglichen. Die Liste der bekannten Benutzer wird extrahiert /etc/passwd, die glücklicherweise keine Passwörter oder Passwort-Hashes enthält.
  • Ihre lokale Git-Konfiguration. Hier wird geklaut $HOME/.gitconfig, und enthält in der Regel nützliche Informationen über die persönliche Einrichtung eines jeden, der das beliebte Git-Quellcodeverwaltungssystem verwendet.
  • Ihre SSH-Schlüssel. Diese werden aus dem Verzeichnis gestohlen $HOME/.ssh. SSH-Schlüssel umfassen normalerweise die privaten Schlüssel, die für die sichere Verbindung über SSH (Secure Shell) oder SCP (Secure Copy) mit anderen Servern in Ihren eigenen Netzwerken oder in der Cloud verwendet werden. Viele Entwickler bewahren zumindest einige ihrer privaten Schlüssel unverschlüsselt auf, sodass sich die von ihnen verwendeten Skripte und Software-Tools automatisch mit Remote-Systemen verbinden können, ohne jedes Mal anhalten zu müssen, um nach einem Passwort oder einem Hardware-Sicherheitsschlüssel zu fragen.
  • Die ersten 1000 anderen Dateien in Ihrem Home-Verzeichnis sind kleiner als 100 Kilobyte. Die PyTorch-Malware-Beschreibung sagt nicht, wie die „Liste der ersten 1000 Dateien“ berechnet wird. Inhalt und Reihenfolge der Dateilisten hängen davon ab, ob die Liste alphabetisch sortiert ist; ob Unterverzeichnisse vor, während oder nach der Verarbeitung der Dateien in irgendeinem Verzeichnis besucht werden; ob versteckte Dateien enthalten sind; und ob in dem Code, der sich durch die Verzeichnisse bewegt, Zufälligkeiten verwendet werden. Sie sollten wahrscheinlich davon ausgehen, dass alle Dateien unterhalb der Größenschwelle gestohlen werden könnten.

An dieser Stelle erwähnen wir die gute Nachricht: Nur diejenigen, die sich die sogenannte „nächtliche“ oder experimentelle Version der Software holten, waren gefährdet. (Der Name „nächtlich“ kommt von der Tatsache, dass es sich um den allerneuesten Build handelt, der normalerweise automatisch am Ende eines jeden Arbeitstages erstellt wird.)

Die meisten PyTorch-Benutzer werden sich wahrscheinlich daran halten die sogenannte „stable“-Version, die von diesem Angriff nicht betroffen war.

Auch aus PyTorchs Bericht scheint es so zu sein Die ausführbare Triton-Malware-Datei zielte speziell auf 64-Bit-Linux-Umgebungen ab.

Wir gehen daher davon aus, dass dieses Schadprogramm nur auf Windows-Rechnern laufen würde, wenn das Windows Subsystem for Linux (WSL) installiert wäre.

Vergessen Sie jedoch nicht, dass zu den Personen, die am ehesten regelmäßige „Nightlies“ installieren, Entwickler von PyTorch selbst oder von Anwendungen gehören, die es verwenden – möglicherweise einschließlich Ihrer eigenen internen Entwickler, die möglicherweise einen auf privaten Schlüsseln basierenden Zugriff auf das Unternehmens-Build haben , Test- und Produktionsserver.

DNS-Datendiebstahl

Interessanterweise exfiltriert die Triton-Malware ihre Daten nicht (der militaristische Jargonbegriff, den die Cybersicherheitsbranche stattdessen gerne verwendet stehlen or illegal kopieren) mit HTTP, HTTPS, SSH oder einem anderen High-Level-Protokoll.

Stattdessen verschlüsselt und kodiert es die Daten, die es stehlen möchte, in eine Folge von scheinbar „Servernamen“, die zu einem von den Kriminellen kontrollierten Domänennamen gehören.

Das bedeutet, dass die Betrüger durch eine Reihe von DNS-Suchvorgängen bei jeder gefälschten Anfrage eine kleine Datenmenge herausschleichen können.

Dies ist die gleiche Art von Trick, die von verwendet wurde Log4Shell-Hacker Ende 2021, der Verschlüsselungsschlüssel durchsickern ließ, indem er DNS-Suchen nach „Servern“ mit „Namen“ durchführte, die zufällig der Wert Ihres geheimen AWS-Zugriffsschlüssels waren, der aus einer In-Memory-Umgebungsvariable geplündert wurde.

Was also wie eine unschuldige, wenn auch sinnlose DNS-Suche nach einem „Server“ wie z S3CR3TPA55W0RD.DODGY.EXAMPLE würde Ihren Zugangsschlüssel unter dem Deckmantel einer einfachen Suche preisgeben, die auf den offiziellen DNS-Server verweist, der für die aufgeführt ist DODGY.EXAMPLE Domäne.


LIVE LOG4SHELL DEMO ZUR ERLÄUTERUNG VON DATENEXFILTRATION ÜBER DNS

[Eingebetteten Inhalt]

Wenn Sie den Text hier nicht klar lesen können, versuchen Sie es mit dem Vollbildmodus oder direkt ansehen auf Youtube.
Klicken Sie auf das Zahnrad im Videoplayer, um die Wiedergabe zu beschleunigen oder Untertitel einzuschalten.


Wenn die Gauner die Domain besitzen DODGY.EXAMPLE, können sie der Welt mitteilen, mit welchem ​​DNS-Server sie sich verbinden sollen, wenn sie diese Suchen durchführen.

Noch wichtiger, sogar Netzwerke, die TCP-basierte Netzwerkverbindungen mit HTTP, SSH und anderen High-Level-Protokollen für die gemeinsame Nutzung von Daten streng filtern …

… filtern manchmal UDP-basierte Netzwerkverbindungen, die für DNS-Lookups verwendet werden, überhaupt nicht.

Der einzige Nachteil für die Gauner ist, dass DNS-Anfragen eine ziemlich begrenzte Größe haben.

Einzelne Servernamen sind auf 64 Zeichen aus einem Satz von 37 Zeichen (AZ, 0-9 und das Bindestrich- oder Bindestrichsymbol) beschränkt, und viele Netzwerke beschränken einzelne DNS-Pakete, einschließlich aller eingeschlossenen Anfragen, Header und Metadaten, auf jeweils nur 512 Byte.

Wir vermuten, dass die Malware in diesem Fall deshalb zunächst nach Ihren privaten Schlüsseln gesucht hat und sich dann auf höchstens 1000 Dateien beschränkt hat, von denen jede kleiner als 100,000 Bytes ist.

Auf diese Weise können die Gauner viele private Daten stehlen, insbesondere einschließlich Serverzugriffsschlüssel, ohne eine unüberschaubar große Anzahl von DNS-Lookups zu generieren.

Eine ungewöhnlich große Anzahl von DNS-Suchen könnte aus routinemäßigen betrieblichen Gründen auffallen, selbst wenn keine Prüfung speziell für Cybersicherheitszwecke durchgeführt wird.

Was ist zu tun?

PyTorch hat bereits Maßnahmen ergriffen, um diesen Angriff zu beenden. Wenn Sie also noch nicht getroffen wurden, werden Sie es mit ziemlicher Sicherheit jetzt nicht mehr, denn die bösartigen torchtriton -Paket auf PyPI wurde durch ein absichtlich „blindes“, leeres Paket mit demselben Namen ersetzt.

Dies bedeutet, dass jede Person oder Software versucht hat, sie zu installieren torchtriton von PyPI nach 2022-12-30T08:38:06Z, ob versehentlich oder absichtlich, würde die Malware nicht erhalten.

Das betrügerische PyPI-Paket nach der Intervention von PyTorch.

PyTorch hat eine praktische Liste von IoCs veröffentlicht, bzw Indikatoren für Kompromisse, nach denen Sie in Ihrem gesamten Netzwerk suchen können.

Denken Sie daran, wie oben erwähnt, dass selbst wenn fast alle Ihre Benutzer bei der „stabilen“ Version bleiben, die von diesem Angriff nicht betroffen war, Sie möglicherweise Entwickler oder Enthusiasten haben, die mit „Nightlies“ experimentieren, selbst wenn sie die stabile Version verwenden auch freigeben.

Laut PyTorch:

  • Die Malware wird mit dem Dateinamen installiert triton. Standardmäßig würden Sie erwarten, es im Unterverzeichnis zu finden triton/runtime in Ihrem Python-Site-Paketverzeichnis. Angesichts der Tatsache, dass Dateinamen allein schwache Malware-Indikatoren sind, betrachten Sie das Vorhandensein dieser Datei jedoch als Beweis für eine Gefahr; behandeln Sie seine Abwesenheit nicht als Entwarnung.
  • Die Malware in diesem speziellen Angriff hat die Summe SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Auch hier könnte die Malware leicht neu kompiliert werden, um eine andere Prüfsumme zu erzeugen, sodass das Fehlen dieser Datei kein Zeichen für einen eindeutigen Gesundheitszustand ist, aber Sie können ihr Vorhandensein als Zeichen einer Infektion behandeln.
  • DNS-Lookups, die zum Stehlen von Daten verwendet wurden, endeten mit dem Domainnamen H4CK.CFD. Wenn Sie Netzwerkprotokolle haben, die DNS-Lookups nach Namen aufzeichnen, können Sie nach dieser Textzeichenfolge als Beweis dafür suchen, dass geheime Daten durchgesickert sind.
  • Die böswilligen DNS-Antworten gingen offenbar an und Antworten, falls vorhanden, kamen von einem angerufenen DNS-Server WHEEZY.IO. Im Moment können wir keine mit diesem Dienst verbundenen IP-Nummern finden, und PyTorch hat keine IP-Daten bereitgestellt, die DNS-Traffic mit dieser Malware in Verbindung bringen würden, daher sind wir nicht sicher, wie viel Nutzen diese Informationen für die Bedrohungssuche haben im Moment [2023-01-01T21:05:00Z].

Glücklicherweise vermuten wir, dass die Mehrheit der PyTorch-Benutzer davon nicht betroffen sein wird, entweder weil sie keine nächtlichen Builds verwenden oder während der Ferienzeit nicht gearbeitet haben oder beides.

Aber wenn Sie ein PyTorch-Enthusiast sind, der an nächtlichen Builds bastelt, und wenn Sie über die Feiertage gearbeitet haben, dann, selbst wenn Sie keine eindeutigen Beweise dafür finden können, dass Sie kompromittiert wurden …

…Sie sollten trotzdem erwägen, vorsichtshalber neue SSH-Schlüsselpaare zu generieren und die öffentlichen Schlüssel zu aktualisieren, die Sie auf die verschiedenen Server hochgeladen haben, auf die Sie über SSH zugreifen.

Wenn Sie vermuten, dass Sie kompromittiert wurden, dann verschieben Sie diese SSH-Schlüsselaktualisierungen natürlich nicht – wenn Sie sie noch nicht durchgeführt haben, tun Sie sie jetzt!


Zeitstempel:

Mehr von Nackte Sicherheit