Forscher der Universität Maryland haben im Rahmen eines Projekts versucht, einen zur Automatisierung der Identifizierung von Methoden zu entwickeln, die zur Zensur des Zugangs zu Inhalten eingesetzt werden. Manuell zu versuchen, mögliche Lücken in Systemen zur tiefen Paketinspektion (DPI) zu finden, ist ein ziemlich schwieriger und langwieriger Prozess; in Geneva wurde versucht, einen zur Bewertung der Merkmale von DPI, zur Identifizierung von Implementierungsfehlern und zur Entwicklung einer optimalen Strategie zum Umgehen von Blockaden auf der Client-Seite zu verwenden. Der Code des Projekts ist in Python.
Die zur Blockierung verwendete DPI-Hardware hat ihre , die es ermöglichen, den Zugriff auf verbotene Ressourcen zu verbergen oder eine Blockade zu umgehen. Zum Beispiel ist im einfachsten Fall, wenn die Blockierung durch das Ersetzen mit einer falschen Antwort organisiert wird (was von passiven DPI verwendet wird), es ausreichend auf der Client-Seite, den Antwort, die von der DPI gesendet wurde, abzulehnen. Im Fall von aktivem DPI kann man versuchen, den Fakt des Zugriffs auf die blockierte Website zu verbergen, indem man die Parameter der HTTP-Anfrage geringfügig verändert (zum Beispiel durch Hinzufügen eines zusätzlichen Leerzeichens nach „GET“), die TLS-Verbindungsdaten in mehrere Pakete aufteilt oder Angriffe wie TCB Teardown und TCB Desync durchführt. Der Kern dieser Angriffe besteht darin, dass der Client zunächst ein falsches Paket mit Daten oder RST/ACK-Flags sendet, das der Zielhost nicht erhält, aber von der DPI erfasst wird, die auf dessen Basis eine Entscheidung trifft und das nachfolgende Paket mit der echten Anfrage nicht analysiert (zum Beispiel kann im ersten falschen Paket ein anderer SNI angegeben werden, und um dieses Paket vom Zielhost zu verbergen, kann ein niedriger TTL sowie eine inkorrekte Prüfziffer, Flags oder eine TCP-Sequenznummer gesetzt werden).
Genf einen funktionierenden Umgehungsmechanismus für DPI zu entwickeln, wobei vier grundlegende Primitiven zur Manipulation von Netzwerkpaketen verwendet werden – Verwerfen, Ändern von Headern, Duplizieren und Fragmentieren. Zur Auswahl der optimalen Strategie wird ein genetischer Algorithmus eingesetzt, der Prozesse modelliert, die dem natürlichen Selektionsprozess ähneln, indem verschiedene Varianten der Manipulation von Paketen zufällig kombiniert werden. Letztendlich werden die Primitiven in einem "Aktionsbaum" kombiniert, der den Algorithmus zur Umgehung von DPI definiert.
Die Geneva-Plattform wurde erfolgreich getestet, um Zensurmethoden in China, Indien und Kasachstan zu umgehen. Zudem wurden durch Geneva mehrere neue Sicherheitsanfälligkeiten entdeckt, die zuvor unbekannt waren. Dabei ist Geneva effektiv nur bei der Umgehung von Sperren auf Grundlage von DPI, bei IP-basierten Sperren ist es nutzlos und ohne VPN nicht zu umgehen. Im Laufe der Experimente einige Dutzend standardisierte Strategien zur Umgehung von DPI, die sofort getestet werden können, ohne eine vollständige Analyse durchzuführen, zum Beispiel:
python3 engine.py —server-port 80 —strategy «[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10} tamper{TCP:chksum:corrupt},),)-|» —log debug
2020-01-24 20:54:41 DEBUG:[ENGINE] Engine mit Strategie \/ (ID bm3kdw3r) zu Port 80 erstellt
2020-01-24 20:54:41 DEBUG:[ENGINE] Konfiguration der iptables-Regeln
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p tcp —sport 80 -j NFQUEUE —queue-num 1
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p tcp —dport 80 -j NFQUEUE —queue-num 2
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p udp —sport 80 -j NFQUEUE —queue-num 1
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p udp —dport 80 -j NFQUEUE —queue-num 2
Quelle: opennet.ru
