Το Universal Plug and Play (UPnP) είναι ένα σύνολο πρωτοκόλλων δικτύωσης που επιτρέπει σε δικτυωμένες συσκευές, όπως προσωπικούς υπολογιστές, εκτυπωτές, Internet gateways, σημεία πρόσβασης Wi-Fi και κινητές συσκευές, να αναγνωρίζουν αδιάλειπτα την παρουσία άλλων συσκευών στο δίκτυο και να δημιουργήσουν λειτουργικές υπηρεσίες δικτύου για κοινή χρήση δεδομένων, πικοινωνίες και ψυχαγωγία. Το UPnP προορίζεται κυρίως για οικιακά δίκτυα χωρίς συσκευές enterprise-class.
Η τεχνολογία UPnP έχει προωθηθεί από το UPnP Forum, μία πρωτοβουλία στον κλάδο των ηλεκτρονικών υπολογιστών που επιτρέπει την απλή και ισχυρή σύνδεση με αυτόνομες συσκευές και προσωπικούς υπολογιστές από πολλούς διαφορετικούς προμηθευτές. Από το 2016, η τεχνολογία UPnP διοικείται από το Open Connectivity Foundation (OCF).
1. UPnP Subscribe σε ένα event.
Για να μπορεί να εφαρμοστεί ένα subscribe σε ένα event, ένας subscriber στέλνει ένα μήνυμα subscription. Εάν το μήνυμα subscription γίνει αποδεκτό, ο αποστολέας απαντά σε ένα συγκεκριμένο διάστημα του μηνύματος subscription. Για να παραμένει το subscription ανοιχτό, ο αποδέκτης πρέπει να ανανεώνει το subscription πριν την λήξη του. Όταν ο αποδέκτης δεν χρειάζεται πλέον eventing από τον αποστολέα, ο αποδέκτης πρέπει να απενεργοποιεί το subscription του. Τα subscription γίνονται μέσω ενός URL όπου μπορεί να υπάρξουν επιπρόσθετα πεδία όπως ο χρόνος διάρκειας. Το πεδίο CALLBACK περιέχει την διεύθυνση που πρέπει να σταλούν τα μηνύματα event. Εάν υπάρχουν περισσότερα από ένα events δοκιμάζονται να σταλούν όλα μέχρι ένα από αυτά να πετύχει. Το κάθε URL είναι ένα HTTP που μεταδίδεται μέσω του TCP URL. Η συσκευή δεν θα πρέπει να κόψει μέρος του URL. Εάν δεν μπορεί να το αποθηκεύσει ολόκληρο το CALLBACK URL, λόγω μη επαρκής μνήμης, τότε γίνεται αποβολή του subscription. Τουλάχιστον ένα από τα URLs θα πρέπει να φτάσει στην συσκευή.
2. Πως μπορεί να πραγματοποιηθεί αυτή η επίθεση
Ένας κακόβουλος χρήστης μπορεί να αποστέλλει μεγάλα πακέτα, όπου και θα γίνεται συνεχής αποκοπή από την συσκευή. Αυτό μπορεί να δημιουργήσει TCP traffic. Η συνεχόμενη ροή traffic μπορεί να μην αποτελείται μόνο από ένα μεμονωμένο HTTP request. Συμπερασματικά αυτό το συνεχόμενο traffic μπορεί να χρησιμοποιηθεί για επίθεση DOS ή DDOS.
3. Συμπεράσματα
Με βάση τα πιο πάνω μπορούμε να συμπεράνουμε ότι:
1. Το traffic είναι εύκολο να εντοπιστεί, καθώς οι περισσότερες εφαρμογές web-apps δεν χρησιμοποιούν μεθόδους ειδοποίησης (NOTIFY).
2. Η πλειοψηφία των UPnP συσκευών δεν είναι εκτεθειμένα απευθείας στο διαδίκτυο. Λόγω του ότι αρχικά χρησιμοποιείται η μέθοδος SUBSCRIBE, είναι διαβεβαιωμένο ότι τουλάχιστον δεν θα είναι πιθανή η μόλυνση συσκευών πίσω από NAT μέσω self-CSRF style επιθέσεων (μεθοδολογία που χρησιμοποιείται από πολλά botnets για να αλλάζουν τα DNS settings στους δρομολογητές).
3. Η πλειοψηφία των συσκευών δεν χρησιμοποιούν το HTTP πρωτόκολλο εκτός για τα CALLBACKS, αλλιώς θα μπορούσαν να στείλουν traffic και μέσω του HTTPS, γεγονός το οποίο θα ήταν επώδυνο.
4. Βήματα Mετριασμού
Προτεινόμενα μέτρα για την επίλυση του προβλήματος:
1. Το standard UPnP θα πρέπει να μειώσει την λειτουργία του SUBSCRIBE με κάποιο τρόπο αναγνώρισης. Οι κύριες UPnP libraries θα πρέπει να εμπεριέχουν την διόρθωση. Οι κατασκευαστές θα πρέπει να προσφέρουν τα updates για τις ευπαθείς συσκευές.
2. Δεδομένου ότι γνωρίζετε ποιες συσκευές σας επιτίθενται μπορείτε να τις κάνετε unsubscribe, αλλά θα πρέπει να γνωρίζεται το event key.
3. Nα γίνει drop το traffic πριν να φτάσει στον web server. Στο επίπεδο του web server είναι εύκολη η χρήση της μεθόδου μπλοκαρίσματος NOTIFY, αλλά με αρκετή επεξεργασία. NetFilter / IPtables μπορούν να αγνοήσουν το traffic που περιέχει μία συμβολοσειρά.
4. Λόγω του ότι πρόκειται για DDoS, εάν το traffic υπερφορτώσει το δίκτυο δεν παίζει ρόλο πλέον εάν μπορεί ή όχι να γίνει drop από τον target host.
5. Μερικές προστασίες από DDoS μπορεί να δυσκολευτούν να φιλτράρουν το traffic καθώς το web port αντιλαμβάνεται ένα HTTP πρωτόκολλο. Όμως το να το εντοπίσεις δεν θα είναι δύσκολο στην πλειοψηφία των περιπτώσεων, καθώς είναι εμφανές εάν δείτε τα headers και χρησιμοποιήσετε την μέθοδο NOTIFY.
6. Οποιαδήποτε άλλη τεχνική ή υπηρεσία χρησιμοποιείται για anti-DDoS. (Software/hardware).