WebRTC DoS

Support HackTricks

Αυτό το ζήτημα βρέθηκε σε αυτή την ανάρτηση ιστολογίου: https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/

Η περιγραφόμενη ευπάθεια στους διακομιστές πολυμέσων WebRTC προκύπτει από μια συνθήκη αγώνα κατά την αρχικοποίηση των συνεδριών πολυμέσων, συγκεκριμένα μεταξύ της επικύρωσης συναίνεσης πολυμέσων ICE και της έναρξης κυκλοφορίας DTLS. Ακολουθεί μια λεπτομερής ανάλυση:

Προέλευση Ευπάθειας

  1. Κατανομή Θυρών UDP: Όταν ένας χρήστης ξεκινά μια κλήση WebRTC, ο διακομιστής πολυμέσων κατανοεί θύρες UDP για την επεξεργασία των ροών πολυμέσων, με τη διεύθυνση IP και τη θύρα να επικοινωνούνται μέσω σήμανσης.

  2. Διαδικασίες ICE και STUN: Ο περιηγητής του χρήστη χρησιμοποιεί το ICE για την επικύρωση συναίνεσης πολυμέσων, χρησιμοποιώντας το STUN για να προσδιορίσει τη διαδρομή σύνδεσης προς τον διακομιστή πολυμέσων.

  3. Συνεδρία DTLS: Μετά την επιτυχή επικύρωση STUN, ξεκινά μια συνεδρία DTLS για την εγκαθίδρυση κύριων κλειδιών SRTP, αλλάζοντας σε SRTP για τη ροή πολυμέσων.

Μηχανισμός Εκμετάλλευσης

  • Εκμετάλλευση Συνθήκης Αγώνα: Ένας επιτιθέμενος μπορεί να εκμεταλλευτεί μια συνθήκη αγώνα στέλνοντας ένα μήνυμα DTLS ClientHello πριν από τον νόμιμο χρήστη, πιθανώς χρησιμοποιώντας μια μη έγκυρη σουίτα κρυπτογράφησης όπως το TLS_NULL_WITH_NULL_NULL. Αυτό προκαλεί ένα σφάλμα DTLS στον διακομιστή, αποτρέποντας την εγκαθίδρυση της συνεδρίας SRTP.

Διαδικασία Επίθεσης

  • Σάρωση Θυρών: Ο επιτιθέμενος πρέπει να μαντέψει ποιες θύρες UDP χειρίζονται τις εισερχόμενες συνεδρίες πολυμέσων, στέλνοντας μηνύματα ClientHello με τη σουίτα κρυπτογράφησης null σε αυτές τις θύρες για να ενεργοποιήσει την ευπάθεια.

  • Διάγραμμα Επίθεσης: Η ακολουθία περιλαμβάνει πολλαπλά μηνύματα ClientHello που στέλνονται από τον επιτιθέμενο στον διακομιστή, διακεκομμένα με νόμιμα μηνύματα σήμανσης και DTLS, οδηγώντας σε αποτυχία χειραψίας λόγω της εσφαλμένης σουίτας κρυπτογράφησης.

Δοκιμή και Μετριασμός

  • Ασφαλής Δοκιμή: Χρησιμοποιώντας εργαλεία όπως το Scapy, οι επιτιθέμενοι αναπαράγουν μηνύματα DTLS ClientHello που στοχεύουν συγκεκριμένες θύρες πολυμέσων. Για ηθική δοκιμή, έγιναν τροποποιήσεις στο Chromium (π.χ., JsepTransport::AddRemoteCandidates) για να μιμηθούν τη συμπεριφορά του θύματος με ασφάλεια.

  • Μέτρα Μετριασμού: Οι λύσεις περιλαμβάνουν την απόρριψη πακέτων από μη επαληθευμένες διευθύνσεις, όπως εφαρμόζεται σε νεότερες εκδόσεις βιβλιοθηκών όπως η libnice. Η κύρια λύση τονίζει την εμπιστοσύνη στη διαδικασία επικύρωσης ICE και την επεξεργασία μόνο πακέτων από επικυρωμένους συνδυασμούς IP και θύρας.

Μη Ευάλωτα Σενάρια

  • Ρυθμίσεις Διακομιστή DTLS: Περιστάσεις όπου ο περιηγητής λειτουργεί ως διακομιστής DTLS ή όταν ο διακομιστής πολυμέσων δεν χρησιμοποιεί προσωρινές θύρες για τις συνεδρίες πολυμέσων δεν είναι επιρρεπείς σε αυτή την ευπάθεια.

Συμπέρασμα

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

Support HackTricks

Last updated