Le Top 10 de l’OWASP vise à sensibiliser à ces vulnérabilités courantes et à fournir aux organisations un point de départ pour mettre en œuvre des mesures de sécurité. La dernière version de l’OWASP Top 10 a été publiée en 2021, reflétant les nouveaux développements dans le paysage de la sécurité Web. Dans cet article, nous donnerons un aperçu de chacun des owasp top 10 des vulnérabilités 2022 et expliquer comment les organisations peuvent y répondre.
-
Contrôle d’accès cassé
Le contrôle d’accès brisé fait référence à des failles dans la manière dont les utilisateurs sont autorisés et authentifiés pour accéder à certaines données ou fonctionnalités. Par exemple, une application peut permettre à des utilisateurs non autorisés d’afficher des fichiers sensibles, de modifier des données ou d’utiliser les privilèges d’administrateur. Les vulnérabilités du contrôle d’accès surviennent souvent lorsque les contrôles d’accès basés sur les rôles ne sont pas correctement mis en œuvre. Certaines faiblesses courantes du contrôle d’accès incluent :
– Informations d’identification codées en dur/faibles : comptes d’administrateur avec des noms d’utilisateur et des mots de passe prédéfinis.
– Vérifications d’autorisation interrompues : une autorisation incorrecte signifie que tout utilisateur peut accéder à des fonctionnalités restreintes.
– Références d’objet directes non sécurisées : les utilisateurs peuvent modifier les clés ou les identifiants pour accéder à des informations restreintes.
Pour atténuer les risques de violation du contrôle d’accès, les organisations doivent :
– Mettez en œuvre un contrôle d’accès basé sur les rôles, en garantissant que les utilisateurs disposent uniquement des privilèges nécessaires.
– Désinfectez les entrées de l’utilisateur pour arrêter les attaques de manipulation d’identifiant.
– Appliquez des pratiques d’authentification strictes telles que l’authentification multifacteur pour les comptes sensibles.
– Auditez régulièrement les contrôles d’accès pour détecter les erreurs de configuration ou contourner les failles.
Échecs cryptographiques
Les échecs cryptographiques font référence à des erreurs dans la manière dont les applications chiffrent et sécurisent les données. Les exemples incluent l’utilisation inappropriée d’algorithmes faibles, la mauvaise gestion des clés de chiffrement, le manque de chiffrement des données sensibles, etc. Une cryptographie défectueuse expose les données des utilisateurs et permet de nombreuses menaces, notamment la divulgation d’informations, la falsification, l’usurpation d’identité et l’élévation de privilèges. Les recommandations pour éviter les failles cryptographiques incluent :
– Utilisez uniquement les algorithmes cryptographiques actuels les mieux adaptés à chaque objectif. Évitez les algorithmes faibles comme les hachages MD5.
– Générez, distribuez et stockez correctement les clés, les mots de passe et les certificats.
– Mettre en œuvre les procédures de gestion des clés.
– Chiffrez les données sensibles en transit et lors de leur stockage. Ne stockez jamais les mots de passe en texte brut.
– Utiliser des bibliothèques pour une cryptographie simplifiée.
– Validez toutes les données d’entrée pour détecter les attaques de falsification.
Injection
Les failles d’injection permettent à des acteurs malveillants d’insérer du code et des commandes arbitraires dans une application pour altérer son fonctionnement. Ceux-ci résultent souvent d’une mauvaise désinfection des entrées. Certains risques courants liés aux injections incluent l’injection SQL, l’injection de commandes, les scripts intersite (XXS) et l’injection LDAP. Empêcher l’injection nécessite de valider, de nettoyer et d’échapper aux entrées de données non fiables. D’autres conseils de prévention incluent :
– Mettre en œuvre une politique forte de validation des entrées pour détecter et rejeter les données invalides.
– Appliquer les principes du moindre privilège, limitant ce que chaque composant peut faire.
– Nettoyer les caractères spéciaux et éviter d’interpréter la saisie comme du code.
– Activation de la protection XSS dans les navigateurs modernes.
– Adoption de cadres de modèles qui échappent automatiquement aux sorties.
Conception non sécurisée
Une conception non sécurisée fait référence à des failles au niveau de la conception qui compromettent la sécurité d’une application. Les exemples incluent une gestion inappropriée des erreurs/exceptions qui entraîne des fuites de traces de pile et d’autres données sensibles. D’autres problèmes tels que le 2FA basé sur SMS ne sont pas sécurisés de par leur conception. Les recommandations comprennent :
– Utilisez des modèles de conception sécurisés et évitez les anti-modèles. Adhérer aux meilleures pratiques.
– Ne divulguez pas de données sensibles dans les messages d’erreur. Définissez des pages d’erreur personnalisées.
– Créez une liste de contrôle de codage sécurisée que les développeurs doivent suivre.
– Adoptez des méthodes d’authentification multifacteur (MFA) plus sûres telles que les applications TOTP plutôt que les SMS.
– Considérez la sécurité dès le début du développement, et non après coup.
– Concevoir une confiance minimale dans le système, avec des privilèges et une conteneurisation réduits.
Mauvaise configuration de la sécurité
L’une des vulnérabilités les plus répandues, une mauvaise configuration de sécurité fait référence à des configurations inappropriées de serveur et de logiciel qui créent des failles de sécurité. Les exemples incluent l’utilisation de paramètres par défaut tels que des mots de passe faibles et l’exposition de ports inutiles. Pour corriger les vulnérabilités liées aux erreurs de configuration :
– Renforcez les systèmes en modifiant les informations d’identification et les paramètres par défaut.
– Suivez le principe du moindre fonctionnalité pour activer uniquement les fonctionnalités, ports, pages, etc. nécessaires.
– Corrigez régulièrement les systèmes et mettez à jour les versions logicielles les plus récentes.
– Utilisez des cadres de configuration de sécurité pour appliquer des restrictions.
– Effectuer des audits et utiliser des outils d’automatisation pour détecter les systèmes mal configurés.
– Assurez-vous que les messages d’erreur ne révèlent pas les détails du système.
– Créez un inventaire des actifs et des configurations pour mieux suivre l’état de sécurité.
Composants vulnérables et obsolètes
Ce risque fait référence à l’utilisation de bibliothèques, de frameworks, de logiciels et de composants obsolètes présentant des vulnérabilités connues. L’utilisation d’une technologie non prise en charge expose les applications à de nombreuses faiblesses publiquement connues. Pour éviter les vulnérabilités liées aux composants obsolètes :
– Maintenez un inventaire de tous les composants et versions utilisés dans votre pile.
– Surveillez les systèmes et les composants pour les mises à jour, les annonces de versions obsolètes et les vulnérabilités nouvellement découvertes.
– Corrigez rapidement les composants obsolètes et vulnérables – mettez en place une procédure de mise à jour.
– Abonnez-vous aux listes de diffusion, blogs et autres sources divulguant des vulnérabilités.
– Diversifier les fournisseurs pour éviter une dépendance excessive à l’égard d’un seul fournisseur.
– Effectuez régulièrement des analyses de vulnérabilité et des audits pour détecter les composants à risque.
Échecs d’identification et d’authentification
Des contrôles d’identification et d’authentification défectueux des utilisateurs permettent aux attaquants de compromettre les mots de passe, les clés ou les jetons de session pour usurper l’identité d’autres utilisateurs de manière temporaire ou permanente. Certaines des faiblesses courantes incluent :
– Autoriser les attaques automatisées telles que le credential stuffing, les attaques par force brute et l’utilisation d’informations d’identification violées.
– Fuite de mots de passe et d’identifiants de session dans les journaux du serveur.
– Échec de l’invalidation des identifiants de session après la déconnexion.
– Ne pas mettre en œuvre l’authentification multifacteur pour les fonctions critiques.
– S’appuyer uniquement sur des mots de passe et ne pas utiliser de CAPTCHA, d’empreintes digitales de l’appareil, etc.
Les organisations peuvent y remédier via :
– Application des règles de complexité des mots de passe et de verrouillage des comptes pour dissuader les attaques.
– Maintenir des composants séparés d’authentification, de gestion de session et de vérification.
– Invalidation des identifiants de session lors de la déconnexion.
– Exiger une authentification multifacteur pour les comptes, les VPN, les serveurs, etc.
– Bloquer les vecteurs d’attaque d’authentification courants tels que le credential stuffing.
– Consignation des échecs d’authentification et alerte des administrateurs.
Défaillances d’intégrité des logiciels et des données
Sans contrôles d’intégrité appropriés, les données et les logiciels peuvent être manipulés ou compromis. Les attaquants peuvent ajouter des portes dérobées, insérer des virus ou modifier la logique métier. Les erreurs courantes permettant cela incluent :
– Absence de contrôles d’intégrité permettant l’installation de logiciels falsifiés.
– Absence de listes blanches vérifiables pour les logiciels autorisés.
– Mécanismes de validation des données manquants.
– Origines des données et mesures d’intégrité non vérifiées.
Les organisations doivent résoudre les problèmes d’intégrité en :
– Installer des logiciels uniquement à partir de sources fiables, après avoir vérifié les signatures et les hachages.
– Établir des listes blanches de logiciels et utiliser des sommes de contrôle pour détecter les falsifications.
– Activation de la signature de code pour garantir l’intégrité des correctifs, des plugins et des scripts.
– Valider minutieusement toutes les données entrantes avant leur consommation.
– Maintenir des sauvegardes de données pour comparaison en cas de falsification.
– Journalisation intensive pour établir une chaîne de confiance pour les logiciels et les flux de données.
Échecs de journalisation et de surveillance de la sécurité
Une journalisation inadéquate et le manque de surveillance en temps réel permettent aux attaquants de pénétrer dans les systèmes et de maintenir leur persistance sans être détectés. Certaines lacunes courantes comprennent :
– Ne pas enregistrer les événements clés tels que les connexions, les modifications de compte et les échecs d’accès.
– Mauvais stockage, rotation et conservation des journaux entraînant la perte d’événements critiques.
– Défaut de surveiller et d’analyser les journaux pour découvrir les anomalies et les menaces.
– Absence de pistes d’audit enregistrant les transactions clés.
– Manque d’alarmes et de notifications lorsque des attaques se produisent.
Les organisations doivent assurer une journalisation et une surveillance robustes en :
– Journalisation approfondie – toutes les tentatives de connexion, les modifications de compte, l’accès aux données, etc.
– Centraliser les données des journaux et garantir l’adéquation du stockage des journaux.
– Mise en œuvre de pistes d’audit pour les transactions importantes telles que les achats et les transferts de fonds.
– Configuration d’alertes de journal pour les activités suspectes telles que les pics soudains de trafic, les heures de pointe d’utilisation, etc.
– Corréler les journaux avec d’autres données pour obtenir un contexte complet derrière les événements.
– Demander au personnel de surveillance d’inspecter activement les systèmes en temps réel.
Conclusion
L’évolution du paysage des menaces signifie que les organisations doivent rester informées des risques tels que owasp mobile top 10 sécuriser leurs systèmes et leurs données. Bien que les vulnérabilités semblent complexes, le respect des meilleures pratiques telles que les contrôles d’accès appropriés, la validation des entrées, l’application de correctifs, le chiffrement, la surveillance et l’authentification peut améliorer considérablement la résilience. Les organisations doivent se soumettre régulièrement à des audits et à des évaluations des risques pour détecter les défauts. En comprenant et en abordant le Top 10 de l’OWASP, les entreprises peuvent mettre en œuvre des défenses robustes contre les vulnérabilités des applications Web les plus courantes aujourd’hui.