Brute Force

Aus IT-Forensik Wiki

Brute Force ist eine Technik, die üblicherweise in der Kryptographie Anwendung findet. Prinzipiell wird hierbei durch das Ausprobieren jedes möglichen Schlüssels eines Schlüsselraumes versucht, den unverschlüsselten Inhalt zu erhalten.

Allgemeine Grundlagen

Bei der Brute Force Methode bzw. dem Brute Force Angriff werden alle möglichen Schlüssel des Schlüsselraumes ausprobiert. Dieses Vorgehen wird daher auch "vollständige Schlüsselsuche" oder "erschöpfendes Durchsuchen des Schlüsselraumes" (engl. exhaustive search) genannt. Bei dieser Methode werden keine besonderen kryptographischen Analysetechniken verwendet. In der Praxis wird diese Methode oft verwendet, da viele Benutzer weiterhin zu kurze und zu einfache Passwörter verwenden, was die Anzahl an möglichen Kombinationen und somit die benötigte Zeit, um das richtige Kennwort zu erraten, drastisch reduziert

Vorteile

Sofern man einen ausreichend großen Schlüsselraum gewählt hat, um alle möglichen Kombinationen der Zeichen des Alphabetes einer Verschlüsselung abzudecken, ist die Suche nach dem richtigen Schlüssel garantiert von Erfolg gekrönt. Dieses liegt der Tatsache zugrunde, dass sofern der Schlüssel tatsächlich im gewählten Schlüsselraum liegt, dieser irgendwann in der vollständigen Suche vorkommen wird.

Nachteile

Da in der Kryptographie mit extrem großen Zahlen und entsprechend großen Schlüsselräumen gearbeitet wird, ist der äußerst ineffiziente Brute Force Ansatz sehr ressourcenintensiv und kann eine sehr lange Zeit beanspruchen, bis der richtige Schlüssel gefunden wird. Selbst heutzutage, im Zeitalter von Hochleistungscomputern, paralleler Programmierung und Cluster-Systemen, lässt sich diese extrem große Menge von möglichen Schlüsseln nicht in einer vertretbaren Zeit durchprobieren.

Brute Force als Maß der Dinge

Man misst die Anfälligkeit eines kryptografischen Verfahrens gegenüber dedizierten Kryptoanalysen daran, inwieweit der Aufwand für eine erfolgreiche Analyse hinter der einer erschöpfenden Suche zurückbleibt. Man misst also, inwieweit Schlüssel effizienter gebrochen werden können als mit der Brute Force Attacke. [1]

Variationen von Brute-Force-Angriffen

Wörterbuchangriffe

Bedient sich der Tatsache, dass häufig einfache Worte anstatt zufälliger Zeichenkombinationen als Passwörter verwendet werden. Listen von häufig vorkommenden Passwörtern sind leicht im Internet zu erhalten und sind oft bei Angriffen auf eine breite Masse von Benutzern erfolgreich. Mithilfe solcher Listen lassen sich auch Kombinationen von häufig verwendeten Passwörtern mit häufigen Zahlenmustern generieren, was zwar die Anzahl an zu probierenden Kennwörtern der Liste erhöht, jedoch ebenso die Wahrscheinlichkeit, bei einem breiten Angriff, einen Erfolg zu erzielen, ohne wirklich alle möglichen Kombinationen durchprobieren zu müssen.

Suchraum einschränken

Wenn man bereits gewisse Bestandteile des Passwortes kennt (z.B. aufgrund von Social Engineering im Vorfeld), lassen sich große Teile des Schlüsselraumes ausschließen, sodass die Suche wesentlich schneller abgeschlossen werden kann.

Umgekehrter Brute-Force-Angriff

Wähle ein einfaches/häufig verwendetes Passwort und probiere dieses für viele/alle Benutzer aus. Falls dieses nicht zum Erfolg führt, wähle ein neues Passwort und beginne erneut.

Ziele von Brute-Force-Angriffen

Webseiten

Webseiten sind ein beliebtes Ziel von Brute-Force-Angriffen, da sie hoch verfügbar sind und man sich nur schwer vor Angriffen absichern kann. Eine Quell-IP-Adresse zu blockieren ist nicht viel wert, da sich der Angreifer ohne große Mühen eine neue besorgen kann. Angriffe können unter anderem auf die Logins von Accounts oder auch in der Phase der Reconnaissance zum Auffinden von verborgenen Webseiten bzw. Unterwebseiten (z.B. mit Dirbuster/dirb) vorkommen.

Datenbanken

Hat sich ein Angreifer Zugang zu einem System verschafft, auf dem Datenbanken mit Hashes liegen, wird er versuchen, sich die verschlüsselten Logindaten mit einem Angriff zu verschaffen. Dabei können Brute-Force-Angriffe hilfreich sein, indem sie die Benutzernamen mit den möglichen Passwortkombinationen in eine gewählte Hashfunktion (z.B. mit Hashcat) geben und diese so lange mit dem Hash in der Datenbank vergleichen, bis der Hash gebrochen, das passende Kennwort also gefunden wurde, aus dem der Hash generiert wurde.

Systemaccounts

Ein Angreifer kann versuchen, Zugriff auf vorzugsweise privilegierte Systemaccounts eines bereits kompromittierten Systems zu erlangen. Die Credentials liegen dabei häufig gehashed in gesonderten Dateien und können, wenn z.B. ein unsischeres Hashverfahren verwendet wurde, durch einen Brute-Force-Angriff herausgefunden werden.

Firewalls und Ports

Mithilfe von Brute-Force-Angriffen auf Netzwerk-Ports (z.B. SSH, FTP, SMTP) lassen sich Zugangsdaten zu bestimmten Protokollen eines Systems herausfinden. Über diese Protokolle hat ein Angreifer dann die Möglichkeit, auf Teile des Systems zuzugreifen, um so weitere Informationen über das System zu erhalten und sich letztendlich vollständigen Zugriff auf das System zu verschaffen.

Erkennen von Brute-Force-Angriffen

Brute-Force-Angriffe werden oft durch ein unerwartet hohes Aufkommen von neuen Systemprozesse/Cronjobs mit hoher Prozess-/oder Speicherauslastung erkannt. Die ungewöhnliche Systemlast bzw. der ungewöhnlich hohe Netzwerkverkehr bzw. die auffällig vielen Anfragen an einen bestimmten Port sind ebenfalls Anzeichen für einen laufenden Angriff. Ein IDS (Intrusion Detection System) oder ein Monitoring-Tool kann diese Hinweise protokollieren und entsprechende Warnungen an den Systemadministrator senden. [2]

Übliche Werkzeuge und Tools

Brute-Force-Angriffe lassen sich relativ einfach in jeder üblichen Programmiersprache implementieren.

Das folgende Beispiel ist in Python implementiert und kann einen Brute-Force-Angriff für Passwörter bis zu einer Länge von 5 Zeichen durchführen. Dabei ist es möglich alle Buchstabenkombinationen der Buchstaben von a bis z zu verwenden. Es ist zu bemerken, dass bei einem so kurzen Passwort und relativ einfachem Zeichensatz die Liste an möglichen Kombinationen bereits 12356630 Elemente enthält. Mit jedem weiteren Zeichen steigt die Anzahl der zu prüfenden Elemente exponentiell an.

 
 password = "abab"
 charset = 'abcdefghijklmnopqrstuvwxyz'

 maxlength = 5
 complete_list = []
 for current in range(maxlength):
     a = [i for i in charset]
     for y in range(current):
         a = [x+i for i in charset for x in a]
     complete_list = complete_list+a

 for x in complete_list:
     if x == password:
         print("Password found: " + x)
         exit()

Es gibt jedoch auch verbreitete Tools, die speziell für das effiziente Knacken von komplexen Passwörtern entwickelt wurden.

Unter anderem sind folgende Tools bekannt:

Darüber hinaus lassen sich weitere solcher Tools auch im Darknet ggf. gegen Bezahlung herunterladen.

Maßnahmen gegen Bruce-Force-Angriffe

  • Erhöhen der Passwortlänge: Mehr Zeichen bedeuten mehr Zeitaufwand für das Cracken mit Brute Force.
  • Erhöhen der Passwortkomplexität: Mehr Optionen für alle Zeichen steigern ebenfalls den Zeitaufwand für das Cracken mit Brute Force.
  • Begrenzung der Anmeldeversuche: Bei Brute-Force-Angriffen wird ein Zähler für fehlgeschlagene Anmeldungsversuche hochgesetzt – eine gute Verteidigung gegen Brute-Force-Angriffe ist es, Benutzer nach einigen fehlgeschlagenen Versuchen zu sperren, was einen laufenden Brute-Force-Angriff im Keim erstickt.
  • Einführen von Captchas: Captcha ist ein übliches System, um auf Websites sicherzustellen, dass ein Mensch wirklich ein Mensch ist, und kann laufende Brut-Force-Angriffe stoppen.
  • Verwenden von Multi-Faktor-Authentifizierung: Mit Multi-Faktor-Authentifizierung wird eine zweite Sicherheitsebene für jeden Anmeldungsversuch hinzugefügt, was eine menschliche Interaktion erforderlich macht und damit einen Erfolg von Brute-Force-Angriffen verhindern kann.[3]
  • Gegen Port-Bruce-Force-Angriffe auf Netzwerkports lässt sich u.a. die Port-Knocking-Funktion aktivieren (unter Linux, das knockd-Paket installieren).[4]

Ausblick Quantencomputer

Mit der wachsenden Forschung in den Bereichen der Quantencomputer, kommen auch Brute-Force-Angriffe wieder in Mode. Die Quanten-Kryptografie stellt eine konkrete realistische Bedrohung für die aktuellen kryptographischen Methoden zur Verschlüsselung von Informationen dar.

Mithilfe des Grover-Algorithmus lässt sich eine außergewöhnlich effektive vollständige Schlüsselsuche implementieren, welche gegen alle symmetrischen Verschlüsselungsverfahren funktioniert. Eine AES-Verschlüsselung mit 128 Bit bietet, wenn sie von einen Quantencomputer angegriffen würde, etwa die kryptographische Sicherheit eines 64-Bit-Verfahrens, welches durch einen herkömmlichen Computer mit einer vollständigen Schlüsselsuche attackiert wird. Allerdings sei gesagt, dass vermutlich auch Quantencomputer gegen eine 256 Bit oder größere Verschlüsselungen Schwierigkeiten bekommen werden. Die symmetrischen Schlüssel werden also auch in Zukunft weiterhin noch ihre Bedeutung behalten. [5]

Darüber hinaus lassen sich aber auch kryptographische Systeme mit quantentheoretischen Ansätzen umsetzen. Die sog. Quantenkryptographie bietet anders als erwartet nicht den Vorteil einer bahnbrechend neuen sicheren Verschlüsselungsmethode, sondern ist eine effektive Methode zum Austausch von kryptographischen Schlüsseln. Der Ansatz basiert dabei auf der Verwendung von polarisierten Photonen zur Kodierung von Bits. Dadurch lassen sich unterschiedliche Protokolle realisieren, die sogar beweisbar sicher sein können (solange die Gesetze der Quantenmechanik gelten und Alice und Bob sich an den Ablauf des Protokolls halten). [6]


Einzelnachweise

  1. Claudia Eckert, 2018.IT-Sicherheit: De Gruyter
  2. Geschonneck A., 2014. Computer Forensik: Dpunkt.verlag
  3. https://blog.varonis.de/was-ist-ein-brute-force-angriff/
  4. Zisler H., 2018. Computer-Netzwerke:Reinwerk Computing
  5. Schmeh, K., 2016.Kryptografie: Dpunkt.verlag
  6. Schmeh, K., 2016.Kryptografie: Dpunkt.verlag