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
