Audit de sécurité OWASP

VérifiéPrudence

Effectuez un audit de sécurité basé sur l'OWASP Top 10. Utilisez-le pour vérifier la sécurité, rechercher des vulnérabilités ou avant un déploiement en production.

Spar Skills Guide Bot
SecuriteIntermédiaire
26/07/2026
Claude CodeCursorCodex
#owasp#security-audit#vulnerability-scanning#dependency-audit#secure-coding

Recommandé pour

Synthèse automatique

Réalise un audit de sécurité OWASP Top 10 sur un périmètre de code donné, en combinant scans automatisés, motifs grep et checklist, puis produit un rapport priorisé par sévérité avec remédiations.

Points forts

  • Couvre explicitement les 10 catégories OWASP avec une checklist cochable pour chacune
  • Combine plusieurs sources : npm audit, secretlint, ESLint plugin security et motifs grep ciblés (secrets, SQLi, XSS, eval)
  • Livrable structuré : tableau fichier:ligne, niveau de risque global et plan d'action à court/moyen terme
  • S'exécute dans un contexte isolé avec un modèle dédié, ce qui convient à une passe d'audit longue

Limites

  • Fortement orienté stack JavaScript/TypeScript et npm (npm audit, ESLint, globs *.ts), peu transposable à d'autres écosystèmes
  • Analyse statique uniquement : aucun test dynamique, fuzzing ou tentative d'exploitation réelle
  • Les motifs grep sont heuristiques et génèrent des faux positifs qu'il faut trier manuellement
  • Aucun mapping de conformité (PCI-DSS, RGPD, ISO 27001) n'est fourni
Quand l'utiliser

À utiliser avant une mise en production ou lorsqu'on veut vérifier la posture de sécurité d'un module ou d'un service JS/TS.

Quand l'éviter

À éviter sur une stack non Node, ou si l'on cherche un test d'intrusion dynamique plutôt qu'une revue statique du code.

Analyse de sécurité

Prudence
Score qualité85/100

The skill performs legitimate security auditing using Bash and network-capable tools. No destructive, obfuscated, or exfiltrating instructions are present. The main risk is incidental exposure of secrets or dependency on npx package resolution, so caution is appropriate.

Points d'attention
  • •Uses Bash to execute npm audit, npx secretlint, npx eslint, and grep. These run package managers and network fetches, which could have side effects if the project contains malicious scripts or if npx downloads compromised packages.
  • •The secret-search grep patterns may print sensitive values to logs or conversation output, though the skill itself does not exfiltrate them.
Comment cette analyse est faite

Exemples

Pre-deployment audit
Audite le module auth en OWASP avant qu'on déploie en production, et donne-moi les remédiations par priorité.
Full service scan
Run a full OWASP security audit of the payments service: dependencies, secrets, injection and access control.
Focused secret/XSS sweep
Check src/ for hardcoded secrets, innerHTML/dangerouslySetInnerHTML usage and eval calls, and report file:line with fixes.

name: qa-security description: Perform a security audit based on OWASP. Use when the user wants to verify security, look for vulnerabilities, or before a production deployment. allowed-tools:

  • Read
  • Grep
  • Glob
  • Bash context: fork model: opus argument-hint: "[scope-or-module]"

Security Audit

Objective

Identify security vulnerabilities based on OWASP Top 10.

Instructions

1. Automated scan

# npm dependency audit
npm audit --audit-level=moderate

# Secret search
npx secretlint "**/*"

# Static security analysis
npx eslint --plugin security src/

2. OWASP Top 10 Checklist

A01 - Broken Access Control

  • [ ] Authorization checks on every endpoint
  • [ ] No IDOR (direct access via predictable IDs)
  • [ ] CORS correctly configured
  • [ ] Principle of least privilege

A02 - Cryptographic Failures

  • [ ] Sensitive data encrypted (at rest + in transit)
  • [ ] No secrets in code
  • [ ] Secure hash algorithms (bcrypt, argon2)
  • [ ] TLS/HTTPS enforced

A03 - Injection

  • [ ] SQL: Parameterized queries / ORM
  • [ ] XSS: HTML output escaping
  • [ ] Command injection: No shell with user input
  • [ ] NoSQL: Query validation

A04 - Insecure Design

  • [ ] Server-side validation (not just client)
  • [ ] Rate limiting on sensitive endpoints
  • [ ] Environment separation

A05 - Security Misconfiguration

  • [ ] Security headers (CSP, X-Frame-Options)
  • [ ] No stack traces in production
  • [ ] Correct file permissions

A06 - Vulnerable Components

  • [ ] npm audit with no critical vulnerabilities
  • [ ] Dependencies maintained and up to date

A07 - Authentication Failures

  • [ ] Passwords hashed correctly
  • [ ] Protection against brute force
  • [ ] Secure sessions (httpOnly, secure, sameSite)

A08 - Data Integrity Failures

  • [ ] Validation of incoming data
  • [ ] Secure deserialization

A09 - Logging Failures

  • [ ] Logs of security events
  • [ ] No sensitive data in logs

A10 - SSRF

  • [ ] Validation of user URLs
  • [ ] Whitelist of allowed domains

3. Search patterns

# Potential secrets
grep -rn "password\s*=" --include="*.ts"
grep -rn "api_key\s*=" --include="*.ts"
grep -rn "secret\s*=" --include="*.ts"

# Potential SQL Injection
grep -rn "query.*\$\{" --include="*.ts"
grep -rn "execute.*\+" --include="*.ts"

# Potential XSS
grep -rn "innerHTML" --include="*.tsx"
grep -rn "dangerouslySetInnerHTML" --include="*.tsx"

# Dangerous eval
grep -rn "eval(" --include="*.ts"
grep -rn "new Function(" --include="*.ts"

4. Recommended security headers

// Express with Helmet
app.use(helmet({
  contentSecurityPolicy: {
    directives: {
      defaultSrc: ["'self'"],
      scriptSrc: ["'self'"],
      styleSrc: ["'self'", "'unsafe-inline'"],
      imgSrc: ["'self'", "data:", "https:"],
    }
  },
  hsts: { maxAge: 31536000, includeSubDomains: true }
}));

Expected output

## Security Report

### Summary
- **Overall risk level**: [Critical/High/Medium/Low]
- **Vulnerabilities found**: X
- **Vulnerable dependencies**: Y

### Critical vulnerabilities
| Severity | Category | File:Line | Description | Remediation |
|----------|----------|-----------|-------------|-------------|
| CRITICAL | A03 | auth.ts:45 | SQL injection | Parameterized query |

### Important vulnerabilities
[...]

### Priority recommendations
1. [Immediate action]
2. [Short term]
3. [Medium term]

### Dependencies to update
| Package | Version | Vulnerability | Severity |
|---------|---------|---------------|----------|
| lodash | 4.17.19 | Prototype pollution | High |

Rules

  • IMPORTANT: Check all 10 OWASP categories
  • IMPORTANT: Prioritize by severity
  • YOU MUST propose concrete remediations
  • NEVER ignore critical vulnerabilities

Think hard about every potential attack vector.

See also

Two community sources complement this skill:

  • agamm/claude-code-owasp (171★, last commit 2026-04-28) — covers OWASP Top 10:2025, ASVS 5.0, and 20 language-specific quirks. Independent author. Adoption is modest at the time of this audit; the value is in pointing to a faithful implementation of the canonical OWASP standard rather than in popularity.
  • semgrep official Claude plugin — Semgrep is an independent security company; their plugin integrates the static-analysis engine into Claude Code sessions for automated scanning.

When working on a security audit, install one or both alongside this skill. This skill captures the manual review workflow (when to invoke, what to escalate, blocking criteria); the OWASP skill captures the canonical attack catalogue with current 2025-2026 categories; the Semgrep plugin adds the automated scanner layer.

Install command and full list of validated vendor skills: docs/recipes/recommended-vendor-skills.md. Audit pilot trace: specs/marketplace-audit/qa-skills-pilot-2026-05-06.md.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/owasp-security-audit-ms1aw550/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/owasp-security-audit-ms1aw550' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/owasp-security-audit-ms1aw550/download' --output '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md.part' && mv '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md.part' '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md' && test -s '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa-security' && cp -R '.skill-downloads/owasp-security-audit-ms1aw550' '.claude/skills/qa-security'

Cursor
test -f '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md' && test -s '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/qa-security' && cp -R '.skill-downloads/owasp-security-audit-ms1aw550' '.cursor/skills/qa-security'

Codex
test -f '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md' && test -s '.skill-downloads/owasp-security-audit-ms1aw550/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/qa-security' && cp -R '.skill-downloads/owasp-security-audit-ms1aw550' '.agents/skills/qa-security'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/owasp-security-audit-ms1aw550'

openskills read 'owasp-security-audit-ms1aw550'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/owasp-security-audit-ms1aw550/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires