Per Typosquatting untergeschobenes MCP-Paket
Bei der Installation eines MCP-Servers wird dessen Code ausgeführt, bevor Sie ihn lesen.
Was ist Per Typosquatting untergeschobenes MCP-Paket?
Ein MCP-Server ist ein npm-Paket, und bei der Installation eines Pakets werden dessen Installationsskripte als aktueller Benutzer ausgeführt, bevor jemand seinen Code liest. Dadurch stellt ein Abhängigkeitsname eine Sicherheitsgrenze dar und ein Name ist keine Identität. Sie folgen einem Paket, das unter einem Namen veröffentlicht wurde, der nur um ein Zeichen von einer vertrauenswürdigen Abhängigkeit abweicht, und dessen Postinstall-Hook Umgebungsdateien und Dateien mit Zugangsdaten an einen Angreifer-Host sendet. Sie lesen die Registrierungswarnungen, die vor der Installation angezeigt wurden, und korrigieren dann den Namen in der Agent-Konfiguration und schreiben ihn auf eine exakt signierte Version fest.
Was Sie lernen in Per Typosquatting untergeschobenes MCP-Paket
- Beachten Sie, dass es sich bei einem MCP-Server um ein npm-Paket handelt und dass bei der Installation eines Servers dessen Installationsskripte als aktueller Benutzer ausgeführt werden, bevor sein Code überprüft wird
- Lesen Sie die Signale auf der Registry-Seite, die ein vertrauenswürdiges Paket von einem per Typosquatting untergeschobenen Paket unterscheiden: ein verifizierter Herausgeber, ein signierter Build, eine etablierte Historie, ein bekannter Betreuer und das Fehlen unerwarteter Installationsskripte
- Verstehen Sie, dass ein Name keine Identität ist, sodass ein aus dem Gedächtnis eingetippter Abhängigkeitsname auf ein Lookalike verweisen kann, das sich nur um ein Zeichen unterscheidet
- Übernehmen Sie den exakten Paketnamen vom verifizierten Herausgeber, schreiben Sie in der Konfiguration eine exakte, signierte Version fest und überprüfen Sie dies durch eine saubere Installation
- Behandeln Sie die Warnung einer Registry vor ähnlichen Namen als Hilfe für aufmerksame Nutzer, nicht als Kontrolle, die eine böswillige Veröffentlichung stoppt
- Trennen Sie Prävention von Eindämmung: Durch das Beheben der Abhängigkeit wird die nächste Installation gestoppt, während alle Zugangsdaten, die der Hook bereits abgegriffen hat, wie z. B. ein Token mit Veröffentlichungsrechten, rotiert werden müssen
Per Typosquatting untergeschobenes MCP-Paket — Trainingsschritte
-
Ein lohnendes Vorbild
Die Agenten von Sarnholt beziehen eine Batch-Schicht namens databridge-pro aus der öffentlichen Tessquay-Registrierung. Es ist beliebt, sodass ein ähnlich aussehendes Paket ohne einen zweiten Blick installiert wird. Bob wird das echte Paket nicht angreifen. Er wird ein Paket daneben veröffentlichen.
-
Erst einmal in Ruhe ansehen
Das ist das echte Paket, das Sarnholts Agenten tatsächlich beziehen. Sehen Sie es sich an, bevor auf etwas hingewiesen wird: die Version, das Veröffentlichungsdatum, den Betreuer und ob der Build signiert ist.
-
Was es vertrauenswürdig macht
Alles auf dieser Seite muss Bob genau genug nachahmen, damit niemand zweimal hinschaut. Die vertrauenswürdige Herkunft kann er jedoch nicht nachbilden.
-
Auf die Nutzlast kommt es an
Das Paket muss nichts Nützliches tun. Es benötigt nur eine Datei, die sofort nach der Installation ausgeführt wird.
-
Es läuft, bevor es jemand liest
Diese Datei ist mit dem Postinstallationsschritt des Pakets verbunden, sodass sie automatisch ausgeführt wird, sobald das Paket installiert ist – mit den Rechten des Benutzers, der die Installation gestartet hat, bevor eine einzige Zeile davon überprüft wird.
-
Nur ein Buchstabe Unterschied
Bob veröffentlicht es unter einem Namen, den ein müdes Auge für den echten hält: databrige-pro, bei dem ein einzelner Buchstabe fehlt. Die Registry lässt es zu. Niemand besitzt einen Namen, bis er ihn beansprucht.
-
Nahe genug auf einen Blick
Drei Tage später öffnet Bob seinen eigenen Eintrag. Neben dem echten ist er deutlich weniger umfangreich, aber niemand sieht beide nebeneinander. Sie sehen den Namen in einem Setup-Snippet und installieren ihn.
-
Die verräterischen Anzeichen stehen alle auf der Seite
Alle Anzeichen dafür, dass es sich hier nicht um das echte Paket handelt, liegen bereits vor, bevor irgendjemand den Namen eintippt.
-
Der Hook funkt nach außen
Bob muss nirgendwo einbrechen. Er wartet darauf, dass Sarnholts eigene Pipeline das Paket installiert, und liest, was der Hook an seinen Sammelserver gesendet hat.
-
Warum es funktioniert hat
Abdeckung der Sicherheits-Frameworks
OWASP MCP Top 10
- MCP04:2025 Supply Chain & Dependency Tampering
CWE
- CWE-494 Download of Code Without Integrity Check
- CWE-345 Insufficient Verification of Data Authenticity
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security