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

> Eine kostenlose Menüleisten-App für macOS, die npm-Installationen, curl | bash-Skripte, heruntergeladene DMGs, Editor-Erweiterungen und Plugins für KI-Tools prüft, bevor sie laufen, um Malware aus Fake-Interviews wie Nordkoreas Contagious Interview abzufangen.

- URL: https://oliverz.dev/de/products/tsuba
- Author: Oliver Zhang (https://oliverz.dev)
- Language: de
- Platform: macOS app
- Status: live
- Price: Free
- License: Apache-2.0
- Version: 0.3.0
- First released: 2026-10-28
- Latest release: 2026-10-31
- Requirements: macOS 13+
- Download für Apple silicon: https://github.com/chihyungchang/Tsuba/releases/download/v0.3.0/Tsuba_0.3.0_aarch64.dmg
- Download für Intel: https://github.com/chihyungchang/Tsuba/releases/download/v0.3.0/Tsuba_0.3.0_x64.dmg
- Source: https://github.com/chihyungchang/Tsuba

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](https://oliverz.dev/de/blog/upwork-contagious-interview).

![Tsuba in 24 Sekunden.](https://oliverz.dev/products/tsuba/demo.en.mp4?v=d8f6a21d)

![Das Dashboard: Schutzstatus, was Aufmerksamkeit braucht, und ein Live-Log jeder Prüfung.](https://oliverz.dev/products/tsuba/1-overview.en.webp?v=e341faf4)

## 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](https://www.microsoft.com/en-us/security/blog/2026/03/11/contagious-interview-malware-delivered-through-fake-developer-job-interviews/)).
- 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](https://socket.dev/blog/contagious-interview-campaign-spreads-across-5-ecosystems)).
- 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](https://web.archive.org/web/20260101202601/https://www.koi.ai/blog/glassworm-first-self-propagating-worm-using-invisible-code-hits-openvsx-marketplace)).
- Sonatype verzeichnete **16.279 neue bösartige Open-Source-Pakete** in einem einzigen Quartal, 845.204 insgesamt ([Sonatype, Q2 2025](https://www.sonatype.com/press-releases/q2-2025-open-source-malware-index)).

## 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.](https://oliverz.dev/products/tsuba/2-history.en.webp?v=f0168298)

![Ordner nach Bedarf oder nach Zeitplan scannen. Alles Riskante kommt in Quarantäne.](https://oliverz.dev/products/tsuba/3-scan.en.webp?v=2f8accaf)

![Der Systemcheck sucht nach Spuren bekannter Angriffe und prüft Editor-Erweiterungen und KI-Tools.](https://oliverz.dev/products/tsuba/4-doctor.en.webp?v=8a48a5e3)

## 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](https://ossf.github.io/malicious-packages/stats/). 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.](https://oliverz.dev/products/tsuba/5-settings.en.webp?v=ce24d1bc)

## Verfügbarkeit

Tsuba ist erschienen, kostenlos und Open Source unter der Lizenz Apache 2.0 ([auf GitHub](https://github.com/chihyungchang/Tsuba)). 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](https://github.com/chihyungchang/Tsuba/releases/latest).

## FAQ

### 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](https://oliverz.dev/de/blog/upwork-contagious-interview).

### 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](https://oliverz.dev/de/products/tsuba/privacy) 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](#feedback): Aus jedem wird ein Regressionstest.
