Ευπάθεια στο Adblock Plus που επιτρέπει την εκτέλεση κώδικα όταν χρησιμοποιούνται αμφισβητήσιμα φίλτρα

Στο πρόγραμμα αποκλεισμού διαφημίσεων Adblock Plus αναγνωρισθείς τρωτό, επιτρέποντας να οργανώσει την εκτέλεση κώδικα JavaScript στο πλαίσιο τοποθεσιών, στην περίπτωση χρήσης μη επαληθευμένων φίλτρων που έχουν προετοιμαστεί από εισβολείς (για παράδειγμα, κατά τη σύνδεση συνόλων κανόνων τρίτων ή μέσω αντικατάστασης κανόνων κατά τη διάρκεια επίθεσης MITM).

Οι συντάκτες λιστών με σύνολα φίλτρων μπορούν να οργανώσουν την εκτέλεση του κώδικά τους στο πλαίσιο των τοποθεσιών που ανοίγει ο χρήστης προσθέτοντας κανόνες με τον τελεστή "ξαναγράφω", το οποίο σας επιτρέπει να αντικαταστήσετε μέρος της διεύθυνσης URL. Ο τελεστής επανεγγραφής δεν σας επιτρέπει να αντικαταστήσετε τον κεντρικό υπολογιστή στη διεύθυνση URL, αλλά σας επιτρέπει να χειριστείτε ελεύθερα τα ορίσματα αιτήματος. Μόνο κείμενο μπορεί να χρησιμοποιηθεί ως μάσκα αντικατάστασης και επιτρέπεται η αντικατάσταση ετικετών σεναρίου, αντικειμένου και δευτερεύοντος εγγράφου μπλοκαριστεί.

Ωστόσο, η εκτέλεση κώδικα μπορεί να επιτευχθεί με μια λύση.
Ορισμένοι ιστότοποι, συμπεριλαμβανομένων των Χαρτών Google, του Gmail και των Εικόνων Google, χρησιμοποιούν την τεχνική της δυναμικής φόρτωσης εκτελέσιμων μπλοκ JavaScript, που μεταδίδονται με τη μορφή γυμνού κειμένου. Εάν ο διακομιστής επιτρέπει την ανακατεύθυνση αιτήματος, τότε η προώθηση σε άλλο κεντρικό υπολογιστή μπορεί να επιτευχθεί αλλάζοντας τις παραμέτρους διεύθυνσης URL (για παράδειγμα, στο πλαίσιο της Google, μια ανακατεύθυνση μπορεί να γίνει μέσω του API "google.com/search"). Εκτός από τους κεντρικούς υπολογιστές που επιτρέπουν την ανακατεύθυνση, μια επίθεση μπορεί επίσης να πραγματοποιηθεί κατά υπηρεσιών που επιτρέπουν την ανάρτηση περιεχομένου χρήστη (φιλοξενία κώδικα, πλατφόρμες δημοσίευσης άρθρων κ.λπ.).

Η προτεινόμενη μέθοδος επίθεσης επηρεάζει μόνο σελίδες που φορτώνουν δυναμικά συμβολοσειρές κώδικα JavaScript (για παράδειγμα, μέσω XMLHttpRequest ή Fetch) και στη συνέχεια τις εκτελούν. Ένας άλλος σημαντικός περιορισμός είναι η ανάγκη χρήσης ανακατεύθυνσης ή τοποθέτησης αυθαίρετων δεδομένων στην πλευρά του αρχικού διακομιστή που εκδίδει τον πόρο. Ωστόσο, για να αποδειχθεί η συνάφεια της επίθεσης, παρουσιάζεται πώς να οργανώσετε την εκτέλεση του κωδικού σας κατά το άνοιγμα του maps.google.com, χρησιμοποιώντας μια ανακατεύθυνση μέσω του "google.com/search".

Η επιδιόρθωση είναι ακόμη σε προετοιμασία. Το πρόβλημα επηρεάζει επίσης τους αποκλειστές AdBlock и uBlock. Το πρόγραμμα αποκλεισμού uBlock Origin δεν επηρεάζεται από το πρόβλημα, καθώς δεν υποστηρίζει τον τελεστή "rewrite". Κάποτε ο συγγραφέας του uBlock Origin
αρνήθηκε προσθέστε υποστήριξη για επανεγγραφή, αναφέροντας πιθανά ζητήματα ασφάλειας και ανεπαρκείς περιορισμούς σε επίπεδο κεντρικού υπολογιστή (προτάθηκε μια επιλογή querystrip αντί για επανεγγραφή για τον καθαρισμό των παραμέτρων ερωτήματος αντί για την αντικατάστασή τους).

Οι προγραμματιστές του Adblock Plus θεωρούν απίθανες τις πραγματικές επιθέσεις, καθώς ελέγχονται όλες οι αλλαγές στις τυπικές λίστες κανόνων και η σύνδεση λιστών τρίτων είναι εξαιρετικά σπάνια μεταξύ των χρηστών. Η αντικατάσταση κανόνων μέσω MITM αποτρέπεται από την προεπιλεγμένη χρήση του HTTPS για τη λήψη τυπικών λιστών μπλοκ (για άλλες λίστες σχεδιάζεται να απαγορευτεί η λήψη μέσω HTTP σε μελλοντική έκδοση). Οι οδηγίες μπορούν να χρησιμοποιηθούν για τον αποκλεισμό μιας επίθεσης στην πλευρά του ιστότοπου CSP (Πολιτική Ασφάλειας Περιεχομένου), μέσω της οποίας μπορείτε να προσδιορίσετε ρητά τους κεντρικούς υπολογιστές από τους οποίους μπορούν να φορτωθούν εξωτερικοί πόροι.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο