L’énorme croissance des déploiements d’applications Web s’est accompagnée de préoccupations en matière de sécurité. La sécurité des applications Web doit être prise en compte à chaque étape du cycle de vie du développement logiciel (SDLC) et même après le déploiement d’une application dans l’environnement de production. Voici dix conseils pour améliorer la sécurité de vos applications Web.
Tous les trois ans, l’Open Web Application Security Project (OWASP) publie son rapport sur les 10 principales vulnérabilités des applications Web. Les organismes sont encouragés à soumettre des données au projet jusqu’au 20 juillet 2016. L’objectif de ce projet est de sensibiliser et de vous encourager à améliorer la sécurité des applications Web au sein de votre SDLC.
Voici dix conseils pour améliorer la sécurité de vos applications Web.
Injection
Les failles d’injection comme SQL ou LDAP sont une forme courante de faille de sécurité dans la sécurité des applications Web. Ce type d’attaque tente de tromper la validation des entrées pour qu’elle divulgue les données ou exécute une commande du pirate sans l’autorisation de l’utilisateur.
Pour prévenir ce type d’attaque :
- Utiliser une API paramétrée
- Exécutez l’application avec un minimum de privilèges
- Liste blanche n’autorise que les caractères, mais nécessite l’API paramétrée et l’application fonctionnant avec des privilèges minimaux
- Désinfectez vos intrants. Utilisez les paramètres SQL avec les autorisations appropriées configurées dans le serveur SQL pour empêcher les entrées dans les champs d’entrée comme 100 ou 1=1.
Des tests peuvent être effectués pour valider les paramètres, les cookies, les en-têtes et le chemin. Les problèmes de sécurité doivent être détectés tôt dans le SDLC pour minimiser les coûts.
Authentification ou autorisation brisée
Permet à un pirate de contourner l’authentification ou l’autorisation de l’application Web. L’autorisation la plus couramment utilisée est le nom d’utilisateur et le mot de passe. Une fois que les utilisateurs entrent leurs identifiants, un identifiant de session leur est attribué.
Pour améliorer l’authentification ou l’autorisation :
- Chiffrer les connexions utilisées pour envoyer des mots de passe ou des identifiants de session
- Forcer les utilisateurs à utiliser des mots de passe forts
- Invalider l’identifiant de session lorsque les utilisateurs se déconnectent ou que la session expire
- Hachez ou chiffrez les noms d’utilisateur et les mots de passe stockés
Scripts intersites (XSS)
C’est la vulnérabilité la plus répandue que les pirates exploitent. Les utilisateurs sont exposés si leurs données ne sont pas correctement validées ou échappées. Il existe deux types de défauts XSS. Un type est celui où le code injecté est stocké sur un serveur. L’autre, une attaque réfléchie est livrée à l’utilisateur via un lien malveillant dans un courriel ou intégré à un site Web.
Adoptez une approche stratégique pour prévenir les XSS :
- Supposer que toutes les données provenant de sources externes sont malveillantes
- Assurez-vous que toutes les données sont correctement échappées en fonction du contexte HTML
- Utiliser une bibliothèque ou un cadre intégré
Références d’objets directs non sécurisées
Le pirate obtient des données du serveur en modifiant une valeur de paramètre qui fait référence à un objet pour accéder à un autre.
Pour atténuer cette vulnérabilité, vous devez utiliser un tableau associé pour mapper les objets. De plus, des vérifications doivent être en place pour valider que l’utilisateur est autorisé à avoir accès à un objet particulier.
Mauvaise configuration de la sécurité
Des erreurs de configuration de sécurité peuvent survenir sur le serveur ou l’application elle-même.
Les mesures préventives comprennent :
- Un processus solide à déployer dans les environnements de développement, d’assurance qualité, de staging et de production
- Mots de passe forts utilisés dans chaque environnement
- Un processus de déploiement de logiciels ou de correctifs
- Audits réguliers pour s’assurer des derniers correctifs ou détecter les erreurs de configuration
Exposition aux données sensibles
L’exposition des données sensibles est l’absence de chiffrement utilisé en transport ou au repos. Cela comprend les techniques faibles utilisées dans les algorithmes ou le hachage des mots de passe.
Faites ce qui suit :
- Chiffrez toutes les données sensibles pendant le transport et au repos
- Sécurisez l’information en transit via HTTPS
- Ne stockez pas de données sensibles
- Assurez-vous d’utiliser un chiffrement moderne
- Utilisez des algorithmes solides
- Désactiver la saisie semi-automatique sur les formulaires qui recueillent des données
- Désactiver la mise en cache sur les formulaires qui recueillent des données
Contrôle d’accès au niveau de fonction manquant
Un pirate informatique ayant accès au système peut apporter des modifications à une URL pour obtenir une fonctionnalité de privilège plus élevé.
Prévention :
- Refuser l’accès par défaut
- Ne vous fiez pas uniquement à l’interface utilisateur, assurez-vous qu’il y a une protection sur le back-end au niveau de la fonction
- Vérifiez chaque URL pour le contrôle d’accès
Falsification de demandes entre sites (CSRF)
Les pirates informatiques combineront la CSRF et l’ingénierie sociale pour amener les utilisateurs à effectuer des actions sans le savoir. Pour éviter que cela ne se produise, utilisez un jeton unique dans un champ ou une URL cachée. Les utilisateurs peuvent être tenus de s’authentifier à nouveau ou de prouver qu’ils sont des utilisateurs réels.
Utilisation de composants présentant des vulnérabilités connues
Il s’agit spécifiquement des composants tiers non corrigés. Les pirates profiteront d’anciens outils qui ne sont pas corrigés parce que les failles ont été publiées. Cela inclut les bibliothèques open source. La solution est de corriger le logiciel dans la prochaine version.
Cela s’applique également aux CRM populaires comme WordPress. Les plug-ins sont souvent sujets à des vulnérabilités et sont fréquemment corrigés. Pour assurer la sécurité de votre site CRM, assurez-vous d’être à jour avec la dernière version du plug-in.
Redirections et transferts non validés
Les pirates informatiques utilisent l’hameçonnage pour inciter les utilisateurs à accéder à un site malveillant. Pour éviter cela, utilisez les données de l’utilisateur pour déterminer la redirection et que le paramètre de destination utilise une valeur de mappage.
Rester à la pointe de la sécurité des applications Web sera un défi constant. Être conscient et utiliser les meilleures pratiques aidera à atténuer les attaques.