Zum Inhalt springen
macOS · Verfügbar

Tsuba

Wirft einen Blick auf unbekannten Code, bevor er zum ersten Mal läuft.

Tsuba app icon
Typ
macOS
Version
0.3.0
Erschienen
31. Okt. 2026
Downloads
24
Regelpaket
20 Regeln · 2026.10.27
Voraussetzung
macOS 13+
Preis
Kostenlos
Datenschutz
Lesen →

Tsuba (鍔) ist das Stichblatt eines japanischen Schwerts, der Handschutz. Dieses hier sitzt in deiner Menüleiste und greift in den Momenten ein, in denen unbekannter Code zum ersten Mal läuft: Es ermittelt, was der Code gleich tun wird, woher er kommt und ob er wie ein bekannter Angriff aussieht, und entscheidet dann zwischen Zulassen, Warnen und Blockieren.

Ich habe es gebaut, nachdem falsche Upwork-Kunden zweimal versucht hatten, meinen Mac zu infizieren. Beim ersten Mal hat es geklappt, und weder XProtect noch Antivirensoftware haben es bemerkt. Hier ist die ganze Geschichte.

Tsuba in 24 Sekunden.

Das Dashboard: Schutzstatus, was Aufmerksamkeit braucht, und ein Live-Log jeder Prüfung.
Das Dashboard: Schutzstatus, was Aufmerksamkeit braucht, und ein Live-Log jeder Prüfung.

Warum Antivirensoftware diese Angriffe übersieht

Falsche Interview-Projekte, falsche Meeting-Apps, verseuchte npm-Pakete und bösartige Editor-Erweiterungen kommen jedes Mal in neuer Verpackung. Sie laufen über gewöhnliche Tools wie node, curl und bash, also gibt es für einen klassischen Scanner nichts zu melden. Tsuba überwacht stattdessen die Einstiegspunkte.

Wie groß das Problem ist:

  • Nordkoreas Kampagne Contagious Interview läuft seit mindestens Dezember 2022. Das „Testprojekt“ ist ein npm-Projekt auf GitHub, GitLab oder Bitbucket, und sobald du dem Repository vertraust, führt VS Code seine Task-Datei von selbst aus (Microsoft, März 2026).
  • Socket verfolgt seit Januar 2025 mehr als 1.700 bösartige Pakete, die mit der Kampagne in Verbindung stehen, verteilt auf npm, PyPI, Go, crates.io und Packagist (Socket, April 2026).
  • Die GlassWorm-Erweiterungen versteckten ihren Code in unsichtbaren Unicode-Zeichen und kamen auf etwa 35.800 Installationen, bevor sie entdeckt wurden (Koi Security, Oktober 2025).
  • Sonatype verzeichnete 16.279 neue bösartige Open-Source-Pakete in einem einzigen Quartal, 845.204 insgesamt (Sonatype, Q2 2025).

Bevor du ein Projekt ausführst, das dir ein Recruiter geschickt hat

  1. Öffne es noch nicht in deinem Editor. Ein vertrauenswürdiger Ordner kann beim Öffnen seine .vscode/tasks.json ausführen.
  2. Lies die package.json: preinstall- und postinstall-Skripte und Abhängigkeiten, von denen du nie gehört hast oder die letzte Woche veröffentlicht wurden.
  3. Such nach Code, der nicht in eine Probeaufgabe gehört: fest eingetragene IP-Adressen, eval von heruntergeladenem Text, Zugriffe auf Browserprofile, Wallets oder den Schlüsselbund.
  4. Füg nie eine curl … | bash-Zeile aus einem Chat in dein Terminal ein, ohne das Skript gelesen zu haben.
  5. Wenn du es schon ausgeführt hast, geh davon aus, dass der Rechner kompromittiert ist: Such nach Spuren und tausch dann Passwörter, Tokens und Schlüssel von einem sauberen Gerät aus.

Tsuba erledigt die Schritte 1 bis 4 für dich genau dann, wenn es darauf ankommt, und sein Systemcheck deckt Schritt 5 ab.

Was es prüft

Einstiegspunkt Beispiele Worauf Tsuba schaut
Terminalbefehle curl … | bash, npm install, npx, npm start, git clone Lädt das entfernte Skript herunter, ohne es auszuführen; prüft npm-Pakete gegen Listen bösartiger Pakete, ihr Alter und ihre Install-Skripte; scannt das Projekt nach verstecktem Code, fest eingetragenen Servern und Zugriffen auf Wallets oder Passwortspeicher
Einfügen ins Terminal Eine Seite sagt dir: „Kopier diesen Befehl in dein Terminal“ Warnt im Moment des Einfügens; verschleierte Befehle, die in eine Shell gepipt werden, gelten als hohes Risiko
Downloads-Ordner Neue .dmg-, .pkg-, .vsix-Dateien Signatur, Notarisierung, Download-Quelle und Install-Skripte
Editor-Erweiterungen VS Code, Cursor, Windsurf, VSCodium Die offizielle Liste bösartiger Erweiterungen, Aktivierung beim Start, in unsichtbaren Zeichen versteckter Code; Erweiterungen mit hohem Risiko kommen in Quarantäne
KI-Coding-Tools MCP-Server, Skills und Hooks für Claude Code, Cursor, Codex Bekannte bösartige Pakete, Starts aus versteckten Ordnern, vor dem Nutzer verborgene Anweisungen
Systemcheck Menüleiste → Systemcheck Spuren bekannter Angriffe und verdächtige Anmeldeobjekte

Projekte, bei denen du unsicher bist, kannst du zuerst in einer Sandbox testen: ein falscher Benutzerordner mit Ködern, Netzwerk-Requests, die aufgezeichnet, aber nie gesendet werden, und ein Limit von 60 Sekunden.

Eine blockierte Installation einer falschen Meeting-App: das Urteil, die Gründe und die Belege, Zeile für Zeile.
Eine blockierte Installation einer falschen Meeting-App: das Urteil, die Gründe und die Belege, Zeile für Zeile.

Ordner nach Bedarf oder nach Zeitplan scannen. Alles Riskante kommt in Quarantäne.
Ordner nach Bedarf oder nach Zeitplan scannen. Alles Riskante kommt in Quarantäne.

Der Systemcheck sucht nach Spuren bekannter Angriffe und prüft Editor-Erweiterungen und KI-Tools.
Der Systemcheck sucht nach Spuren bekannter Angriffe und prüft Editor-Erweiterungen und KI-Tools.

Tsuba im Vergleich

Die meisten Tools decken einen Weg hinein ab. Tsuba deckt jeden ersten Start auf einem Mac ab und arbeitet neben den anderen.

Tool Was es prüft Wann
Tsuba Terminalbefehle, npm und npx, geklonte Projekte, .dmg / .pkg / .vsix, Editor-Erweiterungen, MCP-Server, Skills und Hooks, eingefügte Befehle Bevor der Code zum ersten Mal läuft
npq, Socket Firewall, Aikido Safe Chain Pakete von npm (und teils PyPI und anderen) Bei der Installation
mcp-scan und andere MCP-Scanner MCP-Server und Agent-Tools Wenn du einen Scan startest
LuLu, BlockBlock, KnockKnock (Objective-See) Ausgehende Verbindungen und Software, die sich selbst für den Start bei der Anmeldung einrichtet Nachdem der Code gelaufen ist
Antivirensoftware und XProtect Signaturen bekannter Malware Wenn eine Datei zu einem bekannten Sample passt

Wie es entscheidet

Offline-Regeln laufen immer zuerst, gestützt auf öffentliche Threat Intel, die täglich aktualisiert wird, darunter über 230.000 gemeldete bösartige npm- und PyPI-Pakete von OpenSSF. Danach kann ein KI-Modell die Belege im Kontext beurteilen. Claude funktioniert am besten, andere Anbieter und lokale Modelle werden unterstützt, und du kannst die KI komplett abschalten.

An das Modell geht nur, was eine Prüfung an Belegen braucht. Code-Kommentare werden vorher entfernt, und Geheimnisse werden nie hochgeladen. Konfiguration und Verlauf bleiben in ~/.tsuba auf deinem Mac.

Einstellungen: jede Abwehr ein- oder ausschalten und wählen, wie Urteile entstehen, mit oder ohne KI.
Einstellungen: jede Abwehr ein- oder ausschalten und wählen, wie Urteile entstehen, mit oder ohne KI.

Verfügbarkeit

Tsuba ist erschienen, kostenlos und Open Source unter der Lizenz Apache 2.0 (auf GitHub). Es gibt zwei Builds: Wähl Apple silicon für Macs mit M1 und neuer, Intel für ältere. Nicht sicher, welchen du hast? Apple-Menü → Über diesen Mac → Chip.

Die App spricht zehn Sprachen, Deutsch inklusive: English, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Português und Русский. Oberfläche, Mitteilungen, Terminalprüfungen, Regelerklärungen und KI-Antworten folgen der Sprache von macOS, oder du wählst eine unter Einstellungen → Darstellung.

Tsuba ist noch nicht von Apple signiert oder notarisiert, deshalb blockiert macOS es beim ersten Öffnen. Geh zu Systemeinstellungen → Datenschutz & Sicherheit und klick auf Dennoch öffnen. Bitte entferne das Quarantäne-Flag nicht stattdessen mit xattr: Tsuba warnt vor Installationsprogrammen, die dich darum bitten, und sein eigenes sollte keine Ausnahme sein.

Das machst du nur einmal. Danach aktualisiert sich Tsuba selbst: Es sagt dir, wenn eine neue Version da ist, und installiert sie nur, wenn ihre Signatur zum Schlüssel passt, der in die App eingebaut ist.

Um zu prüfen, ob dein DMG das ist, das GitHub aus dem öffentlichen Quellcode gebaut hat, vergleiche shasum -a 256 Tsuba_*.dmg mit SHA256SUMS.txt auf der Release-Seite.

Ausprobieren

Echte Ausgabe, echte Regeln

Wähle ein Beispiel und sieh, was die App beim Scannen ausgegeben hat: nur Offline-Regeln, Version 0.1.1. Die Beispiele stammen aus ihrer Testsuite. Sie ahmen echte Angriffe nach, sind aber harmlos.

$ tsuba scan ~/code/fake_interview_project

Tsuba ✗ Block recommended  ~/code/fake_interview_project
  Evidence:
   High Decodes and then dynamically runs code (eval/Function + base64), common in obfuscated poisoned code [server/server.js] Source: Tsuba rules · Apache-2.0
      eval(Buffer.from("Y29uc29sZS5sb2coImxvY2FsZ3VhcmQgdGVzdCBmaXh0dXJlIik=", "base64").toString()); const C2 = "http://203.0.113.7:1224/api"; app.get('/', (q, r) =>
   High Connects straight to a hard-coded IP address and port (typical of a C2 server) [server/server.js]
      eval(Buffer.from("Y29uc29sZS5sb2coImxvY2FsZ3VhcmQgdGVzdCBmaXh0dXJlIik=", "base64").toString()); const C2 = "http://203.0.113.7:1224/api"; app.get('/', (q, r) =>
   High Code is pushed off the right edge of the screen by whitespace, out of sight (a typical way to hide a poisoned payload) [server/server.js]
      const app = require("express")(); ⟨400 spaces⟩ eval(Buffer.from("Y29uc29sZS5sb2coImxvY2FsZ3VhcmQgdGVzdCBmaXh0dXJlIik=", "base64").toString()); const C2 = "http:
Changelog

Changelog

Release-Feed ↗
Dateien · v0.3.0Größe
Tsuba_0.3.0_aarch64.dmg19.5 MB4b8ff8f2cc343864f63be59c43460f4396ab61ad4ae2ddd368d13ff61a58d1d3
Tsuba_0.3.0_x64.dmg22.3 MB02cfbea2b133032c5207c9e1dcbd1432ecc737408db29fbc1d9fb92fb5962122
  1. 0.3.031. Okt. 2026
    • f8aa092Give other languages' relative times room in the terminal log
    • d4a8ac6Translate the README into nine languages and refresh its screenshots
    • 7c0a4a6Add seals, a crest and gold fittings to the samurai look
    • 9de218fSpeak ten languages
    • 52826a5Restyle the shell as held-back samurai armor
    • c103f41Show the guard on a laptop and open the app through it
    • 1d22fd0Replace the katana logo with a 3D tsuba
    • 0cfcdfdAdd pnpm app to start the app from the repo root
    • 54bf89dDeclare all four MCP tool hints and test quarantine_list
    • 51a757fAdd the M8ven Verified badge to the README
    • 4ccb857Give the README a product page look with screenshots
    Alle Änderungen ↗
  2. 0.2.129. Okt. 2026
    Alle Änderungen ↗
  3. 0.2.029. Okt. 2026
    • be28cfaPlay a short, soft sound with Block notifications
    • 14d4349Redesign Settings, Health Check and the window chrome
    • 42754edUpdate Tsuba in the app from GitHub Releases
    • 4392c89Let users ignore warnings and choose which notifications they get
    Alle Änderungen ↗
  4. 0.1.228. Okt. 2026
    • d0353e4Add the Apache-2.0 LICENSE
    • e7f620eLeave folders the sandbox hides out of its PATH
    • d8fc3b7Let the website workflow run by hand to test the hook
    • a1f8191Rebuild the website when a release is published
    Alle Änderungen ↗
Fragen

Fragen

Ist es sicher, ein Projekt auszuführen, das mir ein Recruiter geschickt hat?

Behandle es als nicht vertrauenswürdig, bis es geprüft ist: Bei Fake-Bewerbungsgesprächen ist das Testprojekt die Malware. Zieh den Ordner auf Tsubas Fenster oder klone ihn, während Tsuba mit deinem Terminal verbunden ist, und es prüft Abhängigkeiten, Install-Skripte und VS-Code-Tasks, bevor irgendetwas läuft. Wenn du es schon ausgeführt hast, starte den Systemcheck und lies, was mir passiert ist.

Wie prüfe ich ein npm-Paket vor der Installation?

Wenn Tsuba mit deinem Terminal verbunden ist, werden npm install und npx geprüft, bevor sie laufen: bekannte bösartige Pakete aus der OpenSSF-Liste, Pakete, die erst vor wenigen Tagen veröffentlicht wurden, und Install-Skripte. Kommandozeilentools wie npq machen eine ähnliche Prüfung, nur für npm.

Warum sagt macOS, dass Tsuba nicht geöffnet werden kann?

Tsuba ist noch nicht von Apple signiert oder notarisiert. Geh deshalb beim ersten Öffnen zu Systemeinstellungen → Datenschutz & Sicherheit und klick auf Dennoch öffnen. Bitte entferne das Quarantäne-Flag nicht stattdessen mit xattr: Tsuba warnt vor Installationsprogrammen, die das verlangen. Um deinen Download zu prüfen, vergleiche ihn mit dem SHA-256 unter Changelog.

Lädt Tsuba meinen Code hoch?

Es werden keine Dateien hochgeladen. Wenn du die KI einschaltest, gehen nur die Belege, die eine Prüfung braucht, an das Modell deiner Wahl, ohne Code-Kommentare und ohne Geheimnisse. Mit ausgeschalteter KI laufen die Prüfungen auf deinem Mac gegen Offline-Regeln. Konfiguration und Verlauf bleiben in ~/.tsuba. Die Datenschutzhinweise listen alles auf, was Tsuba sendet, und wann.

Brauche ich ein KI-Abo oder einen API-Schlüssel?

Nein. Die Offline-Regeln laufen immer zuerst und funktionieren für sich allein. KI ist optional: Claude funktioniert am besten, andere Anbieter und lokale Modelle werden unterstützt.

Ersetzt es meine Antivirensoftware?

Nein. Bekannte Malware zu erkennen, überlässt Tsuba macOS XProtect und offener Threat Intel. Tsuba deckt ab, was die übersehen: Code in neuer Verpackung, den noch niemand gesehen hat, wie falsche Interview-Projekte, falsche Meeting-Apps, verseuchte Pakete und bösartige Erweiterungen, und es greift ein, bevor dieser Code läuft.

Auf welchen Macs läuft es?

macOS 13 oder neuer, auf Apple silicon und Intel, mit einem eigenen Download für jede Variante. Apple-Menü → Über diesen Mac → Chip zeigt dir, welchen du hast.

Was, wenn es etwas markiert, das eigentlich sicher ist?

Jedes Warnen und Blockieren zeigt seine Belege (welche Datei, welche Zeile, was angeschlagen hat), sodass du selbst urteilen kannst, und eine Warnung, die du geprüft hast, lässt sich ignorieren, oder du setzt, was du für vertrauenswürdig hältst, auf die Allowlist. Bitte melde den Fehlalarm: Aus jedem wird ein Regressionstest.

Feedback

Einen Bug oder eine Lücke gefunden?

Meldungen landen öffentlich in GitHub Issues. Füge nie Geheimnisse ein. Für ein echtes bösartiges Sample schick seinen Hash und die Herkunft, nicht die Datei.

Dranbleiben

Ich teile Builds, Experimente und Erkenntnisse unterwegs.

Neue Videos auf YouTube, kürzere Notizen auf X. Jeder Beitrag hier verlinkt auf beides.

YouTube