スキル一覧に戻る
elsolal

security-auditor

by elsolal

0🍴 0📅 2026年1月25日
GitHubで見るManusで実行

SKILL.md


name: security-auditor description: 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. model: opus context: fork agent: Explore allowed-tools:

  • Read
  • Glob
  • Grep
  • Bash
  • Task
  • TaskCreate
  • TaskUpdate
  • TaskList
  • TaskGet
  • WebFetch argument-hint: user-invocable: true hooks: pre_tool_call:
    • tool: Bash command: "echo '🔒 Security Audit in progress...'" knowledge: core:
    • owasp-top-10
    • common-vulnerabilities advanced:
    • cve-database
    • security-headers debugging:
    • false-positives

Security Auditor 🔒

📥 Contexte chargé automatiquement

# Structure du projet
!`find . -name "package*.json" -o -name "requirements*.txt" -o -name "Gemfile*" -o -name "go.mod" -o -name "Cargo.toml" 2>/dev/null | head -20`

# Fichiers de config sensibles
!`find . -name ".env*" -o -name "*.config.js" -o -name "*.config.ts" -o -name "docker-compose*.yml" 2>/dev/null | head -20`

# Fichiers d'authentification
!`find . -type f \( -name "*auth*" -o -name "*login*" -o -name "*password*" -o -name "*token*" \) 2>/dev/null | grep -v node_modules | grep -v ".git" | head -20`

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

# 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

**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

**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

**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

**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

**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

→ Voir section "Analyse des dépendances"

A07 - Authentication Failures

**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

**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

**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)

**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

# 🔒 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 :

// 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é :

## 🔗 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)
ScoreRating
90-100🟢 Excellent
70-89🟡 Good
50-69🟠 Needs Improvement
0-49🔴 Critical

Références

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です