Outils de test de pénétration

Nous avons des centaines de sites Web développés en asp, .net et java et nous payons beaucoup d’argent pour qu’une agence externe effectue des tests de pénétration pour nos sites afin de vérifier les failles de sécurité. Existe-t-il un (bon) logiciel (payant ou gratuit) pour cela?

ou .. existe-t-il des articles techniques qui peuvent m’aider à développer cet outil?

Vous pouvez suivre deux directions différentes avec les outils de test automatisés pour les applications Web.

Premièrement, il existe les scanners Web commerciaux , dont les plus populaires sont HP WebInspect et Rational AppScan. Ce sont des outils “tout-en-un”, “ignoré” que vous téléchargez et installez sur un bureau Windows interne, puis vous donnez une URL pour spider votre site, rechercher des vulnérabilités bien connues (c.-à-d. ont frappé Bugtraq), et recherchent les vulnérabilités de script intersite et d’injection SQL.

Deuxièmement, il existe des outils d’parsing de code source , dont Coverity et Fortify sont probablement les deux plus connus. Ce sont des outils que vous installez sur le bureau d’un développeur pour traiter votre code source Java ou C # et rechercher des modèles bien connus de code non sécurisé, comme une mauvaise validation des entrées.

Enfin, il existe des outils de test de pénétration . L’outil de test de pénétration d’applications Web le plus populaire parmi les professionnels de la sécurité est Burp Suite, que vous pouvez trouver à l’ adresse http://www.portswigger.net/proxy . D’autres incluent Spike Proxy et OWASP WebScarab. Encore une fois, vous allez l’installer sur un bureau Windows interne. Il fonctionnera en tant que proxy HTTP, et vous y dirigerez votre navigateur. Vous utiliserez vos applications comme le ferait un utilisateur normal, tout en enregistrant vos actions. Vous pouvez ensuite revenir à chaque page ou action HTTP et rechercher des problèmes de sécurité.

Dans un environnement complexe, et surtout si vous envisagez quelque chose de bricolage, je recommande fortement les outils de test de pénétration . Voici pourquoi:

Les scanners Web commerciaux offrent une grande ampleur, tout en offrant d’excellents rapports. Toutefois:

  • Ils ont tendance à manquer des choses, car chaque application est différente.

  • Ils sont chers (WebInspect commence dans les 10 de milliers).

  • Vous payez pour des choses dont vous n’avez pas besoin (comme les bases de données de mauvaises CGI connues des années 90).

  • Ils sont difficiles à personnaliser.

  • Ils peuvent produire des résultats bruyants.

Les scanners de code source sont plus complets que les scanners Web. Toutefois:

  • Ils sont encore plus chers que les scanners Web.

  • Ils nécessitent un code source pour fonctionner.

  • Pour être efficaces, ils vous obligent souvent à annoter votre code source (par exemple, pour choisir les chemins d’entrée).

  • Ils ont tendance à produire des faux positifs.

Les scanners commerciaux et les scanners de code source ont la mauvaise habitude de devenir des étagères. Pire encore, même s’ils fonctionnent, leur coût est comparable à celui d’une ou deux applications entières auditées par un cabinet de conseil; Si vous faites confiance à vos consultants, vous êtes assuré d’obtenir de meilleurs résultats que des outils.

Les outils de test de pénétration ont également des inconvénients:

  • Ils sont beaucoup plus difficiles à utiliser que les scanners commerciaux à tirage au sort.

  • Ils assument une certaine expertise dans les vulnérabilités des applications Web – vous devez savoir ce que vous recherchez.

  • Ils produisent peu ou pas de rapports officiels.

D’autre part:

  • Ils sont beaucoup, beaucoup moins chers — le meilleur du lot, Burp Suite, ne coûte que 99EU, et a une version gratuite.

  • Ils sont faciles à personnaliser et à append à un stream de travail de test.

  • Ils sont bien meilleurs pour vous aider à “connaître” vos applications de l’intérieur.

Voici ce que vous feriez avec un outil de test de stylet pour une application Web de base:

  1. Connectez-vous à l’application via le proxy

  2. Créez une “liste de résultats” des principaux domaines fonctionnels de l’application, et exercez-vous chacun une fois.

  3. Utilisez l’outil “spider” dans votre application de test de stylo pour trouver toutes les pages et les actions et les gestionnaires de l’application.

  4. Pour chaque page dynamic et chaque formulaire HTML que l’araignée découvre, utilisez l’outil “fuzzer” (Burp appelle cela un “intrus”) pour exercer chaque paramètre avec des entrées non valides. La plupart des fuzzers sont livrés avec des chaînes de test de base comprenant:

    • Métacaractères SQL

    • Les échappements et métacaractères HTML / Javascript

    • Des variantes internationalisées de ceux-ci pour échapper aux filtres d’entrée

    • Noms et valeurs de champs de formulaire par défaut bien connus

    • Noms de répertoires, noms de fichiers et verbes de gestionnaire connus

  5. Passez plusieurs heures à filtrer les erreurs qui en résultent (une parsing de fuzz typique pour un formulaire peut en générer 1 000) à la recherche de réponses suspectes.

Il s’agit d’une approche à forte intensité de main-d’œuvre, dite «bare metal». Mais lorsque votre entreprise possède les applications réelles, l’approche «bare-metal» est payante, car vous pouvez l’utiliser pour créer des suites de tests de régression qui fonctionneront comme sur des roulettes à chaque cycle de développement de chaque application. Ceci est une victoire pour un tas de raisons:

  • Vos tests de sécurité prendront un temps et des ressources prévisibles par application, ce qui vous permettra de budgétiser et de sortinger.

  • Votre équipe obtiendra des résultats précis et approfondis au maximum, car vos tests seront adaptés à vos applications.

  • Cela va coûter moins cher que les scanners commerciaux et moins que les consultants.

Bien sûr, si vous optez pour cette voie, vous devenez essentiellement un consultant en sécurité pour votre entreprise. Je ne pense pas que ce soit une mauvaise chose. Si vous ne voulez pas cette expertise, WebInspect ou Fortify ne vous aidera pas beaucoup de toute façon.

Je sais que vous avez spécifiquement posé des questions sur les outils de pentesting, mais comme il a été répondu à toutes ces questions (généralement avec AppScan et Pentester formé), il est important de souligner que le pentesting n’est pas le seul moyen de vérifier les failles de sécurité. “, et n’est souvent pas le plus efficace .

Les outils de révision du code source peuvent vous offrir une meilleure visibilité sur votre base de code et détecter de nombreuses failles que le pentesting ne permet pas.

Ceux-ci incluent Fortify et OunceLabs (coûteux et pour de nombreuses langues), VisualStudio.NET CodeAnalysis (pour .NET et C ++, gratuit avec VSTS, décent mais pas génial), LAPSE pour Java d’OWASP (gratuit, décent pas génial), CheckMarx (pas bon marché) , outil fanTASTic pour .NET et Java, mais surcharge élevée, et bien plus encore.

Un point important à noter – (la plupart des) les outils automatisés ne trouvent pas toutes les vulnérabilités, même pas proches. Vous pouvez vous attendre à ce que les outils automatisés détectent environ 35 à 40% des bogues de sécurité qui seraient détectés par un penthouse professionnel; Il en va de même pour la vérification automatique et manuelle du code source.

Et bien sûr, un cycle de développement de la sécurité SDLC (Security Development Lifecycle) approprié, y compris la modélisation des menaces, la révision de la conception, etc., aidera encore plus …

Vous pourriez envisager le chorizo

McAfee Secure n’est pas une solution. Le service qu’ils fournissent est une blague.

Voir ci-dessous:

http://blogs.zdnet.com/security/?p=1092&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1068&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1114&tag=rbxccnbzd1

J’ai entendu de bonnes choses à propos de SpiDynamics WebInspect en ce qui concerne les solutions payantes, ainsi que Nikto (pour une solution gratuite) et d’autres outils open source. Nessus est un excellent outil d’infrastructure au cas où vous devriez également vérifier cette couche. Vous pouvez vous procurer un cd live avec plusieurs outils appelés Nubuntu (Auditor, Helix ou tout autre système de dissortingbution basé sur la sécurité), puis créer des tutoriels sur Google pour cet outil spécifique. Toujours, assurez-vous toujours de numériser à partir du réseau local. Vous risquez de vous voir bloqué par le centre de données si vous parsingz une boîte du réseau étendu sans autorisation. La leçon a appris à la dure. 😉

Skipfish, w3af, arachni, ratproxy, ZAP, WebScarab: tout est gratuit et très bon IMO

http://www.nessus.org/nessus/ – Nessus vous aidera à trouver des moyens d’améliorer vos serveurs. Il ne peut pas vraiment tester les applications personnalisées par lui-même, même si je pense que les plug-ins sont relativement faciles à créer par vous-même.

Jetez un coup d’œil à Rational App Scan (anciennement appelé Watchfire). Ce n’est pas gratuit, mais a une belle interface utilisateur, est puissant, génère des rapports (sur mesure et par rapport à des frameworks de conformité standard tels que Basel2) et je pense que vous pouvez créer un script dans votre version de CI.

Que diriez-vous de Nikto ?

Pour ce type de test, vous voulez vraiment examiner un type de testeur de fuzz. SPIKE Proxy est l’un des quelques testeurs de fuzz pour les applications Web. Il est open source et écrit en Python. Je pense qu’il existe quelques vidéos de BlackHat ou DefCON sur l’utilisation de SPIKE quelque part, mais j’ai du mal à les localiser.

Il existe quelques logiciels professionnels haut de gamme qui feront le test des applications Web et bien plus encore. L’un des outils les plus populaires serait CoreImpact

Si vous envisagez de passer par vous-même avec le Pen Testing, je vous recommande fortement de lire une grande partie de la documentation du projet OWASP . Plus précisément, les guides de vérification et de test / développement de la sécurité des applications OWASP. La mentalité dont vous avez besoin pour tester minutieusement votre application est un peu différente de votre mentalité de développement habituelle (non pas qu’elle DEVRAIT être différente, mais elle l’est généralement).

Qu’en est-il du proxy de rat ?

Outil d’audit de sécurité des applications Web semi-automatisé et largement passif, optimisé pour une détection précise et sensible et une annotation automatique des problèmes potentiels et des modèles de conception liés à la sécurité basés sur l’observation du trafic existant créé par l’utilisateur dans des environnements Web 2.0 complexes .

Détecte et hiérarchise les principaux problèmes de sécurité, tels que les considérations dynamics liées aux modèles de confiance intersites, les problèmes d’inclusion de scripts, les problèmes de gestion de contenu, les défenses XSRF et XSS insuffisantes, etc.

On pense actuellement que Ratproxy prend en charge les environnements Linux, FreeBSD, MacOS X et Windows (Cygwin).

Je sais que vous avez spécifiquement posé des questions sur les outils de pentesting, mais comme il a été répondu à toutes ces questions (généralement avec AppScan et Pentester formé), il est important de souligner que le pentesting n’est pas le seul moyen de vérifier les failles de sécurité. “, et n’est souvent pas le plus efficace.

Les outils de révision du code source peuvent vous offrir une meilleure visibilité sur votre base de code et détecter de nombreuses failles que le pentesting ne permet pas.

Ceux-ci incluent Fortify et OunceLabs (coûteux et pour de nombreuses langues), VisualStudio.NET CodeAnalysis (pour .NET et C ++, gratuit avec VSTS, décent mais pas génial), LAPSE pour Java d’OWASP (gratuit, décent pas génial), CheckMarx (pas bon marché) , outil fanTASTic pour .NET et Java, mais surcharge élevée, et bien plus encore.

Un point important à noter – (la plupart des) les outils automatisés ne trouvent pas toutes les vulnérabilités, même pas proches. Vous pouvez vous attendre à ce que les outils automatisés détectent environ 35 à 40% des bogues de sécurité qui seraient détectés par un penthouse professionnel; Il en va de même pour la vérification automatique et manuelle du code source.

Et bien sûr, un cycle de développement de la sécurité SDLC (Security Development Lifecycle) approprié, y compris la modélisation des menaces, la révision de la conception, etc., aidera encore plus …

anciennement hackersafe McAfee Secure.