beginners guide web application penetration testing
Tests de pénétration aka Pen Test est la technique de test de sécurité la plus couramment utilisée pour les applications Web.
Les tests de pénétration des applications Web sont effectués en simulant des attaques non autorisées en interne ou en externe pour accéder à des données sensibles.
Une pénétration Web aide l'utilisateur final à découvrir la possibilité pour un pirate d'accéder aux données d'Internet, de se renseigner sur la sécurité de ses serveurs de messagerie et de connaître la sécurité du site d'hébergement Web et du serveur.
Eh bien, couvrons maintenant le contenu de cet article.
entretien des services web questions et réponses pour expérimenté en java
(image la source )
Dans ce didacticiel de test de pénétration, j'ai essayé de couvrir:
- Le besoin de Pentest pour les tests d'applications Web,
- Méthodologie standard disponible pour Pentest,
- Approche pour l'application web Pentest,
- Quels types de tests pouvons-nous effectuer,
- Les étapes à suivre pour effectuer un test de pénétration,
- Outils utilisables pour les tests,
- Certains des fournisseurs de services de test d'intrusion et
- Certaines des certifications pour les tests de pénétration Web
Outils d'analyse de vulnérabilité recommandés:
# 1) Parker net
Netsparker est une plate-forme de test de sécurité des applications Web facile à utiliser et automatisée que vous pouvez utiliser pour identifier les vulnérabilités réelles et exploitables de vos sites Web.
#deux) 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 gratuitementCe que vous apprendrez:
- Pourquoi un test de pénétration est-il nécessaire?
- Méthodologie de test de pénétration Web
- Types de tests de pénétration Web
- Approche de test du stylet Web:
- Meilleurs outils de test de pénétration
- Principales sociétés de test de pénétration
- Quelques certifications de test de pénétration:
- Conclusion
- lecture recommandée
Pourquoi un test de pénétration est-il nécessaire?
Lorsque nous parlons de sécurité, le mot le plus courant que nous entendons est Vulnérabilité .
Lorsque j'ai commencé à travailler en tant que testeur de sécurité, je me confondais très souvent avec ce mot Vulnérabilité, et je suis sûr que beaucoup d'entre vous, mes lecteurs tomberaient dans le même bateau.
Pour le bénéfice de tous mes lecteurs, je vais d'abord clarifier la différence entre la vulnérabilité et le test du stylo.
Donc qu'est-ce Vulnérabilité ? La vulnérabilité est une terminologie utilisée pour identifier les failles du système qui peuvent exposer le système à des menaces de sécurité.
Analyse de vulnérabilité ou test de stylet?
L'analyse des vulnérabilités permet à l'utilisateur de découvrir les faiblesses connues de l'application et définit des méthodes pour corriger et améliorer la sécurité globale de l'application. Il découvre essentiellement si des correctifs de sécurité sont installés, si les systèmes sont correctement configurés pour rendre les attaques difficiles.
Pen Tests simule principalement des systèmes en temps réel et aide l'utilisateur à savoir si le système est accessible par des utilisateurs non autorisés, si oui, quels dommages peuvent être causés et à quelles données, etc.
Par conséquent, l’analyse des vulnérabilités est une méthode de contrôle de détection qui suggère des moyens d’améliorer le programme de sécurité et de garantir que les faiblesses connues ne réapparaissent pas, tandis que le test au stylo est une méthode de contrôle préventif qui donne une vue globale de la couche de sécurité existante du système.
Cependant, les deux méthodes ont leur importance, mais cela dépendra de ce qui est réellement attendu dans le cadre des tests.
En tant que testeurs, il est impératif d'être clair sur le but des tests avant de passer aux tests. Si vous êtes clair sur l'objectif, vous pouvez très bien définir si vous devez effectuer une analyse de vulnérabilité ou un test de stylet.
Importance et nécessité du test du stylet d'application Web:
comment créer une liste d'objets en java
- Pentest Aide à identifier les vulnérabilités inconnues.
- Aide à vérifier l'efficacité des politiques de sécurité globales.
- Aide à tester les composants exposés publiquement comme les pare-feu, les routeurs et DNS.
- Permet à l'utilisateur de découvrir l'itinéraire le plus vulnérable par lequel une attaque peut être effectuée
- Aide à trouver les failles qui peuvent conduire au vol de données sensibles.
Si vous regardez la demande actuelle du marché, il y a eu une forte augmentation de l'utilisation du mobile, qui devient un potentiel majeur d'attaques. L'accès aux sites Web via les mobiles est sujet à des attaques plus fréquentes et donc à une compromission des données.
Les tests de pénétration deviennent donc très importants pour garantir que nous construisons un système sécurisé qui peut être utilisé par les utilisateurs sans aucun souci de piratage ou de perte de données.
Méthodologie de test de pénétration Web
La méthodologie n'est rien d'autre qu'un ensemble de directives de l'industrie de la sécurité sur la manière dont les tests doivent être effectués. Il existe des méthodologies et des normes bien établies et célèbres qui peuvent être utilisées pour les tests, mais comme chaque application Web exige différents types de tests à effectuer, les testeurs peuvent créer leurs propres méthodologies en se référant aux normes disponibles sur le marché.
Certaines des méthodologies et normes de test de sécurité sont:
- OWASP (Ouvrir le projet de sécurité des applications Web)
- OSSTMM (Manuel de méthodologie de test de sécurité Open Source)
- PTF (Cadre de test de pénétration)
- ISSAF (Cadre d'évaluation de la sécurité des systèmes d'information)
- PCI DSS (Norme de sécurité des données de l'industrie des cartes de paiement)
Scénarios de test:
Voici quelques-uns des scénarios de test qui peuvent être testés dans le cadre de Test de pénétration des applications Web (WAPT):
- Scripts intersites
- Injection SQL
- Authentification et gestion de session interrompues
- Failles de téléchargement de fichiers
- Attaques de serveurs de mise en cache
- Mauvaises configurations de sécurité
- Falsification de demandes intersites
- Cracking de mot de passe
Même si j'ai mentionné la liste, les testeurs ne doivent pas créer aveuglément leur méthodologie de test basée sur les normes conventionnelles ci-dessus.
Voici unExemplepour prouver pourquoi je dis cela.
Considérez que l'on vous demande de tester la pénétration d'un site Web de commerce électronique, réfléchissez maintenant si toutes les vulnérabilités d'un site Web de commerce électronique peuvent être identifiées à l'aide des méthodes conventionnelles de l'OWASP telles que XSS, injection SQL, etc.
La réponse est non, car le commerce électronique fonctionne sur une plate-forme et une technologie très différentes de celles d'autres sites Web. Afin de rendre votre test de stylet pour le site Web de commerce électronique efficace, les testeurs doivent concevoir une méthodologie impliquant des failles telles que la gestion des commandes, la gestion des coupons et des récompenses, l'intégration de la passerelle de paiement et l'intégration du système de gestion de contenu.
Donc, avant de décider de la méthodologie, assurez-vous très bien quels types de sites Web devraient être testés et quelle méthode aidera à trouver le maximum de vulnérabilités.
Types de tests de pénétration Web
Les applications Web peuvent être testées par pénétration de 2 manières. Les tests peuvent être conçus pour simuler une attaque intérieure ou extérieure.
# 1) Test de pénétration interne -
Comme son nom l'indique, le test du stylet interne est effectué au sein de l'organisation sur le LAN, il comprend donc le test des applications Web hébergées sur l'intranet.
Cela aide à découvrir s'il pourrait y avoir des vulnérabilités qui existent dans le pare-feu de l'entreprise.
Nous croyons toujours que les attaques ne peuvent se produire qu’à l’extérieur et le Pentest interne est souvent négligé ou n’a pas beaucoup d’importance.
Fondamentalement, cela inclut les attaques d'employés malveillants par des employés ou des sous-traitants mécontents qui auraient démissionné mais conscients des politiques de sécurité internes et des mots de passe, les attaques d'ingénierie sociale, la simulation d'attaques de phishing et les attaques utilisant les privilèges d'utilisateur ou l'utilisation abusive d'un terminal déverrouillé.
Les tests sont principalement effectués en accédant à l'environnement sans informations d'identification appropriées et en identifiant si un
#deux) Test de pénétration externe -
Il s'agit d'attaques effectuées de l'extérieur de l'organisation et incluent le test d'applications Web hébergées sur Internet.
Les testeurs se comportent comme des hackers qui ne sont pas très conscients du système interne.
Pour simuler de telles attaques, les testeurs reçoivent l'adresse IP du système cible et ne fournissent aucune autre information. Ils sont tenus de rechercher et d'analyser les pages Web publiques et de trouver nos informations sur les hôtes cibles, puis de compromettre les hôtes trouvés.
Fondamentalement, il comprend des serveurs de test, des pare-feu et IDS.
Approche de test du stylet Web:
Il peut être réalisé en 3 phases:
# 1) Phase de planification (avant le test)
Avant le début des tests, il est conseillé de planifier les types de tests qui seront effectués, comment les tests seront effectués, déterminer si l'assurance qualité a besoin d'un accès supplémentaire aux outils, etc.
- Définition de la portée - C'est la même chose que nos tests fonctionnels où nous définissons la portée de nos tests avant de commencer nos efforts de test.
- Disponibilité de la documentation pour les testeurs - Assurez-vous que les testeurs disposent de tous les documents requis, tels que les documents détaillant l'architecture Web, les points d'intégration, l'intégration des services Web, etc. Le testeur doit connaître les bases du protocole HTTP / HTTPS et connaître l'architecture d'application Web, les moyens d'interception du trafic.
- Déterminer les critères de succès - Contrairement à nos cas de test fonctionnels, où nous pouvons dériver les résultats attendus des exigences des utilisateurs / exigences fonctionnelles, les tests au stylet fonctionnent sur un modèle différent. Les critères de succès ou les critères de réussite du scénario de test doivent être définis et approuvés.
- Examen des résultats des tests des tests précédents - Si des tests antérieurs ont déjà été effectués, il est bon d'examiner les résultats des tests pour comprendre quelles vulnérabilités existaient dans le passé et quelles mesures correctives ont été prises pour résoudre. Cela donne toujours une meilleure image des testeurs.
- Comprendre l'environnement - Les testeurs doivent acquérir des connaissances sur l'environnement avant de commencer les tests. Cette étape doit permettre de leur donner une compréhension des pare-feu ou d'autres protocoles de sécurité qui devraient être désactivés pour effectuer les tests. Le navigateur à tester doit être converti en une plate-forme d'attaque, généralement en changeant de proxy.
# 2) Attaques / Phase d'exécution (pendant les tests):
Les tests de pénétration Web peuvent être effectués à partir de n'importe quel endroit, étant donné qu'il ne devrait pas y avoir de restrictions sur les ports et les services par le fournisseur d'accès Internet.
- Assurez-vous d'exécuter un test avec différents rôles d'utilisateur - Les testeurs doivent veiller à exécuter des tests avec des utilisateurs ayant des rôles différents, car le système peut se comporter différemment par rapport aux utilisateurs disposant de privilèges différents.
- Sensibilisation à la gestion de la post-exploitation - Les testeurs doivent suivre les critères de succès définis dans le cadre de la phase 1 pour signaler toute exploitation, et ils doivent également suivre le processus défini de signalement des vulnérabilités trouvées pendant les tests. Cette étape implique principalement le testeur pour découvrir ce qui doit être fait après avoir constaté que le système a été compromis.
- Génération de rapports de test - Tout test effectué sans rapports appropriés n'aide pas beaucoup l'organisation, il en va de même pour les tests de pénétration des applications Web. Pour s'assurer que les résultats des tests sont correctement partagés avec toutes les parties prenantes, les testeurs doivent créer des rapports appropriés avec des détails sur les vulnérabilités détectées, la méthodologie utilisée pour les tests, la gravité et l'emplacement du problème détecté.
# 3) Phase de post-exécution (après le test):
Une fois les tests terminés et les rapports de test partagés avec toutes les équipes concernées, la liste suivante doit être travaillée par tous -
- Suggérer une correction - Les tests de stylet ne doivent pas simplement se terminer par l'identification des vulnérabilités. L'équipe concernée, y compris un membre de l'AQ, doit examiner les résultats rapportés par les testeurs, puis discuter de la correction.
- Retester les vulnérabilités - Une fois la correction effectuée et mise en œuvre, les testeurs doivent effectuer un nouveau test pour s'assurer que les vulnérabilités corrigées n'apparaissent pas dans le cadre de leur nouveau test.
- Nettoyer - Dans le cadre du Pentest, les testeurs apportent des modifications aux paramètres du proxy, donc le nettoyage doit être effectué et toutes les modifications annulées.
Meilleurs outils de test de pénétration
Maintenant que vous avez déjà lu l'article complet, je pense que vous avez maintenant une bien meilleure idée sur quoi et comment pouvons-nous tester la pénétration d'une application Web.
Alors dites-moi, pouvons-nous effectuer manuellement des tests de pénétration ou cela se produit-il toujours en automatisant à l'aide d'un outil. Pas de doute, je pense que la majorité d'entre vous parle d'automatisation. :)
C'est vrai parce que l'automatisation apporte de la vitesse, évite les erreurs humaines manuelles, une excellente couverture et plusieurs autres avantages, mais en ce qui concerne Pen Test, elle nous oblige à effectuer des tests manuels.
Les tests manuels aident à trouver les vulnérabilités liées à la logique métier, réduisant ainsi les faux positifs.
Les outils sont susceptibles de donner beaucoup de faux positifs et une intervention manuelle est donc nécessaire pour déterminer s'il s'agit de véritables vulnérabilités.
Lire aussi - Comment tester la sécurité des applications Web à l'aide de l'outil Acunetix Web Vulnerability Scanner (WVS)
Des outils sont créés pour automatiser nos efforts de test. Veuillez trouver ci-dessous une liste de certains des outils qui peuvent être utilisés pour Pentest:
quel utilitaire peut être utilisé pour intercepter des informations détaillées sur le site Web d'une entreprise?
Pour plus d'outils, vous pouvez également vous référer - 37 outils de test de stylo puissants pour chaque testeur de pénétration
Principales sociétés de test de pénétration
Les fournisseurs de services sont des entreprises fournissant des services répondant aux besoins de test des organisations. Ils excellent généralement et possèdent une expertise dans différents domaines de test, et peuvent effectuer des tests dans leur environnement de test hébergé.
Voici quelques-unes des principales entreprises qui fournissent des services de test d'intrusion:
- PSC (Conformité de la sécurité des paiements)
- Netragard
- Securestate
- Feu de charbon
- Sécurité HIGHBIT
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sec
- Évaluation de sécurité
- Systèmes d'audit de sécurité
- Hacklabs
- CQR
Quelques certifications de test de pénétration:
Si vous souhaitez obtenir une certification sur la certification de pénétration des applications Web, vous pouvez opter pour les certifications ci-dessous:
- OSWE (Expert Web de sécurité offensive)
- GWAPT (Testeur de pénétration d'application Web GIAC)
- CWAPT (Testeur de pénétration d'applications Web certifié)
- eWPT (Testeur de pénétration d'applications Web elearnSecurity)
Conclusion
Dans ce didacticiel, nous avons présenté un aperçu de la façon dont les tests de pénétration sont effectués pour les applications Web.
Avec ces informations, le testeur de pénétration peut lancer des tests de vulnérabilité.
Idéalement, les tests d'intrusion peuvent nous aider à créer un logiciel sécurisé. C'est une méthode coûteuse donc la fréquence peut être maintenue comme une fois par an.
Pour en savoir plus sur les tests de pénétration, veuillez lire les articles connexes ci-dessous:
- Une approche pour les tests de sécurité des applications Web
- Test de pénétration - Guide complet avec des exemples de cas de test
- Comment tester la sécurité des applications - Techniques de test de la sécurité des applications Web et de bureau
Veuillez partager vos points de vue ou votre expérience sur Pentest ci-dessous.
lecture recommandée
- Guide de test de sécurité des applications Web
- 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)
- Test alpha et test bêta (un guide complet)
- Test de sécurité (un guide complet)
- Un guide complet de test de pénétration avec des exemples de cas de test
- Outils de test de pénétration d'applications mobiles et fournisseurs de services
- Différence entre les tests de bureau, client-serveur et Web