Frage

Wir haben hunderte von Websites, die in asp entwickelt wurden, .net und Java und wir viel Geld zahlen für eine externe Agentur eine Penetrationstests zu tun für unsere Standorte für Sicherheitslücken zu überprüfen. Gibt es (gut) Software (gegen Entgelt oder kostenlos), dies zu tun?

oder .. Gibt es technische Artikel, die ich entwickeln dieses Tool helfen können?

War es hilfreich?

Lösung

Es gibt ein paar verschiedene Richtungen Sie mit automatisierten Test-Tool für Web-Anwendungen gehen.

Als erstes gibt es den kommerziellen Web-Scanner , von denen HP WebInspect und Rational AppScan die beiden beliebtesten ist. Dies sind „all-in-one“, „Fire-and-Forget“ Tools, die Sie auf einem internen Windows-Desktop herunterladen und installieren und dann eine URL geben Sie Ihre Website Spinne, Suche nach bekannten Schwachstellen (dh die Dinge, die hit Bugtraq) und Sonde ist für Cross-Site-Scripting- und SQL-Injection-Schwachstellen.

Zweitens gibt es die Source-Code-Scanning-Tools , von denen Coverity und Fortify wahrscheinlich die beiden bekanntesten sind. Dies sind Werkzeuge, die Sie auf einem Entwickler-Desktop installieren, um Ihre Java oder C # Quellcode zu bearbeiten und suchen nach bekannten Mustern von unsicherem Code, wie schlechte Eingabevalidierung.

Schließlich gibt es die Penetrationstest-Tools . Bei weitem die beliebtesten Web-App Penetration Test-Tool unter Sicherheitsexperten ist Burp Suite, die Sie unter http finden: // www .portswigger.net / Proxy . Andere schließen Spike Proxy und OWASP WebScarab. Auch hier werden Sie dies auf einem internen Windows-Desktop installieren. Es wird als HTTP-Proxy läuft, und Sie werden es Ihren Browser zeigen. Sie werden Ihre Anwendungen als ein normaler Benutzer verwenden würde, während es Ihre Aktionen aufzeichnet. Sie können dann auf jede einzelne Seite oder HTTP-Aktion zurück und Sonde für Sicherheitsprobleme.

In einer komplexen Umgebung, und vor allem, wenn Sie etwas bedenkt sind DIY, Ich empfehle die Penetration-Testing-Tools . Hier ist der Grund:

Kommerzielle Web-Scanner bieten eine Vielzahl von „Breite“, zusammen mit ausgezeichneter Berichterstattung. Allerdings:

  • Sie neigen dazu, Dinge zu verpassen, weil jede Anwendung unterschiedlich ist.

  • Sie sind teuer (WebInspect beginnt in den 10 von Tausenden).

  • Sie zahlen für Dinge, die Sie brauchen nicht (wie Datenbanken bekannten bösartigen CGIs aus den 90er Jahren).

  • Sie sind schwer anpassen.

  • Sie können laut Ergebnissen führen.

Der Quellcode-Scanner sind gründlicher als Web-Scanner. Allerdings:

  • Sie sind sogar teurer als die Web-Scanner.

  • Sie benötigen Quellcode zu arbeiten.

  • Um wirksam zu sein, oft sie verlangen, dass Sie Ihren Quellcode mit Anmerkungen versehen (zB Eingangswege auszuwählen).

  • Sie haben eine Tendenz Fehlalarme zu erzeugen.

Die beiden kommerziellen Scanner und Quellcode-Scanner haben eine schlechte Gewohnheit Shelfware zu werden. Schlimmer noch, auch wenn sie arbeiten, sind ihre Kosten vergleichbar zu bekommen 1 oder 2 ganze Anwendungen von einer Beratungs geprüft; wenn Sie Ihren Berater vertrauen, sind Sie garantiert, um bessere Ergebnisse von ihnen zu erhalten als von den Werkzeugen.

Penetration-Testing-Tools haben Nachteile auch:

  • Sie sind viel härter als verwenden fire-and-forget kommerzielle Scanner.

  • Sie übernehmen einige Erfahrung in Schwachstellen in Webanwendungen --- Sie müssen wissen, was Sie suchen.

  • Sie produzieren wenig oder keine formale Berichterstattung.

Auf der anderen Seite:

  • Sie sind viel, viel billiger --- die beste der Partie, Burp Suite, kostet nur 99EU und hat eine kostenlose Version.

  • Sie sind einfach zu einem Test-Workflow.

  • anpassen und hinzufügen
  • Sie sind viel besser bei Ihnen zu helfen „kennen lernen“ Ihre Anwendungen von innen.

Hier ist etwas, das man mit einem Stift-Test-Tool für eine einfache Web-Anwendung tun würde:

  1. Melden Sie sich bei der Anwendung durch den Proxy

  2. eine „Hitliste“ Erstellen der wichtigsten Funktionsbereiche der Anwendung und Ausübung jeweils einmal.

  3. Mit der „Spinne“ Werkzeug in Ihrem Stift-Testanwendung alle Seiten und Aktionen und Handler in der ein findenpplikation.

  4. Für jede dynamische Seite und jede HTML die Spinne freigibt bilden, verwenden Sie das „fuzzer“ Werkzeug (Spuck nennt es ein „Eindringling“) jeden Parameter mit ungültigen Eingaben auszuüben. Die meisten Fuzzer sind mit einfachen Testfolgen, die enthalten:

    • SQL Metazeichen

    • HTML / Javascript entkommt und Metazeichen

    • Internationalized Varianten von diesen Eingangsfilter

    • entziehen
    • Bekannte Standardformular Feldnamen und Werte

    • Bekannte Verzeichnisnamen, Dateinamen und Handler Verben

  5. mehr Stunden verbringen die daraus resultierenden Fehler Filterung (ein typischer Flaum Lauf für eine Form 1000 von ihnen erzeugen könnte) nach verdächtigen Antworten suchen.

Dies ist ein arbeitsintensiver, "Bare-Metal" -Ansatz. Aber wenn Ihr Unternehmen der eigentlichen Anwendungen besitzt, zahlt der Bare-Metal-Ansatz ab, weil Sie es verwenden können, um Regressionstestsuiten zu erstellen, die für jede App bei jedem Zyklus dev wie am Schnürchen laufen. Dies ist ein Sieg für eine Reihe von Gründen:

  • Ihre Sicherheitstests werden eine vorhersagbare Menge an Zeit und Ressourcen pro Anwendung, die Sie auf Budget und Triage ermöglicht.

  • Ihr Team wird maximal genaue und gründliche Ergebnisse erhalten, da Ihre Tests auf Ihre Anwendungen abgestimmt werden wird.

  • Es wird weniger kosten als kommerzielle Scanner und kleiner als Berater.

Natürlich, wenn Sie diesen Weg gehen, beim Abbiegen Sie im Grunde selbst in einen Sicherheitsberater für Ihr Unternehmen. Ich glaube nicht, das ist eine schlechte Sache; wenn Sie nicht, dass Know-how wollen, WebInspect oder Fortify ist man nicht viel sowieso nicht helfen.

Andere Tipps

Ich weiß, dass Sie speziell über Pentesting Tools gefragt, aber da diese haben reichlich beantwortet worden (ich in der Regel mit einer Mischung aus AppScan und trainierte Pentester gehen), ich denke, es ist wichtig, darauf hinzuweisen, dass Pentesting ist nicht der einzige Weg, "check für Sicherheitslücken" und ist oft nicht die effektivste .

Der Quellcode Review-Tools können Sie mit viel besseren Einblick in Ihre Codebasis bieten und viele Mängel feststellen, dass Pentesting nicht.

Dazu gehören Fortify und OunceLabs (teuer und für viele Sprachen), VisualStudio.NET CodeAnalysis (für .NET und C ++, frei mit VSTS, anständig, aber nicht gut), OWASP der LAPSE für Java (kostenlos, anständig nicht gut), CheckMarx (nicht billig, phantastisches Werkzeug für .NET und Java, aber hoch oben), und viele mehr.

Ein wichtiger Punkt müssen Sie beachten, - (die meisten) die automatisierten Tools finden nicht alle Schwachstellen, nicht einmal annähernd. Sie können die automatisierten Tools erwarten etwa 35-40% des secbugs zu finden, die von einem professionellen Pentester finden würden; das gleiche gilt für die automatisierte vs. manuelle Quellcode Bewertung.

Und natürlich eine richtige SDLC (Security Development Lifecycle), einschließlich Threat Modeling, Design Review, etc., wird dazu beitragen, noch mehr ...

Ich habe so weit gute Dinge über SpiDynamics WebInspect gehört als bezahlte Lösungen gehen, sowie Nikto (für eine freie Lösung) und andere Open-Source-Tools. Nessus ist ein ausgezeichnetes Werkzeug für die Infrastruktur, falls Sie müssen auch diese Schicht überprüfen. Sie können eine Live-CD mit mehreren Werkzeugen aufgreifen es Ubuntu # Nubuntu (Auditor, Helix, oder jede andere Sicherheits basierte Distribution funktioniert auch) und dann Google auf einige Tutorials für das spezifische Werkzeug genannt. Immer, immer stellen Sie sicher, obwohl aus dem lokalen Netzwerk zu scannen. Sie führen das Risiko, dass sich durch das Datenzentrum gesperrt, wenn Sie eine Box aus dem WAN ohne Genehmigung scannen. Lektion die harte Tour gelernt. ;)

Skipfish, w3af, Arachnis, ratproxy, ZAP, WebScarab: alle frei und sehr gut IMO

http://www.nessus.org/nessus/ - Nessus wird dazu beitragen, schlägt vor, Möglichkeiten, um Ihre Server besser zu machen. Es kann wirklich nicht benutzerdefinierte Anwendungen selbst testen, obwohl ich glaube, die Plugins sind relativ einfach selbst zu erstellen.

Hier finden Sie aktuelle Rational App Scan (USED aufgerufen werden Wacht). Es ist nicht frei, aber hat eine schöne Benutzeroberfläche, ist tot mächtig, generiert Berichte (maßgeschneiderte und gegen Standard Compliance-Frameworks wie Basel2) und ich glaube, Sie Skript kann es in Ihrem CI-Build.

Wie wäre es nikto rel="nofollow?

Für diese Art von Testen Sie wirklich an irgendeiner Art von Flaum Tester suchen werden möchten. SPIKE Proxy ist einer von ein paar Fussel-Tester für Web-Anwendungen. Es ist Open-Source und in Python geschrieben. Ich glaube, es gibt ein paar Videos von BlackHat oder Defcon auf SPIKE mit irgendwo da draußen, aber ich habe Schwierigkeiten, sie zu lokalisieren.

Es gibt ein paar High-End-professionelle Software-Pakete, die die Web-App-Tests und vieles mehr tun. Eines der beliebtesten Tools würden CoreImpact

Wenn Sie gehen durch mit dem Pen Testing auf eigene Faust planen empfehle ich Ihnen viel lesen über der OWASP Project Dokumentation . Insbesondere leitet die OWASP Application Security Verification und Test / Entwicklung. Die Einstellung müssen Sie gründlich Ihre Anwendung testen, ist ein wenig anders als die normale Entwicklung mindset (nicht, dass es anders sein sollte, aber es ist in der Regel).

Ratte Proxy ?

  

Ein halbautomatisches, weitgehend passives Web   Application Security Audit-Tool,   optimiert für eine genaue und   sensitiver Nachweis und die automatische   Annotation von möglichen Problemen und   sicherheitsrelevanten Entwurfsmuster   basiert auf der Beobachtung der bestehenden,   benutzerinitiierte Datenverkehr in komplexem Web   2.0-Umgebungen.

     

Erkennt und priorisiert große Klassen   Sicherheitsprobleme, wie dynamische   Cross-Site-Vertrauensmodell Überlegungen,   Skript Aufnahme Themen, Inhalte   dienenden Probleme, unzureichende XSRF   und XSS Verteidigung und vieles mehr

     

ratproxy wird derzeit angenommen, Linux, FreeBSD, MacOS X und Windows (Cygwin) Umgebungen unterstützen.

Ich weiß, dass Sie speziell über Pentesting Tools gefragt, aber da diese haben reichlich beantwortet worden (ich in der Regel mit einer Mischung aus AppScan und trainierte Pentester gehen), ich glaube, es ist wichtig, darauf zu hinweisen, dass Pentesting ist nicht der einzige Weg, um „Check für Sicherheitslücken“, und ist oft nicht die effektivste.

Die Quellcode Review-Tools können Sie mit vielen besseren Einblick in Ihre Codebasis zur Verfügung stellen, und viele Mängel feststellen, dass Pentesting nicht.

Dazu gehören Fortify und OunceLabs (teuer und für viele Sprachen), VisualStudio.NET CodeAnalysis (für .NET und C ++, frei mit VSTS, anständig, aber nicht gut), OWASP der LAPSE für Java (kostenlos, anständig nicht gut), CheckMarx (nicht billig, phantastisches Werkzeug für .NET und Java, aber hoch oben), und viele mehr.

Ein wichtiger Punkt müssen Sie beachten, - (die meisten) die automatisierten Tools finden nicht alle Schwachstellen, nicht einmal annähernd. Sie können die automatisierten Tools erwarten etwa 35-40% des secbugs zu finden, die von einem professionellen Pentester finden würden; das gleiche gilt für die automatisierte vs. manuelle Quellcode Bewertung.

Und natürlich eine richtige SDLC (Security Development Lifecycle), einschließlich Threat Modeling, Design Review, etc., wird dazu beitragen, noch mehr ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top