Frage:
Webserver-Angriffsmethode: Warum sollten Sie sich mit manuellen Tests beschäftigen, wenn der Schwachstellenscanner alles tut?
botanga
2020-02-29 18:54:54 UTC
view on stackexchange narkive permalink

Ich lese ein White-Hat-Hacking-Buch aus einer berühmten Zertifizierung. Sie sagen, die Methode zum Hacken eines Webservers lautet:

  • Sammeln von Informationen (Domainname, DNS, IP usw.). )
  • Footprinting (z. B. Banner Grabbing)
  • Website-Spiegelung
  • Scannen von Sicherheitslücken
  • Sitzungsentführung
  • Passwort Knacken

Abgesehen von der Entführung von Sitzungen und dem Sammeln von Informationen verstehe ich nicht, warum ich nicht einfach Acunetix Web App Scanner und / oder Nessus starten würde, um alle Schwachstellen zu finden.

Was bringt es, manuelle Tests durchzuführen, wenn Sie sie automatisieren können?

Wenn der Schwachstellenscanner beispielsweise nicht weiß, wie anfällige Cookies zu finden sind, und wenn ich manuell einen Weg finde, um Sitzungsentführungen durchzuführen, Ich werde Acunetix von Nessus dafür nicht trainieren können. Selbst wenn ich es tun würde, weiß ich nicht, wie nützlich es wäre.

Bitte erklären Sie, warum ich nicht einfach mein Tool das Hacken für mich ausführen lassen würde.

Warum sollten Sie sich die Mühe machen, eine Sprache zu lernen, wenn Sie Google Translate haben?Weil automatisierte Tools nicht so gut funktionieren wie Menschen.
-1
Ich hatte mehrere Projekte, die alle Nessus-Scans bestanden hatten, und bat dann einen Sicherheitsberater, einen Blick darauf zu werfen. 12 Stunden später loggte er sich als Administratorkonto ein und änderte mein Passwort. Der Schwachstellenscanner kann nicht alle Schwachstellen finden, nur weil Software nicht kreativ ist
Ein Tool behandelt Ihre Ressource als Black Box.Ein Mensch kann sein Wissen nutzen, um es zumindest teilweise als weiße Kiste zu behandeln.
Automatisierte Tools können ein guter Anfang sein, sollten aber niemals damit enden.
Wie würden solche Werkzeuge existieren, wenn niemand dieses Zeug lernen würde?
Fünf antworten:
schroeder
2020-02-29 19:34:13 UTC
view on stackexchange narkive permalink

Hier haben Sie mehrere Annahmen:

  • Scanner können alle Sicherheitslücken finden
  • Wenn ein Scanner keine Sicherheitslücke finden kann, gibt es keine Sicherheitslücken
  • Alle manuellen Aufgaben können automatisiert werden.
  • Angreifer verwenden nur automatisierte Tools und keine manuellen Ansätze.
  • Manuelle Ansätze können nicht in maßgeschneiderte automatisierte Tools umgewandelt werden Entspricht der Ausnutzung der Sicherheitsanfälligkeiten

Keine dieser Annahmen ist allgemein gültig.

Automatisierte Scanner helfen dabei, Schwachstellen effizienter zu finden, sind jedoch bei weitem nicht perfekt und bei weitem nicht vollständig. Scanner sind auch nicht dafür ausgelegt, die Sicherheitslücken auf nützliche Weise auszunutzen.

In der Praxis möchten Sie die Ergebnisse eines Scanners manuell testen (Fehlalarme) und manuelle Tests durchführen, um nach Dingen zu suchen, die das automatisierte Tool möglicherweise übersehen hat.

Angreifer verwenden eine Mischung aus Ansätzen und erstellen oder ändern dann häufig ein Tool, um die Sicherheitsanfälligkeit so auszunutzen, dass sie wiederholbar und zuverlässig ist. Dies bedeutet jedoch nicht, dass das Tool in anderen Situationen funktioniert.

Automatisierte Tests sind die Grundschwelle. Wenn Ihre Site / Ihr Programm einen automatisierten Test nicht besteht, haben Sie einen ziemlich knochenköpfigen Fehler gemacht, der sofort behoben werden sollte (da er leicht zu finden ist). Ich habe jedoch einige Fälle gesehen, in denen ein Entwickler in seinem SQL eine Überprüfung auf 1 = 1 hinzugefügt hat, um sich vor automatischen Scannern zu verstecken, aber ich konnte die Site mit 2 = ausnutzen 2 (moderne SQL-Scanner berücksichtigen dies jetzt). Das wusste ich nur aus manuellen Tests und persönlichen Erfahrungen. Sie können Erfahrung und Intuition nicht in einem Werkzeug kodieren.

Codierung ist eine wahnsinnig komplexe Aktivität. Das bedeutet, dass die Fehler auch komplex sein können. Es konnte kein Tool erstellt werden, um alle Schwachstellen zu suchen oder auszunutzen.

Hahaha 2 = 2.Das ist schön.Ich verstehe, dass Erfahrung nicht zu vernachlässigen ist.Sagen Sie mir, wissen Sie, ob Zertifizierungen wie CEH den richtigen Ansatz haben?Ich bin wirklich kurz davor, mich für dieses Zertifikat zu registrieren. Ich möchte nicht dorthin gehen, wenn es ein anderes mit einem realistischeren Ansatz gibt
Es ist nicht so linear.CEH ist ein gutes Zertifikat, wenn es gerade Ihren Anforderungen entspricht.Es ist nicht das beste Zertifikat, das Sie als alleiniges Lernen verwenden können.Es gibt viele andere Zertifikate, aber sie sind eher für Leute mit mehr Erfahrung gedacht.CEH ist eines dieser Dinge, bei denen es in Ordnung ist, wenn Sie nichts wissen, aber wenn Sie ein wenig mehr lernen, werden Sie feststellen, warum CEH Probleme hat.Stellen Sie sicher, dass Sie wahrscheinlich alles ersetzen, was Sie gelernt haben.
Übrigens.Das 2 = 2-Beispiel ist auch auf andere Weise eine schöne Lektion.Manuelle Penetrationstests helfen Ihnen nicht nur als Sicherheitsexperte / Penetrationstester usw., Exploits zu finden. Wenn Sie nur automatische Tests durchführen, schulen Sie Ihre Entwickler auch darin, die automatischen Tests zu bestehen, anstatt über Sicherheit im Allgemeinen nachzudenken, dh sie produzierenDummy-Sicherheit genau so 1 = 1 Sache.Regelmäßige manuelle Tests, die einige Abweichungen mit sich bringen und nur "aus Versehen" dem entgegenwirken können.
Können Sie bitte erklären, worum es bei der Sache "1 = 1" geht?Oder sag mir, wonach ich suchen soll, um mehr zu erfahren?
@TomášZato-ReinstateMonica ist ein typischer SQL-Injection-Test: Einige Abfragen sind so geschrieben, dass sie für eine neue in die Abfrage eingegebene Logik offen sind, z= 1`, was alle Datensätze zurückgeben würde.Das "OR 1 = 1" war ein so beliebtes Beispiel für SQLi, dass Scanner es wörtlich verwenden und Entwickler diese bestimmte Zeichenfolge blockieren würden.Moderne Scanner verwenden jetzt zufällige Zeichenfolgen anstelle von fest codierten zum Testen.
Also nur zur Klarstellung.Der von Ihnen erwähnte Entwickler hat dies absichtlich hinzugefügt, um die Sicherheitsanfälligkeit zu verbergen, anstatt sie zu beheben.Das ist schlecht.
@TomášZato-ReinstateMonica das stimmt.Die Idee war: "Nun, so testen und implementieren Sie SQLi, also werden wir damit aufhören."
Ihre ersten beiden Aufzählungszeichen sind logisch äquivalent
@Cruncher Sie sind absolut richtig.Und ich weiß, dass sie es sind.Die Frage bleibt also: Warum habe ich sie zu 2 verschiedenen Punkten gemacht ...?
Demento
2020-02-29 19:39:37 UTC
view on stackexchange narkive permalink

DAST -Tools weisen mehrere Einschränkungen auf, die durch manuelle Überprüfung der Anwendung behoben werden müssen:

  • Sie können keine Fehler in der Geschäftslogik finden, da sie die nicht verstehen Anwendungsfälle und Missbrauchsfälle der Anwendung.
  • Sie finden nur bekannte Schwachstellentypen und -muster. Ihr Kilometerstand hängt vom Reifegrad des Scanners ab, aber selbst die besten Scanner finden nicht alle Probleme.
  • Komplexe Muster weisen häufig subtile Sicherheitsprobleme auf, z. B. eine benutzerdefinierte Implementierung eines Autorisierungsprotokolls wie OAuth. Nur wenn die zugrunde liegende Architektur im Detail untersucht wird, kann ein Pentester diese Fehler finden, während ein automatisiertes Tool fehlschlägt, da diese Art der Analyse Argumente höherer Ordnung erfordert.
  • Nutzdaten zur Überprüfung der Ausnutzbarkeit einer Anwendung sind häufig vorhanden für die spezifische Anwendung hergestellt werden. Selbst wenn der Scanner eine Sicherheitsanfälligkeit vermutet, muss die Überprüfung häufig manuell erfolgen.

Ein Sicherheitsscanner ist jedoch ein praktisches Werkzeug im Arsenal eines Penetrationstesters, um einen niedrigen Wert zu ermitteln hängende Früchte. Der Großteil der Arbeit wird weiterhin manuell ausgeführt.

Außerdem sollten Sie als Sicherheitstester nach Möglichkeit immer Whitebox-Tests durchführen. Dazu gehört der Zugriff auf den Quellcode, sodass Sie auch SAST -Tools verwenden können. Diese Tools weisen ähnliche Einschränkungen auf, können jedoch möglicherweise verschiedene Arten von Sicherheitslücken finden und dadurch einen Mehrwert schaffen. Aber selbst mit kombinierten DAST- und SAST-Tools erreichen Sie ohne manuelle Tests nicht die erforderliche Testtiefe, insbesondere für Anwendungen mit einem hohen Schutzprofil.

Ja, ich stimme Ihnen in Bezug auf den Fehler in der Geschäftslogik voll und ganz zu.
Anonymous
2020-02-29 21:34:42 UTC
view on stackexchange narkive permalink

Hier ist ein sehr aktuelles Thema, das sich mit demselben Thema befasst: Warum findet OpenVAS im Vergleich zu Nmap nicht alle offenen Ports?. Imbiss: Jedes Werkzeug ist anders und kann zu unterschiedlichen Ergebnissen führen. Ganz zu schweigen von Fehlalarmen und unterschiedlichen Testmethoden.

Einfach ausgedrückt, machen automatisierte Tools fundierte Vermutungen und interpretieren Ergebnisse. Meistens machen sie es richtig. Aber Sie müssen verstehen, wie das Tool funktioniert, was es tut (und nicht ) und in der Lage sein, es zu optimieren , um optimale Ergebnisse zu erzielen .

Ein einfaches Beispiel: Standardmäßig scannen nmap, Openvas usw. nicht alle TCP / UDP-Ports, sondern eine Auswahl der beliebtesten Ports, dh einige Tausend von 65535. Wenn Sie sich nicht bewusst sind und Wenn Sie die Tools mit den Standardeinstellungen ausführen, können Sie sehr leicht aktive Ports übersehen. Beispielsweise entscheiden sich viele Systemadministratoren dafür, SSH auf einem zufälligen Port anstatt auf dem Standard-22 auszuführen.

Die automatisierten Tools verfügen normalerweise über zahlreiche Optionen und nicht nur über eine Schaltfläche. Sie müssen also verstehen, was sie tun oder tun Sie schießen im Dunkeln. Dann ist Ihre Prüfung nicht eingehend und von geringem Wert, da Sie nicht wissen, was Sie tun und wonach Sie suchen sollten. Alles, was Sie getan haben, ist, die Oberfläche zu kratzen und nach den offensichtlichsten Fehlern zu suchen.

Anders ausgedrückt, warum sollten wir professionelle Pentester einstellen, wenn nur ein Tool heruntergeladen und ausgeführt werden muss? Weil ein kompetenter Pentester Erfahrung hat und weiter geht und Schwachstellen finden kann, als ein Skriptkind übersehen wird.

Es ist selten "so einfach wie das Ausführen eines Tools". P. >

Auf einem ordnungsgemäß konfigurierten Computer, der im Internet verfügbar ist, sollte ein Verteidigungsmechanismus integriert sein: eine Firewall und / oder ein IDS, die diese Art von Aufklärungsbemühungen verhindern.

Wenn sie Port-Scan-Aktivitäten erkennen, blockieren sie normalerweise Ihre IP-Adresse oder drosseln den Datenverkehr, verwerfen einige Pakete selektiv oder geben absichtlich irreführende Ergebnisse zurück, um Hacker zu frustrieren. Sie erhalten unvollständige oder geradezu falsche Ergebnisse.

Beachten Sie, dass Tools wie nmap, Acunetix usw. verrauscht sind und normalerweise von einem IDS sehr leicht erkannt (und blockiert) werden können, weil Der von ihnen erzeugte Datenverkehr weist typische Signaturen und Muster auf. Wenn Sie also keine Maschine testen, die ungeschützt oder lose geschützt ist (möglicherweise in einem LAN), müssen Sie sie ziemlich optimieren, um aussagekräftige Ergebnisse zu erzielen.

Die Antwort lautet also, dass Sie beides tun : Sie verwenden automatisierte Tools und führen dann manuelle Tests durch, insbesondere wenn das Tool etwas entdeckt hat, z. B. einen offenen Port, diesen jedoch nicht ausnutzen konnte, oder wenn Sie dies überprüfen möchten.

Im Laufe eines Jahres oder sogar einiger Tage können Sie jeden Port prüfen ... und werden niemals erkannt.Verschieben von IP, MAC, Testport, Zeitverzögerungen - es ist Katz und Maus, und wenn Sie für das lange Spiel arbeiten, was sind dann überhaupt ein paar Wochen?
secprof
2020-02-29 19:05:14 UTC
view on stackexchange narkive permalink

Schwachstellenscanner können nicht jede vorhandene Schwachstelle finden. Sie suchen im Wesentlichen nach Mustern und Ausnutzbarkeit bereits bekannter Schwachstellen.

Außerdem können bei Verwendung automatisierter Tools falsch positive Ergebnisse oder andere unerwartete Ausgaben auftreten. Sie benötigen also Fachleute, die die Ausgabe bewerten und fortgeschrittenere Pentests durchführen können.

Was ist "fortgeschritteneres Pentesting"?Ist CEH fortgeschrittenes Pentesting?Ist eine Zertifizierung wirklich fortgeschritten?Von fortgeschritteneren Mitteln hochqualifizierte Reasercher?Ich frage, weil fast alle Zertifizierungen das gleiche Material oder die Ergebnisse von Forschungen enthalten, die in Tools verpackt sind.Am Ende scheint es also immer darum zu gehen, das richtige Werkzeug zu finden
@botanga CEH ist eine Einstiegszertifizierung - und eine wirklich schlechte.
@botanga nein, es kommt nicht auf das richtige Werkzeug an.Es kommt auf den richtigen Ansatz an.Manchmal beinhaltet der richtige Ansatz ein Werkzeug.
OH MEIN GOTT.Ich dachte darüber nach, eine Gran in CEH zu investieren.Sag mir nicht, ich werde es bereuen lol
@botanga Meiner Erfahrung nach kann kein Zertifikat, Diplom oder Abschluss jemanden mit echtem Talent ersetzen, um Wege zu finden, das System zu nutzen.Talent in diesem Bereich zu entwickeln ist dasselbe wie Talent in irgendetwas anderem zu entwickeln: Skateboarding, Programmieren, Malen usw. - Sie brauchen viel Übung und eine Leidenschaft dafür (weil es schnell langweilig wird, etwas zu tun, das Sie nicht wiederholt interessiert).Für einige, die zur Schule gehen (Universität, Kunstschule, Rechtsschule usw.), ist dies eine Möglichkeit, etwas Übung zu bekommen und die Leute dazu zu bringen, Sie zu führen.Für einige ist die Durchführung vieler Tests eine Möglichkeit, um zu beweisen, dass sie über die erforderlichen Fähigkeiten verfügen
... Ein Zertifikat, ein Diplom oder ein Abschluss ist nur ein Hinweis für andere (und manchmal auch für sich selbst), dass Sie wissen, was Sie tun.Das bedeutet nicht, dass du gut darin bist
Minh-Triet Pham Tran
2020-03-04 12:48:40 UTC
view on stackexchange narkive permalink

Hier sind einige häufig auftretende schwierige Herausforderungen (insbesondere bei den Aufklärungs- und Schwenkaktivitäten) für automatische Scanner für die Anwendungssicherheit, die sie normalerweise nicht erkennen oder die möglicherweise falsch positiv erkannt werden:

  • Versteckter Parameter Erkennung für weiteres Scannen
  • Versteckte oder relativ referenzierte URL-Erkennung für weiteres Scannen
  • Auswirkungen auf die Sicherheit von Unternehmen und Logik, um eine Sicherheitsanfälligkeit aufgrund potenzieller falsch positiver Erkennungen zu identifizieren. Die Bedrohung durch CSRF-Angriffe gehört zu dieser Art von Herausforderung. Scanner haben auch Probleme mit den Sicherheitsanfälligkeiten, die nur angezeigt werden, wenn ein bestimmter Wert eines Parameters festgelegt ist.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...