Vor der Installation, nicht danach
Ein Claude-Code-Skill, der andere Skills prüft, bevor du sie installierst. Automatischer Muster-Scan plus manueller Prüf-Workflow — gegen Prompt Injection, Datenexfiltration, Rechteausweitung, Persistenz und Social Engineering.
Der Skill-Auditor ist ein Claude-Code-Skill, der andere Skills vor der Installation auf Sicherheitsrisiken prüft. Er kombiniert einen automatischen Muster-Scan über acht Befundkategorien mit einem manuellen Prüf-Workflow und liefert eine strukturierte Erstbewertung in drei Stufen (🟢 / 🟡 / 🔴).
Geprüft wird auf Prompt Injection, Datenexfiltration, Code-Ausführung, Verschleierung, Rechteausweitung, Persistenz, Secrets-Zugriff und Zeitbomben. Eine zusätzliche Reject-Stufe schlägt bei Musterkombinationen an, die einzeln erklärbar wären — etwa ein Zugriff auf .ssh zusammen mit einem curl-Aufruf in derselben Datei.
Der Skill-Auditor steht unter MIT-Lizenz auf GitHub und benötigt außer Python 3 keine Abhängigkeiten. Er läuft in Claude Code und anderen Coding-Agenten mit Dateisystem-Zugriff, nicht in claude.ai. Neben der Einzelprüfung gibt es einen Inventar-Modus, der bereits installierte Skills als kategorisiertes HTML-Dashboard auflistet. Er ersetzt kein vollständiges Security-Review.
Das Problem
Ein Skill ist eine Anweisung an deinen Agenten. Manche bringen zusätzlich Scripts mit. Beides kann feindlich sein.
Ein Skill aus einem fremden Repo landet mit einem Copy-Befehl in deinem ~/.claude/skills/ — und wird ab dem nächsten Prompt mitgelesen. Keine Sandbox, keine Signatur, kein Store-Review. Der Skill-Auditor schließt genau diese Lücke: eine wiederholbare erste Prüfung, bevor irgendetwas ausgeführt wird.
Oben der Normalfall. Unten der Punkt.
Acht Befundkategorien. Muster in Markdown-Codeblöcken werden für die meisten Kategorien übersprungen — eine Regex in der Doku ist keine aktive Injection.
Ausgehende Verbindungen — und besonders die Kombination aus „liest ein Geheimnis" und „schickt es irgendwohin".
Alles, was zur Laufzeit fremden Code nachlädt oder auswertet.
Kodierte Nutzlast statt lesbarem Code. Ein legitimer Skill hat selten einen Grund dazu.
Paketinstallationen, Rechtevergabe und Eingriffe in die Shell-Umgebung.
Angriffe auf den Agenten statt auf das System: Rollenwechsel, gefälschte System-Tags, Umgehungsrhetorik gegen die Prüfung selbst.
Alles, was sich über die Session hinaus festsetzt oder deine Konfiguration umschreibt.
Zugriffe auf Orte, an denen bei dir Schlüssel liegen.
Logik, die am Prüftag harmlos ist und sich später anders verhält — datums- oder versionsabhängig.
Drei Schweregrade plus eine vierte Stufe, die nicht einzelne Muster bewertet, sondern deren Zusammenspiel.
Muster, die für sich genommen bereits einen Angriff darstellen. Nicht installieren, ohne die Fundstelle gelesen zu haben.
Muster mit hohem Missbrauchspotenzial, die in seltenen Fällen legitim sind. Manuelle Bewertung im Kontext erforderlich.
Auffälligkeiten, die einen Blick verdienen — oft harmlos, aber nicht wortlos durchwinken.
Musterkombinationen, die unabhängig von der Einzelbewertung durchfallen. Beispiel: eine Datei, die .ssh liest und im selben File an curl übergibt. Einzeln jeweils erklärbar, zusammen nicht.
Der Scan ist der schnelle Teil. Die manuellen Phasen sind der Teil, den eine Regex nicht abdecken kann — und deshalb Pflicht.
Woher kommt der Skill, wer hat ihn veröffentlicht, wie alt ist das Repo, wer sonst nutzt ihn. Herkunft entscheidet, wie streng der Rest gelesen wird.
audit.py läuft über das gesamte Verzeichnis, prüft die acht Kategorien und schreibt Konsolenreport plus audit-result.json in den geprüften Ordner.
Der Prompt-Text selbst wird gelesen. Social Engineering hat keine Keywords, nach denen man greppen könnte — nur Formulierungen, die dem Agenten etwas anderes sagen als dir.
Braucht der Skill wirklich, was er anfasst? Ein Textformatierer mit Netzwerkzugriff ist kein Fund, aber eine Frage.
🟢 / 🟡 / 🔴 mit Fundstellen. Eine strukturierte Erstbewertung als Entscheidungsgrundlage — die Entscheidung triffst du.
Ein Durchlauf von der Übergabe des Verzeichnisses bis zum Befund.
Das Video wird erst nach Klick von YouTube geladen. Vorher werden keine Daten an Google übertragen. Beim Start gelten die Datenschutzbestimmungen von Google.
Konsolenausgabe für den Menschen, audit-result.json für alles andere. Mehrere Verzeichnisse auf einmal ergeben eine Übersichtstabelle.
Beispielausgabe — Formatierung je nach Version
Keine Dependencies außer Python 3. Kein npm, kein Build, keine Hooks.
1 — Repo holen
git clone https://github.com/ki-stuff/skill-auditor.git2 — In das Skills-Verzeichnis kopieren
cp -r skill-auditor ~/.claude/skills/Unter Windows: %USERPROFILE%\.claude\skills\skill-auditor\
3 — Prüfen
python3 ~/.claude/skills/skill-auditor/scripts/audit.py ./neuer-skillOder einfach den Agenten bitten, einen Skill zu prüfen — der Skill ist so geschrieben, dass er von sich aus anspringt, bevor ein neuer oder externer Skill genutzt wird.
Kurze, belastbare Antworten zu Skill-Sicherheit in Claude Code.
Ja. Ein Claude Skill besteht aus einer SKILL.md und kann zusätzlich ausführbare Scripts mitbringen. Beide Bestandteile können bösartig sein: die Markdown-Datei über Prompt Injection, die Scripts über klassischen Schadcode. Beim Kopieren in das Skills-Verzeichnis gibt es keine Sandbox, keine Signaturprüfung und kein Store-Review.
Prompt Injection ist ein Angriff auf den Agenten statt auf das Betriebssystem. Der Skill-Text enthält Anweisungen, die den Agenten umsteuern: Aufforderungen wie „ignore previous instructions", Rollenzuweisungen oder gefälschte System-Tags wie <system-reminder>. Der Angriff braucht keinen ausführbaren Code, weil der Skill-Text bei jedem Prompt mitgelesen wird.
In vier Schritten: Herkunft klären, automatischen Muster-Scan laufen lassen, den Prompt-Text selbst lesen, und prüfen ob die beanspruchten Berechtigungen zum Zweck des Skills passen.
Der Skill-Auditor automatisiert den zweiten Schritt über acht Befundkategorien und führt durch die übrigen drei.
Nein. Er ist eine pragmatische Erstprüfung. Er erkennt bekannte Muster, aber keine neuartigen Verschleierungstechniken und keine reinen Prosa-Angriffe ohne passende Keywords. Ein sauberer Scan bedeutet „keine offensichtlichen Auffälligkeiten", nicht „geprüft und sicher".
Nein. Der automatische Scanner ist ein Python-Script und benötigt Dateisystem-Zugriff, deshalb läuft er nur in Claude Code beziehungsweise in Coding-Agenten mit Shell-Zugriff. Die manuellen Prüfphasen aus der SKILL.md lassen sich grundsätzlich auch ohne Script anwenden.
Nichts. Der Skill-Auditor steht unter MIT-Lizenz auf GitHub und hat außer Python 3 keine Abhängigkeiten. Kein npm-Paket, kein Build-Schritt, keine Hooks.
Ein Sicherheitswerkzeug, das seine Grenzen verschweigt, ist selbst ein Risiko. Deshalb hier statt im Kleingedruckten.
Ein sauberer Scan ist kein Freibrief. Er ist der Anfang der Prüfung.