Scanner zum Erkennen schwacher Passwörter in DBMS

In jedem Unternehmen gibt es Schwachstellenscanner, die auf Informationssicherheit achten. Aber nicht jeder Scanner kann Kennwörter von lokalen Konten in der Datenbank auf ihre Stärke überprüfen.



Das Problem ist, dass lokale Konten meistens nicht ablaufen, nicht auf Komplexität überprüft werden und dennoch privilegierten Zugriff haben. Außerdem ermöglichen Kennwortrichtlinien nicht immer eine flexible Konfiguration von Anforderungen, z. B. verbieten sie nicht die Verwendung von Wörterbuchkennwörtern (denken Sie an das Lieblings-P @ ssw0rd aller).



Wir bei QIWI hatten ähnliche Probleme, und um sie zu lösen, haben wir verschiedene Lösungen für einen vollwertigen Datenbank-Scan ausprobiert. Leider zielen sie hauptsächlich darauf ab, die Konfiguration des DBMS zu überprüfen und nicht mehr. Gleichzeitig ist der Preis eines solchen Scanners ziemlich beeindruckend.



Und wenn wir allgemein über einen Sicherheitsscanner sprechen, der Ihre Infrastruktur auf Schwachstellen überprüfen kann, benötigen Sie einen Satz solcher Scanner, was sehr teuer ist.



In diesem Beitrag werde ich darüber sprechen, was wir für unsere Aufgaben verwendet haben und wie wir dabei zu dem Schluss gekommen sind, dass es besser und einfacher ist, unsere eigenen zu erstellen. Und ich werde die Lösung mit allen teilen.





Wir verwenden einen ziemlich guten populären Scanner. Es war jedoch schwierig, die Funktionen zu implementieren, die wir dafür benötigten. Wir mussten Überwachungsdateien für jede Datenbank erstellen (da das DBMS unterschiedliche Konfigurationen aufweist), viele Konten zum Scannen erstellen und dann neue Konten hinzufügen, um die Prüfer erneut manuell zu ändern.

Darüber hinaus weiß dieser Scanner nicht, wie Passwörter offline gelöscht werden sollen, was ein Problem darstellt. Und deshalb.



Brute Force kann in zwei Modi ausgeführt werden - online und offline. Wenn es sich um Online-Brute-Force-Angriffe handelt, handelt es sich um die Emulation von Benutzeranmeldungen und aktiven Brute-Force-Angriffen. Ein solches Programm ist Hydra und unterstützt die meisten DBMS. Der Ansatz ist in den meisten Fällen für die Durchführung von Penetrationstests und die Erkennung von Standardkonten und -kennwörtern anwendbar. Nicht geeignet für regelmäßige Überprüfungen und nicht standardmäßige Konten (Benutzer und Dienst). Weil Konten in diesem Fall gesperrt werden, wenn eine entsprechende Sicherheitsrichtlinie vorhanden ist.



Im Gegensatz zu Online-Brute-Force werden in der Offline-Version Anmeldungen und Kennwort-Hashes entladen. Anschließend wird Brute-Force mit Dienstprogrammen wie Hashcat oder John the Ripper ausgeführt. Die Datenbank wird nicht belastet und es besteht die Gefahr, dass das Konto mit brutaler Gewalt gesperrt wird. Sie können auch Wörterbücher mit mehreren Millionen Einträgen verwenden, was mit Online-Brute-Force fast unmöglich ist.



Wir machen unsere



Da es schwierig ist, die beschriebene Funktionalität mit dem aktuellen Scanner zu implementieren, und es teuer ist, einen zusätzlichen zu kaufen, kam die Idee, einen eigenen Scanner herzustellen.



Aus diesem Grund verfügen wir über einen eigenen Scanner für lokale Brute-Force-Offline-Konten.

Der Scanner unterstützt MS SQL, Oracle und PostgreSQL. Natürlich gab es einige technische Schwierigkeiten, zum Beispiel das Abrufen von Hashes in einem von Hashcat unterstützten Format. Die Hauptschwierigkeit besteht jedoch darin, zu verstehen, wie mit den gefundenen Ergebnissen gearbeitet wird: wie das Kennwort geändert wird, ohne die Produktivität zu beeinträchtigen, wie sichergestellt wird, dass solche Kennwörter nicht erneut angezeigt werden usw.

Wir werden dies jedoch außerhalb des Geltungsbereichs dieses Artikels belassen.



Die Benutzeroberfläche wird bei Verwendung des Django-Admin-Panels nicht wesentlich verbessert. Es sieht aus wie das:







  • Es ist möglich, die Liste der Datenbanken anzuzeigen und neue hinzuzufügen
  • Sie können den Brute-Force-Status für jedes Konto anzeigen
  • Sie können die Scanergebnisse sehen
  • Wenn ein schwaches Passwort übereinstimmt, wird dies in den Ergebnissen angezeigt (Passwort-Hash, Passwort erraten und Kontoname).








  • Sie können die Scanzeit einstellen




Hauptvorteile



  • Kann im Offline-Modus brutal arbeiten
  • Es gibt eine Wörterbuchprüfung
  • Es ist alles kostenlos




Wenn Sie Zweifel haben, ob Sie einen solchen Scanner bereitstellen müssen, können Sie versuchen, Kennwort-Hashes manuell von lokalen Konten abzurufen und sie anhand von Hashcat-Anforderungsbeispielen auszuführen



:



Oracle 11g

select user#, name, spare4 from sys.user$ where spare4 is not null;




Microsoft SQL Server (über 2005):

select name, cast (name+'|'+master.dbo.fn_VarBinToHexStr(password_hash) as varchar(1000)) FROM master.sys.sql_logins




Unser Scanner ersetzt keinen vollwertigen Sicherheitsscanner, ist jedoch eine wichtige und angenehme Ergänzung. Und jetzt ist es für alle verfügbar: github.com/qiwi/bruteforce

Wenn Sie Fragen oder Schwierigkeiten bei der Bereitstellung haben, erstellen Sie ein Problem mit github, das wir auf jeden Fall beantworten werden.



Vielen Dank für die UmsetzungSurdum und Slezhuk



All Articles