Ερευνητές από το Πανεπιστήμιο του Μέριλαντ ως μέρος του έργου προσπάθησε να δημιουργήσει για την αυτοματοποίηση του εντοπισμού των μεθόδων που χρησιμοποιούνται για τη λογοκρισία της πρόσβασης στο περιεχόμενο. Η μη αυτόματη απαρίθμηση πιθανών κενών στα συστήματα βαθιάς επιθεώρησης πακέτων (DPI) είναι μια μάλλον δύσκολη και χρονοβόρα διαδικασία, αλλά στη Γενεύη προσπάθησαν να χρησιμοποιήσουν για την αξιολόγηση των χαρακτηριστικών DPI, τον εντοπισμό σφαλμάτων υλοποίησης και την ανάπτυξη μιας βέλτιστης στρατηγικής για την παράκαμψη του αποκλεισμού από την πλευρά του πελάτη. Κωδικός έργου στη γλώσσα Python.
Ο εξοπλισμός που χρησιμοποιείται για τον αποκλεισμό DPI έχει τον δικό του , επιτρέποντάς σας να αποκρύψετε την πρόσβαση σε έναν απαγορευμένο πόρο ή να αποφύγετε τον αποκλεισμό. Για παράδειγμα, στην απλούστερη περίπτωση, κατά την οργάνωση αποκλεισμού μέσω της αντικατάστασης μιας πλασματικής απόκρισης (που χρησιμοποιείται από παθητικό DPI), αρκεί από την πλευρά του πελάτη εικονική απάντηση που εστάλη από το DPI. Εάν χρησιμοποιείτε ενεργό DPI, μπορείτε να προσπαθήσετε να αποκρύψετε το γεγονός ότι έχετε πρόσβαση σε έναν αποκλεισμένο ιστότοπο τροποποιώντας ελαφρώς τις παραμέτρους αιτήματος HTTP (για παράδειγμα, προσθέτοντας ένα επιπλέον χώρο μετά το "GET"), χωρίζοντας τα δεδομένα διαπραγμάτευσης σύνδεσης TLS σε πολλά πακέτα ή εκτελώντας επιθέσεις TCB Teardown και TCB Desync. Η ουσία των αναφερόμενων επιθέσεων είναι ότι ο πελάτης στέλνει πρώτα ένα εικονικό πακέτο με δεδομένα ή σημαίες RST/ACK, τις οποίες ο κεντρικός υπολογιστής-στόχος δεν θα λάβει, αλλά θα πιάσει το DPI, θα λάβει μια απόφαση με βάση αυτό και δεν θα αναλύσει το ακόλουθο πακέτο με ένα πραγματικό αίτημα (για παράδειγμα, στο εικονικό πρώτο πακέτο μπορείτε να ορίσετε έναν διαφορετικό στόχο SNI, και να ορίσετε έναν διαφορετικό οικοδεσπότη, καθώς και από τον έλεγχο σε χαμηλά επίπεδα). άθροισμα, σημαίες ή αριθμό ακολουθίας TCP).
Γενεύη αναπτύξτε μια μέθοδο εργασίας για την παράκαμψη του DPI χρησιμοποιώντας τέσσερις βασικές αρχές για το χειρισμό πακέτων δικτύου - απόθεση, τροποποίηση κεφαλίδων, αντιγραφή και κατακερματισμός. Για την επιλογή της βέλτιστης στρατηγικής, χρησιμοποιείται ένας γενετικός αλγόριθμος, ο οποίος μοντελοποιεί διαδικασίες παρόμοιες με τη φυσική επιλογή μέσω ενός τυχαίου συνδυασμού διαφορετικών επιλογών για τον χειρισμό πακέτων. Τελικά, τα πρωτόγονα εξόδου συνδυάζονται σε ένα "δέντρο δράσης" που ορίζει έναν αλγόριθμο διέλευσης DPI.
Το έργο της Γενεύης έχει δοκιμαστεί με επιτυχία για να παρακάμψει τις μεθόδους λογοκρισίας που χρησιμοποιούνται στην Κίνα, την Ινδία και το Καζακστάν, συμπεριλαμβανομένης της αποκάλυψης πολλών νέων τρωτών σημείων που ήταν προηγουμένως άγνωστα. Ταυτόχρονα, η Γενεύη είναι αποτελεσματική μόνο για την παράκαμψη του αποκλεισμού βάσει DPI. είναι άχρηστο κατά τον αποκλεισμό από διευθύνσεις IP και δεν μπορεί να γίνει χωρίς VPN. Κατά τη διάρκεια των πειραμάτων Υπάρχουν πολλές δεκάδες τυπικές στρατηγικές παράκαμψης DPI που μπορούν να δοκιμαστούν αμέσως χωρίς να γίνει πλήρης ανάλυση, για παράδειγμα:
python3 engine.py --server-port 80 --strategy "[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10} tamper{TCP:chksum:corrupt},),)-|" — ημερολόγιο εντοπισμού σφαλμάτων
2020-01-24 20:54:41 DEBUG:[ENGINE] Μηχανή που δημιουργήθηκε με στρατηγική \/ (ID bm3kdw3r) στη θύρα 80
2020-01-24 20:54:41 ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ:[ENGINE] Διαμόρφωση κανόνων iptables
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 ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ:[ENGINE] iptables -A INPUT -p tcp --dport 80 -j NFQUEUE --queue-num 2
2020-01-24 20:54:41 ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ:[ENGINE] iptables -A OUTPUT -p udp --sport 80 -j NFQUEUE --queue-num 1
2020-01-24 20:54:41 ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ:[ENGINE] iptables -A INPUT -p udp --dport 80 -j NFQUEUE --queue-num 2
Πηγή: opennet.ru
