45 votes

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'un organisme externe réalise des tests d'intrusion sur nos sites afin de vérifier les failles de sécurité. Existe-t-il un (bon) logiciel (payant ou gratuit) pour le faire?

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

68voto

tqbf Points 6629

Il ya un couple de différentes directions, vous pouvez aller avec des outils de test automatisés pour les applications web.

Tout d'abord, il y a le web commercial scanners, dont HP WebInspect et Rational AppScan sont les deux plus populaires. Ce sont des "tout-en-un", "fire-and-forget" les outils que vous téléchargez et installez sur un document interne du bureau de Windows, puis donner une URL d'araignée votre site, analyse des vulnérabilités connues (c'est à dire, les choses qui ont frappé Bugtraq), et la sonde pour le cross-site scripting et les vulnérabilités d'injection SQL.

Deuxièmement, il y a le code source des outils d'analyse, de qui Coverity et de Fortifier sont probablement les deux plus connus. Ce sont des outils que vous installez sur un développeur de bureau pour le traitement de votre Java ou C# code source et de regarder pour des motifs bien connus de l'insécurité code, comme un manque de validation de la saisie.

Enfin, il y a le test de pénétration des outils. De loin le plus populaire, application web tests de pénétration de l'outil entre les professionnels de la sécurité est Burp Suite, que vous trouverez à l' http://www.portswigger.net/proxy. D'autres incluent Spike Proxy et OWASP WebScarab. Encore une fois, vous allez l'installer sur un interne du bureau de Windows. Il fonctionnera comme un proxy HTTP, et vous vous pointez votre navigateur. Vous allez utiliser vos applications en tant qu'utilisateur normal, tout il enregistre vos actions. Vous pouvez alors revenir à chaque page ou à l'adresse HTTP de l'action et de la sonde pour des problèmes de sécurité.

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

Commercial web scanners fournir beaucoup de "largeur", le long de avec d'excellents rapports. Cependant:

  • Ils ont tendance à manquer des choses, parce que chaque demande est différente.

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

  • Vous êtes payer pour des choses que vous n'avez pas besoin (comme les bases de données de mauvaise connaissance des Cgi depuis les années '90).

  • Ils sont difficile à personnaliser.

  • Ils peuvent produire des résultats.

Le code Source de scanners sont plus approfondie que les scanners. Cependant:

  • Ils sont encore plus cher que le web scanners.

  • Ils exigent le code source pour fonctionner.

  • Pour être efficaces, ils ont souvent besoin de vous pour annoter votre code source (par exemple, pour choisir l'entrée des voies).

  • Ils ont tendance à produire des faux positifs.

À la fois commerciale et des scanners à code source scanners ont la mauvaise habitude de devient shelfware. Au pire, même si elles travaillent, leur coût est comparable à d'obtenir 1 ou 2 applications entières vérifiés par un cabinet de conseil; si vous faites confiance à vos consultants, vous avez la garantie d'obtenir de meilleurs résultats à partir d'eux que des outils.

Les tests de pénétration des outils ont des inconvénients aussi:

  • Ils sont beaucoup plus difficile à utiliser que le feu et oublier commercial scanners.

  • Ils supposent une certaine expertise dans vulnérabilités des applications web --- vous devez savoir ce que vous cherchez.

  • Ils produisent peu ou pas de déclaration officielle.

Sur l'autre main:

  • Ils sont beaucoup, beaucoup moins cher --- le meilleur du lot, Burp Suite, uniquement les frais de 99EU, et a une version gratuite.

  • Ils sont faciles à personnaliser et ajouter à un test de flux de travail.

  • Ils sont beaucoup mieux à vous aider à "apprendre à connaître" vos applications à partir de l'intérieur.

Voici quelque chose que vous feriez avec un stylo-outil de test pour une application web de base:

  1. Ouvrez une session dans l'application via le proxy

  2. Créer une "liste noire" des grands domaines fonctionnels de l'application, et l'exercice à chaque fois.

  3. Utiliser le "spider" de l'outil dans votre stylo-test d'application pour trouver toutes les pages et les actions et les gestionnaires dans l'application.

  4. Pour chaque page dynamique et chaque formulaire HTML l'araignée découvre, utiliser le "fuzzer" de l'outil (Rot appelle un "intrus") pour l'exercice de chaque paramètre non valide d'intrants. La plupart des fuzzers venir avec test de base des chaînes qui comprennent:

    • SQL métacaractères

    • HTML/Javascript, des évasions et des caractères de remplacement

    • Internationalisés variantes de ces pour échapper aux filtres d'entrée

    • Bien connu formulaire par défaut les noms de champ et les valeurs

    • Bien connu répertoire de noms, les noms de fichiers et gestionnaire de verbes

  5. Passer plusieurs heures de filtrage les erreurs qui en résulte (typique fuzz exécuter pour une forme susceptible de générer 1000 d'entre eux) à la recherche de suspects réponses.

C'est une main-d'œuvre, "bare-metal" approche. Mais si votre entreprise possède les applications réelles, le nu-métal approche de la paie, parce que vous pouvez l'utiliser pour construire des tests de régression sur les suites qui seront exécutés comme sur des roulettes à chaque cycle de dev pour chaque application. C'est une victoire pour tout un tas de raisons:

  • Vos tests de sécurité prendra une quantité prévisible de temps et de ressources par l'application, qui vous permet de budget et de triage.

  • Votre équipe peut obtenir au maximum précise et approfondie des résultats, depuis votre test va être à l'écoute de vos demandes.

  • Ça va coûter moins de commercial, de scanners et de moins de consultants.

Bien sûr, si vous suivez cette voie, vous avez l'impression de vous tourner vers un consultant en sécurité pour votre entreprise. Je ne pense pas que c'est une mauvaise chose; si vous ne voulez pas que l'expertise, WebInspect ou Fortifier ne va pas beaucoup vous aider de toute façon.

4voto

AviD Points 8413

Je sais que vous avez demandé spécifiquement sur les outils de test d'intrusion, mais puisque ceux-ci ont été amplement répondu (j'ai l'habitude d'aller avec un mélange de AppScan et formés pentester), je pense qu'il est important de souligner qu' un test d'intrusion n'est pas la seule façon de "vérifier les failles de sécurité", et est souvent pas la plus efficace.

L'examen du code Source outils peuvent vous fournir la meilleure visibilité dans votre base de code, et de trouver beaucoup de défauts, qu'un test d'intrusion ne sera pas.

Ces derniers comprennent les Fortifier et de OunceLabs (cher et pour de nombreuses langues), VisualStudio.NET CodeAnalysis (par .NET et C++, gratuit avec VSTS, décent, mais pas le grand), OWASP de la DÉCHÉANCE pour Java (gratuit, décent, pas génial), CheckMarx (pas bon marché, outil fantastique pour .NET et Java, mais haut dans le ciel), et beaucoup plus.

Un point important que vous devez noter - (de la plupart) des outils automatisés ne trouve pas tous les vulnérabilités, pas même à proximité. Vous pouvez vous attendre à des outils automatisés pour trouver d'environ 35-40% de la secbugs qui serait constaté par un professionnel pentester; il en va de même pour automatisée vs manuel de l'examen du code source.

Et bien sûr un bon SDLC (Security Development Lifecycle), y compris la Modélisation des Menaces, Revue de Conception, etc, va aider encore plus...

2voto

Marc Gear Points 2503

Vous pourriez envisager le chorizo

2voto

woany Points 766

1voto

Abyss Knight Points 2095

J'ai entendu de bonnes choses au sujet de SpiDynamics WebInspect autant que les solutions payantes aller, ainsi que Nikto (pour une solution gratuite) et d'autres outils open source. Nessus est un excellent outil pour l'infrastructure dans le cas où vous avez besoin de vérifier la couche. Vous pouvez vous procurer un live cd avec plusieurs outils sur elle appelle Nubuntu (Auditeur, Hélice, ou tout autre système de sécurité basé sur la distribution des œuvres trop) et puis Google quelques tutoriels pour l'outil spécifique. Toujours, assurez-vous toujours de numérisation à partir du réseau local si. Vous courez le risque d'avoir vous-même bloqué par le centre de données, si vous numérisez une boîte à partir du WAN sans autorisation. Leçon apprise à la dure. ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X