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.
