web application security testing guide
quelle est la différence entre le plan de test et la stratégie de test
En raison de l'énorme quantité de données stockées dans les applications Web et de l'augmentation du nombre de transactions sur le Web, des tests de sécurité appropriés des applications Web deviennent de jour en jour très importants.
Dans cet article, nous découvrirons en détail les termes clés utilisés dans les tests de sécurité des sites Web et leur approche de test.
Ce que vous apprendrez:
- Qu'est-ce que les tests de sécurité?
- Quelques termes clés utilisés dans les tests de sécurité
- Outils de test de sécurité recommandés
- Approche de test de sécurité
- Méthodes de test de sécurité Web
- Conclusion
- lecture recommandée
Qu'est-ce que les tests de sécurité?
Test de sécurité est le processus qui vérifie si le les données confidentielles restent confidentielles ou non (c'est-à-dire qu'il n'est pas exposé à des individus / entités pour lesquels il n'est pas destiné) et les utilisateurs ne peuvent effectuer que les tâches qu'ils sont autorisés à effectuer
Par exemple, un utilisateur ne doit pas être en mesure de refuser la fonctionnalité du site Web à d'autres utilisateurs ou un utilisateur ne doit pas être en mesure de modifier la fonctionnalité de l'application Web d'une manière non intentionnelle, etc.
Quelques termes clés utilisés dans les tests de sécurité
Avant d'aller plus loin, il sera utile de se familiariser avec quelques termes fréquemment utilisés dans les tests de sécurité des applications Web:
Qu'est-ce que la «vulnérabilité»?
C'est la faiblesse de l'application Web. La cause d'une telle «faiblesse» peut être due à des bogues dans l'application, à une injection (code SQL / script) ou à la présence de virus.
Qu'est-ce que la «manipulation d'URL»?
Certaines applications Web communiquent des informations supplémentaires entre le client (navigateur) et le serveur dans l'URL. La modification de certaines informations dans l'URL peut parfois entraîner un comportement involontaire de la part du serveur, ce que l'on appelle Manipulation d'URL .
Qu'est-ce qu'une «injection SQL»?
Il s'agit du processus d'insertion d'instructions SQL via l'interface utilisateur de l'application Web dans une requête qui est ensuite exécutée par le serveur.
Qu'est-ce que «XSS (Cross-Site Scripting)»?
Lorsqu'un utilisateur insère un script HTML / côté client dans l'interface utilisateur d'une application Web, cette insertion est visible par les autres utilisateurs et elle est appelée XSS .
Qu'est-ce que le «spoofing»?
La création de sites Web ou d'e-mails ressemblant à des canulars s'appelle Usurpation d'identité .
Outils de test de sécurité recommandés
# 1) Acunetix
quelle est la meilleure application de réalité virtuelle
Acunetix est un scanner de sécurité des applications Web de bout en bout. Il donnera une vue à 360 degrés de la sécurité de votre organisation. Il est capable de détecter 6500 types de vulnérabilités comme les injections SQL, XSS et les mots de passe faibles, etc. Il utilise une technologie avancée d'enregistrement de macros pour analyser des formulaires complexes à plusieurs niveaux.
La plateforme est intuitive et facile à utiliser. Vous pouvez planifier et prioriser des analyses complètes ainsi que des analyses incrémentielles. Il contient une fonctionnalité de gestion des vulnérabilités intégrée. Avec l'aide d'outils CI comme Jenkins, les nouvelles versions peuvent être analysées automatiquement.
=> Essayez Acunetix pour la sécurité des applications Web
# 2) Kiuwan
Trouvez et corrigez les vulnérabilités de votre code à chaque étape du SDLC.
Kiuwan est conforme aux normes de sécurité les plus strictes, notamment OWASP, CWE, SANS 25, HIPPA, etc.Intégrez Kiuwan dans votre IDE pour un retour instantané pendant le développement. Kiuwan prend en charge tous les principaux langages de programmation et s'intègre aux principaux outils DevOps.
=> Scannez votre code gratuitement
Approche de test de sécurité
Afin d'effectuer un test de sécurité utile d'une application Web, le testeur de sécurité doit avoir une bonne connaissance du protocole HTTP.
Il est important de comprendre comment le client (navigateur) et le serveur communiquent via HTTP.
De plus, le testeur doit au moins connaître les bases de l'injection SQL et de XSS.
Espérons que le nombre de défauts de sécurité présents dans l'application Web ne sera pas élevé. Cependant, être capable de décrire tous les défauts de sécurité avec précision avec tous les détails requis vous aidera certainement.
Méthodes de test de sécurité Web
# 1) Cracking de mot de passe
Les tests de sécurité sur un Application Web peut être lancé par «Password Cracking». Afin de se connecter aux zones privées de l'application, on peut soit deviner un nom d'utilisateur / mot de passe, soit utiliser un outil de piratage de mot de passe pour le même. Une liste de noms d'utilisateur et de mots de passe courants est disponible avec des craqueurs de mots de passe open source.
Si l'application Web n'applique pas un mot de passe complexe ( Par exemple, avec des alphabets, des nombres et des caractères spéciaux ou avec au moins un nombre de caractères requis), il peut ne pas prendre très longtemps pour déchiffrer le nom d'utilisateur et le mot de passe.
Si un nom d'utilisateur ou un mot de passe est stocké dans des cookies sans cryptage, un attaquant peut utiliser différentes méthodes pour voler les cookies et les informations stockées dans les cookies comme le nom d'utilisateur et le mot de passe.
Pour plus de détails, consultez un article sur ' Test des cookies du site Web ».
# 2) Manipulation d'URL via les méthodes HTTP GET
Un testeur doit vérifier si l'application transmet des informations importantes dans la chaîne de requête ou non. Cela se produit lorsque l'application utilise la méthode HTTP GET pour transmettre des informations entre le client et le serveur.
Questions et réponses d'entrevue de support de bureau pour pdf niveau l2
Les informations sont transmises via les paramètres de la chaîne de requête. Le testeur peut modifier une valeur de paramètre dans la chaîne de requête pour vérifier si le serveur l'accepte.
Via la requête HTTP GET, les informations utilisateur sont transmises au serveur pour l'authentification ou la récupération des données. L'attaquant peut manipuler toutes les variables d'entrée passées de cette requête GET à un serveur afin d'obtenir les informations requises ou de corrompre les données. Dans de telles conditions, tout comportement inhabituel de l'application ou du serveur Web est la porte d'entrée de l'attaquant dans une application.
# 3) Injection SQL
Le prochain facteur à vérifier est l'injection SQL. La saisie d’un guillemet simple (‘) dans n’importe quelle zone de texte doit être rejetée par l’application. Au lieu de cela, si le testeur rencontre une erreur de base de données, cela signifie que l'entrée utilisateur est insérée dans une requête qui est ensuite exécutée par une application. Dans un tel cas, l'application est vulnérable à l'injection SQL.
Les attaques par injection SQL sont très critiques car un attaquant peut obtenir des informations vitales de la base de données du serveur. Pour vérifier les points d'entrée d'injection SQL dans votre application Web, recherchez le code de votre base de code où les requêtes MySQL directes sont exécutées sur la base de données en acceptant certaines entrées utilisateur.
Si les données d'entrée utilisateur sont conçues dans des requêtes SQL pour interroger la base de données, un attaquant peut injecter des instructions SQL ou une partie des instructions SQL en tant qu'entrées utilisateur pour extraire des informations vitales d'une base de données. Même si un attaquant réussit à planter l'application, à partir de l'erreur de requête SQL affichée sur un navigateur, l'attaquant peut obtenir les informations qu'il recherche.
Les caractères spéciaux des entrées utilisateur doivent être gérés / échappés correctement dans de tels cas.
# 4) Scripts intersites (XSS)
Un testeur doit également vérifier l'application Web pour XSS (Cross-site scripting). Tout HTML Par exemple, ou n'importe quel script Par exemple, ne doit pas être accepté par l'application. Si tel est le cas, l'application peut être sujette à une attaque par Cross-Site Scripting.
L’attaquant peut utiliser cette méthode pour exécuter un script ou une URL malveillant sur le navigateur de la victime. En utilisant des scripts intersites, un attaquant peut utiliser des scripts tels que JavaScript pour voler les cookies utilisateur et les informations stockées dans les cookies.
De nombreuses applications Web obtiennent des informations utiles et transmettent ces informations dans certaines variables à partir de différentes pages.
Par exemple, http://www.examplesite.com/index.php?userid=123 &mettre en doute = xyz
L'attaquant peut facilement transmettre une entrée malveillante ou un paramètre «& query» qui peut explorer des données utilisateur / serveur importantes sur le navigateur.
Important: Pendant les tests de sécurité, le testeur doit faire très attention à ne modifier aucun des éléments suivants:
- Configuration de l'application ou du serveur
- Services fonctionnant sur le serveur
- Données utilisateur ou client existantes hébergées par l'application
De plus, un test de sécurité doit être évité dans un système de production.
Conclusion
Le but d'un test de sécurité est de découvrir les vulnérabilités de l'application Web afin que les développeurs puissent supprimer ces vulnérabilités de l'application et mettre l'application Web et les données à l'abri de toute action non autorisée.
Lecture recommandée => Différence entre SAST / DAST / IAST / RASP
N'hésitez pas à partager vos commentaires / suggestions sur cet article.
lecture recommandée
- Guide du débutant sur les tests de pénétration des applications Web
- Test de sécurité (un guide complet)
- Test alpha et test bêta (un guide complet)
- Test de sécurité réseau et meilleurs outils de sécurité réseau
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Build Verification Testing (BVT Testing) Guide complet
- Top 4 des outils de test de sécurité Open Source pour tester une application Web
- Test fonctionnel vs test non fonctionnel