TL; DR
Die Pakete löschen sich selbst. Innerhalb von fünfzehn Tagen im August veröffentlichte ein npm-Operator neun Pakete unter neun verschiedenen Namen von sieben Accounts und zog acht davon persönlich zurück. Die verbleibende Verfügbarkeit jedes Pakets sank von dreizehn Stunden auf siebzehn Minuten. Diese Technik ist nicht einzigartig: Sieben weitere Pakete von unabhängigen Operatoren mit völlig unterschiedlichen Inhalten wurden von ihren jeweiligen Herausgebern im Median nach 37.8 Minuten zurückgezogen. Die Pakete sind verschwunden, bevor die meisten Schutzmechanismen greifen, und die Installation ist bereits erfolgt.
Alles, was die Registry bereitstellt, rotiert; die Nutzdaten hingegen nicht. Alle neun lieferten eine byteidentische bin/ Das Verzeichnis enthielt dieselben SHA-256-Hashes für drei Paketnamen und zwei Konten, die im Abstand von fünfzehn Tagen erstellt wurden. Die Inhaltsidentität ist das einzige Tracking-Signal, das dieser Betreiber nicht umgangen hat, und das eine Paket, das er nie zurückgezogen hat, ist der Grund, warum die Daten überhaupt untersucht werden konnten.
Diejenigen, die es installieren, sind keine Opfer und sind ohnehin stark gefährdet. Dieses Tool richtet sich nicht an Entwickler: Es umgeht die Fernaufsicht bei Prüfungen durch versteckte Bildschirmaufnahmen, das Extrahieren von Text auf dem Bildschirm und die Rückgabe der Antworten an ein Overlay. wer auch immer regiert npm install ist der beabsichtigte Begünstigte und nicht das Ziel. Sie führen außerdem eine unsignierte Binärdatei aus, die ihren Browser-Cookie-Speicher entschlüsselt, und zwar von einem Konto, das sich innerhalb einer Stunde selbst löscht. Sie können weder eine Fehlerbehebung erhalten, noch später überprüfen, was sie ausgeführt haben, und sie können Schäden nicht melden, ohne den Grund für die Installation offenzulegen.
Ökosystem: npm, gleiches Muster auch auf PyPI. Zeitraum: Juni–August 2026.
Die Messung
Die Verweildauer ist das Intervall zwischen dem Erscheinen und dem Verschwinden eines Pakets, berechnet anhand der Metadaten des Registers. Es handelt sich hierbei um Messwerte, nicht um Schätzungen.
| Verpackung | Veröffentlicht (UTC) | Links stehen |
|---|---|---|
moidev | 2026-08-16 16:31 | 5h 58m |
moidevx | 2026-08-17 03:24 | 13h 23m |
moidevz | 2026-08-26 03:38 | 12h 56m |
moideva | 2026-08-26 18:58 | 1h 33m |
amicat | 2026-08-28 20:48 | 17m |
bmcat | 2026-08-28 21:17 | 47m |
eyevox | 2026-08-28 21:44 | 21m |
moidevh | 2026-08-31 03:22 | 47m |
Liest man die Pakete in Veröffentlichungsreihenfolge, verkürzt sich das Zeitfenster um mehr als das Vierzigfache – von maximal 13 Stunden und 23 Minuten auf minimal 17 Minuten. Die ersten vier Pakete dauern im Durchschnitt achteinhalb Stunden, die letzten vier durchschnittlich 33 Minuten. Am 28. August wurden drei Pakete innerhalb von nur 77 Minuten veröffentlicht und zurückgezogen.
Die Kontraktion ist keine allmähliche Abschwächung. Sie konzentriert sich auf den Zeitraum zwischen dem 26. und 28. August, und was sich geändert hat, war die Einschätzung des Betreibers, wie lange ein Paket sicher gelagert werden kann.
Jeder hier durchgeführte Rückzug wird vom Herausgeber initiiert. Das Registrierungsdokument zeigt für jeden Rückzug eine leere Liste der Verantwortlichen neben einem Zeit.unveröffentlicht Aufzeichnung – das Zeichen einer Nichtveröffentlichung, nicht einer Löschung. Ein neuntes Paket, eyiousswurde nie zurückgezogen; deshalb konnte all dies überhaupt untersucht werden.
Es existiert ein zweites Auszahlungsverfahren, das nicht mit diesem verwechselt werden sollte. Wo nur das Nutzlastversion Wird ein Paket entnommen und bleibt es unbeschädigt, beträgt der Median etwa 73 Stunden über 31 Pakete. Diese Ersatzlieferungen treffen in festgelegten Chargen ein und hinterlassen eine leere Hülle – ein paket.json eine Erklärung Haupt- Dabei wird keine Datei übertragen – deren einzige Funktion darin besteht, den Namen zu speichern. Dieses System ist eine Art planmäßige Datenverwaltung. Dieses hier ist ein fein abgestimmtes Belichtungsfenster.
Was die Löschung übersteht
Neun dieser Pakete gehören zu einem einzigen Betreiber: moidev, moidevx, moidevz, Moideva, moidevh, amicat, bmcat, eyevox und eyioussDie Namen folgen keiner Konvention – jeder, der die moidev stem hätte mehr als die Hälfte davon verpasst – und sie wurden von sieben verschiedenen Accounts aus veröffentlicht, fast alle registriert auf Wegwerf-E-Mail-Domains.
Gemeinsam ist ihnen ein Manifesteintrag, der keine Daseinsberechtigung hat:
"bin": { "": "bin/kalamasha-tool.js" } } Wir haben vor der Entfernung Kopien von fünf Exemplaren aufbewahrt. Auf allen fünf Exemplaren war das gesamte Behälter/ Das Verzeichnis ist byte-identisch:
| Reichen Sie das | SHA-256 |
|---|---|
bin/kalamasha-tool.js | 0c293be90c10c8a7618d25f4c4811fa63612b7bc5199b86e10bb31eb36c716dd |
bin/uia_extract.exe | e2fda5aa8397799669f29258f69e803cf05d322c1d93269eef6754ca024c3865 |
bin/chrome_cookies.ps1 | 21b61ec810331850d72423c40c5448e6cd310c4cfad6aed54f92cd7e7cac5f3a |
bin/stealth_capture.ps1 | c9baf5897c03b941c54f736df5af9243ad28794a9e69746d41d4f4a34065589c |
bin/uia_extract.py | c20b38c63efd9221930095c54b42cdd5adffa1972c44c4578226cbe1e4dbac3e |
bin/uia_get_text.ps1 | 4a3f3ada0bdf13aa8e89edb8af817c7816296147dae5be25f169ff960d28a87c |
Zwei weitere Indizien bestätigen dies. Drei der Pakete wurden am 17., 26. und 31. August um 03:24, 03:38 und 03:22 UTC veröffentlicht – ein sechzehnminütiges Zeitfenster über fünfzehn Tage und drei verschiedene Konten. Zwei dieser Konten waren auf derselben Wegwerf-E-Mail-Domain registriert, was sie unabhängig vom Code miteinander verbindet.
Die Konten
Dies sind die npm-Publisher-Konten, die die Nutzdaten versendet haben, mit Angabe des jeweils hochgeladenen Pakets und der Dauer, die es dort verblieb:
| Herausgeberkonto | Verpackung | E-Mail-Domäne | Links stehen |
|---|---|---|---|
letol39119 | moidev:1.0.0 | hutdot.com (Einweg-E-Mail) | 5h 58m |
so1d1a7i27 | moidevx:1.0.0 | ogzmail.com (Wegwerfadresse) | 13h 23m |
lololololol435678 | eyiouss:3.0.21, 3.0.22, 4.0.1 | ogzmail.com (Wegwerfadresse) | noch veröffentlicht |
tagadob568 | moidevz:1.0.0 | ebflyai.com (Einwegkarte) | 12h 56m |
tayihim489 | moideva:1.0.0 | prodbits.com (Einweg-) | 1h 33m |
sahihai123 | amicat:1.0.0, bmcat:2.0.9, eyevox:1.0.0 | Webmail für Endverbraucher | 17m / 47m / 21m |
heytoshan | moidevh:1.0.0 | Webmail für Endverbraucher | 47m |
so1d1a7i27 und lololololol435678 Aktien der ogzmail.com Registrierungsdomäne – die Verbindung, die das Konto, das noch eine Live-Kopie hostet, mit dem Konto verknüpft, das unter der Registrierungsdomäne veröffentlicht wurde. moidev Stängel zwei Wochen zuvor. sahihai123 Am 28. August wurden innerhalb eines einzigen 77-minütigen Zeitfensters drei verschiedene Paketnamen veröffentlicht und wieder zurückgezogen. heytoshan registriert, veröffentlicht moidevhund zog den Beitrag 47 Minuten später zurück; er ist nach wie vor die einzige Veröffentlichung dieses Accounts.
Alle diese Accounts sind nicht per E-Mail verifiziert, verfügen über keinen verifizierten Quellcode-Verknüpfungspunkt und haben kein themenfremdes Projekt veröffentlicht. Sechs der sieben Accounts hosten keine Inhalte mehr.
Ein Paket wurde nie zurückgezogen. eyiouss:4.0.1 Die Kampagne wurde seit dem 16. August veröffentlicht und war zum Zeitpunkt der Veröffentlichung noch auflösbar. Acht Artefakte konnten nicht wiederhergestellt werden; die Kampagne wurde vollständig anhand des erhaltenen Artefakts rekonstruiert. Selbst ein Benutzer, der reflexartig löscht, wird letztendlich immer noch ein Artefakt übrig lassen.
Was das Tool macht
eyiouss:4.0.1 Es beschreibt sich selbst auf npm als „leistungsfähiges DOM-Dienstprogramm und Diagnosebrücke für moderne Webanwendungen“. Es handelt sich um ein Bildschirmaufnahme- und Antwortabruftool, das für den Einsatz unter Fernprüfungsaufsicht entwickelt wurde, wie der Quellcode selbst bestätigt.
Der Launcher kopiert die Electron-Laufzeitumgebung unter einem falschen Dateinamen, bevor er sie ausführt, und benennt, was er vermeidet:
// 🛡️ GEHEIMHALTETER BINÄRNAME: Darf NICHT mit dem echten Testpad kollidieren! const STEALTH_NAME = 'SearchApp.exe';
Im Header derselben Datei wird es als „ein“ bezeichnet. Anti-Proctor Ghost Watchdog und implementiert eine Respawn-Schleife, die umso schneller zurückgeht, je schneller der Prozess beendet wird. An anderer Stelle erhöht der Prozess seine eigene Priorität. um die CPU-Drosselung bei der Überwachung zu bekämpfen, verdrängt die Prüfungsanwendung aus dem Vordergrund, sobald sie den Fokus erhält, und beendet einen Safe Exam Browser-Unterprozess mit taskkill /F /T.
Die Erfassung erfolgt über ein mitgeliefertes PowerShell-Skript, das mit deaktivierter Ausführungsrichtlinie und unterdrücktem Fenster aufgerufen wird. Der Bildschirmtext wird parallel über die Windows-UI-Automatisierung erfasst. Die zwischengespeicherten Bilder und Texte werden an eine Sprachmodellsitzung in einem eingebetteten Browser übermittelt und die Antwort in einem permanent sichtbaren Overlay dargestellt. Diese Verbindung wird absichtlich verzögert, und der Code gibt den Grund dafür an: um eine dauerhafte NETSTAT-Belastung zu vermeiden.
Das Paket wird auch versendet chrome_cookies.ps1, mit der Überschrift Chrom-KeksextraktorDas Programm entschlüsselt Chrome- und Edge-Cookies über DPAPI und liest die Cookie-Datenbank von bis zu vier Browserprofilen.cisely: Wir konnten das Skript in keiner der mitgelieferten JavaScript-Dateien anhand seines Namens finden. Vorhanden und erreichbar ist jedoch der verbrauchende Teil, der gespeicherte Session-Cookies in den eingebetteten Browser einfügt.
Die Position der Personen, die es installieren
Niemand installiert das versehentlich. Es hat außerhalb einer überwachten Prüfung keine Funktion und gibt lediglich eine Antwort als Overlay auf dem Bildschirm des Benutzers aus. Die irreführende Paketbeschreibung richtet sich keineswegs an den Installateur – sie dient als Tarnung für die Registry und jeden, der den Rechner später überprüft. Der Installateur weiß, was er bekommt; die Beschreibung existiert, damit… Rekord Die Installation spiegelt dies nicht wider.
Die Geschädigten sind Dritte, die mit npm nie in Berührung gekommen sind: die Institution, die die Prüfung durchführt, die anderen Kandidaten und alle nachgelagerten Akteure, die darauf angewiesen sind, dass das Zertifikat eine Bedeutung hat.
Aber der Installer ist deshalb nicht sicher, und genau das muss man genauer erläutern, denn das Modell des verschwindenden Pakets selbst schafft die Schwachstelle.
Sie führen eine unsignierte Binärdatei von niemandem aus. uia_extract.exe Schiffe wurden ohne Quellcode und ohne Herkunftsnachweis von einem nicht mehr existierenden Konto zusammengestellt. Dieselbe Datei wurde anhand ihres Hashwerts erneut veröffentlicht von letol39119, so1d1a7i27, lololololol435678, tagadob568, tayihim489, sahihai123 und heytoshan Über fünfzehn Tage hinweg. Es gibt keinen Verantwortlichen, den man fragen könnte, kein Repository, das man lesen könnte, und keine Historie, die man überprüfen könnte – jede Identität, die es verbreitet hat, hat sich selbst gelöscht.
Sie haben der Malware genau die Fähigkeiten verliehen, die sie dafür benötigt. Ein versteckter Prozess, der unter falschem Namen läuft, entschlüsselt den Browser-Cookie-Speicher, liest kontinuierlich den Bildschirm aus, beendet Sicherheitssoftware und startet nach dem Beenden neu. Aktuell ist die Cookie-Entschlüsselung auf die Domains eines Anbieters beschränkt und dient der Benutzersitzung. Diese Beschränkung erfordert lediglich eine einzige Codezeilenänderung, und Änderungen am Bereitstellungsmodell – sei es ein neuer Name, ein neues Konto oder ein neuer Upload – würden nicht erkennbar sein.
Sie können keine Lösung erhalten. Das Paket wird innerhalb einer Stunde entfernt. Es gibt keine Aktualisierungsmöglichkeit, keine Benachrichtigung und keine Möglichkeit, später festzustellen, dass die installierte Version von der des Freundes abweicht. Die vorhandene Version bleibt auf dem Rechner.
Sie können nicht prüfen, was sie durchgeführt haben. Ihre Sperrdatei verweist nun auf ein Paket, das nicht mehr aufgelöst werden kann. Sollten sie später – etwa nach einem Vorfall oder einer Streitigkeit – feststellen wollen, was sich auf ihrem Rechner befand, kann die Registry ihnen dazu keine Auskunft geben.
Und sie können keine Schäden melden. Ein durch dieses Tool kompromittierter Nutzer kann keine Missbrauchsmeldung einreichen, ohne den Installationsgrund offenzulegen. Dies ist kein Zufall. Meldungen über Registry-Missbrauch sind ein Hauptkanal, über den kurzlebige Pakete aufgedeckt werden, und die Nutzerbasis dieses Anbieters ist strukturell nicht in der Lage, diesen Kanal zu nutzen. Der einzige verbleibende Angreifer ist die automatische Überprüfung – auf die ein 17-minütiges Zeitfenster kalibriert ist.
Die Opferstruktur und die Verweildauer sind ein und dasselbe Phänomen, das sich zweimal zeigt. Dies erklärt auch die Anomalie im Zeitablauf: Wäre der Rückzug durch die Angst vor Beschwerden bedingt, würde das langlebige, beliebte Paket zuerst verschwinden. Das geschah aber nicht, da keine Beschwerden eingingen.
Das gleiche Muster, ein anderer Operator
Der Aufsichtsoperator ist damit nicht allein, und die deutlichste Parallele verläuft bei einer nicht damit zusammenhängenden Nutzlast.
Zwischen dem 24. und 27. August tauchten vier npm-Pakete unter Namen auf, die von Tools zur Zwei-Faktor-Authentifizierung entlehnt waren – Auth-OTP, geheimer Schlüssel - 2FA, secretkey2fa und 2FA-Geheimschlüssel — mit insgesamt sechzehn Versionen. Jede wurde von einem eigenen, neu registrierten Account aus veröffentlicht (beayilol, jeanpaul686g, zzzalipay, dluuuuuAlle Veröffentlichungen waren nicht per E-Mail verifiziert, keine enthielt einen verifizierten Quellcode-Link und keine veröffentlichte darüber hinaus Inhalte. Jede einzelne wurde von ihrem jeweiligen Herausgeber zurückgezogen.
Die Payload hat nichts mit Prüfungssoftware zu tun. Sie liest Browser-Anmeldeinformationen und Discord-Token aus und durchläuft eine Xbox Live-Authentifizierungskette gegen den Minecraft-Launcher, um ein Aktualisierungstoken zu erfassen. Hier der Installer is das Opfer im üblichen Sinne – was den Vergleich sinnvoll macht, da das Lieferverhalten in jedem Fall identisch ist.
Die vier Zyklen liefen in Veröffentlichungsreihenfolge mit 274.9, 37.8, 37.6 und 35.7 Minuten: ein langer erster Versuch, dann Konvergenz auf einen gültigen Wert. Drei weitere Pakete gehören wiederum anderen Betreibern und zeigen dasselbe Rückzugsverhalten.
| Verpackung | Operator | Links stehen |
|---|---|---|
octopus-action | Aufklärungsboje | 2.5 Minuten |
mt-ts-serverless-starter | Aufklärungsboje | 9.6 Minuten |
2fa-secretkey | 2FA-Abdecknamen | 35.7 Minuten |
secretkey2fa | 2FA-Abdecknamen | 37.6 Minuten |
secretkey-2fa | 2FA-Abdecknamen | 37.8 Minuten |
auth-otp | 2FA-Abdecknamen | 274.9 Minuten |
hex-encode-utils | Andere | 724.2 Minuten |
Sieben Pakete, Median 37.8 Minuten, keines davon im Zusammenhang mit Prüfungssoftware.
Drei voneinander unabhängige Nutzlasten, drei voneinander unabhängige Kontensätze, eine gemeinsame Technik.
Warum sich das Fenster schließt
Irgendetwas hat sich im Laufe des Jahres 2026 in der Umgebung der Registry verändert, und der naheliegendste Kandidat ist, dass das Scannen schneller geworden ist.
Bis vor Kurzem wurden Schadsoftwarepakete hauptsächlich im Nachhinein entdeckt: durch einen Benutzer, der etwas bemerkte, durch einen Bericht eines nachgelagerten Systems oder durch regelmäßige Überprüfungen. Die Erkennungsverzögerung betrug mehrere Tage. Das ist nicht mehr die einzige Vorgehensweise. Neu veröffentlichte Pakete werden nun nahezu in Echtzeit analysiert. Xygenis eigene Malware-Frühwarnung Unter den immer zahlreicher werdenden Systemen dieser Art in der gesamten Branche schließt sich die Lücke zwischen Veröffentlichung und Prüfung auf einen deutlich kürzeren Zeitraum.
Ein Betreiber hat in diesem Fall zwei Möglichkeiten: Entweder er erschwert die Erkennung der Nutzdaten oder er verkürzt die Zeit, in der sie eingesehen werden können. Die zweite Option ist kostengünstiger, erfordert keinen Entwicklungsaufwand und wird von der Registry kostenlos bereitgestellt: Innerhalb des 72-Stunden-Fensters von npm kann ein Herausgeber ein Paket einseitig entfernen, und der Name kann anschließend wiederverwendet werden. Die Entfernung ist für den Betreiber kostenlos.
Der Zeitpunkt passt. Beide Operatoren oben nähern sich einem Wert an und halten ihn, anstatt abzudriften. Das ist typisch für einen optimierten Parameter und nicht nur eine Frage der Bequemlichkeit. Und der Parameter, auf den sie sich geeinigt haben – einige zehn Minuten – liegt vorcisely wo es platziert werden müsste, um eine automatische Inspektion zu bestehen und gleichzeitig lange genug installierbar zu bleiben, um seine Zielgruppe zu erreichen.
Dies bleibt eine Hypothese. Zeitdaten können nicht zwischen einer Reaktion auf Scans, einer Reaktion auf die Durchsetzung von Registervorschriften oder einer normalen operativen Weiterentwicklung im Zuge des gegenseitigen Lernens dieser Betreiber unterscheiden. Was sich ohne Schlussfolgerungen sagen lässt, ist enger gefasst, aber dennoch nützlich: Das Zeitfenster für die Belichtung ist mittlerweile so kurz, dass jede Kontrolle, die auf der Inspektion eines Pakets nach der Veröffentlichung beruht, gegen die vom Bediener gesetzte Zeit ankämpft. Steuerelemente, die nicht von einer Inspektion abhängen – Quarantäne nach Alter, Deaktivierung von Installationsskripten – sind von diesem Wettlauf nicht betroffen, was der praktische Grund ist, sie zu bevorzugen.
Was man dagegen tun kann
Quarantäne nach Alter. Keine der in der Verweilzeittabelle aufgeführten Versionen überstand dreizehn Stunden. Eine Richtlinie, die die Installation von Abhängigkeitsversionen erst nach 72 Stunden erlaubt, hätte alle ausgeschlossen, ohne dass dies bemerkt wurde.
Installationsskripte standardmäßig deaktivieren. –Ignore-Skripte Entfernt den Übermittlungsmechanismus, von dem die Anmeldeinformationsdiebstahl-Pakete in diesem Korpus abhängen. Es hilft nicht gegen ein Tool, das der Benutzer absichtlich ausführt, welches vorcisEs geht also um den Unterschied, den es wert ist, verstanden zu werden.
Behandeln Sie Verschwinden als Sicherheitsvorfall. Lassen Sie sich benachrichtigen, wenn eine installierte Abhängigkeit nicht mehr aufgelöst werden kann. Die entsprechenden Informationen befinden sich noch in Ihrer Sperrdatei, nicht in der Registrierung.
Inhalte erfassen, nicht Namen. Die sechs oben genannten Zusammenfassungen stimmen unabhängig von Paketname, Herausgeberkonto oder Versionszeichenfolge überein – jedes Feld, das dieser Operator demonstriert, wird geändert. Eine Registry-Regel, die besagt, dass ein neu registriertes Konto, das sein einziges Paket innerhalb einer Stunde zurückzieht, ein meldepflichtiges Muster darstellt, hätte allein aufgrund der Metadaten bei jedem Paket ausgelöst.
Und falls Sie die Installation eines Produkts aus dieser Kategorie erwägen: Die Eigenschaften, die es einer Registry erschweren, das Problem zu erkennen, sind dieselben, die Ihnen jegliche Möglichkeit zur Wiedergutmachung lassen. Es gibt keinen verantwortlichen Herausgeber, keinen Aktualisierungspfad und keine Aufzeichnung der ausgeführten Aktionen.
Anzeigen
| Typ | Wert |
|---|---|
| Reichen Sie das | bin/kalamasha-tool.js — nicht-standard Mülltonneneinführung |
| SHA-256 | 0c293be90c10c8a7618d25f4c4811fa63612b7bc5199b86e10bb31eb36c716dd |
| SHA-256 | e2fda5aa8397799669f29258f69e803cf05d322c1d93269eef6754ca024c3865 |
| Prozess | SearchApp.exe geschrieben neben einer legitimen Electron-Laufzeitumgebung |
| Verhalten | powershell -ExecutionPolicy Bypass -File und windowsHide: true |
| Verhalten | taskkill /F /T Ziel eines sicheren Prüfungsbrowserprozesses |
| Metadaten | Leere Liste der Wartungsmitarbeiter neben einem time.unpublished Rekord |
| Trading Konten | letol39119, so1d1a7i27, lololololol435678, tagadob568, tayihim489, sahihai123, heytoshan |
| Anmeldung | ogzmail.com, hutdot.com, ebflyai.com, prodbits.com — Wegwerf-E-Mail-Domains |
Referenzen
- npm-Veröffentlichungsrichtlinie — das 72-Stunden-Fenster, innerhalb dessen ein Herausgeber ein Paket ohne Intervention entfernen kann.







