Hashing ist ein grundlegendes Konzept in der Kryptografie und Informationssicherheit. Unser Leitfaden untersucht die Prinzipien des Hashing und erklärt, wie kryptografische Hash-Funktionen funktionieren und welche Bedeutung sie für den Schutz sensibler Daten haben.
Erfahren Sie mehr über die verschiedenen Arten von Hash-Funktionen, ihre Eigenschaften und gängige Anwendungen wie Passwortspeicherung, Datenintegritätsprüfung und digitale Signaturen. Entdecken Sie, wie Sie die richtige Hash-Funktion für Ihren speziellen Anwendungsfall auswählen und sichere Hash-Verfahren in Ihrem Unternehmen implementieren können.
Was ist ein Hash-Algorithmus?
Hashes sind das Ergebnis eines Hash-Algorithmus wie MD5 (Message Digest 5) oder SHA (Secure Hash Algorithm). Diese Algorithmen zielen im Wesentlichen darauf ab, eine eindeutige Zeichenfolge mit fester Länge zu erzeugen – den Hashwert oder "Message Digest" – für jedes beliebige Datenelement oder jede beliebige "Nachricht" zu erzeugen. Da jede Datei auf einem Computer letztendlich nur Daten sind, die in binärer Form dargestellt werden können, kann ein Hash-Algorithmus diese Daten nehmen, eine komplexe Berechnung darauf anwenden und eine Zeichenfolge fester Länge als Ergebnis der Berechnung ausgeben. Das Ergebnis ist der Hashwert oder Message Digest der Datei.
Um den Hashwert einer Datei in Windows 10 zu berechnen, verwenden Sie das in PowerShell integrierte Cmdlet Get-FileHash und geben Sie den Pfad zu einer Datei ein, deren Hashwert Sie ermitteln möchten. Standardmäßig wird der SHA-2 256-Algorithmus verwendet:
Sie können zu einem anderen Algorithmus wechseln, indem Sie ihn nach dem Dateipfad mit dem Schalter -Algorithm angeben. Wenn Sie das Ergebnis an Format-List übergeben, erhalten Sie eine leserfreundlichere Ausgabe:
Für Mac- und Linux-Benutzer erfüllen die Befehlszeilentools shasum und md5 denselben Zweck. Wie wir gleich sehen werden, ist der Hashwert unabhängig davon, ob Sie Windows, Mac oder Linux verwenden, für jede Datei und jeden Hash-Algorithmus identisch.
Wie Hashes die Identität feststellen
Hashes können nicht rückgängig gemacht werden, sodass Sie allein anhand des Hash-Ergebnisses einer Datei aus einem Hash-Algorithmus den Inhalt der Datei nicht rekonstruieren können. Sie können jedoch feststellen, ob zwei Dateien identisch sind, ohne etwas über ihren Inhalt zu wissen.
Aus diesem Grund ist die Vorstellung, dass das Ergebnis eindeutig ist, für das gesamte Konzept von Hashes von grundlegender Bedeutung. Wenn zwei verschiedene Dateien denselben Digest erzeugen könnten, hätten wir eine "Kollision" und könnten den Hash nicht als zuverlässige Kennung für diese Datei verwenden.
Die Wahrscheinlichkeit einer Kollision ist gering, aber nicht ausgeschlossen, und ist der Grund, warum sicherere Algorithmen wie SHA-2 SHA-1 und MD5 ersetzt haben. Beispielsweise unterscheiden sich die Inhalte der folgenden beiden Dateien, ship.jpg und plane.jpg sind, wie eine einfache visuelle Überprüfung zeigt, eindeutig unterschiedlich, sodass sie unterschiedliche Message Digests erzeugen sollten.
Wenn wir den Wert jedoch mit MD5 berechnen, erhalten wir eine Kollision, die fälschlicherweise anzeigt, dass die Dateien identisch sind. Hier stammt die Ausgabe aus der Befehlszeile unter macOS unter Verwendung der Terminal.app, aber Sie können sehen, dass der Hash-Wert ship.jpg derselbe ist, den wir zuvor von PowerShell erhalten haben:
Berechnen wir den Hash-Wert mit SHA-2 256. Jetzt erhalten wir ein genaueres Ergebnis, das zeigt, dass die Dateien tatsächlich wie erwartet unterschiedlich sind:
Wozu wird Hashing verwendet?
Mit einer eindeutigen Kennung für eine Datei können wir diese Informationen auf verschiedene Weise nutzen. Einige ältere AV-Lösungen stützen sich ausschließlich auf Hash-Werte, um zu bestimmen, ob eine Datei bösartig ist oder nicht, ohne den Inhalt oder das Verhalten der Datei zu überprüfen. Dazu führen sie eine interne Datenbank mit Hash-Werten bekannter Malware. Beim Scannen eines Systems berechnet die AV-Engine einen Hash-Wert für jede ausführbare Datei auf dem Computer des Benutzers und prüft, ob es eine Übereinstimmung in ihrer Datenbank gibt.
Dies muss in den Anfängen der Cybersicherheit eine elegante Lösung gewesen sein, aber im Nachhinein ist es nicht schwer, die Schwächen der Verwendung von Hash-Werten zu erkennen.
Erstens ist es aufgrund der explosionsartigen Zunahme der Malware-Beispiele nicht mehr möglich, eine Signaturdatenbank zu führen. Schätzungen zufolge tauchen täglich mehr als 500.000 einzigartige Malware-Beispiele auf. Dies ist sehr wahrscheinlich zum großen Teil darauf zurückzuführen, dass Malware-Autoren erkannt haben, dass sie AV-Engines, die sich auf Hash-Werte stützen, leicht dazu bringen können, ein Beispiel nicht zu erkennen. Der Angreifer muss lediglich ein zusätzliches Byte an das Ende einer Datei anhängen, um einen anderen Hash zu erzeugen.
Dies ist ein so einfacher Vorgang, dass Malware-Autoren den Prozess automatisieren können, sodass dieselbe URL alle paar Sekunden dieselbe Malware mit einem anderen Hash an die Opfer liefert.
Zweitens war der Schwachpunkt herkömmlicher Antivirenprogramme schon immer, dass die Erkennung Vorwissen über die Bedrohung erfordert, sodass eine Anti-Malware-Lösung, die sich auf eine Datenbank mit bekannten Hash-Werten stützt, von Natur aus immer einen Schritt hinter dem nächsten Angriff zurückbleibt.
Die Antwort darauf ist natürlich eine Sicherheitslösung, die Verhaltens-KI nutzt und einen Defense-in-Depth Ansatz verfolgt.
Das bedeutet jedoch nicht, dass Hash-Werte keinen Wert haben! Im Gegenteil, die Möglichkeit, eine Datei eindeutig zu identifizieren, hat nach wie vor wichtige Vorteile. Hash-Werte werden in vielen Kontexten, wie z. B. bei der Codesignierung und SSL, in digitalen Signaturen und Zertifikaten verwendet, um die Echtheit einer Datei, einer Website oder eines Downloads zu bestätigen.
Hash-Werte sind auch eine große Hilfe für Sicherheitsforscher, SOC-Teams, Malware-Jäger und Reverse-Engineer. Eine der häufigsten Anwendungen von Hash-Werten, die Sie in vielen technischen Berichten hier bei SentinelOne und anderswo ist die Weitergabe von Indikatoren für Kompromittierungen. Mithilfe von Hash-Werten können Forscher auf Malware-Beispiele verweisen und diese über Malware-Repositorys wie VirusTotal, VirusBay, Malpedia und MalShare.
Vorteile von Hashes bei der Bedrohungssuche
Die Bedrohungssuche wird dank Hash-Werten ebenfalls vereinfacht. Sehen wir uns ein Beispiel an, wie ein IT-Administrator mithilfe von Hash-Werten in der SentinelOne-Verwaltungskonsole nach Bedrohungen in seiner gesamten Flotte suchen könnte.
Hashes sind sehr hilfreich, wenn Sie eine Bedrohung auf einem Rechner identifizieren und Ihr gesamtes Netzwerk nach dem Vorhandensein dieser Datei durchsuchen möchten. Klicken Sie in der SentinelOne-Verwaltungskonsole auf das Symbol "Visibility" und starten Sie eine neue Abfrage. In diesem Fall verwenden wir einfach den SHA1-Hash der Datei und suchen nach ihrem Vorkommen in den letzten 3 Monaten.
Großartig, wir können sehen, dass es einige Fälle gab, aber das ist noch nicht alles. Die Hash-Suche hat uns zur TrueContext-IDgeführt, die wir als Ausgangspunkt nutzen können, um wirklich tief in die Materie einzutauchen und genau zu sehen, was diese Datei getan hat: welche Prozesse sie erstellt hat, welche Dateien sie verändert hat, welche URLs sie kontaktiert hat und so weiter. Kurz gesagt, wir können mit nur wenigen Klicks aus dem Hash der Datei die gesamte Angriffsgeschichte rekonstruieren.
KI-gestützte Cybersicherheit
Verbessern Sie Ihre Sicherheitslage mit Echtzeit-Erkennung, maschineller Reaktion und vollständiger Transparenz Ihrer gesamten digitalen Umgebung.
Demo anfordernFazit
Hashes sind ein grundlegendes Werkzeug in der Computersicherheit, da sie uns zuverlässig mitteilen können, wann zwei Dateien identisch sind, solange wir sichere Hash-Algorithmen verwenden, die Kollisionen vermeiden. Dennoch können, wie wir oben gesehen haben, zwei Dateien das gleiche Verhalten und die gleiche Funktionalität aufweisen, ohne notwendigerweise denselben Hash zu haben. Daher ist es ein fehlerhafter Ansatz, sich bei der AV-Erkennung auf die Hash-Identität zu verlassen.
Trotzdem sind Hashes für Sicherheitsanalysten nach wie vor nützlich, beispielsweise für den Austausch von IOCs und die Suche nach Bedrohungen, und Sie werden zweifellos täglich damit zu tun haben, wenn Sie im Bereich der Computer- und Netzwerksicherheit arbeiten.
Gefällt Ihnen dieser Artikel? Folgen Sie uns auf LinkedIn, Twitter, YouTube oder Facebook, um die von uns geposteten Inhalte zu sehen.
Weitere Informationen zur Cybersicherheit
- Der Feind im Inneren – Die 7 beunruhigendsten Datenverstöße 2018
- 5 Möglichkeiten, wie ein CISO den Mangel an Cybersicherheitsexperten jetzt bekämpfen kann
- Wie Malware die Sicherheit von Apples macOS leicht überwinden kann
- Was ist Windows PowerShell (und könnte es bösartig sein)?
Häufig gestellte Fragen zum Hashing
Hashing ist eine Einweg-Verschlüsselungstechnik, bei der Daten in eine Zeichenfolge fester Länge umgewandelt werden. Dieser Vorgang kann nicht rückgängig gemacht werden, um die Originaldaten wiederherzustellen. Es funktioniert wie ein digitaler Fingerabdruck – dieselbe Eingabe erzeugt immer denselben Hash, aber unterschiedliche Eingaben erzeugen völlig unterschiedliche Ausgaben. Hashing schützt Passwörter, überprüft die Dateiintegrität und stellt sicher, dass Daten nicht manipuliert wurden. Es ist für die Blockchain-Technologie und digitale Signaturen unverzichtbar.
Ein gängiges Beispiel ist das SHA-256-Hashing des Wortes "hello", das den Hashwert "2cf24dba4f21d4288094c30e2ede82c380cac19544bb5c4ab02f5b2db38500d3””. Wenn Sie nur ein Zeichen in "Hello””” ändern, erhalten Sie einen völlig anderen Hash. Passwortsysteme verwenden Hashing – wenn Sie ein Passwort erstellen, wird es gehasht und gespeichert. Wenn Sie sich anmelden, wird Ihr eingegebenes Passwort gehasht und mit dem gespeicherten Hash verglichen. Auch bei der Überprüfung der Dateiintegrität wird Hashing verwendet, um Änderungen zu erkennen.
Hashing gewährleistet die Datenintegrität, indem es unbefugte Änderungen erkennt. Es schützt Passwörter, indem es sie unlesbar macht, selbst wenn Datenbanken gehackt werden. Sie können überprüfen, ob Datei-Downloads nicht beschädigt oder mit Malware infiziert wurden. Hashing ermöglicht digitale Signaturen und sichere Kommunikationsprotokolle. Es ist grundlegend für die Blockchain-Technologie und die Sicherheit von Kryptowährungen. Ohne Hashing könnten Sie nicht darauf vertrauen, dass Daten während der Übertragung oder Speicherung unverändert bleiben.
Die wichtigsten Hash-Familien sind MD (Message Digest), SHA (Secure Hash Algorithm) und RIPEMD. MD5 erzeugt 128-Bit-Hashes, gilt aber mittlerweile als unsicher. SHA-256 ist derzeit am weitesten verbreitet und erzeugt 256-Bit-Hashes. SHA-3 ist der neueste Standard, der ältere Algorithmen ersetzen soll. Jede Art unterscheidet sich in Bezug auf Sicherheitsstärke, Hash-Länge und Rechenanforderungen. Moderne Systeme bevorzugen SHA-256 oder SHA-3 für sicherheitskritische Anwendungen.
Hashing ist einseitig und irreversibel, während Verschlüsselung zweiseitig und reversibel ist. Hashing erzeugt unabhängig von der Eingabegröße immer eine Ausgabe mit fester Länge. Die Länge der Verschlüsselungsausgabe variiert je nach Eingabedaten. Hashing überprüft die Datenintegrität, während Verschlüsselung die Vertraulichkeit der Daten schützt. Sie können verschlüsselte Daten mit dem richtigen Schlüssel entschlüsseln, aber Sie können Daten nicht entschlüsseln. Beide dienen unterschiedlichen Sicherheitszwecken und arbeiten oft zusammen.
Hashing schützt Daten, indem es die Rückentwicklung der ursprünglichen Informationen unmöglich macht. Selbst wenn Angreifer gehasht Jede Änderung an den Originaldaten erzeugt einen völlig anderen Hash, wodurch Manipulationen erkennbar werden. Hashing erfordert keine Verschlüsselungsschlüssel, sodass keine Schlüssel kompromittiert werden können. Es ermöglicht die Überprüfung der Datenintegrität, ohne den tatsächlichen Inhalt offenzulegen. Daher eignet es sich ideal für die Speicherung von Passwörtern und die Überprüfung von Dateien.
Hashing ermöglicht eine schnelle Datenabfrage und -überprüfung. Es gewährleistet die Datenintegrität, ohne den ursprünglichen Inhalt preiszugeben. Die Passwortsicherheit wird durch die Verwendung geeigneter Hash-Verfahren erheblich verbessert. Die Überprüfung der Dateiintegrität wird einfach und zuverlässig. Hash-Verfahren ermöglichen die Blockchain-Technologie und sichere Transaktionen. Sie sind rechnerisch effizient und erfordern keine Schlüsselverwaltung. Digitale Signaturen und Authentifizierungssysteme sind aus Sicherheitsgründen auf Hash-Verfahren angewiesen. Auch die Datendeduplizierung und ein effizientes Speichermanagement profitieren von Hash-Verfahren.
