Techniques de revue de code sécurisée
Repérez les problèmes de sécurité lors de la revue du code : flux de données, frontières de confiance, API dangereuses et contrôles manquants.
Techniques de revue de code sécurisée est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
Objectif de la revue de code sécurisée
La revue de code sécurisée permet d'identifier les vulnérabilités de sécurité dans le code source avant le déploiement. Contrairement à la revue fonctionnelle du code, elle se concentre sur les limites de confiance, les flux de données, les API dangereuses, les contrôles manquants et les erreurs de logique de sécurité, et non sur la justesse ou le style.
Revue manuelle ou automatisée
Les outils SAST automatisés (Semgrep, SonarQube, CodeQL) détectent rapidement les motifs connus, mais ne repèrent pas les défauts de logique métier, les vulnérabilités complexes impliquant plusieurs composants ni les problèmes dépendant du contexte. La revue manuelle détecte ce que l'automatisation ne voit pas. Les deux sont nécessaires.
Analyse des points d'entrée
Commencez la revue de sécurité en répertoriant tous les points d'entrée : points d'accès HTTP, gestionnaires de files de messages, téléversements de fichiers, tâches planifiées, rappels Web et arguments de CLI. Chaque point d'entrée qui accepte des données externes est un point d'injection potentiel qui exige un examen attentif.
Traçage des flux de données
Suivez les données contrôlées par l'utilisateur depuis leur point d'entrée jusqu'à leur utilisation finale dans l'application. Atteignent-elles une requête de base de données ? Une commande système ? Un modèle HTML ? Un appel d'API ? Suivez le flux de données et vérifiez chaque étape de transformation et d'assainissement.
Analyse des limites de confiance
Les décisions de sécurité sont prises aux limites de confiance, là où les données passent d'un contexte moins fiable (une requête HTTP) à un contexte plus fiable (une base de données, le système d'exploitation). Chaque franchissement d'une limite de confiance doit valider, assainir ou autoriser les données.
Liste de vérification des API dangereuses
Signalez les utilisations de : eval(), exec(), system(), shell_exec(), innerHTML, dangerouslySetInnerHTML, deserialize(), pickle.loads(), Runtime.exec(), ProcessBuilder, les analyseurs XML dont l'expansion des entités n'est pas désactivée et les primitives cryptographiques utilisées directement au lieu d'API de haut niveau.
Revue de l'authentification et de l'autorisation
Vérifiez les points suivants : chaque point d'accès sensible est-il protégé par une authentification ? L'autorisation est-elle vérifiée côté serveur pour chaque action ? Un utilisateur peut-il accéder aux données d'un autre utilisateur en modifiant un paramètre ID (IDOR) ? Les opérations sensibles sont-elles protégées contre les CSRF ?
Revue de la gestion des erreurs
Recherchez les blocs de gestion des exceptions qui ignorent silencieusement les exceptions. Vérifiez que les messages d'erreur affichés aux utilisateurs ne révèlent ni chemins internes, ni traces de pile, ni structure de la base de données. Vérifiez que les exceptions de sécurité (AuthenticationException) sont journalisées et non ignorées discrètement.
Revue de la cryptographie
Signalez les éléments suivants : l'utilisation de MD5 ou SHA-1 pour le hachage des mots de passe (utilisez bcrypt ou Argon2), les clés symétriques ou vecteurs d'initialisation codés en dur, le chiffrement en mode ECB (utilisez GCM ou CBC avec HMAC), les implémentations cryptographiques personnalisées et les générateurs de nombres aléatoires qui ne sont pas sûrs sur le plan cryptographique.
Revue des dépendances et de la configuration
Examinez package.json/pom.xml pour repérer les dépendances obsolètes. Vérifiez dans la configuration de l'application que le mode de débogage n'est pas activé en production, que les pages d'erreur ne sont pas trop détaillées, qu'aucun identifiant administrateur ne figure dans les fichiers de configuration et qu'aucun en-tête de sécurité ne manque (HSTS, CSP, X-Frame-Options).
Outils : Semgrep et CodeQL
Les règles Semgrep mettent en correspondance des motifs syntaxiques en tenant compte de leur sémantique. Écrivez des règles personnalisées pour les motifs propres à votre base de code. CodeQL considère le code comme des données : écrivez des requêtes sur l'AST pour trouver les flux de données des sources vers les puits à travers les fichiers et les appels de fonctions.
Vérification des connaissances
Qu'est-ce qu'une vulnérabilité IDOR et où la rechercheriez-vous lors d'une revue de code ?
Synthèse
Une revue de code sécurisée efficace combine la cartographie des points d'entrée, le traçage des flux de données, l'analyse des limites de confiance, la détection des API dangereuses et les outils SAST automatisés. Elle détecte les problèmes de sécurité qui échappent à la revue fonctionnelle, en particulier les défauts de logique métier et les lacunes subtiles dans l'autorisation.
Questions Fréquemment Posées
La leçon « Techniques de revue de code sécurisée » est-elle gratuite ?
Oui — le texte complet de « Techniques de revue de code sécurisée » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Techniques de revue de code sécurisée » ?
Repérez les problèmes de sécurité lors de la revue du code : flux de données, frontières de confiance, API dangereuses et contrôles manquants. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Techniques de revue de code sécurisée » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Validation des entrées et encodage des sorties
- Gestion sécurisée des dépendances
- OWASP ASVS : norme de vérification de la sécurité des applications
- Techniques de revue de code sécurisée