Zuhause Persönliche Finanzen Fallstudie zur Sicherheitsanfälligkeit in Datenbanken - Dummys

Fallstudie zur Sicherheitsanfälligkeit in Datenbanken - Dummys

Inhaltsverzeichnis:

Video: Roland Berger Webinar – „Do's und Don'ts in Case-Interviews“ German 2024

Video: Roland Berger Webinar – „Do's und Don'ts in Case-Interviews“ German 2024
Anonim

In dieser Fallstudie teilte Chip Andrews, Experte für SQL Server-Sicherheit, diese Erfahrung des (ethischen) Hackens mit einem Kunden. Datenbank, um Sicherheitslücken aufzudecken. Dieses Beispiel bietet eine Warnung, um Ihre wichtigen Informationen zu schützen, indem Sie auf einer soliden Datenbanksicherheit bestehen.

Die Situation

Während eines routinemäßigen Penetrationstests führte Andrews die obligatorischen Google-Suchen, die Recherche nach Domainnamen, das Fingerabdrücken von Betriebssystemen und Port-Scans durch. Diese Website war jedoch fest verschlossen. In der webbasierten Anwendung, die auf dem System ausgeführt wird, wurde er sofort mit einer Anmeldeseite konfrontiert, die SSL-verschlüsselte Formularauthentifizierung verwendet.

Beim Überprüfen der Quelle der Webseite stellte er fest, dass ein verstecktes Feld "App_Name" an die Anwendung übergeben wurde, wenn ein Benutzer versuchte, sich bei der Site anzumelden. Könnte es sein, dass es den Entwicklern nicht gelungen ist, eine korrekte Eingabeüberprüfung für diesen unschuldig aussehenden Parameter durchzuführen? Die Jagd war an.

Das Ergebnis

Zuerst war es an der Zeit, das Toolkit zusammenzustellen. Zum Zeitpunkt dieses Penetrationstests zog Herr Andrews es vor, Folgendes zu verwenden: Paros Proxy, Absinthe, Cain & Abel, Data Thief und das Microsoft SQL Server Management Studio / SQL Server (Express Edition), die alle kostenlos verfügbar sind…

Für den Anfang verwendete er Paros Proxy, um mehr Kontrolle und Sichtbarkeit für die Webanforderungen zu ermöglichen, die an den Webserver gestellt wurden.

Nachdem die Website für verfügbare Seiten gespikt und eine schnelle Anfälligkeitsprüfung für die SQL-Injection durchgeführt wurde, wurde bestätigt, dass der Parameter App_Name anscheinend dazu führte, dass die Anwendung eine Error 500-Ausnahme auslöste und einen Anwendungsfehler anzeigte. Penetrationstests sind eine der seltenen Gelegenheiten, bei denen ein Anwendungsfehler ein wünschenswertes Ergebnis ist.

Da der Anwendungsfehler darauf hinwies, dass Herr Andrews unbeabsichtigte Zeichen in den SQL-Code injizieren konnte, der von der Anwendung an die Datenbank gesendet wurde, konnte er erkennen, ob es sich um eine ausnutzbare Bedingung handelt.

Ein gängiger Test, der mit Microsoft SQL Server-Datenbanken funktioniert, besteht darin, einen Befehl wie WAITFOR DELAY '00: 00: 10 'einzufügen, wodurch der Datenbankserver für 10 Sekunden blockiert wird. In einer Anwendung, die normalerweise eine Seite in einer Sekunde oder weniger zurückgibt, ist eine konsistente Verzögerung von 10 Sekunden ein guter Indikator dafür, dass Sie Befehle in den SQL-Datenstrom einfügen können.

Als nächstes versuchte Mr. Andrews, das Data Thief-Tool zu verwenden, um die Anmeldeseite anzugreifen.Dieses Tool versucht, die Datenbank dazu zu zwingen, einen OPENROWSET-Befehl zu verwenden, um Daten aus der Zieldatenbank in die Datenbank von Herrn Andrews im Internet zu kopieren.

Dies ist normalerweise eine sehr effiziente Methode, um große Datenmengen aus anfälligen Datenbanken zu entfernen, aber in diesem Fall wurde sein Angriff vereitelt! Der Datenbankadministrator am Ziel hatte die OPENROWSET-Funktionalität deaktiviert, indem er die Option Adhoc Distributed Queries deaktivieren korrekt konfiguriert hat.

Mit dem Fleiß als seine Parole beharrte Mr. Andrews auf dem nächsten Werkzeug - Absinthe. Dieses Tool verwendet eine Technik namens Blind-SQL-Injektion , um mit einfachen Ja oder Nein-Fragen der Datenbank Bestimmungen über Daten zu treffen. Zum Beispiel könnte das Tool die Datenbank fragen, ob der erste Buchstabe einer Tabelle kleiner als "L" ist. "

Wenn ja, könnte die Anwendung nichts tun, aber wenn nein, könnte die Anwendung eine Ausnahme auslösen. Mit dieser einfachen Binärlogik ist es möglich, diese Technik zu nutzen, um die gesamte Datenbankstruktur und sogar die darin gespeicherten Daten sichtbar zu machen - wenn auch nur sehr langsam. Mithilfe des Tools identifizierte er eine Tabelle mit vertraulichen Kundeninformationen und lud mehrere hundert Datensätze herunter, um den Kunden zu zeigen.

Endlich war es an der Zeit, einen letzten Akt der Datenbankunterschlagung zu versuchen. Zuerst hat Herr Andrews das Werkzeug namens Cain & Abel geladen und es in den Schnüffelmodus versetzt. Dann benutzte er unter Verwendung von Paros Proxy und dem bereits identifizierten verwundbaren Parameter die erweiterte gespeicherte Prozedur xp_dirtree, die für SQL Server-Datenbankbenutzer verfügbar ist, um zu versuchen, ein Verzeichnis auf seinem mit dem Internet verbundenen Rechner unter Verwendung eines Universal Naming Convention-Pfads anzuzeigen.

Dadurch wurde die Zieldatenbank gezwungen, sich tatsächlich gegen Mr. Andrews 'Maschine zu authentifizieren. Da Cain & Abel den Draht abhörte, erhielt es den Hash der Abfrage, mit der die freigegebene Dateifreigabe authentifiziert wurde.

Durch Übergeben dieses Hashs an den in Cain & Abel integrierten Passwort-Cracker hätte Mr. Andrews den Benutzernamen und das Passwort des Kontos, unter dem der anfällige SQL-Server in kürzester Zeit ausgeführt wurde.

Würde dieses gehackte Konto dasselbe Passwort verwenden wie das Admin-Konto der Webanwendung? Wäre dieses Passwort das gleiche wie das lokale Administratorkonto auf dem Host? Das waren Fragen für einen anderen Tag. Es war an der Zeit, alle gesammelten Daten zusammenzustellen, einen Bericht für den Kunden zu erstellen und die Werkzeuge für einen weiteren Tag abzulegen.

Chip Andrews ist Mitbegründer der Sicherheitsberatungsfirma Special Ops Security, Inc. und Inhaber von SQLSecurity. com, das über mehrere Ressourcen zur Microsoft SQL Server-Sicherheit verfügt, einschließlich des SQLPing3-Tools. Als Co-Autor für mehrere Bücher über SQL Server-Sicherheit und einen Black-Hat-Moderator fördert Mr. Andrews seit 1999 die Sicherheit von SQL Server und Anwendungen.

Fallstudie zur Sicherheitsanfälligkeit in Datenbanken - Dummys

Die Wahl des Herausgebers

Tipps für die Auswahl von Feldtypen in Access 2013 - Dummies

Tipps für die Auswahl von Feldtypen in Access 2013 - Dummies

Beim Entwerfen einer Datenbank in Access 2013 Entscheiden Sie, welcher Typ jedes Feld sein wird. Access bietet 12 Feldtypen, aus denen Sie auswählen können. Wählen Sie den Feldtyp aus, der am besten die Daten beschreibt, die Sie im Feld speichern möchten, und das funktioniert für den Analysetyp, den Sie benötigen, um die ...

Nützliche Funktionen in Access 2007 - Dummies

Nützliche Funktionen in Access 2007 - Dummies

Obwohl Access 2007 über mehrere integrierte Funktionen verfügt, dürfen Sie nicht mehr verwenden. als ein paar von ihnen in Ihren Berichten. Dennoch, wenn Sie nicht wissen, dass sie verfügbar sind, könnten Sie viele der Funktionen vermissen, die Sie wirklich nützlich finden könnten. Obwohl diese Liste weit davon entfernt ist, umfassend zu sein, zeigt diese Tabelle eine Reihe von Funktionen ...

Sichern Ihrer Access 2003-Datenbank als MDE-Datei - Dummies

Sichern Ihrer Access 2003-Datenbank als MDE-Datei - Dummies

Wenn Sie eine Access 2003-Datenbank erstellen. andere Leute - besonders Leute, die ein wenig ratlos über Access sind - Sie können Ihre Datenbank sperren, um andere Benutzer daran zu hindern, Änderungen vorzunehmen, die sie möglicherweise beschädigen. Sie können Sicherheit in Form von Benutzernamen und Passwörtern hinzufügen, aber ...

Die Wahl des Herausgebers

Ruby Datentypen und Variablen - Dummys

Ruby Datentypen und Variablen - Dummys

Variablen in Ruby werden mit alphanumerischen Zeichen und dem Unterstrich (_) bezeichnet. und kann nicht mit einer Zahl oder einem Großbuchstaben beginnen. Variablen, wie in der Algebra, sind Schlüsselwörter, die verwendet werden, um Datenwerte für eine spätere Verwendung zu speichern. Obwohl sich die in einer Variablen gespeicherten Daten ändern können, ist der Variablenname immer derselbe. Denken Sie an ...

Mit Array und Hash Built-in und verwandten Methoden - Dummies

Mit Array und Hash Built-in und verwandten Methoden - Dummies

Ruby hat viele integrierte Klassen, aber vielleicht die nützlichsten Objekte für die Speicherung anderer Daten sind die Container-Klassen Array und Hash. Sie können viel Zeit beim Codieren sparen, wenn Sie sich daran erinnern, dass jede dieser Klassen viele nützliche Methoden für den Zugriff und die Manipulation ihrer Inhalte hat. Array-Grundlagen Verwenden Sie Arrays für Listen ...

Wie man Scratch-Grafiken in andere Anwendungen exportiert - Dummies

Wie man Scratch-Grafiken in andere Anwendungen exportiert - Dummies

Scratch-Benutzer können Grafiken für andere Anwendungen entwerfen und exportieren wie Microsoft Word und PowerPoint. Eine einfach zu findende Schaltfläche (aus Datei hochladen) ermöglicht es Benutzern, Grafiken in Scratch zu importieren, aber viele Benutzer wissen nicht, wie sie Grafiken auf einem Computer speichern und die Bilder wie andere Grafikdateien exportieren können. Öffnen Sie ein Scratch-Projekt. ...

Die Wahl des Herausgebers

Hinzufügen von Fußnoten und Endnoten in Word 2016 - dummies

Hinzufügen von Fußnoten und Endnoten in Word 2016 - dummies

Fußnoten und Endnoten in Word 2016 enthalten Bonusinformationen, eine Klarstellung oder beiseite, um Text auf einer Seite zu ergänzen. Jede ist im Text durch eine hochgestellte Zahl oder einen Buchstaben gekennzeichnet1. 1 Siehe? Es klappt! Der Unterschied zwischen einer Fußnote und einer Endnote liegt in der Platzierung: Eine Fußnote wird unten angezeigt ...

Wie man Datum und Uhrzeit in Word 2013 Dokument hinzufügt - Dummies

Wie man Datum und Uhrzeit in Word 2013 Dokument hinzufügt - Dummies

Sie haben wahrscheinlich Leute Sie möchten das aktuelle Datum und die aktuelle Uhrzeit kennen oder möchten einfach das Datum oder die Uhrzeit oder beide in Ihr Word 2013-Dokument einfügen. Bis auf wenige Ausnahmen sind Zeitreisende die einzigen, die sich für das laufende Jahr erkundigen. Aber vielleicht brauchen Sie es in Ihrem Dokument ...

Wie man Datum und Uhrzeit zu einem Word 2010 Dokument hinzufügt - Dummies

Wie man Datum und Uhrzeit zu einem Word 2010 Dokument hinzufügt - Dummies

Sie wahrscheinlich haben Leute, die das aktuelle Datum und die Uhrzeit in Ihrem Word 2010-Dokument kennen möchten, oder vielleicht möchten Sie nur das Datum oder die Uhrzeit (oder beides) in Ihr Dokument einfügen. Word hat viele Tricks, um es möglich zu machen. Festhalten des aktuellen Datums oder der aktuellen Uhrzeit in einem Word-Dokument Abgesehen von der Suche ...