OWASP Top 10 des risques de sécurité | Aperçu

Table des matières

Présentation du Top 10 OWASP

Qu'est-ce que l'OWASP?

L'OWASP est une organisation à but non lucratif dédiée à l'éducation à la sécurité des applications Web. 

Les supports d'apprentissage de l'OWASP sont accessibles sur leur site Web. Leurs outils sont utiles pour améliorer la sécurité des applications web. Cela inclut des documents, des outils, des vidéos et des forums.

Le Top 10 OWASP est une liste qui met en évidence les principaux problèmes de sécurité pour les applications Web aujourd'hui. Ils recommandent à toutes les entreprises d'inclure ce rapport dans leurs processus afin de réduire les risques de sécurité. Vous trouverez ci-dessous une liste des risques de sécurité inclus dans le rapport OWASP Top 10 2017.

Injection SQL

L'injection SQL se produit lorsqu'un attaquant envoie des données inappropriées à une application Web pour perturber le programme dans l'application.

Un exemple d'injection SQL :

L'attaquant pourrait saisir une requête SQL dans un formulaire de saisie qui nécessite un nom d'utilisateur en clair. Si le formulaire de saisie n'est pas sécurisé, cela entraînera l'exécution d'une requête SQL. Cette est référé à comme injection SQL.

Pour protéger les applications Web contre l'injection de code, assurez-vous que vos développeurs utilisent la validation des entrées sur les données soumises par l'utilisateur.. La validation fait ici référence au rejet des entrées invalides. Un gestionnaire de base de données peut également définir des contrôles pour réduire la quantité de d'information qui peut être divulgué dans une attaque par injection.

Pour empêcher l'injection SQL, l'OWASP recommande de séparer les données des commandes et des requêtes. L'option préférable est d'utiliser un API pour empêcher l'utilisation d'un interpréteur, ou pour migrer vers des outils de mappage relationnel objet (ORM).

Authentification brisée

Les vulnérabilités d'authentification peuvent permettre à un attaquant d'accéder à des comptes d'utilisateurs et de compromettre un système à l'aide d'un compte administrateur. Un cybercriminel peut utiliser un script pour essayer des milliers de combinaisons de mots de passe sur un système afin de voir lequel fonctionne. Une fois que le cybercriminel est entré, il peut falsifier l'identité de l'utilisateur, lui donnant accès à des informations confidentielles.

Une vulnérabilité d'authentification brisée existe dans les applications Web qui autorisent les connexions automatisées. L'utilisation de l'authentification multifacteur est un moyen courant de corriger la vulnérabilité de l'authentification. De plus, une limite de taux de connexion pourrait être compris dans l'application Web pour empêcher les attaques par force brute.

Exposition de données sensibles

Si les applications Web ne protègent pas, les attaquants sensibles peuvent y accéder et les utiliser à leur profit. Une attaque sur le chemin est une méthode populaire pour voler des informations sensibles. Le risque d'exposition peut être minime lorsque toutes les données sensibles sont cryptées. Les développeurs Web doivent s'assurer qu'aucune donnée sensible n'est exposée sur le navigateur ou stockée inutilement.

Entités externes XML (XEE)

Un cybercriminel peut être en mesure de télécharger ou d'inclure du contenu, des commandes ou du code XML malveillant dans un document XML. Cela leur permet d'afficher des fichiers sur le système de fichiers du serveur d'applications. Une fois qu'ils y ont accès, ils peuvent interagir avec le serveur pour effectuer des attaques de falsification de requête côté serveur (SSRF)..

Les attaques d'entités externes XML peuvent être empêché par permettant aux applications Web d'accepter des types de données moins complexes tels que JSON. La désactivation du traitement des entités externes XML réduit également les risques d'attaque XEE.

Contrôle d'accès cassé

Le contrôle d'accès est un protocole système qui limite les utilisateurs non autorisés aux informations sensibles. Si un système de contrôle d'accès est cassé, les attaquants peuvent contourner l'authentification. Cela leur donne accès à des informations sensibles comme s'ils en avaient l'autorisation. Le contrôle d'accès peut être sécurisé en implémentant des jetons d'autorisation lors de la connexion de l'utilisateur. À chaque demande qu'un utilisateur fait alors qu'il est authentifié, le jeton d'autorisation avec l'utilisateur est vérifié, signalant que l'utilisateur est autorisé à faire cette demande.

Mauvaise configuration de la sécurité

La mauvaise configuration de la sécurité est un problème courant qui cybersécurité les spécialistes observent dans les applications Web. Cela se produit à la suite d'en-têtes HTTP mal configurés, de contrôles d'accès brisés et de l'affichage d'erreurs qui exposent des informations dans une application Web.. Vous pouvez corriger une mauvaise configuration de sécurité en supprimant les fonctionnalités inutilisées. Vous devez également corriger ou mettre à niveau vos progiciels.

XSS (Cross-Site Scripting)

La vulnérabilité XSS se produit lorsqu'un attaquant manipule l'API DOM d'un site Web de confiance pour exécuter un code malveillant dans le navigateur d'un utilisateur. L'exécution de ce code malveillant se produit souvent lorsqu'un utilisateur clique sur un lien qui semble provenir d'un site Web de confiance. Si le site Web n'est pas protégé contre la vulnérabilité XSS, il peut être compromis. Le code malveillant qui est exécuté donne à un attaquant l'accès à la session de connexion des utilisateurs, aux détails de la carte de crédit et à d'autres données sensibles.

Pour empêcher le Cross-site Scripting (XSS), assurez-vous que votre code HTML est bien nettoyé. Ceci peut être atteint par choisir des frameworks de confiance en fonction du langage de choix. Vous pouvez utiliser des langages tels que .Net, Ruby on Rails et React JS, car ils vous aideraient à analyser et à nettoyer votre code HTML. Traiter toutes les données d'utilisateurs authentifiés ou non authentifiés comme non fiables peut réduire le risque d'attaques XSS.

Désérialisation non sécurisée

La désérialisation est la transformation de données sérialisées d'un serveur en un objet. La désérialisation des données est un phénomène courant dans le développement de logiciels. Il n'est pas sûr que les données est désérialisé d'une source non fiable. Cela peut l'éventualité exposez votre application aux attaques. La désérialisation non sécurisée se produit lorsque des données désérialisées provenant d'une source non fiable entraînent des attaques DDOS, des attaques d'exécution de code à distance ou des contournements d'authentification.

Pour éviter une désérialisation non sécurisée, la règle d'or consiste à ne jamais faire confiance aux données utilisateur. Chaque donnée saisie par l'utilisateur doit être traité as l'éventualité mal intentionné. Évitez la désérialisation des données provenant de sources non fiables. Assurez-vous que la fonction de désérialisation être utilisés dans votre application Web est en sécurité.

Utilisation de composants avec des vulnérabilités connues

Les bibliothèques et les frameworks ont permis de développer beaucoup plus rapidement des applications Web sans avoir à réinventer la roue. Cela réduit la redondance dans l'évaluation du code. Ils ouvrent la voie aux développeurs pour qu'ils se concentrent sur des aspects plus importants des applications. Si des attaquants découvrent des exploits dans ces frameworks, chaque base de code utilisant le framework être compromis.

Les développeurs de composants proposent souvent des correctifs de sécurité et des mises à jour pour les bibliothèques de composants. Pour éviter les vulnérabilités des composants, vous devez apprendre à maintenir vos applications à jour avec les derniers correctifs et mises à niveau de sécurité.. Les composants inutilisés doivent être retiré de l'application pour couper les vecteurs d'attaque.

Journalisation et surveillance insuffisantes

La journalisation et la surveillance sont importantes pour afficher les activités dans votre application Web. La journalisation facilite le suivi des erreurs, moniteur les connexions des utilisateurs et les activités.

Une journalisation et une surveillance insuffisantes se produisent lorsque les événements critiques pour la sécurité ne sont pas enregistrés correctement. Les attaquants en profitent pour mener des attaques sur votre application avant qu'il n'y ait une réponse notable.

La journalisation peut aider votre entreprise à économiser du temps et de l'argent, car vos développeurs peuvent même trouver des bogues. Cela leur permet de se concentrer davantage sur la résolution des bogues que sur leur recherche. En effet, la journalisation peut aider à maintenir vos sites et serveurs opérationnels à chaque fois sans qu'ils ne subissent de temps d'arrêt..

Conclusion

Un bon code n'est pas juste à propos de la fonctionnalité, il s'agit de protéger vos utilisateurs et votre application. Le Top 10 OWASP est une liste des risques de sécurité des applications les plus critiques et une excellente ressource gratuite pour les développeurs pour écrire des applications Web et mobiles sécurisées.. Former les développeurs de votre équipe à évaluer et consigner les risques peut faire gagner du temps et de l'argent à votre équipe à long terme. Si vous souhaitez en savoir plus sur la façon de former votre équipe sur le Top 10 OWASP cliquez ici.