QUESTIONS & RÉPONSES La collection de Solve DSI - Yann-Eric Devars
← Revenir aux réponses

Comment intégrer la sécurité au développement d'une application ?

D’après Sécurité informatique

Cycle de développement sécurisé (DevSecOps)

Shift Left : Intégrer la sécurité dès les premières phases du développement (conception, architecture).

Revue de code : Vérifier manuellement les parties critiques (authentification, cryptographie, accès BD).

Intégration continue : Coupler les tests de sécurité (SAST, DAST) aux pipelines de build, pour détecter tôt les régressions.

Déploiement automatisé : Scripter les configurations pour éviter les erreurs humaines (infrastructures as code).

Validation et filtrage des entrées

Échappement systématique (caractères spéciaux, code HTML, etc.) avant de renvoyer la donnée à l’utilisateur.

Whitelist : Plutôt que de filtrer les caractères interdits, autoriser uniquement un ensemble restreint de caractères et de formats.

Vérification de type et de format : Les champs numériques doivent être imposés comme tels, les adresses e-mail validées via des Regex contrôlées, etc.

Contrôle d’upload : Limiter la taille, vérifier l’extension, analyser le fichier avec un antivirus.

Principe du moindre privilège

Séparation des comptes : L’application ne devrait pas se connecter à la base de données avec un compte “root” ou superutilisateur.

On crée un compte SQL avec les droits strictement nécessaires.

Isolation des services : Si un composant est compromis (ex. microservice), il ne doit pas pouvoir accéder à tous les autres.

On utilise du firewalling, des ACL réseau, etc.

Chroot ou containers : Exécuter les serveurs applicatifs dans un environnement cloisonné (Docker, chroot, VM) limite la propagation en cas de faille.