IPsec-VPN. Grundlagen. Anatomie von IPsec. Testen Sie die Stärke des legendären Protokolls

IN moderne WeltÜberall kommen unterschiedliche VPN-Technologien zum Einsatz. Einige (z. B. PPTP) werden im Laufe der Zeit als unsicher erkannt und sterben nach und nach aus, während andere (OpenVPN) im Gegenteil jedes Jahr an Dynamik gewinnen. Aber der unangefochtene Spitzenreiter und die bekannteste Technologie zur Erstellung und Aufrechterhaltung sicherer privater Kanäle ist immer noch IPsec VPN. Manchmal findet man bei einem Pentest ein ernsthaft geschütztes Netzwerk, bei dem nur der fünfhundertste UDP-Port herausragt. Alles andere kann geschlossen, gepatcht und zuverlässig gefiltert werden.

In einer solchen Situation könnte der Gedanke aufkommen, dass es hier nichts Besonderes zu tun gibt. Aber das ist nicht immer der Fall. Darüber hinaus ist die Vorstellung weit verbreitet, dass IPsec selbst in Standardkonfigurationen uneinnehmbar ist und das richtige Maß an Sicherheit bietet. Genau diese Situation werden wir heute in der Praxis betrachten. Aber um IPsec so effektiv wie möglich bekämpfen zu können, müssen Sie zunächst verstehen, was es ist und wie es funktioniert. Das werden wir tun!

IPsec von innen

Bevor Sie direkt zu IPsec selbst übergehen, wäre es gut, sich daran zu erinnern, welche Arten von VPNs es gibt. Es gibt sehr viele Klassifizierungen von VPNs, wir werden uns jedoch nicht tief in die Netzwerktechnologien vertiefen und uns für die einfachste entscheiden. Daher werden wir VPN in zwei Haupttypen unterteilen: Site-to-Site-VPN-Verbindungen (sie können auch als permanent bezeichnet werden) und Remote Access VPN (RA, auch temporär).

Der erste Typ dient der ständigen Kommunikation verschiedener Netzwerkinseln, beispielsweise einer Zentrale mit vielen verstreuten Niederlassungen. Nun, RA VPN ist ein Szenario, in dem ein Client für einen kurzen Zeitraum eine Verbindung herstellt, Zugriff auf bestimmte Netzwerkressourcen erhält und nach Abschluss der Arbeit die Verbindung sicher trennt.

Uns wird die zweite Option interessieren, da im Falle eines erfolgreichen Angriffs die Möglichkeit besteht, sofort Zugriff auf das interne Netzwerk des Unternehmens zu erhalten, was für einen Pentester eine durchaus ernstzunehmende Leistung ist. IPsec wiederum ermöglicht Ihnen die Implementierung von Site-to-Site- und Remote-Access-VPN. Was ist das für eine Technik und aus welchen Komponenten besteht sie?

Es ist erwähnenswert, dass es sich bei IPsec nicht um ein einziges, sondern um eine ganze Reihe verschiedener Protokolle handelt, die transparente und transparente Protokolle bereitstellen sicherer Schutz Daten. Die Besonderheit von IPsec besteht darin, dass es auf der Netzwerkebene implementiert wird und diese so ergänzt, dass für nachfolgende Ebenen alles unbemerkt geschieht. Die Hauptschwierigkeit besteht darin, dass sich zwei Teilnehmer eines sicheren Kanals beim Verbindungsaufbau auf eine relativ große Anzahl unterschiedlicher Parameter einigen müssen. Sie müssen sich nämlich gegenseitig authentifizieren, Schlüssel generieren und austauschen (und zwar über eine nicht vertrauenswürdige Umgebung) und sich auch darauf einigen, welche Protokolle die Daten verschlüsseln sollen.

Aus diesem Grund besteht IPsec aus einem Stapel von Protokollen, deren Aufgabe es ist, den Aufbau, Betrieb und die Verwaltung einer sicheren Verbindung sicherzustellen. Der gesamte Verbindungsaufbauprozess besteht aus zwei Phasen: Die erste Phase dient dazu, in der zweiten Phase den sicheren Austausch von ISAKMP-Nachrichten sicherzustellen. ISAKMP ( Internet sicherheit Das Association and Key Management Protocol ist ein Protokoll, das dazu dient, Sicherheitsrichtlinien (SA) zwischen Teilnehmern einer VPN-Verbindung auszuhandeln und zu aktualisieren. Diese Richtlinien geben konkret an, welches Protokoll zum Verschlüsseln verwendet werden soll (AES oder 3DES) und womit die Authentifizierung erfolgen soll (SHA oder MD5).

Zwei Hauptphasen von IPsec

Wir haben also herausgefunden, dass sich die Teilnehmer zunächst darauf einigen müssen, welche Mechanismen verwendet werden, um eine sichere Verbindung herzustellen. Jetzt kommt das IKE-Protokoll ins Spiel. IKE (Internet Key Exchange) wird verwendet, um eine IPsec SA (Security Association, dieselben Sicherheitsrichtlinien) zu bilden, also die Arbeit der Teilnehmer an einer sicheren Verbindung zu koordinieren. Durch dieses Protokoll vereinbaren die Teilnehmer, welcher Verschlüsselungsalgorithmus verwendet wird, welcher Algorithmus zur Überprüfung der Integrität verwendet wird und wie sie sich gegenseitig authentifizieren. Es ist zu beachten, dass es heute zwei Versionen des Protokolls gibt: IKEv1 und IKEv2. Uns wird nur IKEv1 interessieren: Obwohl die IETF (The Internet Engineering Task Force) es erstmals 1998 eingeführt hat, wird es immer noch sehr häufig verwendet, insbesondere für RA-VPNs (siehe Abbildung 1).


Reis. 1. Cisco ASDM VPN-Assistent

Was IKEv2 betrifft, so entstanden die ersten Entwürfe im Jahr 2005, es wurde vollständig in RFC 5996 (2010) beschrieben und erst Ende letzten Jahres als Internetstandard angekündigt (RFC 7296). Weitere Informationen zu den Unterschieden zwischen IKEv1 und IKEv2 finden Sie in der Seitenleiste. Nachdem wir uns mit IKE befasst haben, kehren wir zu den IPsec-Phasen zurück. In der ersten Phase authentifizieren sich die Teilnehmer gegenseitig und einigen sich auf die Parameter für den Aufbau einer speziellen Verbindung, die ausschließlich dem Austausch von Informationen über die gewünschten Verschlüsselungsalgorithmen und anderen Details des zukünftigen IPsec-Tunnels dient. Die Parameter dieses ersten Tunnels (auch ISAKMP-Tunnel genannt) werden durch die ISAKMP-Richtlinie bestimmt. Der erste Schritt besteht darin, sich auf Hashes und Verschlüsselungsalgorithmen zu einigen, dann erfolgt ein Diffie-Hellman (DH)-Schlüsselaustausch und erst dann wird herausgefunden, wer wer ist. Das heißt, der letzte Schritt ist der Authentifizierungsprozess, entweder mit einem PSK- oder RSA-Schlüssel. Und wenn sich die Parteien einigen, wird ein ISAKMP-Tunnel eingerichtet, durch den bereits die zweite Phase von IKE verläuft.

In der zweiten Phase einigen sich die bereits vertrauten Teilnehmer darauf, wie der Haupttunnel für die direkte Datenübertragung aufgebaut werden soll. Sie bieten einander die im Parameter „transform-set“ angegebenen Optionen an und richten bei Zustimmung den Haupttunnel ein. Es ist wichtig zu betonen, dass der zusätzliche ISAKMP-Tunnel, sobald er eingerichtet ist, nirgendwohin führt – er wird verwendet, um die SA des Haupttunnels regelmäßig zu aktualisieren. Infolgedessen baut IPsec in gewisser Weise nicht einen, sondern zwei Tunnel auf.

So verarbeiten Sie Daten

Nun ein paar Worte zum Transform-Set. Schließlich müssen Sie die Daten, die durch den Tunnel laufen, irgendwie verschlüsseln. Daher ist transform-set in einer typischen Konfiguration ein Satz von Parametern, die explizit angeben, wie das Paket verarbeitet werden soll. Dementsprechend gibt es zwei Möglichkeiten für eine solche Datenverarbeitung – die Protokolle ESP und AH. ESP (Encapsulated Security Payload) befasst sich direkt mit der Datenverschlüsselung und kann auch eine Überprüfung der Datenintegrität durchführen. AH (Authentication Header) wiederum ist nur für die Authentifizierung der Quelle und die Überprüfung der Datenintegrität verantwortlich.

Beispielsweise zeigt der Befehl „crypto ipsec transform-set SET10 esp-aes“ dem Router an, dass das Transform-Set mit dem Namen „SET10“ nur mit dem ESP-Protokoll und mit AES-Verschlüsselung funktionieren soll. Mit Blick auf die Zukunft möchte ich sagen, dass wir im Folgenden Cisco-Router und Firewalls als Ziele verwenden werden. Eigentlich ist bei ESP alles mehr oder weniger klar, seine Aufgabe ist es zu verschlüsseln und damit die Vertraulichkeit zu gewährleisten, aber wozu braucht man dann AH? AH bietet eine Datenauthentifizierung, das heißt, es bestätigt, dass diese Daten genau von demjenigen stammen, mit dem wir die Verbindung hergestellt haben, und dass sie unterwegs nicht geändert wurden. Es bietet einen sogenannten Anti-Replay-Schutz. In modernen Netzwerken wird AH praktisch nicht verwendet, nur ESP ist überall zu finden.

Die zum Verschlüsseln von Informationen in einem IPsec-Tunnel ausgewählten Parameter (auch SA genannt) haben eine Lebensdauer und müssen danach ersetzt werden. Die Standardeinstellung für die IPsec-SA-Lebensdauer beträgt 86.400 Sekunden oder 24 Stunden.

Als Ergebnis erhielten die Teilnehmer einen verschlüsselten Tunnel mit den für sie alle passenden Parametern und schickten dort zu verschlüsselnde Datenströme. Periodisch, entsprechend der Lebensdauer, werden die Verschlüsselungsschlüssel für den Haupttunnel aktualisiert: Die Teilnehmer kommunizieren erneut über den ISAKMP-Tunnel, durchlaufen die zweite Phase und stellen die SA wieder her.

IKEv1-Modi

Wir haben einen kurzen Blick auf die grundlegende Funktionsweise von IPsec geworfen, aber es gibt noch ein paar weitere Dinge, auf die wir uns konzentrieren müssen. Die erste Phase kann unter anderem in zwei Modi ablaufen: Hauptmodus oder Aggressivmodus. Die erste Option haben wir oben bereits besprochen, uns interessiert jedoch der aggressive Modus. Dieser Modus verwendet drei Nachrichten (statt sechs im Hauptmodus). In diesem Fall gibt derjenige, der die Verbindung initiiert, alle seine Daten auf einmal an – was er will und was er tun kann, sowie seinen Anteil am DH-Austausch. Der Responder schließt dann sofort seinen Teil der DH-Generierung ab. Daher gibt es in diesem Modus im Wesentlichen nur zwei Stufen. Das heißt, die ersten beiden Stufen des Hauptmodus (Hash-Vereinbarung und DH-Austausch) werden sozusagen zu einer komprimiert. Daher ist dieser Modus viel gefährlicher, da die Antwort viele technische Informationen im Klartext enthält. Und am wichtigsten ist, dass das VPN-Gateway einen Passwort-Hash senden kann, der in der ersten Phase zur Authentifizierung verwendet wird (dieses Passwort wird oft als Pre-Shared Key oder PSK bezeichnet).

Nun, alle weiteren Verschlüsselungen erfolgen wie üblich ohne Änderungen. Warum wird dieser Modus dann immer noch verwendet? Tatsache ist, dass es viel schneller ist, etwa doppelt so schnell. Von besonderem Interesse für den Pentester ist die Tatsache, dass der aggressive Modus bei RA IPsec VPN sehr häufig verwendet wird. Ein weiteres kleines Feature von RA IPsec VPN bei Verwendung des aggressiven Modus: Wenn der Client den Server kontaktiert, sendet er ihm eine Kennung (Gruppennamen). Der Tunnelgruppenname (siehe Abbildung 2) ist der Name eines Eintrags, der eine Reihe von Richtlinien für eine bestimmte IPsec-Verbindung enthält. Dies ist bereits eine der spezifischen Funktionen von Cisco-Geräten.


Reis. 2. Name der Tunnelgruppe

Zwei Phasen reichten nicht aus

Es scheint, dass es sowieso nicht so gut klappt einfache Schaltung funktioniert, aber in Wirklichkeit ist es noch etwas komplizierter. Im Laufe der Zeit wurde klar, dass PSK allein nicht ausreichte, um die Sicherheit zu gewährleisten. Wenn beispielsweise der Arbeitsplatz eines Mitarbeiters kompromittiert wird, kann der Angreifer sofort auf das gesamte interne Netzwerk des Unternehmens zugreifen. Daher wurde Phase 1.5 genau zwischen der ersten und zweiten klassischen Phase entwickelt. Übrigens wird diese Phase normalerweise nicht bei einer standardmäßigen Site-to-Site-VPN-Verbindung verwendet, sondern bei der Organisation von Remote-VPN-Verbindungen (in unserem Fall). Diese Phase enthält zwei neue Erweiterungen – Extended Authentication (XAUTH) und Mode-Configuration (MODECFG).

XAUTH ist eine zusätzliche Benutzerauthentifizierung innerhalb des IKE-Protokolls. Diese Authentifizierung wird manchmal auch als zweiter IPsec-Faktor bezeichnet. Nun, MODECFG wird zum Senden verwendet Weitere Informationen Für den Client kann dies eine IP-Adresse, eine Maske, ein DNS-Server usw. sein. Es ist ersichtlich, dass diese Phase lediglich die zuvor besprochenen ergänzt, ihre Nützlichkeit ist jedoch unbestritten.

IKEv2 vs. IKEv1

Beide Protokolle arbeiten auf dem UDP-Port Nummer 500, sind jedoch nicht miteinander kompatibel; eine Situation, in der IKEv1 an einem Ende des Tunnels und IKEv2 am anderen Ende vorhanden ist, ist nicht zulässig. Hier sind die Hauptunterschiede zwischen der zweiten Version und der ersten:

In IKEv2 gibt es Konzepte wie Aggressive- oder Main-Modi nicht mehr.
– In IKEv2 wird der Begriff erste Phase durch IKE_SA_INIT (ein Austausch von zwei Nachrichten, der die Aushandlung von Verschlüsselungs-/Hashing-Protokollen und die Generierung von DH-Schlüsseln gewährleistet) ersetzt und die zweite Phase wird durch IKE_AUTH (ebenfalls zwei Nachrichten, die die Authentifizierung implementieren) ersetzt selbst).
- Mode Config (was in IKEv1 Phase 1.5 genannt wurde) wird jetzt direkt in der Protokollspezifikation beschrieben und ist ein integraler Bestandteil davon.
– IKEv2 hat einen zusätzlichen Mechanismus zum Schutz vor DoS-Angriffen hinzugefügt. Sein Kern besteht darin, dass das VPN-Gateway vor der Antwort auf jede Anfrage beim Aufbau einer sicheren Verbindung (IKE_SA_INIT) IKEv2 ein bestimmtes Cookie an die Quelle einer solchen Anfrage sendet und auf eine Antwort wartet. Wenn die Quelle geantwortet hat – alles ist in Ordnung, können Sie damit beginnen, DH zu generieren. Wenn die Quelle nicht antwortet (das passiert bei einem DoS-Angriff; diese Technik erinnert an TCP SYN Flood), vergisst das VPN-Gateway dies einfach. Ohne diesen Mechanismus würde das VPN-Gateway bei jeder Anfrage von irgendjemandem versuchen, einen DH-Schlüssel zu generieren (was ein ziemlich ressourcenintensiver Prozess ist) und würde bald auf Probleme stoßen. Aufgrund der Tatsache, dass nun alle Vorgänge eine Bestätigung von der anderen Seite der Verbindung erfordern, ist es unmöglich, eine große Anzahl halboffener Sitzungen auf dem angegriffenen Gerät zu erstellen.

Wir erreichen den Meilenstein

Nachdem Sie die Funktionsweise von IPsec und seinen Komponenten endlich verstanden haben, können Sie zum Wesentlichen übergehen – den praktischen Angriffen. Die Topologie wird recht einfach und gleichzeitig realitätsnah sein (siehe Abb. 3).


Reis. 3. Allgemeines Netzwerkdiagramm

Der erste Schritt besteht darin, das Vorhandensein eines IPsec-VPN-Gateways festzustellen. Dies kann durch einen Port-Scan erfolgen, hier gibt es jedoch eine kleine Funktion. ISAKMP verwendet das UDP-Protokoll, Port 500, während das Standardscannen mit Nmap nur TCP-Ports betrifft. Als Ergebnis erscheint die Meldung: „Alle 1000 gescannten Ports auf 37.59.0.253 werden gefiltert“.

Es scheint, dass alle Ports gefiltert sind und es keine offenen Ports gibt. Aber nach der Ausführung des Befehls

Nmap -sU --top-ports=20 37.59.0.253 Startet Nmap 6.47 (http://nmap.org) am 21.03.2015 um 12:29 GMT. Nmap-Scanbericht für 37.59.0.253. Host ist aktiv (0,066 s Latenz). . PORT STATE SERVICE 500/udp isakmp öffnen
Wir stellen sicher, dass dies nicht der Fall ist und dass es sich tatsächlich um ein VPN-Gerät handelt.

Lassen Sie uns die erste Phase in Angriff nehmen

Jetzt interessieren wir uns für die erste Phase, den aggressiven Modus und die Authentifizierung mit Pre-Shared Key (PSK). Wie wir uns erinnern, sendet in diesem Szenario das VPN-Gerät oder der Responder einen gehashten PSK an den Initiator. Eines der bekanntesten Dienstprogramme zum Testen des IKE-Protokolls ist ike-scan, es ist in enthalten Kali-Verteilung Linux. Mit Ike-Scan können Sie IKE-Nachrichten mit verschiedenen Parametern senden und entsprechend Antwortpakete dekodieren und analysieren. Versuchen wir, das Zielgerät zu untersuchen:

Root@kali:~# ike-scan -M -A 37.59.0.253 0 zurückgegebener Handshake; 0 zurückgegebene Benachrichtigung

Reis. 4. Ike-Scan-Aggressivmodus

Der Schalter „-A“ gibt an, dass Sie den aggressiven Modus verwenden sollten, und „-M“ gibt an, dass die Ergebnisse zeilenweise (mehrzeilig) angezeigt werden sollen, um mehr zu erfahren einfache Lektüre. Es ist klar, dass kein Ergebnis erzielt wurde. Der Grund dafür ist, dass Sie denselben Bezeichner angeben müssen, den Namen der VPN-Gruppe. Natürlich können Sie mit dem Dienstprogramm ike-scan diese Kennung als einen seiner Parameter festlegen. Da es uns aber noch unbekannt ist, nehmen wir einen beliebigen Wert, zum Beispiel 0000.

Root@kali:~# ike-scan -M -A --id=0000 37.59.0.253 37.59.0.253 Handshake im aggressiven Modus zurückgegeben


Reis. 5. Ike-Scan-ID

Dieses Mal sehen wir, dass die Antwort eingegangen ist (siehe Abb. 5) und wir mit vielen nützlichen Informationen versorgt wurden. Ein ziemlich wichtiger Teil der empfangenen Informationen ist der Transformationssatz. In unserem Fall heißt es: „Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK“.

Alle diese Parameter können für das Dienstprogramm ike-scan mit dem Schalter „--trans“ angegeben werden. Beispielsweise gibt „--trans=5,2,1,2“ an, dass der Verschlüsselungsalgorithmus 3DES, Hashing HMAC-SHA, Authentifizierungsmethode PSK und der zweite Gruppentyp DH (1024-Bit-MODP) ist. Die Wertekorrespondenztabellen können Sie unter dieser Adresse einsehen. Fügen wir einen weiteren Schlüssel („-P“) hinzu, um die Nutzlast des Pakets, bzw. den PSK-Hash, direkt anzuzeigen.

Root@kali:~# ike-scan -M -A --id=0000 37.59.0.253 -P


Reis. 6. Ike-Scan-Nutzlast

Überwindung der ersten Schwierigkeiten

Es scheint, dass der Hash erhalten wurde und Sie versuchen können, ihn zu knacken, aber alles ist nicht so einfach. Es war einmal, im Jahr 2005, dass einige Cisco-Hardware eine Schwachstelle aufwies: Diese Geräte gaben nur dann einen Hash aus, wenn der Angreifer den richtigen ID-Wert übergab. Nun ist es natürlich fast unmöglich, solche Geräte zu finden und es wird immer ein Hash-Wert gesendet, unabhängig davon, ob der Angreifer den richtigen ID-Wert gesendet hat oder nicht. Offensichtlich ist Brute-Force-Hashing sinnlos. Daher besteht die erste Aufgabe darin, den richtigen ID-Wert zu ermitteln, um den richtigen Hash zu erhalten. Und eine kürzlich entdeckte Schwachstelle wird uns dabei helfen.

Der Punkt ist, dass es beim ersten Nachrichtenaustausch einen leichten Unterschied zwischen den Antworten gibt. Kurz gesagt: Wenn der richtige Gruppenname verwendet wird, gibt es vier Versuche, die VPN-Verbindung weiter aufzubauen, plus zwei verschlüsselte Phase-2-Pakete. Bei einer falschen ID hingegen kommen nur zwei Pakete als Antwort an. Wie Sie sehen, ist der Unterschied ziemlich groß, daher entwickelte SpiderLabs (der Autor des ebenso interessanten Responder-Tools) zunächst einen PoC und dann das IKEForce-Dienstprogramm, um diese Schwachstelle auszunutzen.

Was ist die Stärke von IKE?

Sie können IKEForce in einem beliebigen Verzeichnis installieren, indem Sie den Befehl ausführen

Git-Klon https://github.com/SpiderLabs/ikeforce
Es funktioniert in zwei Hauptmodi – dem Berechnungsmodus „-e“ (Aufzählung) und dem Brute-Force-Modus „-b“ (Bruteforce). Zum zweiten Punkt kommen wir, wenn wir uns die Angriffe auf den zweiten Faktor ansehen, aber wir befassen uns jetzt mit dem ersten. Bevor Sie mit dem eigentlichen Prozess der Ermittlung der ID beginnen, müssen Sie den genauen Wert von transform-set festlegen. Wir haben es bereits früher definiert, daher werden wir es mit der Option „-t 5 2 1 2“ angeben. Infolgedessen sieht der Prozess zum Finden der ID wie folgt aus:

Python ikeforce.py 37.59.0.253 -e -w wordlists/group.txt -t 5 2 1 2


Reis. 7. IKEForce-Aufzählung

Dadurch konnte recht schnell der korrekte ID-Wert ermittelt werden (Abb. 7). Der erste Schritt ist geschafft, Sie können weitermachen.

Wir erhalten PSK

Jetzt müssen Sie den PSK-Hash mit dem richtigen Gruppennamen in einer Datei speichern; dies kann mit ike-scan erfolgen:

Ike-scan -M -A --id=vpn 37.59.0.253 -Pkey.psk
Und da nun der richtige ID-Wert gefunden und der richtige PSK-Hash erhalten wurde, können wir endlich mit der Offline-Brute-Force beginnen. Es gibt eine ganze Reihe von Optionen für eine solche Brute-Force-Methode – das klassische Dienstprogramm psk-crack und John the Ripper (mit einem Jumbo-Patch) und sogar oclHashcat, mit dem Sie bekanntlich die Leistung des nutzen können GPU. Der Einfachheit halber verwenden wir psk-crack, das sowohl direkte Brute-Force- als auch Wörterbuchangriffe unterstützt:

Psk-crack -d /usr/share/ike-scan/psk-crack-dictionary key.psk

Reis. 8. PSK-Riss

Aber selbst die erfolgreiche Wiederherstellung von PSK (siehe Abb. 8) ist nur die halbe Miete. An dieser Stelle müssen wir bedenken, dass als nächstes XAUTH und der zweite Faktor von IPsec VPN auf uns warten.

Umgang mit dem zweiten IPsec-Faktor

Ich möchte Sie daran erinnern, dass XAUTH eine zusätzliche Sicherheit, ein zweiter Authentifizierungsfaktor, ist und sich in Phase 1.5 befindet. Für XAUTH gibt es mehrere Optionen – dazu gehören die Überprüfung mithilfe des RADIUS-Protokolls, Einmalkennwörter (OTP) und eine regelmäßige lokale Benutzerbasis. Wir bleiben bei Standardsituation, wenn eine lokale Benutzerbasis zur Überprüfung des zweiten Faktors verwendet wird. Bis vor kurzem gab es kein öffentlich verfügbares Tool für Brute-Force-XAUTH. Aber mit dem Aufkommen von IKEForce erhielt dieses Problem eine würdige Lösung. Das Starten der XAUTH-Brute-Force-Methode ist ganz einfach:

Python ikeforce.py 37.59.0.253 -b -i vpn -k cisco123 -u admin -w wordlists/passwd.txt -t 5 2 1 2 [+]Programm im XAUTH-Brute-Force-Modus gestartet [+]Einzelbenutzer bereitgestellt – Brute-Forcing Passwörter für Benutzer: admin [*]XAUTH-Authentifizierung erfolgreich! Benutzername: admin Passwort: Cisco


Reis. 9. IKEForce XAUTH

In diesem Fall werden alle zuvor gefundenen Werte angezeigt: ID (Schalter „-i“), wiederhergestellter PSK (Schalter „-k“) und der vorgesehene Login (Schalter „-u“). IKEForce unterstützt sowohl die Brute-Force-Suche eines Logins als auch das Durchsuchen einer Liste von Logins, die mit dem Parameter „-U“ angegeben werden kann. Im Falle einer möglichen Auswahlblockierung gibt es die Option „-s“, mit der Sie die Brute-Force-Geschwindigkeit reduzieren können. Im Lieferumfang des Dienstprogramms sind übrigens mehrere gute Wörterbücher enthalten, die besonders zum Festlegen des Werts des ID-Parameters nützlich sind.

Melden Sie sich beim internen Netzwerk an

Nachdem wir nun alle Daten haben, bleibt nur noch der letzte Schritt – das eigentliche Eindringen in das lokale Netzwerk. Dazu benötigen wir eine Art VPN-Client, von denen es sehr viele gibt. Im Fall von Kali können Sie jedoch problemlos das bereits vorinstallierte VPNC verwenden. Damit es funktioniert, müssen Sie eines anpassen Konfigurationsdatei- `/etc/vpnc/vpn.conf`. Wenn es nicht vorhanden ist, müssen Sie eine Reihe offensichtlicher Parameter erstellen und ausfüllen:

IPSec-Gateway 37.59.0.253
IPSec-ID VPN
IPSec-Geheimnis Cisco123
IKE Authmode psk
Xauth-Benutzername-Administrator
Xauth-Passwort Cisco

Hier sehen wir, dass absolut alle in den vorherigen Schritten gefundenen Daten verwendet wurden – der ID-Wert, PSK, Login und Passwort des zweiten Faktors. Danach erfolgt die Verbindung selbst mit einem Befehl:

Root@kali:~# vpnc vpn
Auch das Deaktivieren ist ganz einfach:

Root@kali:~# vpnc-disconnect
Sie können die Funktionsfähigkeit der Verbindung mit dem Befehl „ifconfig tun0“ überprüfen.


Reis. 10.VPN

So bauen Sie zuverlässigen Schutz auf

Der Schutz vor den heute besprochenen Angriffen muss umfassend sein: Sie müssen Patches rechtzeitig installieren, starke Pre-Shared Keys verwenden, die nach Möglichkeit durch digitale Zertifikate ersetzt werden sollten. Auch Passwortrichtlinien und andere offensichtliche Elemente der Informationssicherheit spielen eine wichtige Rolle bei der Gewährleistung der Sicherheit. Es ist auch zu beachten, dass sich die Situation allmählich ändert und im Laufe der Zeit nur noch IKEv2 übrig bleibt.

Was ist das Ergebnis?

Wir haben den RA IPsec VPN-Auditprozess ausführlich behandelt. Ja, natürlich ist diese Aufgabe alles andere als trivial. Sie müssen viele Schritte unternehmen, und bei jedem von ihnen können Schwierigkeiten auf Sie warten, aber wenn Sie erfolgreich sind, ist das Ergebnis mehr als beeindruckend. Der Zugriff auf interne Netzwerkressourcen eröffnet den größten Handlungsspielraum. Daher sollten sich diejenigen, die für den Schutz des Netzwerkperimeters verantwortlich sind, nicht auf vorgefertigte Standardvorlagen verlassen, sondern jede Sicherheitsebene sorgfältig durchdenken. Nun, für diejenigen, die Pentests durchführen, ist der erkannte UDP-Port 500 ein Grund, eine eingehende Analyse der IPsec-VPN-Sicherheit durchzuführen und möglicherweise gute Ergebnisse zu erzielen.

Abonnieren Sie „Hacker“

In der modernen Welt werden überall verschiedene VPN-Technologien verwendet. Einige (z. B. PPTP) werden im Laufe der Zeit als unsicher erkannt und sterben nach und nach aus, während andere (OpenVPN) im Gegenteil jedes Jahr an Dynamik gewinnen. Aber der unangefochtene Spitzenreiter und die bekannteste Technologie zur Erstellung und Aufrechterhaltung sicherer privater Kanäle ist immer noch IPsec VPN. Manchmal findet man bei einem Pentest ein ernsthaft geschütztes Netzwerk, aus dem nur der fünfhundertste UDP-Port herausragt. Alles andere kann geschlossen, gepatcht und zuverlässig gefiltert werden.

In einer solchen Situation könnte der Gedanke aufkommen, dass es hier nichts Besonderes zu tun gibt. Aber das ist nicht immer der Fall. Darüber hinaus ist die Vorstellung weit verbreitet, dass IPsec selbst in Standardkonfigurationen uneinnehmbar ist und das richtige Maß an Sicherheit bietet. Genau diese Situation werden wir heute in der Praxis betrachten. Aber um IPsec so effektiv wie möglich bekämpfen zu können, müssen Sie zunächst verstehen, was es ist und wie es funktioniert. Das werden wir tun!

IPsec von innen

Bevor Sie direkt zu IPsec selbst übergehen, wäre es gut, sich daran zu erinnern, welche Arten von VPNs es gibt. Es gibt sehr viele Klassifizierungen von VPNs, wir werden uns jedoch nicht tief in die Netzwerktechnologien vertiefen und uns für die einfachste entscheiden. Daher werden wir VPN in zwei Haupttypen unterteilen: Site-to-Site-VPN-Verbindungen (sie können auch als permanent bezeichnet werden) und Remote Access VPN (RA, auch temporär).

Der erste Typ dient der ständigen Kommunikation verschiedener Netzwerkinseln, beispielsweise einer Zentrale mit vielen verstreuten Niederlassungen. Nun, RA VPN ist ein Szenario, in dem ein Client für einen kurzen Zeitraum eine Verbindung herstellt, Zugriff auf bestimmte Netzwerkressourcen erhält und nach Abschluss der Arbeit die Verbindung sicher trennt.

Uns wird die zweite Option interessieren, da im Falle eines erfolgreichen Angriffs die Möglichkeit besteht, sofort Zugriff auf das interne Netzwerk des Unternehmens zu erhalten, was für einen Pentester eine durchaus ernstzunehmende Leistung ist. IPsec wiederum ermöglicht Ihnen die Implementierung von Site-to-Site- und Remote-Access-VPN. Was ist das für eine Technik und aus welchen Komponenten besteht sie?

Es ist erwähnenswert, dass es sich bei IPsec nicht um ein einziges, sondern um eine ganze Reihe verschiedener Protokolle handelt, die einen transparenten und sicheren Datenschutz bieten. Die Besonderheit von IPsec besteht darin, dass es auf der Netzwerkebene implementiert wird und diese so ergänzt, dass für nachfolgende Ebenen alles unbemerkt geschieht. Die Hauptschwierigkeit besteht darin, dass sich zwei Teilnehmer eines sicheren Kanals beim Verbindungsaufbau auf eine relativ große Anzahl unterschiedlicher Parameter einigen müssen. Sie müssen sich nämlich gegenseitig authentifizieren, Schlüssel generieren und austauschen (und zwar über eine nicht vertrauenswürdige Umgebung) und sich auch darauf einigen, welche Protokolle die Daten verschlüsseln sollen.

Aus diesem Grund besteht IPsec aus einem Stapel von Protokollen, deren Aufgabe es ist, den Aufbau, Betrieb und die Verwaltung einer sicheren Verbindung sicherzustellen. Der gesamte Verbindungsaufbauprozess besteht aus zwei Phasen: Die erste Phase dient dazu, in der zweiten Phase den sicheren Austausch von ISAKMP-Nachrichten sicherzustellen. ISAKMP (Internet Security Association and Key Management Protocol) ist ein Protokoll, das der Aushandlung und Aktualisierung von Sicherheitsrichtlinien (SA) zwischen Teilnehmern einer VPN-Verbindung dient. Diese Richtlinien geben konkret an, welches Protokoll zum Verschlüsseln verwendet werden soll (AES oder 3DES) und womit die Authentifizierung erfolgen soll (SHA oder MD5).

Zwei Hauptphasen von IPsec

Wir haben also herausgefunden, dass sich die Teilnehmer zunächst darauf einigen müssen, welche Mechanismen verwendet werden, um eine sichere Verbindung herzustellen. Jetzt kommt das IKE-Protokoll ins Spiel. IKE (Internet Key Exchange) wird verwendet, um eine IPsec SA (Security Association, dieselben Sicherheitsrichtlinien) zu bilden, also die Arbeit der Teilnehmer an einer sicheren Verbindung zu koordinieren. Durch dieses Protokoll vereinbaren die Teilnehmer, welcher Verschlüsselungsalgorithmus verwendet wird, welcher Algorithmus zur Überprüfung der Integrität verwendet wird und wie sie sich gegenseitig authentifizieren. Es ist zu beachten, dass es heute zwei Versionen des Protokolls gibt: IKEv1 und IKEv2. Uns wird nur IKEv1 interessieren: Obwohl die IETF (The Internet Engineering Task Force) es erstmals 1998 eingeführt hat, wird es immer noch sehr häufig verwendet, insbesondere für RA-VPNs (siehe Abbildung 1).


Reis. 1. Cisco ASDM VPN-Assistent

Was IKEv2 betrifft, so entstanden die ersten Entwürfe im Jahr 2005, es wurde vollständig in RFC 5996 (2010) beschrieben und erst Ende letzten Jahres als Internetstandard angekündigt (RFC 7296). Weitere Informationen zu den Unterschieden zwischen IKEv1 und IKEv2 finden Sie in der Seitenleiste. Nachdem wir uns mit IKE befasst haben, kehren wir zu den IPsec-Phasen zurück. In der ersten Phase authentifizieren sich die Teilnehmer gegenseitig und einigen sich auf die Parameter für den Aufbau einer speziellen Verbindung, die ausschließlich dem Austausch von Informationen über die gewünschten Verschlüsselungsalgorithmen und anderen Details des zukünftigen IPsec-Tunnels dient. Die Parameter dieses ersten Tunnels (auch ISAKMP-Tunnel genannt) werden durch die ISAKMP-Richtlinie bestimmt. Der erste Schritt besteht darin, sich auf Hashes und Verschlüsselungsalgorithmen zu einigen, dann erfolgt ein Diffie-Hellman (DH)-Schlüsselaustausch und erst dann wird herausgefunden, wer wer ist. Das heißt, der letzte Schritt ist der Authentifizierungsprozess, entweder mit einem PSK- oder RSA-Schlüssel. Und wenn sich die Parteien einigen, wird ein ISAKMP-Tunnel eingerichtet, durch den bereits die zweite Phase von IKE verläuft.

In der zweiten Phase einigen sich die bereits vertrauten Teilnehmer darauf, wie der Haupttunnel für die direkte Datenübertragung aufgebaut werden soll. Sie bieten einander die im Parameter „transform-set“ angegebenen Optionen an und richten bei Zustimmung den Haupttunnel ein. Es ist wichtig zu betonen, dass der zusätzliche ISAKMP-Tunnel, sobald er eingerichtet ist, nirgendwohin führt – er wird verwendet, um die SA des Haupttunnels regelmäßig zu aktualisieren. Infolgedessen baut IPsec in gewisser Weise nicht einen, sondern zwei Tunnel auf.

So verarbeiten Sie Daten

Nun ein paar Worte zum Transform-Set. Schließlich müssen Sie die Daten, die durch den Tunnel laufen, irgendwie verschlüsseln. Daher ist transform-set in einer typischen Konfiguration ein Satz von Parametern, die explizit angeben, wie das Paket verarbeitet werden soll. Dementsprechend gibt es zwei Möglichkeiten für eine solche Datenverarbeitung – die Protokolle ESP und AH. ESP (Encapsulated Security Payload) befasst sich direkt mit der Datenverschlüsselung und kann auch eine Überprüfung der Datenintegrität durchführen. AH (Authentication Header) wiederum ist nur für die Authentifizierung der Quelle und die Überprüfung der Datenintegrität verantwortlich.

Beispielsweise zeigt der Befehl „crypto ipsec transform-set SET10 esp-aes“ dem Router an, dass das Transform-Set mit dem Namen „SET10“ nur mit dem ESP-Protokoll und mit AES-Verschlüsselung funktionieren soll. Mit Blick auf die Zukunft möchte ich sagen, dass wir im Folgenden Cisco-Router und Firewalls als Ziele verwenden werden. Eigentlich ist bei ESP alles mehr oder weniger klar, seine Aufgabe ist es zu verschlüsseln und damit die Vertraulichkeit zu gewährleisten, aber wozu braucht man dann AH? AH bietet eine Datenauthentifizierung, das heißt, es bestätigt, dass diese Daten genau von demjenigen stammen, mit dem wir die Verbindung hergestellt haben, und dass sie unterwegs nicht geändert wurden. Es bietet einen sogenannten Anti-Replay-Schutz. In modernen Netzwerken wird AH praktisch nicht verwendet, nur ESP ist überall zu finden.

Die zum Verschlüsseln von Informationen in einem IPsec-Tunnel ausgewählten Parameter (auch SA genannt) haben eine Lebensdauer und müssen danach ersetzt werden. Die Standardeinstellung für die IPsec-SA-Lebensdauer beträgt 86.400 Sekunden oder 24 Stunden.

Als Ergebnis erhielten die Teilnehmer einen verschlüsselten Tunnel mit den für sie alle passenden Parametern und schickten dort zu verschlüsselnde Datenströme. Periodisch, entsprechend der Lebensdauer, werden die Verschlüsselungsschlüssel für den Haupttunnel aktualisiert: Die Teilnehmer kommunizieren erneut über den ISAKMP-Tunnel, durchlaufen die zweite Phase und stellen die SA wieder her.

IKEv1-Modi

Wir haben einen kurzen Blick auf die grundlegende Funktionsweise von IPsec geworfen, aber es gibt noch ein paar weitere Dinge, auf die wir uns konzentrieren müssen. Die erste Phase kann unter anderem in zwei Modi ablaufen: Hauptmodus oder Aggressivmodus. Die erste Option haben wir oben bereits besprochen, uns interessiert jedoch der aggressive Modus. Dieser Modus verwendet drei Nachrichten (statt sechs im Hauptmodus). In diesem Fall gibt derjenige, der die Verbindung initiiert, alle seine Daten auf einmal an – was er will und was er tun kann, sowie seinen Anteil am DH-Austausch. Der Responder schließt dann sofort seinen Teil der DH-Generierung ab. Daher gibt es in diesem Modus im Wesentlichen nur zwei Stufen. Das heißt, die ersten beiden Stufen des Hauptmodus (Hash-Vereinbarung und DH-Austausch) werden sozusagen zu einer komprimiert. Daher ist dieser Modus viel gefährlicher, da die Antwort viele technische Informationen im Klartext enthält. Und am wichtigsten ist, dass das VPN-Gateway einen Passwort-Hash senden kann, der in der ersten Phase zur Authentifizierung verwendet wird (dieses Passwort wird oft als Pre-Shared Key oder PSK bezeichnet).

Nun, alle weiteren Verschlüsselungen erfolgen wie üblich ohne Änderungen. Warum wird dieser Modus dann immer noch verwendet? Tatsache ist, dass es viel schneller ist, etwa doppelt so schnell. Von besonderem Interesse für den Pentester ist die Tatsache, dass der aggressive Modus bei RA IPsec VPN sehr häufig verwendet wird. Ein weiteres kleines Feature von RA IPsec VPN bei Verwendung des aggressiven Modus: Wenn der Client den Server kontaktiert, sendet er ihm eine Kennung (Gruppennamen). Der Tunnelgruppenname (siehe Abbildung 2) ist der Name eines Eintrags, der eine Reihe von Richtlinien für eine bestimmte IPsec-Verbindung enthält. Dies ist bereits eine der spezifischen Funktionen von Cisco-Geräten.


Reis. 2. Name der Tunnelgruppe

Zwei Phasen reichten nicht aus

Es scheint, dass dies kein sehr einfaches Arbeitsschema ist, aber in Wirklichkeit ist es noch etwas komplizierter. Im Laufe der Zeit wurde klar, dass PSK allein nicht ausreichte, um die Sicherheit zu gewährleisten. Wenn beispielsweise der Arbeitsplatz eines Mitarbeiters kompromittiert wird, kann der Angreifer sofort auf das gesamte interne Netzwerk des Unternehmens zugreifen. Daher wurde Phase 1.5 genau zwischen der ersten und zweiten klassischen Phase entwickelt. Übrigens wird diese Phase normalerweise nicht bei einer standardmäßigen Site-to-Site-VPN-Verbindung verwendet, sondern bei der Organisation von Remote-VPN-Verbindungen (in unserem Fall). Diese Phase enthält zwei neue Erweiterungen – Extended Authentication (XAUTH) und Mode-Configuration (MODECFG).

XAUTH ist eine zusätzliche Benutzerauthentifizierung innerhalb des IKE-Protokolls. Diese Authentifizierung wird manchmal auch als zweiter IPsec-Faktor bezeichnet. Nun, MODECFG dient dazu, zusätzliche Informationen an den Client zu übermitteln. Dies können eine IP-Adresse, eine Maske, ein DNS-Server usw. sein. Es ist ersichtlich, dass diese Phase lediglich die zuvor besprochenen ergänzt, ihre Nützlichkeit ist jedoch unbestritten.

IKEv2 vs. IKEv1

Beide Protokolle arbeiten auf dem UDP-Port Nummer 500, sind jedoch nicht miteinander kompatibel; eine Situation, in der IKEv1 an einem Ende des Tunnels und IKEv2 am anderen Ende vorhanden ist, ist nicht zulässig. Hier sind die Hauptunterschiede zwischen der zweiten Version und der ersten:

In IKEv2 gibt es Konzepte wie Aggressive- oder Main-Modi nicht mehr.
– In IKEv2 wird der Begriff erste Phase durch IKE_SA_INIT (ein Austausch von zwei Nachrichten, der die Aushandlung von Verschlüsselungs-/Hashing-Protokollen und die Generierung von DH-Schlüsseln gewährleistet) ersetzt und die zweite Phase wird durch IKE_AUTH (ebenfalls zwei Nachrichten, die die Authentifizierung implementieren) ersetzt selbst).
- Mode Config (was in IKEv1 Phase 1.5 genannt wurde) wird jetzt direkt in der Protokollspezifikation beschrieben und ist ein integraler Bestandteil davon.
– IKEv2 hat einen zusätzlichen Mechanismus zum Schutz vor DoS-Angriffen hinzugefügt. Sein Kern besteht darin, dass das VPN-Gateway vor der Antwort auf jede Anfrage beim Aufbau einer sicheren Verbindung (IKE_SA_INIT) IKEv2 ein bestimmtes Cookie an die Quelle einer solchen Anfrage sendet und auf eine Antwort wartet. Wenn die Quelle geantwortet hat – alles ist in Ordnung, können Sie damit beginnen, DH zu generieren. Wenn die Quelle nicht antwortet (das passiert bei einem DoS-Angriff; diese Technik erinnert an TCP SYN Flood), vergisst das VPN-Gateway dies einfach. Ohne diesen Mechanismus würde das VPN-Gateway bei jeder Anfrage von irgendjemandem versuchen, einen DH-Schlüssel zu generieren (was ein ziemlich ressourcenintensiver Prozess ist) und würde bald auf Probleme stoßen. Aufgrund der Tatsache, dass nun alle Vorgänge eine Bestätigung von der anderen Seite der Verbindung erfordern, ist es unmöglich, eine große Anzahl halboffener Sitzungen auf dem angegriffenen Gerät zu erstellen.

Wir erreichen den Meilenstein

Nachdem Sie die Funktionsweise von IPsec und seinen Komponenten endlich verstanden haben, können Sie zum Wesentlichen übergehen – den praktischen Angriffen. Die Topologie wird recht einfach und gleichzeitig realitätsnah sein (siehe Abb. 3).


Reis. 3. Allgemeines Netzwerkdiagramm

Der erste Schritt besteht darin, das Vorhandensein eines IPsec-VPN-Gateways festzustellen. Dies kann durch einen Port-Scan erfolgen, hier gibt es jedoch eine kleine Funktion. ISAKMP verwendet das UDP-Protokoll, Port 500, während das Standardscannen mit Nmap nur TCP-Ports betrifft. Als Ergebnis erscheint die Meldung: „Alle 1000 gescannten Ports auf 37.59.0.253 werden gefiltert“.

Es scheint, dass alle Ports gefiltert sind und es keine offenen Ports gibt. Aber nach der Ausführung des Befehls

Nmap -sU --top-ports=20 37.59.0.253 Startet Nmap 6.47 (http://nmap.org) am 21.03.2015 um 12:29 GMT. Nmap-Scanbericht für 37.59.0.253. Host ist aktiv (0,066 s Latenz). . PORT STATE SERVICE 500/udp isakmp öffnen
Wir stellen sicher, dass dies nicht der Fall ist und dass es sich tatsächlich um ein VPN-Gerät handelt.

Lassen Sie uns die erste Phase in Angriff nehmen

Jetzt interessieren wir uns für die erste Phase, den aggressiven Modus und die Authentifizierung mit Pre-Shared Key (PSK). Wie wir uns erinnern, sendet in diesem Szenario das VPN-Gerät oder der Responder einen gehashten PSK an den Initiator. Eines der bekanntesten Dienstprogramme zum Testen des IKE-Protokolls ist ike-scan, es ist in der Kali Linux-Distribution enthalten. Mit Ike-Scan können Sie IKE-Nachrichten mit verschiedenen Parametern senden und entsprechend Antwortpakete dekodieren und analysieren. Versuchen wir, das Zielgerät zu untersuchen:

Root@kali:~# ike-scan -M -A 37.59.0.253 0 zurückgegebener Handshake; 0 zurückgegebene Benachrichtigung

Reis. 4. Ike-Scan-Aggressivmodus

Der Schalter „-A“ gibt an, dass der aggressive Modus verwendet werden soll, und „-M“ gibt an, dass die Ergebnisse zur leichteren Lesbarkeit zeilenweise (mehrzeilig) angezeigt werden sollen. Es ist klar, dass kein Ergebnis erzielt wurde. Der Grund dafür ist, dass Sie denselben Bezeichner angeben müssen, den Namen der VPN-Gruppe. Natürlich können Sie mit dem Dienstprogramm ike-scan diese Kennung als einen seiner Parameter festlegen. Da es uns aber noch unbekannt ist, nehmen wir einen beliebigen Wert, zum Beispiel 0000.

Root@kali:~# ike-scan -M -A --id=0000 37.59.0.253 37.59.0.253 Handshake im aggressiven Modus zurückgegeben


Reis. 5. Ike-Scan-ID

Dieses Mal sehen wir, dass die Antwort eingegangen ist (siehe Abb. 5) und wir mit vielen nützlichen Informationen versorgt wurden. Ein ziemlich wichtiger Teil der empfangenen Informationen ist der Transformationssatz. In unserem Fall heißt es: „Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK“.

Alle diese Parameter können für das Dienstprogramm ike-scan mit dem Schalter „--trans“ angegeben werden. Beispielsweise gibt „--trans=5,2,1,2“ an, dass der Verschlüsselungsalgorithmus 3DES, Hashing HMAC-SHA, Authentifizierungsmethode PSK und der zweite Gruppentyp DH (1024-Bit-MODP) ist. Die Wertekorrespondenztabellen können Sie unter dieser Adresse einsehen. Fügen wir einen weiteren Schlüssel („-P“) hinzu, um die Nutzlast des Pakets, bzw. den PSK-Hash, direkt anzuzeigen.

Root@kali:~# ike-scan -M -A --id=0000 37.59.0.253 -P


Reis. 6. Ike-Scan-Nutzlast

Überwindung der ersten Schwierigkeiten

Es scheint, dass der Hash erhalten wurde und Sie versuchen können, ihn zu knacken, aber alles ist nicht so einfach. Es war einmal, im Jahr 2005, dass einige Cisco-Hardware eine Schwachstelle aufwies: Diese Geräte gaben nur dann einen Hash aus, wenn der Angreifer den richtigen ID-Wert übergab. Nun ist es natürlich fast unmöglich, solche Geräte zu finden und es wird immer ein Hash-Wert gesendet, unabhängig davon, ob der Angreifer den richtigen ID-Wert gesendet hat oder nicht. Offensichtlich ist Brute-Force-Hashing sinnlos. Daher besteht die erste Aufgabe darin, den richtigen ID-Wert zu ermitteln, um den richtigen Hash zu erhalten. Und eine kürzlich entdeckte Schwachstelle wird uns dabei helfen.

Der Punkt ist, dass es beim ersten Nachrichtenaustausch einen leichten Unterschied zwischen den Antworten gibt. Kurz gesagt: Wenn der richtige Gruppenname verwendet wird, gibt es vier Versuche, die VPN-Verbindung weiter aufzubauen, plus zwei verschlüsselte Phase-2-Pakete. Bei einer falschen ID hingegen kommen nur zwei Pakete als Antwort an. Wie Sie sehen, ist der Unterschied ziemlich groß, daher entwickelte SpiderLabs (der Autor des ebenso interessanten Responder-Tools) zunächst einen PoC und dann das IKEForce-Dienstprogramm, um diese Schwachstelle auszunutzen.

Was ist die Stärke von IKE?

Sie können IKEForce in einem beliebigen Verzeichnis installieren, indem Sie den Befehl ausführen

Git-Klon https://github.com/SpiderLabs/ikeforce
Es funktioniert in zwei Hauptmodi – dem Berechnungsmodus „-e“ (Aufzählung) und dem Brute-Force-Modus „-b“ (Bruteforce). Zum zweiten Punkt kommen wir, wenn wir uns die Angriffe auf den zweiten Faktor ansehen, aber wir befassen uns jetzt mit dem ersten. Bevor Sie mit dem eigentlichen Prozess der Ermittlung der ID beginnen, müssen Sie den genauen Wert von transform-set festlegen. Wir haben es bereits früher definiert, daher werden wir es mit der Option „-t 5 2 1 2“ angeben. Infolgedessen sieht der Prozess zum Finden der ID wie folgt aus:

Python ikeforce.py 37.59.0.253 -e -w wordlists/group.txt -t 5 2 1 2


Reis. 7. IKEForce-Aufzählung

Dadurch konnte recht schnell der korrekte ID-Wert ermittelt werden (Abb. 7). Der erste Schritt ist geschafft, Sie können weitermachen.

Wir erhalten PSK

Jetzt müssen Sie den PSK-Hash mit dem richtigen Gruppennamen in einer Datei speichern; dies kann mit ike-scan erfolgen:

Ike-scan -M -A --id=vpn 37.59.0.253 -Pkey.psk
Und da nun der richtige ID-Wert gefunden und der richtige PSK-Hash erhalten wurde, können wir endlich mit der Offline-Brute-Force beginnen. Es gibt eine ganze Reihe von Optionen für eine solche Brute-Force-Methode – das klassische Dienstprogramm psk-crack und John the Ripper (mit einem Jumbo-Patch) und sogar oclHashcat, mit dem Sie bekanntlich die Leistung des nutzen können GPU. Der Einfachheit halber verwenden wir psk-crack, das sowohl direkte Brute-Force- als auch Wörterbuchangriffe unterstützt:

Psk-crack -d /usr/share/ike-scan/psk-crack-dictionary key.psk

Reis. 8. PSK-Riss

Aber selbst die erfolgreiche Wiederherstellung von PSK (siehe Abb. 8) ist nur die halbe Miete. An dieser Stelle müssen wir bedenken, dass als nächstes XAUTH und der zweite Faktor von IPsec VPN auf uns warten.

Umgang mit dem zweiten IPsec-Faktor

Ich möchte Sie daran erinnern, dass XAUTH eine zusätzliche Sicherheit, ein zweiter Authentifizierungsfaktor, ist und sich in Phase 1.5 befindet. Für XAUTH gibt es mehrere Optionen – dazu gehören die Überprüfung mithilfe des RADIUS-Protokolls, Einmalkennwörter (OTP) und eine regelmäßige lokale Benutzerbasis. Wir konzentrieren uns auf die Standardsituation, in der eine lokale Benutzerbasis zur Überprüfung des zweiten Faktors verwendet wird. Bis vor kurzem gab es kein öffentlich verfügbares Tool für Brute-Force-XAUTH. Aber mit dem Aufkommen von IKEForce erhielt dieses Problem eine würdige Lösung. Das Starten der XAUTH-Brute-Force-Methode ist ganz einfach:

Python ikeforce.py 37.59.0.253 -b -i vpn -k cisco123 -u admin -w wordlists/passwd.txt -t 5 2 1 2 [+]Programm im XAUTH-Brute-Force-Modus gestartet [+]Einzelbenutzer bereitgestellt – Brute-Forcing Passwörter für Benutzer: admin [*]XAUTH-Authentifizierung erfolgreich! Benutzername: admin Passwort: Cisco


Reis. 9. IKEForce XAUTH

In diesem Fall werden alle zuvor gefundenen Werte angezeigt: ID (Schalter „-i“), wiederhergestellter PSK (Schalter „-k“) und der vorgesehene Login (Schalter „-u“). IKEForce unterstützt sowohl die Brute-Force-Suche eines Logins als auch das Durchsuchen einer Liste von Logins, die mit dem Parameter „-U“ angegeben werden kann. Im Falle einer möglichen Auswahlblockierung gibt es die Option „-s“, mit der Sie die Brute-Force-Geschwindigkeit reduzieren können. Im Lieferumfang des Dienstprogramms sind übrigens mehrere gute Wörterbücher enthalten, die besonders zum Festlegen des Werts des ID-Parameters nützlich sind.

Melden Sie sich beim internen Netzwerk an

Nachdem wir nun alle Daten haben, bleibt nur noch der letzte Schritt – das eigentliche Eindringen in das lokale Netzwerk. Dazu benötigen wir eine Art VPN-Client, von denen es sehr viele gibt. Im Fall von Kali können Sie jedoch problemlos das bereits vorinstallierte VPNC verwenden. Damit es funktioniert, müssen Sie eine Konfigurationsdatei anpassen – „/etc/vpnc/vpn.conf“. Wenn es nicht vorhanden ist, müssen Sie eine Reihe offensichtlicher Parameter erstellen und ausfüllen:

IPSec-Gateway 37.59.0.253
IPSec-ID VPN
IPSec-Geheimnis Cisco123
IKE Authmode psk
Xauth-Benutzername-Administrator
Xauth-Passwort Cisco

Hier sehen wir, dass absolut alle in den vorherigen Schritten gefundenen Daten verwendet wurden – der ID-Wert, PSK, Login und Passwort des zweiten Faktors. Danach erfolgt die Verbindung selbst mit einem Befehl:

Root@kali:~# vpnc vpn
Auch das Deaktivieren ist ganz einfach:

Root@kali:~# vpnc-disconnect
Sie können die Funktionsfähigkeit der Verbindung mit dem Befehl „ifconfig tun0“ überprüfen.


Reis. 10.VPN

So bauen Sie zuverlässigen Schutz auf

Der Schutz vor den heute besprochenen Angriffen muss umfassend sein: Sie müssen Patches rechtzeitig installieren, starke Pre-Shared Keys verwenden, die nach Möglichkeit durch digitale Zertifikate ersetzt werden sollten. Auch Passwortrichtlinien und andere offensichtliche Elemente der Informationssicherheit spielen eine wichtige Rolle bei der Gewährleistung der Sicherheit. Es ist auch zu beachten, dass sich die Situation allmählich ändert und im Laufe der Zeit nur noch IKEv2 übrig bleibt.

Was ist das Ergebnis?

Wir haben den RA IPsec VPN-Auditprozess ausführlich behandelt. Ja, natürlich ist diese Aufgabe alles andere als trivial. Sie müssen viele Schritte unternehmen, und bei jedem von ihnen können Schwierigkeiten auf Sie warten, aber wenn Sie erfolgreich sind, ist das Ergebnis mehr als beeindruckend. Der Zugriff auf interne Netzwerkressourcen eröffnet den größten Handlungsspielraum. Daher sollten sich diejenigen, die für den Schutz des Netzwerkperimeters verantwortlich sind, nicht auf vorgefertigte Standardvorlagen verlassen, sondern jede Sicherheitsebene sorgfältig durchdenken. Nun, für diejenigen, die Pentests durchführen, ist der erkannte UDP-Port 500 ein Grund, eine eingehende Analyse der IPsec-VPN-Sicherheit durchzuführen und möglicherweise gute Ergebnisse zu erzielen.

Abonnieren Sie „Hacker“

0 Dieser Artikel bietet einen Überblick über die IP-Sicherheitstools (IP Security) und die zugehörigen IPSec-Protokolle, die in Cisco-Produkten zum Erstellen virtueller privater Netzwerke (VPNs) verfügbar sind. In diesem Artikel definieren wir, was IPSEC ist und welche Protokolle und Sicherheitsalgorithmen IPSEC zugrunde liegen.

Einführung

IP-Sicherheit ist eine Reihe von Protokollen, die sich mit Fragen der Verschlüsselung, Authentifizierung und Sicherheit beim Transport von IP-Paketen befassen. es umfasst mittlerweile fast 20 Standardvorschläge und 18 RFCs.

Cisco VPN-Produkte nutzen die IPSec-Protokollsuite, den Industriestandard für die Bereitstellung umfassender VPN-Funktionen. IPSec bietet einen Mechanismus zur sicheren Datenübertragung über IP-Netzwerke und gewährleistet die Vertraulichkeit, Integrität und Zuverlässigkeit von Daten, die über ungesicherte Netzwerke wie das Internet übertragen werden. IPSec bietet die folgenden VPN-Funktionen in Cisco-Netzwerken:

  • Datenprivatsphäre. Der IPSec-Datensender hat die Möglichkeit, Pakete zu verschlüsseln, bevor sie über das Netzwerk gesendet werden.
  • Datenintegrität. Ein IPSec-Empfänger hat die Möglichkeit, die mit ihm kommunizierenden Parteien (die Geräte oder Software, bei denen IPSec-Tunnel beginnen und enden) und die von diesen Parteien gesendeten IPSec-Pakete zu authentifizieren, um sicherzustellen, dass die Daten während der Übertragung nicht verändert wurden.
  • Authentifizierung der Datenquelle. Der IPSec-Empfänger hat die Möglichkeit, die Quelle der empfangenen IPSec-Pakete zu authentifizieren. Dieser Dienst ist vom Datenintegritätsdienst abhängig.
  • Wiedergabeschutz. Der IPSec-Empfänger kann wiedergegebene Pakete erkennen und ablehnen und so verhindern, dass Pakete gefälscht oder Man-in-the-Middle-Angriffen ausgesetzt werden.

IPSec ist ein auf Standards basierender Satz von Sicherheitsprotokollen und -algorithmen. Die IPSec-Technologie und die zugehörigen Sicherheitsprotokolle entsprechen offenen Standards, die von der Internet Engineering Task Force (IETF) gepflegt und in RFC-Spezifikationen und IETF-Entwürfen beschrieben werden. IPSec arbeitet auf der Netzwerkebene und bietet Sicherheit und Authentifizierung für IP-Pakete, die zwischen IPSec-Geräten (Parteien) gesendet werden – wie z. B. Cisco-Routern, PIX-Firewalls, Cisco VPN-Clients und -Konzentratoren und vielen anderen Produkten, die IPSec unterstützen. Die IPSec-Unterstützung reicht von sehr kleinen bis hin zu sehr großen Netzwerken.

Sicherheitsvereinigung (SA)

IPSec bietet eine Standardmethode zur Authentifizierung und Verschlüsselung der Kommunikation zwischen kommunizierenden Parteien. Um die Kommunikation zu sichern, verwendet IPSec standardmäßige Verschlüsselungs- und Authentifizierungsalgorithmen (also mathematische Formeln), sogenannte Transformationen. IPSec nutzt offene Standards für die Aushandlung von Verschlüsselungsschlüsseln und das Verbindungsmanagement, um die Interoperabilität zwischen Parteien zu ermöglichen. Die IPSec-Technologie bietet Methoden, die es IPSec-Parteien ermöglichen, die vereinbarte Nutzung von Diensten „auszuhandeln“. IPSec verwendet Sicherheitszuordnungen, um ausgehandelte Parameter anzugeben.

Verteidigungsverband(Security Association – SA) ist eine vereinbarte Richtlinie oder Methode zur Verarbeitung von Daten, die zwischen zwei Geräten kommunizierender Parteien ausgetauscht werden sollen. Ein Bestandteil einer solchen Richtlinie kann der Algorithmus sein, der zur Verschlüsselung der Daten verwendet wird. Beide Parteien können denselben Algorithmus sowohl für die Verschlüsselung als auch für die Entschlüsselung verwenden. Die effektiven SA-Parameter werden in der Security Association Database (SAD) beider Parteien gespeichert.

Zwei Computer auf jeder Seite der SA speichern den in der SA verwendeten Modus, das Protokoll, die Algorithmen und die Schlüssel. Jede SA wird nur in eine Richtung verwendet. Für die bidirektionale Kommunikation sind zwei SAs erforderlich. Jede SA implementiert einen Modus und ein Protokoll. Wenn also zwei Protokolle für ein Paket verwendet werden müssen (z. B. AH und ESP), sind zwei SAs erforderlich.

Das IKE-Protokoll (Internet Key Exchange) ist ein Hybridprotokoll, das einen spezifischen Dienst für IPSec bereitstellt, nämlich die Authentifizierung von IPSec-Parteien, die Aushandlung von IKE- und IPSec-Sicherheitszuordnungsparametern und die Auswahl von Schlüsseln für in IPSec verwendete Verschlüsselungsalgorithmen. Das IKE-Protokoll basiert auf den Protokollen Internet Security Association and Key Management Protocol (ISAKMP) und Oakley, die zur Verwaltung der Erstellung und Verarbeitung von Verschlüsselungsschlüsseln verwendet werden, die in IPSec-Transformationen verwendet werden. Das IKE-Protokoll wird auch verwendet, um Sicherheitsbeziehungen zwischen potenziellen IPSec-Parteien herzustellen.
Sowohl IKE als auch IPSec verwenden Sicherheitszuordnungen, um Kommunikationsparameter festzulegen.
IKE unterstützt eine Reihe verschiedener primitiver Funktionen zur Verwendung in Protokollen. Dazu gehören die Hash-Funktion und die Pseudozufallsfunktion (PRF).

Hash-Funktion ist eine kollisionssichere Funktion. Kollisionsresistenz bezieht sich auf die Tatsache, dass es unmöglich ist, zwei unterschiedliche Nachrichten m1 und m2 so zu finden

H(m1)=H(m2), wobei H die Hash-Funktion ist.

Was Pseudozufallsfunktionen betrifft, wird im HMAC-Design derzeit eine Hash-Funktion anstelle spezieller PRFs verwendet (HMAC ist ein Nachrichtenauthentifizierungsmechanismus, der Hash-Funktionen verwendet). Um HMAC zu definieren, benötigen wir eine kryptografische Hash-Funktion (nennen wir sie H) und einen geheimen Schlüssel K. Wir gehen davon aus, dass H eine Hash-Funktion ist, bei der Daten mithilfe eines Komprimierungsverfahrens gehasht werden, das sequentiell auf eine Folge von Datenblöcken angewendet wird. Wir bezeichnen mit B die Länge solcher Blöcke in Bytes und die Länge der durch Hashing erhaltenen Blöcke mit L (L
ipad = Byte 0x36, B-mal wiederholt;
opad = Byte 0x5C B-mal wiederholt.

Um HMAC aus „Text“-Daten zu berechnen, müssen Sie den folgenden Vorgang ausführen:

H(K XOR opad, H(K XOR ipad, text))

Aus der Beschreibung geht hervor, dass IKE HASH-Werte zur Authentifizierung von Parteien verwendet. Beachten Sie, dass sich HASH in diesem Fall ausschließlich auf den Payload-Namen in ISAKMP bezieht und dieser Name nichts mit seinem Inhalt zu tun hat

IPSec-Infrastruktur

Am häufigsten lassen sich IPSec-basierte VPN-Netzwerke aufbauen verschiedene Geräte Cisco - Cisco-Router, CiscoSecure PIX-Firewalls, CiscoSecure VPN-Client-Software und Cisco VPN-Konzentratoren der Serien 3000 und 5000. Cisco-Router verfügen über integrierte VPN-Unterstützung mit den entsprechenden umfangreichen Funktionen der Cisco IOS-Software, wodurch die Komplexität reduziert wird Netzwerklösungen und reduziert die Gesamtkosten von VPN mit der Möglichkeit, einen mehrstufigen Schutz der bereitgestellten Dienste aufzubauen. Die PIX-Firewall ist leistungsstark Netzwerkgerät, die Tunnelendpunkte bedienen und ihnen eine hohe Versorgung bieten kann Durchsatz und schön Funktionalität Firewall. Software Der CiscoSecure VPN Client unterstützt die strengsten VPN-Anforderungen Fernzugriff für Operationen E-Commerce sowie mobile Zugangsanwendungen, die eine vollständige Implementierung von IPSec-Standards bieten und eine zuverlässige Interaktion zwischen Cisco-Routern und PIX-Firewalls gewährleisten.

So funktioniert IPSec


IPSec stützt sich auf eine Reihe von Technologien und Verschlüsselungsmethoden, aber IPSec kann im Allgemeinen als die folgenden Hauptschritte betrachtet werden:
  • Schritt 1: Starten Sie den IPSec-Prozess. Datenverkehr, der gemäß der von den IPSec-Parteien vereinbarten IPSec-Sicherheitsrichtlinie eine Verschlüsselung erfordert, beginnt mit dem IKE-Prozess.
  • Schritt 2: IKE Phase Eins. Der IKE-Prozess authentifiziert IPSec-Parteien und handelt IKE-Sicherheitszuordnungsparameter aus, was zu einem sicheren Kanal für die Aushandlung von IPSec-Sicherheitszuordnungsparametern während der zweiten Phase von IKE führt.
  • Schritt 3: IKE Phase Zwei. Der IKE-Prozess handelt IPSec-Sicherheitszuordnungsparameter aus und richtet geeignete IPSec-Sicherheitszuordnungen für Geräte der kommunizierenden Partei ein.
  • Schritt 4: Datenübertragung. Die Kommunikation zwischen kommunizierenden IPSec-Parteien erfolgt auf der Grundlage von IPSec-Parametern und Schlüsseln, die in der Sicherheitszuordnungsdatenbank gespeichert sind.
  • Schritt 5: Beenden Sie den IPSec-Tunnel. IPSec-Sicherheitszuordnungen werden entweder beendet, weil sie gelöscht werden oder weil ihr Lebensdauerlimit überschritten wurde.
In den folgenden Abschnitten werden diese Schritte detaillierter beschrieben.
Netzwerk, ein sicherer Tunnel (Abb. 5.9), über den vertrauliche oder sensible Daten übertragen werden. Ein solcher Tunnel wird mit kryptografischen Methoden zum Schutz von Informationen erstellt.

Das Protokoll arbeitet auf der Netzwerkebene des OSI-Modells und ist daher für Anwendungen „transparent“. Mit anderen Worten: Der Betrieb von Anwendungen (z. B. Webserver, Browser, DBMS usw.) wird nicht beeinträchtigt, unabhängig davon, ob die übertragenen Daten durch IPSec geschützt sind oder nicht.

Betriebssysteme der Windows 2000-Familie und höher verfügen über eine integrierte Unterstützung für das IPSec-Protokoll. Aus Sicht des mehrschichtigen Sicherheitsmodells ist dieses Protokoll ein Sicherheitstool auf Netzwerkebene.


Reis. 5.9.

Die IPSec-Architektur ist offen, was insbesondere den Einsatz neuer kryptografischer Algorithmen und Protokolle, beispielsweise nach nationalen Standards, zum Schutz übertragener Daten ermöglicht. Hierzu ist es erforderlich, dass die kommunizierenden Parteien diese Algorithmen unterstützen und diese in der Beschreibung der Verbindungsparameter einheitlich registriert werden.

Der Prozess der sicheren Datenübertragung unterliegt den im System festgelegten Sicherheitsregeln. Beschreibt die Parameter des erstellten Tunnels Informationsstruktur, genannt Sicherheitskontext oder Sicherheitsassoziation (von der englischen Security Association, Abk. SA). Wie oben erwähnt, handelt es sich bei IPSec um eine Reihe von Protokollen, und die Zusammensetzung der SA kann je nach Protokoll variieren. SA umfasst:

  • Empfänger-IP-Adresse;
  • eine Angabe der bei der Datenübertragung verwendeten Sicherheitsprotokolle;
  • die für die Verschlüsselung und Generierung des Nachahmungseinsatzes erforderlichen Schlüssel (falls erforderlich);
  • eine Angabe der Formatierungsmethode, die bestimmt, wie Überschriften erstellt werden;
  • Sicherheitsparameterindex (vom englischen Security Parameter Index, abgekürzt SPI) – eine Kennung, mit der Sie die gewünschte SA finden können.

Normalerweise ist der Sicherheitskontext unidirektional und es werden zwei SAs verwendet, um Daten in beide Richtungen durch den Tunnel zu übertragen. Jeder Host verfügt über eine eigene SA-Datenbank, aus der das erforderliche Element entweder basierend auf SPI oder der IP-Adresse des Empfängers ausgewählt wird.

Die beiden in IPSec enthaltenen Protokolle sind:

  1. Authentifizierungs-Header-Protokoll- AH (vom englischen Authentication Header), das eine Integritätsüberprüfung und Authentifizierung der übertragenen Daten ermöglicht; letzte Version Das Protokoll ist in RFC 4302 (früher: RFC 1826, 2402) beschrieben.
  2. Encapsulated Data Protection Protocol – ESP (aus dem Englischen). Kapselung der Sicherheitsnutzlast) – sorgt für Vertraulichkeit und kann optional eine Integritätsprüfung und Authentifizierung bereitstellen, beschrieben in RFC 4303 (früher – RFC 1827, 2406).

Beide Protokolle haben zwei Betriebsmodi – Transport und Tunnel, wobei letzterer als der Hauptmodus definiert ist. Tunnelmodus Wird verwendet, wenn mindestens einer der Verbindungsknoten ein Sicherheitsgateway ist. In diesem Fall wird ein neuer IP-Header erstellt und das ursprüngliche IP-Paket vollständig im neuen gekapselt.

Transportmodus Der Schwerpunkt liegt auf der Host-zu-Host-Verbindung. Bei Verwendung von ESP im Transportmodus sind nur die Daten des IP-Pakets geschützt, der Header ist nicht betroffen. Bei Verwendung von AH erstreckt sich der Schutz auf die Daten und einen Teil der Header-Felder. Nachfolgend werden die Betriebsarten näher beschrieben.

AH-Protokoll

In IP Version 4 wird der Authentifizierungsheader nach dem IP-Header platziert. Stellen wir uns das ursprüngliche IP-Paket als eine Reihe von IP-Headern und Protokoll-Headern vor nächste Ebene(in der Regel ist dies TCP oder UDP, in Abb. 5.10 wird es als ULP bezeichnet – vom englischen Upper-Level Protocol) und Daten.


Reis. 5.10.

Betrachten Sie das ESP-Header-Format (Abb. 5.13). Es beginnt mit zwei 32-Bit-Werten – SPI Und SN. Ihre Rolle ist dieselbe wie im AH-Protokoll – SPI identifiziert die SA, die zum Erstellen dieses Tunnels verwendet wurde; SN- ermöglicht Ihnen den Schutz vor Paketwiederholungen. SN Und SPI sind nicht verschlüsselt.

Das nächste Feld enthält die verschlüsselten Daten. Danach folgt ein Platzhalterfeld, das benötigt wird, um die Länge der verschlüsselten Felder auf einen Wert auszurichten, der ein Vielfaches der Blockgröße des Verschlüsselungsalgorithmus ist.


Reis. 5.12.


Reis. 5.13.

Nach dem Platzhalter folgen Felder mit der Länge des Platzhalters und einer Angabe des übergeordneten Protokolls. Die vier aufgeführten Felder (Daten, Platzhalter, Länge, nächstes Protokoll) sind durch Verschlüsselung geschützt.

Wenn ESP auch zur Datenauthentifizierung verwendet wird, endet das Paket mit einem Feld variabler Länge, das den ICV enthält. Im Gegensatz zu AH werden in ESP bei der Berechnung des Imitovsert-Werts die Felder des IP-Headers (neu – für den Tunnelmodus, modifiziert alt – für den Transport) nicht berücksichtigt.

Wenn Sie die Protokolle AH und ESP zusammen verwenden, kommt nach dem IP-Header AH und danach - ESP. In diesem Fall löst ESP die Probleme der Gewährleistung der Vertraulichkeit, AH – der Gewährleistung der Integrität und Authentifizierung der Verbindungsquelle.

Betrachten wir eine Reihe zusätzlicher Probleme im Zusammenhang mit der Verwendung von IPSec. Beginnen wir damit, woher die Informationen über die Verbindungsparameter – SA – kommen. Die Erstellung einer SA-Basis kann auf verschiedene Arten erfolgen. Insbesondere kann es erstellt werden Sicherheitsadministrator manuell oder mithilfe spezieller Protokolle generiert – SKIP, ISAKMP (Internet Security Association and Key Management Protocol) und IKE (Internet Key Exchange).

IPSec und NAT

Bei der Verbindung von Organisationsnetzwerken mit dem Internet wird häufig ein Netzwerkadressübersetzungsmechanismus verwendet – NAT (Network Address Translation). Dadurch können Sie die Anzahl der registrierten IP-Adressen reduzieren, die in einem bestimmten Netzwerk verwendet werden. Innerhalb des Netzwerks werden nicht registrierte Adressen verwendet (normalerweise aus speziell für diesen Zweck zugewiesenen Bereichen, beispielsweise Adressen wie 192.168.x.x für Netzwerke der Klasse C). Wird ein Paket aus einem solchen Netzwerk ins Internet übertragen, dann modifiziert der Router, dessen externe Schnittstelle mindestens eine registrierte IP-Adresse zugewiesen ist, die IP-Header der Netzwerkpakete und ersetzt die privaten Adressen durch die registrierte Adresse. Die Art und Weise, wie die Substitution durchgeführt wird, wird in einer speziellen Tabelle erfasst. Beim Empfang einer Antwort wird entsprechend der Tabelle eine umgekehrte Ersetzung vorgenommen und das Paket an das interne Netzwerk weitergeleitet.

Schauen wir uns ein Beispiel für die Verwendung von NAT in Abb. an. 5.14. In diesem Fall werden im internen Netzwerk die privaten Adressen 192.168.0.x verwendet. Von einem Computer mit der Adresse 192.168.0.2 greifen sie über das externe Netzwerk auf einen Computer mit der Adresse 195.242.2.2 zu. Dies sei eine Verbindung zu einem Webserver (HTTP-Protokoll, der Folgendes verwendet). TCP-Port 80).

Wenn ein Paket einen Router passiert, der eine Adressübersetzung durchführt, wird die IP-Adresse des Absenders (192.168.0.2) durch die Adresse ersetzt externe Schnittstelle Router (195.201.82.146) und einen Eintrag ähnlich dem in

Internet Protocol Security (IPSec) wird in Internetstandards als System bezeichnet. Tatsächlich handelt es sich bei IPSec um einen konsistenten Satz offener Standards, der heute über einen klar definierten Kern verfügt und gleichzeitig recht einfach um neue Protokolle, Algorithmen und Funktionen erweitert werden kann.

Der Hauptzweck von IPSec-Protokollen besteht darin, eine sichere Datenübertragung über IP-Netzwerke zu gewährleisten. Der Einsatz von IPSec garantiert:

  • Integrität, d. h. dass die Daten während der Übertragung nicht verfälscht, verloren oder dupliziert wurden;
  • Authentizität, d. h. dass die Daten vom Absender übermittelt wurden, der bewiesen hat, dass er der ist, für den er sich ausgibt;
  • Vertraulichkeit, d. h. dass die Daten in einer Form übermittelt werden, die eine unbefugte Einsichtnahme verhindert.

(Beachten Sie, dass das Konzept der Datensicherheit gemäß der klassischen Definition eine weitere Anforderung beinhaltet – die Verfügbarkeit von Daten, die im betrachteten Kontext als Garantie für deren Lieferung interpretiert werden kann. IPSec-Protokolle lösen dieses Problem nicht, verlassen es an das TCP-Transportschichtprotokoll weiter.)

GESICHERTE KANÄLE AUF VERSCHIEDENEN EBENEN

IPSec ist nur eine von vielen, wenn auch heute die beliebteste Technologie zur sicheren Datenübertragung über ein öffentliches (ungesichertes) Netzwerk. Für Technologien dieses Zwecks wird ein allgemeiner Name verwendet – sicherer Kanal. Der Begriff „Kanal“ betont die Tatsache, dass der Datenschutz zwischen zwei Netzwerkknoten (Hosts oder Gateways) entlang eines virtuellen Pfades erfolgt, der in einem paketvermittelten Netzwerk verlegt ist.

Ein sicherer Kanal kann mithilfe von Systemtools erstellt werden, die auf verschiedenen Ebenen des OSI-Modells implementiert sind (siehe Abbildung 1). Wenn zum Schutz von Daten ein Protokoll einer der oberen Ebenen (Anwendung, Präsentation oder Sitzung) verwendet wird, dann ist diese Schutzmethode unabhängig davon, welche Netzwerke (IP oder IPX, Ethernet oder ATM) für den Datentransport verwendet werden, was kann als unbestrittener Vorteil angesehen werden. Andererseits wird die Anwendung von einem bestimmten Sicherheitsprotokoll abhängig, d. h. für Anwendungen ist ein solches Protokoll nicht transparent.

Ein sicherer Kanal auf der höchsten Anwendungsebene hat einen weiteren Nachteil: einen begrenzten Umfang. Das Protokoll schützt nur ein ganz bestimmtes Netzwerkdienst- Datei, Hypertext oder E-Mail. Beispielsweise schützt das S/MIME-Protokoll ausschließlich Nachrichten Email. Daher muss für jeden Dienst eine entsprechende sichere Version des Protokolls entwickelt werden.

Das bekannteste sichere Kanalprotokoll, das auf der nächsten Präsentationsebene arbeitet, ist das Secure Socket Layer (SSL)-Protokoll und seine neue offene Implementierung Transport Layer Security (TLS). Durch die Senkung der Protokollebene wird es zu einem viel vielseitigeren Sicherheitstool. Jetzt kann jede Anwendung und jedes Protokoll auf Anwendungsebene ein einziges Sicherheitsprotokoll verwenden. Allerdings müssen Anwendungen noch neu geschrieben werden, um explizite Aufrufe an sichere Kanalprotokollfunktionen einzuschließen.

Je weiter unten im Stapel sichere Kanalfunktionen implementiert sind, desto einfacher ist es, sie für Anwendungen und Anwendungsprotokolle transparent zu machen. Auf Netzwerk- und Datenverbindungsebene verschwindet die Abhängigkeit von Anwendungen von Sicherheitsprotokollen vollständig. Allerdings stehen wir hier vor einem weiteren Problem – der Abhängigkeit des Sicherheitsprotokolls von einem bestimmten Netzwerktechnologie. Tatsächlich verwenden verschiedene Teile eines großen Verbundnetzwerks im Allgemeinen unterschiedliche Verbindungsprotokolle, sodass es unmöglich ist, mit einem einzigen Verbindungsschichtprotokoll einen sicheren Kanal durch diese heterogene Umgebung zu legen.

Betrachten Sie zum Beispiel das Point-to-Point Tunneling Protocol (PPTP), das auf läuft Linkebene. Es basiert auf dem PPP-Protokoll, das häufig bei Punkt-zu-Punkt-Verbindungen, beispielsweise Mietleitungen, verwendet wird. Das PPTP-Protokoll bietet nicht nur Sicherheitstransparenz für Anwendungen und Dienste auf Anwendungsebene, sondern ist auch unabhängig vom verwendeten Netzwerkschichtprotokoll: Insbesondere kann das PPTP-Protokoll Pakete sowohl in IP-Netzwerken als auch in Netzwerken transportieren, die auf den Protokollen IPX und DECnet basieren oder NetBEUI. Da PPP jedoch nicht in allen Netzwerken verwendet wird (die meisten lokale Netzwerke Da das Ethernet-Protokoll auf Datenverbindungsebene und die ATM- und Frame-Relay-Protokolle auf globaler Ebene arbeiten, kann PPTP nicht als universelles Werkzeug angesehen werden.

IPSec, das auf der Netzwerkebene operiert, ist eine Kompromissoption. Einerseits ist es für Anwendungen transparent, andererseits kann es in fast allen Netzwerken funktionieren, da es auf dem weit verbreiteten IP-Protokoll basiert: Derzeit unterstützen weltweit nur 1 % der Computer kein IP Alle anderen nutzen es entweder als einzelnes Protokoll oder als eines von mehreren Protokollen.

VERTEILUNG DER FUNKTIONEN ZWISCHEN IPSEC-PROTOKOLLEN

Der Kern von IPSec besteht aus drei Protokollen: dem Authentifizierungsprotokoll (Authentication Header, AH), dem Verschlüsselungsprotokoll (Encapsulation Security Payload, ESP) und dem Schlüsselaustauschprotokoll (Internet Key Exchange, IKE). Die Funktionen zur Aufrechterhaltung eines sicheren Kanals sind wie folgt auf diese Protokolle verteilt:

  • Das AH-Protokoll garantiert Datenintegrität und -authentizität.
  • Das ESP-Protokoll verschlüsselt übertragene Daten und garantiert so Vertraulichkeit, kann aber auch Authentifizierung und Datenintegrität unterstützen;
  • Das IKE-Protokoll löst die Hilfsaufgabe, Kanalendpunkte automatisch mit den geheimen Schlüsseln zu versorgen, die für den Betrieb von Authentifizierungs- und Datenverschlüsselungsprotokollen erforderlich sind.

Wie aus ersichtlich ist kurze Beschreibung Funktionen überschneiden sich die Fähigkeiten der AH- und ESP-Protokolle teilweise. Das AH-Protokoll ist nur für die Gewährleistung der Datenintegrität und -authentifizierung verantwortlich, während das ESP-Protokoll leistungsfähiger ist, da es Daten verschlüsseln und darüber hinaus die Funktionen des AH-Protokolls ausführen kann (obwohl es, wie wir später sehen werden, eine Authentifizierung bietet). und Integrität in leicht reduzierter Form). Das ESP-Protokoll kann Verschlüsselungs- und Authentifizierungs-/Integritätsfunktionen in beliebiger Kombination unterstützen, d. h. entweder beide Funktionsgruppen oder nur Authentifizierung/Integrität oder nur Verschlüsselung.

Um Daten in IPSec zu verschlüsseln, kann jeder symmetrische Verschlüsselungsalgorithmus verwendet werden, der geheime Schlüssel verwendet. Die Gewährleistung der Datenintegrität und Authentifizierung basiert ebenfalls auf einer der Verschlüsselungstechniken – der Verschlüsselung mittels einer Einwegfunktion, auch Hash-Funktion oder Digest-Funktion genannt.

Diese Funktion führt bei Anwendung auf verschlüsselte Daten zu einem Digest-Wert, der aus einer festen kleinen Anzahl von Bytes besteht. Der Digest wird in einem IP-Paket zusammen mit der Originalnachricht gesendet. Der Empfänger weiß, welche Einwegverschlüsselungsfunktion zum Erstellen des Digests verwendet wurde, und berechnet ihn anhand der Originalnachricht neu. Wenn die Werte der empfangenen und berechneten Digests gleich sind, bedeutet dies, dass der Inhalt des Pakets während der Übertragung keinen Änderungen unterworfen war. Die Kenntnis des Digests ermöglicht zwar keine Rekonstruktion der ursprünglichen Nachricht und kann daher nicht zum Schutz verwendet werden, sie ermöglicht jedoch die Überprüfung der Integrität der Daten.

Der Digest ist eine Art Prüfsumme für die Originalnachricht. Allerdings gibt es auch einen wesentlichen Unterschied. Die Verwendung einer Prüfsumme ist ein Mittel zur Überprüfung der Integrität von Nachrichten, die über unzuverlässige Kommunikationsleitungen übertragen werden, und dient nicht der Bekämpfung böswilliger Aktivitäten. Tatsächlich hindert das Vorhandensein einer Prüfsumme im übertragenen Paket einen Angreifer nicht daran, die ursprüngliche Nachricht durch Hinzufügen eines neuen Prüfsummenwerts zu ersetzen. Im Gegensatz zu einer Prüfsumme wird bei der Berechnung des Digests ein geheimer Schlüssel verwendet. Wenn zum Erhalten des Digests eine Einwegfunktion mit einem Parameter (dem geheimen Schlüssel) verwendet würde, der nur dem Absender und dem Empfänger bekannt ist, würde jede Änderung der ursprünglichen Nachricht sofort erkannt.

Die Trennung der Sicherheitsfunktionen zwischen den beiden Protokollen AH und ESP ist auf die in vielen Ländern praktizierte Praxis zurückzuführen, den Export und/oder Import von Tools einzuschränken, die die Vertraulichkeit der Daten durch Verschlüsselung gewährleisten. Jedes dieser beiden Protokolle kann entweder unabhängig voneinander oder gleichzeitig mit dem anderen verwendet werden, so dass in Fällen, in denen die Verschlüsselung aufgrund aktueller Einschränkungen nicht verwendet werden kann, das System nur mit dem AH-Protokoll versorgt werden kann. Natürlich reicht es in vielen Fällen nicht aus, die Daten nur über das AH-Protokoll zu schützen, da die empfangende Seite in diesem Fall nur sicher sein kann, dass die Daten genau von dem Knoten gesendet wurden, von dem sie erwartet wurden, und in der Form angekommen sind, in der sie angekommen sind empfangen. gesendet. Das AH-Protokoll kann nicht vor unbefugtem Zugriff auf den Datenpfad schützen, da es diesen nicht verschlüsselt. Zur Verschlüsselung von Daten ist die Verwendung des ESP-Protokolls erforderlich, das auch deren Integrität und Authentizität überprüfen kann.

SICHERE VERBINDUNG

Damit die Protokolle AH und ESP ihre Aufgabe zum Schutz der übertragenen Daten erfüllen können, stellt das IKE-Protokoll eine logische Verbindung zwischen den beiden Endpunkten her, die in IPSec-Standards als „Security Association“ (SA) bezeichnet wird. Die Einrichtung einer SA beginnt mit der gegenseitigen Authentifizierung der Parteien, denn alle Sicherheitsmaßnahmen verlieren ihre Bedeutung, wenn Daten von der falschen Person oder von der falschen Person übermittelt oder empfangen werden. Mit den SA-Parametern, die Sie als nächstes auswählen, legen Sie fest, welches der beiden Protokolle AH oder ESP zum Schutz der Daten verwendet wird, welche Funktionen das Sicherheitsprotokoll übernimmt: zum Beispiel nur Authentifizierung und Integritätsprüfung oder zusätzlich Schutz vor falscher Wiedergabe. Ein sehr wichtiger Parameter einer sicheren Verbindung ist das sogenannte kryptografische Material, d. h. die geheimen Schlüssel, die beim Betrieb der AH- und ESP-Protokolle verwendet werden.

Das IPSec-System ermöglicht auch eine manuelle Methode zum Aufbau einer sicheren Verbindung, bei der der Administrator jeden Endknoten so konfiguriert, dass er vereinbarte Verbindungsparameter, einschließlich geheimer Schlüssel, unterstützt.

Das AH- bzw. ESP-Protokoll arbeitet bereits innerhalb der aufgebauten logischen Verbindung SA, mit dessen Hilfe der erforderliche Schutz der übertragenen Daten anhand der ausgewählten Parameter erfolgt.

Die Einstellungen für die sichere Zuordnung müssen für beide Endpunkte des sicheren Kanals akzeptabel sein. Daher wählen bei Verwendung des automatischen SA-Einrichtungsverfahrens IKE-Protokolle, die auf gegenüberliegenden Seiten des Kanals arbeiten, Parameter während des Aushandlungsprozesses aus, so wie zwei Modems den maximal akzeptablen Wechselkurs für beide Parteien bestimmen. Für jede durch die Protokolle AH und ESP gelöste Aufgabe werden mehrere Authentifizierungs- und Verschlüsselungsschemata angeboten – das macht IPSec zu einem sehr flexiblen Werkzeug. (Beachten Sie, dass die Wahl der Digest-Funktion zur Lösung des Authentifizierungsproblems keinerlei Einfluss auf die Wahl des Algorithmus zur Datenverschlüsselung hat.)

Um die Kompatibilität zu gewährleisten Standard Version IPsec definiert einen bestimmten obligatorischen „Werkzeugsatz“: Insbesondere kann zur Datenauthentifizierung immer eine der Einwegverschlüsselungsfunktionen MD5 oder SHA-1 verwendet werden, und die Verschlüsselungsalgorithmen umfassen sicherlich DES. Gleichzeitig steht es Herstellern von Produkten, die IPSec enthalten, frei, das Protokoll um andere Authentifizierungs- und Verschlüsselungsalgorithmen zu erweitern, was sie auch erfolgreich tun. Beispielsweise unterstützen viele IPSec-Implementierungen den beliebten Triple-DES-Verschlüsselungsalgorithmus sowie relativ neue Algorithmen – Blowfish, Cast, CDMF, Idea, RC5.

IPSec-Standards ermöglichen es Gateways, entweder eine SA zu verwenden, um den Datenverkehr von allen über das Internet interagierenden Hosts zu übertragen, oder zu diesem Zweck eine beliebige Anzahl von SA-Zuordnungen zu erstellen, beispielsweise eine für jeden TCP-Verbindung. Eine sichere SA ist eine unidirektionale (Simplex) logische Verbindung in IPSec, daher müssen für die bidirektionale Kommunikation zwei SAs eingerichtet werden.

TRANSPORT- UND TUNNELMODI

Die Protokolle AH und ESP können Daten auf zwei Arten schützen: Transport und Tunnel. Im Transportmodus erfolgt die Übertragung eines IP-Pakets durch das Netzwerk unter Verwendung des Original-Headers dieses Pakets, im Tunnelmodus wird das Originalpaket in ein neues IP-Paket eingefügt und die Datenübertragung über das Netzwerk erfolgt darauf basierend der Header des neuen IP-Pakets. Die Verwendung des einen oder anderen Modus hängt von den Anforderungen an den Datenschutz sowie von der Rolle ab, die der Knoten, der den sicheren Kanal beendet, im Netzwerk spielt. Somit kann ein Knoten ein Host (Endknoten) oder ein Gateway (Zwischenknoten) sein. Dementsprechend gibt es drei Schemata für die Verwendung von IPSec: Host-to-Host, Gateway-to-Gateway und Host-to-Gateway.

Im ersten Schema wird ein sicherer Kanal, oder was in diesem Zusammenhang dasselbe ist, eine sichere Verbindung, zwischen zwei Endknoten des Netzwerks aufgebaut (siehe Abbildung 2). Das IPSec-Protokoll läuft in diesem Fall auf dem Endknoten und schützt die dort ankommenden Daten. Für das Host-zu-Host-Schema wird am häufigsten der Transportmodus zum Schutz verwendet, obwohl auch der Tunnelmodus zulässig ist.

Gemäß dem zweiten Schema wird ein sicherer Kanal zwischen zwei Zwischenknoten, den sogenannten Security Gateways (SG), aufgebaut, die jeweils das IPSec-Protokoll ausführen (siehe Abbildung 3). Eine sichere Kommunikation kann zwischen zwei beliebigen Endpunkten erfolgen, die mit Netzwerken verbunden sind, die sich hinter Sicherheits-Gateways befinden. Endpunkte müssen IPSec nicht unterstützen und ihren Datenverkehr ungeschützt über vertrauenswürdige Unternehmens-Intranets übertragen. Der für das öffentliche Netzwerk bestimmte Datenverkehr passiert das Sicherheits-Gateway, das in seinem Namen den IPSec-Schutz bereitstellt. Gateways können nur den Tunnelmodus verwenden.