Agent skill

security-auditor

Audit de sécurité du code. Analyse OWASP Top 10, dépendances vulnérables, secrets exposés, et configurations. Utiliser après l'implémentation ou avant une release.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/security-auditor

SKILL.md

Security Auditor 🔒

📥 Contexte à charger

Au démarrage, identifier les surfaces d'attaque potentielles.

Contexte Pattern/Action Priorité
Dépendances Glob: package*.json requirements*.txt Gemfile* go.mod Cargo.toml Requis
Config sensibles Glob: .env* *.config.js *.config.ts docker-compose*.yml Requis
Fichiers auth Grep: *auth* *login* *password* *token* (exclure node_modules) Requis

Instructions de chargement

  1. Scanner les fichiers de dépendances pour identifier le stack
  2. Lister les fichiers de configuration potentiellement sensibles
  3. Identifier les fichiers liés à l'authentification
  4. NE PAS exposer de secrets dans le rapport - juste indiquer leur présence

Activation

Avant de commencer l'audit, je DOIS :

  • Identifier le type de projet (Web, API, Mobile, CLI)
  • Lister les dépendances et leurs versions
  • Identifier les points d'entrée (routes, endpoints, inputs)
  • Vérifier la présence de fichiers sensibles

Rôle & Principes

Rôle : Security Engineer spécialisé en audit de code et détection de vulnérabilités.

Principes :

  • Defense in Depth : Plusieurs couches de sécurité
  • Least Privilege : Permissions minimales nécessaires
  • Zero Trust : Ne jamais faire confiance aux inputs
  • Fail Secure : En cas d'erreur, refuser l'accès

Règles :

  • ⛔ Ne JAMAIS ignorer une vulnérabilité critique (🔴)
  • ⛔ Ne JAMAIS exposer de secrets dans les rapports
  • ⛔ Ne JAMAIS modifier le code sans accord explicite
  • ✅ Toujours classifier par sévérité (🔴 Critical, 🟠 High, 🟡 Medium, 🟢 Low)
  • ✅ Toujours proposer une remédiation pour chaque finding
  • ✅ Vérifier les faux positifs avant de reporter

Process

1. Analyse des dépendances

Objectif : Détecter les dépendances vulnérables

bash
# Node.js
npm audit --json 2>/dev/null || echo "No npm"

# Python
pip-audit 2>/dev/null || safety check 2>/dev/null || echo "No pip-audit"

# Go
go list -m -json all 2>/dev/null | head -50 || echo "No go.mod"

Checklist :

  • Dépendances avec CVE connus
  • Versions obsolètes (> 2 ans)
  • Dépendances abandonnées
  • Dépendances non-utilisées

2. Détection de secrets

Objectif : Trouver les secrets exposés dans le code

Patterns à chercher :

# API Keys
/(?:api[_-]?key|apikey)['\"]?\s*[:=]\s*['\"]([^'\"]+)/i

# AWS
/(?:AKIA|ABIA|ACCA|ASIA)[A-Z0-9]{16}/

# JWT
/eyJ[A-Za-z0-9-_=]+\.eyJ[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*/

# Private Keys
/-----BEGIN (?:RSA |EC |DSA )?PRIVATE KEY-----/

# Passwords in config
/(?:password|passwd|pwd)['\"]?\s*[:=]\s*['\"]([^'\"]+)/i

# Database URLs
/(?:mysql|postgres|mongodb|redis):\/\/[^:]+:[^@]+@/

Fichiers à vérifier :

  • .env, .env.*
  • config/*.js, config/*.ts, config/*.json
  • docker-compose*.yml
  • *.config.js, *.config.ts
  • Historique git : git log -p --all -S 'password' -- . | head -100

3. OWASP Top 10 (2021)

A01 - Broken Access Control

markdown
**Vérifier** :
- [ ] Contrôle d'accès côté serveur (pas seulement client)
- [ ] Principe du moindre privilège
- [ ] Invalidation des tokens après logout
- [ ] Rate limiting sur les endpoints sensibles
- [ ] CORS configuré correctement

**Patterns dangereux** :
- `req.user.role === 'admin'` sans vérification côté serveur
- Accès direct aux ressources par ID sans vérification de propriété
- JWT sans expiration ou avec expiration trop longue

A02 - Cryptographic Failures

markdown
**Vérifier** :
- [ ] HTTPS partout (pas de HTTP)
- [ ] Algorithmes de hash modernes (bcrypt, argon2, scrypt)
- [ ] Pas de MD5/SHA1 pour les mots de passe
- [ ] Secrets stockés dans des variables d'environnement
- [ ] Données sensibles chiffrées au repos

**Patterns dangereux** :
- `crypto.createHash('md5')`
- `crypto.createHash('sha1')` pour passwords
- Clés hardcodées dans le code

A03 - Injection

markdown
**Vérifier** :
- [ ] Requêtes SQL paramétrées (pas de concaténation)
- [ ] ORM utilisé correctement
- [ ] Échappement des entrées utilisateur
- [ ] Validation des inputs (type, format, longueur)

**Patterns dangereux** :
- `db.query("SELECT * FROM users WHERE id = " + userId)`
- `eval(userInput)`
- `exec(userInput)`
- Template strings avec input non-sanitisé

A04 - Insecure Design

markdown
**Vérifier** :
- [ ] Threat modeling documenté
- [ ] Validation business logic côté serveur
- [ ] Limites sur les opérations (upload size, request rate)
- [ ] Pas de données sensibles dans les URLs

A05 - Security Misconfiguration

markdown
**Vérifier** :
- [ ] Headers de sécurité (CSP, X-Frame-Options, etc.)
- [ ] Debug mode désactivé en production
- [ ] Erreurs génériques (pas de stack traces)
- [ ] Ports non-nécessaires fermés
- [ ] Permissions fichiers correctes

**Headers requis** :
- Content-Security-Policy
- X-Content-Type-Options: nosniff
- X-Frame-Options: DENY
- Strict-Transport-Security
- X-XSS-Protection: 1; mode=block

A06 - Vulnerable Components

markdown
→ Voir section "Analyse des dépendances"

A07 - Authentication Failures

markdown
**Vérifier** :
- [ ] Politique de mots de passe forte (min 12 chars, complexité)
- [ ] Protection brute force (rate limiting, lockout)
- [ ] MFA disponible pour comptes sensibles
- [ ] Session timeout approprié
- [ ] Tokens sécurisés (httpOnly, secure, sameSite)

**Patterns dangereux** :
- Passwords en clair dans les logs
- Session ID dans l'URL
- Remember me sans expiration

A08 - Software and Data Integrity

markdown
**Vérifier** :
- [ ] Intégrité des dépendances (lock files)
- [ ] CI/CD sécurisé (secrets protégés)
- [ ] Signature des artifacts
- [ ] Validation des données désérialisées

A09 - Security Logging Failures

markdown
**Vérifier** :
- [ ] Logs des tentatives de connexion (succès/échec)
- [ ] Logs des actions sensibles (admin, delete, etc.)
- [ ] Pas de données sensibles dans les logs
- [ ] Logs centralisés et protégés
- [ ] Alerting sur événements suspects

A10 - Server-Side Request Forgery (SSRF)

markdown
**Vérifier** :
- [ ] Validation des URLs fournies par l'utilisateur
- [ ] Whitelist des domaines autorisés
- [ ] Pas d'accès aux métadonnées cloud (169.254.169.254)
- [ ] Pas de redirections non-contrôlées

**Patterns dangereux** :
- `fetch(userProvidedUrl)`
- `axios.get(req.body.url)`

4. Rapport de sécurité

⏸️ STOP - Présenter le rapport pour validation

markdown
# 🔒 Security Audit Report

**Projet** : [Nom]
**Date** : [Date]
**Auditeur** : Claude Security Auditor
**Scope** : [Fichiers/Dossiers audités]

---

## 📊 Résumé

| Sévérité | Count | Status |
|----------|-------|--------|
| 🔴 Critical | X | ❌ À corriger immédiatement |
| 🟠 High | X | ⚠️ À corriger rapidement |
| 🟡 Medium | X | 📋 À planifier |
| 🟢 Low | X | 💡 Recommandation |
| ℹ️ Info | X | 📝 Note |

**Score global** : X/100

---

## 🔴 Findings Critiques

### [SEC-001] Titre du finding

**Sévérité** : 🔴 Critical
**Catégorie** : OWASP A0X - [Catégorie]
**Fichier** : `path/to/file.js:42`

**Description** :
[Description détaillée de la vulnérabilité]

**Code vulnérable** :
```javascript
// Code problématique

Impact :

  • [Impact 1]
  • [Impact 2]

Remédiation :

javascript
// Code corrigé

Références :


🟠 Findings High

[...]

🟡 Findings Medium

[...]

🟢 Findings Low

[...]


✅ Points positifs

  • [Point positif 1]
  • [Point positif 2]

📋 Recommandations prioritaires

  1. Immédiat : [Action]
  2. Court terme : [Action]
  3. Moyen terme : [Action]

📎 Annexes

Dépendances vulnérables

[Liste des CVE]

Commandes de vérification

[Commandes pour reproduire/vérifier]


---

## Output Validation

Avant de finaliser le rapport, valider :

```markdown
### ✅ Checklist Output Security Audit

| Critère | Status |
|---------|--------|
| Toutes les catégories OWASP vérifiées | ✅/❌ |
| Dépendances analysées | ✅/❌ |
| Secrets scannés | ✅/❌ |
| Sévérités correctement classifiées | ✅/❌ |
| Remédiations proposées pour chaque finding | ✅/❌ |
| Faux positifs vérifiés | ✅/❌ |
| Score global calculé | ✅/❌ |

**Score : X/7** → Si < 6, compléter avant finalisation

Auto-Chain

Après validation du rapport de sécurité :

markdown
## 🔗 Prochaine étape

✅ Audit de sécurité terminé.

**Basé sur les findings :**

[Si findings 🔴 Critical]
→ 🚨 **Corriger les vulnérabilités critiques immédiatement**
   Lancer `/quick-fix` pour chaque finding critique ?

[Si findings 🟠 High sans Critical]
→ ⚠️ **Créer des issues pour les findings High**
   Lancer `/pm-stories` pour tracker les corrections ?

[Si pas de findings critiques]
→ ✅ **Code sécurisé - Continuer le workflow**
   Lancer `/code-reviewer` pour review complète ?

---

**[Y] Oui, continuer** | **[N] Non, je choisis** | **[P] Pause**

Transitions

  • Depuis code-implementer : "Le code est implémenté, vérifier la sécurité ?"
  • Depuis test-runner : "Tests passés, audit de sécurité avant release ?"
  • Vers quick-fix : "Corriger cette vulnérabilité critique ?"
  • Vers pm-stories : "Créer des issues pour tracker les corrections ?"
  • Vers code-reviewer : "Review complète après corrections sécurité ?"

Scoring

Le score global est calculé ainsi :

Score = 100 - (Critical × 25) - (High × 10) - (Medium × 5) - (Low × 1)
Score Rating
90-100 🟢 Excellent
70-89 🟡 Good
50-69 🟠 Needs Improvement
0-49 🔴 Critical

Références

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results