← Retour au blog

Audit de sécurité avant mise en production : checklist pragmatique

4 min de lecture
auditproduction

Avant une mise en production, la question n’est pas “sommes-nous parfaits”, mais “quels risques acceptons-nous et lesquels devons-nous réduire maintenant”. Un audit pré-prod sert à éviter les incidents prévisibles : comptes compromis, fuite de données, fraude, indisponibilité, ou erreurs d’autorisation.

Cette checklist est conçue pour une équipe produit/engineering. Elle est pragmatique : vous pouvez l’utiliser en interne, ou comme base de cadrage avec un prestataire.

Objectif et périmètre (avant de vérifier quoi que ce soit)

Clarifier l’objectif

Choisissez un objectif principal :

  • réduire les risques sur les parcours critiques (paiement, accès admin, exports)
  • valider une refonte (auth, API, IAM, multi-tenant)
  • sécuriser une intégration à risque (SSO, webhooks, PSP)
  • répondre à une exigence client/assureur (rapport, preuves, traçabilité)

Un audit “général” sans objectif produit souvent une liste longue et peu priorisée.

Définir le périmètre

Documentez :

  • URL(s) et domaines concernés
  • API (REST/GraphQL), webhooks, endpoints sensibles
  • back-office et rôles
  • composants tiers (paiement, anti-fraude, analytics, support)
  • environnements (staging, preprod, prod)

Si vous avez une application web, commencez par : https://obveron.com/pentest-application-web

Checklist : authentification et sessions

Identité et parcours d’accès

  • login : erreurs non verboses, protection brute force, rate limits
  • reset password : token à durée de vie courte, invalidation après usage
  • MFA : support, fallback, récupération sécurisée
  • SSO : validation des audiences, signatures, replay, gestion des logout

Sessions

  • cookies : HttpOnly, Secure, SameSite cohérent, scope de domaine minimal
  • rotation de session après login et après actions sensibles
  • invalidation : logout réel, révocation côté serveur si applicable
  • stockage de tokens : éviter localStorage pour les tokens longue durée

Contrôles de base

  • pas d’énumération d’utilisateurs via messages d’erreur
  • pas de secrets dans les URLs (logs, referrers)
  • pas de endpoints “debug” exposés

Checklist : autorisation (RBAC/ABAC) et multi-tenant

Les incidents sérieux viennent souvent d’un contrôle d’autorisation manquant, pas d’un bug “technique”.

  • règles d’accès documentées par rôle (qui peut lire, modifier, supprimer)
  • contrôle côté serveur systématique (pas seulement UI)
  • vérification des objets : accès à un projet/tenant uniquement si appartenance
  • actions sensibles : double validation (ex: suppression, virement, export)
  • endpoints admin séparés et protégés

Tests utiles :

  • changer des IDs dans l’URL/les payloads (IDOR)
  • rejouer une requête avec un rôle plus faible
  • modifier un paramètre de tenant/organisation

Checklist : API (REST/GraphQL) et validation des entrées

Validation

  • validation stricte (types, formats, tailles, listes d’énumération)
  • erreurs de validation non verboses côté client
  • normalisation cohérente (trim, case, unicode)

Auth et rate limiting

  • auth obligatoire sur endpoints sensibles
  • rate limiting par IP et par compte sur endpoints d’auth et de paiement
  • quotas et protections contre abus (exports, recherches, invitations)

GraphQL (si applicable)

  • introspection désactivée ou contrôlée selon contexte
  • limitation de profondeur/complexité
  • contrôle d’autorisation sur chaque resolver

Pour cadrer un audit API dédié : https://obveron.com/audit-api

Checklist : fichiers, uploads et contenu riche

  • types de fichiers autorisés et vérifiés côté serveur
  • antivirus ou sandboxing si besoin (selon risque)
  • stockage : URLs signées, TTL, pas d’objets publics par défaut
  • prévention XSS : sanitation des HTML, CSP, encodage côté template
  • previews/conversions : traitements isolés, timeouts, taille max

Checklist : configuration, headers et surface d’attaque

Headers de sécurité

  • CSP adaptée (pas de “unsafe-inline” par défaut, exceptions justifiées)
  • HSTS (inclure subdomains si maîtrisés)
  • X-Content-Type-Options, Referrer-Policy, Permissions-Policy

Exposition

  • ports et services exposés minimaux
  • admin panels non exposés, ou protégés (IP allowlist, SSO)
  • pages d’erreur sans stack traces

Dépendances et supply chain

  • dépendances à jour sur les packages critiques
  • suppression des packages inutiles
  • scans SCA intégrés au CI si possible

Checklist : secrets, logs et observabilité

Secrets

  • aucun secret en repo, ni en variables publiques
  • rotation possible (process documented)
  • moindre privilège (principle of least privilege)

Logs

  • pas de données sensibles (tokens, secrets, PII inutiles)
  • corrélation (request id)
  • accès aux logs restreint

Monitoring

  • alertes sur erreurs 5xx, pics de 401/403, latence, timeouts
  • détection d’abus (brute force, scraping, anomalies)

Checklist : incident response et retest

  • procédure d’incident courte (qui fait quoi, comment isoler)
  • plan de patch (délai de correction par sévérité)
  • retest cadré sur les failles corrigées

Checklists “décision” (pour les CTO/Head of Eng)

Avant go-live, vous voulez pouvoir répondre clairement :

  • quels sont les 3 risques majeurs et leur impact ?
  • quelles mesures réduisent le risque rapidement ?
  • qu’est-ce qui reste acceptable et pourquoi ?
  • comment validons-nous les corrections ?

Liens internes utiles

Conclusion

Une checklist pré-prod ne remplace pas un test d’intrusion, mais elle réduit fortement les risques “évidents” et accélère un audit externe. Si vous voulez cadrer un audit pré-prod et sécuriser les parcours critiques, vous pouvez réserver un échange : https://obveron.com/book-a-call

Besoin d’un avis rapide ?

Échange 15 minutes pour cadrer votre besoin et décider de la bonne approche.