Γιατί η κίνηση ασύρματης αποσφαλμάτωσης δεν αποδεικνύει διαρροή VPN
Μια συζευγμένη συνεδρία ADB μέσω Wi-Fi αποδεικνύει σχέση αποσφαλμάτωσης, όχι διαδρομή εξόδου στο διαδίκτυο. Να τι καλύπτει στην πραγματικότητα αυτή η παρατήρηση.
Ενεργοποιήσατε την ασύρματη αποσφαλμάτωση, συνδέσατε έναν φορητό υπολογιστή και η συνεδρία συνέχισε να λειτουργεί ενώ το VPN ήταν ενεργό. Αυτό μοιάζει σαν κάτι να γλίστρησε έξω από τη σήραγγα. Σχεδόν σίγουρα όχι. Μια συνεδρία αποσφαλμάτωσης και το αίτημα μιας εφαρμογής προς έναν ιστότοπο είναι διαφορετικές σχέσεις δικτύου, και μόνο μία από αυτές πρέπει να διασχίζει τη σήραγγα.
Έχω συναντήσει αυτή την εσφαλμένη ανάγνωση δύο φορές: μία με το τηλέφωνο και τον φορητό στο ίδιο Wi-Fi, και μία μετά από επανεκκίνηση όταν το ζευγάρωμα επιβίωσε. Και στις δύο περιπτώσεις το VPN έκανε ακριβώς αυτό για το οποίο είχε ρυθμιστεί.
Ονομάστε την παρατήρηση πριν ονομάσετε το σφάλμα
Τρία γεγονότα μπορούν να προηγηθούν ενός ισχυρισμού διαρροής, και δεν είναι εναλλάξιμα. Ένα εργαλείο μπορεί να ανακαλύψει μια υπηρεσία, η συσκευή μπορεί να εγκρίνει έναν σταθμό εργασίας ή μια εξουσιοδοτημένη συνεδρία μπορεί πράγματι να μεταφέρει εντολές και byte. Καταγράψτε ποιο είδατε, γιατί το καθένα αποδεικνύει λιγότερα από όσα υποθέτουν οι άνθρωποι.
Η ανακάλυψη είναι συνήθως mDNS ή σάρωση θυρών. Το ζευγάρωμα είναι απόφαση εγγραφής που λαμβάνεται στο τηλέφωνο, επιβεβαιωμένη με κωδικό που πληκτρολογεί ο χρήστης. Μια ζωντανή συνεδρία σημαίνει ότι κίνηση μετακινήθηκε μεταξύ δύο συζευγμένων άκρων. Τίποτα από αυτά δεν περιγράφει πού πηγαίνει το αίτημα HTTPS μιας εφαρμογής.
Κρατήστε τον προορισμό, τη διεπαφή, την οικογένεια διευθύνσεων, τη χρονική σφραγίδα και το προφίλ χρήστη συνδεδεμένα με το γεγονός. Χωρίς αυτές τις λεπτομέρειες, η παρατήρηση δεν μπορεί να συγκριθεί με την προβλεπόμενη πολιτική τοπικού δικτύου ή με την έκδοση VPN που έτρεχε τότε.
Γιατί οι δύο διαδρομές δεν συναντώνται ποτέ
Η ασύρματη αποσφαλμάτωση είναι εισερχόμενη σύνδεση προς τη συσκευή. Το adbd ακούει σε θύρα δεσμευμένη στη διεπαφή Wi-Fi, και ο σταθμός εργασίας συνδέεται σε αυτή μετά το ζευγάρωμα. Η κατεύθυνση μετράει: ο φορητός σας φτάνει μέσα στο τηλέφωνο, όχι το αντίστροφο. Αυτό είναι το αντίθετο μιας διαρροής εξόδου.
Η κίνηση διαδικτύου μιας εφαρμογής φεύγει μέσω της διεπαφής σήραγγας που εγκαθιστά το VpnService, αντιστοιχισμένη με UID και κανόνες δρομολόγησης. Το adbd είναι δαίμονας συστήματος που τρέχει ως χρήστης shell, όχι εφαρμογή μέσα σε εκείνο το σύνολο δρομολόγησης. Παραμένει στον υποκείμενο σύνδεσμο Wi-Fi ακόμη και όταν κάθε εφαρμογή είναι καρφιτσωμένη στη σήραγγα.
Η λειτουργία κλειδώματος επιβάλλει τη σήραγγα για τις καλυπτόμενες εφαρμογές. Δεν μετατρέπει έναν υποδοχέα ακρόασης σε διαδρομή εξόδου.
Για αυτό μια λειτουργική συνεδρία ADB και ένας λειτουργικός διακόπτης θανάτωσης συνυπάρχουν χωρίς αντίφαση. Για να αποδείξετε διαρροή, πρέπει να παρατηρήσετε την κατεύθυνση που υποτίθεται ότι είναι φραγμένη.
Πώς μοιάζει στην πραγματικότητα μια δοκιμή εξόδου
Δοκιμάστε την καλυπτόμενη εφαρμογή, όχι το κανάλι αποσφαλμάτωσης. Στήστε σκόπιμα τη συνθήκη αποτυχίας, μετά κάντε ένα νέο αίτημα και καταγράψτε τι συνέβη.
- Επιβεβαιώστε ότι το VPN είναι η μόνη διαδρομή: ενεργοποιήστε VPN πάντα ενεργό με φραγή συνδέσεων χωρίς VPN.
- Σταματήστε το VPN με τον υποστηριζόμενο τρόπο και επιβεβαιώστε ότι η εφαρμογή αναφέρει μη συνδεσιμότητα.
- Στείλτε ένα ακίνδυνο αίτημα από αυτή την εφαρμογή και σημειώστε αν αποτυγχάνει ή πετυχαίνει.
- Επαναλάβετε με την ασύρματη αποσφαλμάτωση ενεργή και μετά ανενεργή, ώστε η μεταβλητή να απομονωθεί.
Ένα φραγμένο αίτημα υπό αυτές τις συνθήκες είναι απόδειξη. Μια επιτυχημένη συνεδρία ADB δεν είναι, ούτε ένα μόνο ping από εφαρμογή τερματικού.
Αν το αίτημα πετύχει ενώ το κλείδωμα είναι ενεργό, καταγράψτε το UID της εφαρμογής και την άδεια VPN της, το ενεργό δίκτυο και την έκδοση του πελάτη. Αυτός ο συνδυασμός είναι πραγματικό εύρημα.
Το ζευγάρωμα ζει περισσότερο από τη συνεδρία
Το ζευγάρωμα είναι μόνιμη κατάσταση, όχι χειραψία που ξεχνάτε μετά τη δοκιμή με καλώδιο. Η τεκμηρίωση αποσφαλμάτωσης του Android περιγράφει τη ροή εργασίας ασύρματα και σημειώνει ότι η σχέση διαρκεί έως ότου ξεχαστεί ρητά ή ανακληθούν οι εξουσιοδοτήσεις.
Ελέγξτε τι είναι ακόμη εξουσιοδοτημένο πριν κατηγορήσετε τη σήραγγα. Ανοίξτε την Ασύρματη αποσφαλμάτωση, δείτε τις Συζευγμένες συσκευές και ξεχάστε ό,τι δεν αναγνωρίζετε πια. Εκτελέστε adb devices από τον σταθμό εργασίας για να δείτε ποιες καταχωρίσεις αποκρίνονται ακόμη, και adb disconnect για να απορρίψετε μια παρωχημένη. Η απενεργοποίηση της ασύρματης αποσφαλμάτωσης κλείνει εντελώς τη θύρα ακρόασης.
Σε κοινόχρηστο ή μη αξιόπιστο δίκτυο, αφήστε το ανενεργό. Μια μόνιμη εξουσιοδότηση σε δίκτυο που δεν ελέγχετε είναι μεγαλύτερο πρόβλημα από μια υποθετική παράκαμψη TUN.
Πριν αναφέρετε αυτό το σφάλμα
Μια χρήσιμη αναφορά ονομάζει το ακριβές όριο που απέτυχε. Συμπεριλάβετε το μοντέλο της συσκευής και την έκδοση Android, τον πελάτη VPN και την έκδοση, αν το κλείδωμα ήταν ενεργό, το πακέτο της εφαρμογής και το UID, και το δίκτυο στο οποίο ήταν το τηλέφωνο. Προσθέστε την εντολή ή το αίτημα που παρήγαγε την παρατήρηση, μαζί με την ώρα που συνέβη. Χωρίς αυτά, κανείς δεν μπορεί να αναπαράγει το όριο που ισχυρίζεστε ότι είναι σπασμένο.
Μην απενεργοποιείτε την επιβολή και μην εκθέτετε την αποσφαλμάτωση σε μη αξιόπιστο δίκτυο για να φαίνεται πιο δραματική η δοκιμή. Αυτό αλλάζει το σύστημα που μετράτε και αφήνει στοιχεία που κανείς δεν μπορεί να επαναλάβει.
Αν η μόνη σας απόδειξη είναι ότι το ADB συνδέθηκε ενώ το VPN ήταν ενεργό, μετρήσατε τη λάθος διαδρομή. Επαναλάβετε πρώτα τη δοκιμή σε επίπεδο εφαρμογής· η απάντηση συνήθως έρχεται εκεί.