WebRTC DoS

Wsparcie dla HackTricks

Ten problem został znaleziony w tym wpisie na blogu: https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/

Opisana podatność w serwerach mediów WebRTC wynika z warunków wyścigu podczas inicjalizacji sesji mediów, szczególnie między weryfikacją zgody mediów ICE a inicjacją ruchu DTLS. Oto szczegółowy opis:

Pochodzenie podatności

  1. Alokacja portów UDP: Gdy użytkownik inicjuje połączenie WebRTC, serwer mediów alokuje porty UDP do obsługi strumieni mediów, a adres IP i port są komunikowane za pomocą sygnalizacji.

  2. Procesy ICE i STUN: Przeglądarka użytkownika używa ICE do weryfikacji zgody mediów, wykorzystując STUN do określenia ścieżki połączenia do serwera mediów.

  3. Sesja DTLS: Po pomyślnej weryfikacji STUN rozpoczyna się sesja DTLS w celu ustanowienia kluczy głównych SRTP, przechodząc do SRTP dla strumienia mediów.

Mechanizm eksploatacji

  • Eksploatacja warunków wyścigu: Atakujący może wykorzystać warunki wyścigu, wysyłając wiadomość DTLS ClientHello przed legalnym użytkownikiem, potencjalnie używając nieprawidłowego zestawu szyfrów, takiego jak TLS_NULL_WITH_NULL_NULL. Powoduje to błąd DTLS na serwerze, uniemożliwiając ustanowienie sesji SRTP.

Proces ataku

  • Skanowanie portów: Atakujący musi zgadnąć, które porty UDP obsługują przychodzące sesje mediów, wysyłając wiadomości ClientHello z zestawem szyfrów null do tych portów, aby wywołać podatność.

  • Diagram ataku: Sekwencja obejmuje wiele wiadomości ClientHello wysyłanych przez atakującego do serwera, przeplatanych z legalną sygnalizacją i wiadomościami DTLS, co prowadzi do niepowodzenia w uzgadnianiu z powodu błędnego zestawu szyfrów.

Testowanie i łagodzenie

  • Bezpieczne testowanie: Używając narzędzi takich jak Scapy, atakujący odtwarzają wiadomości DTLS ClientHello, celując w konkretne porty mediów. Do etycznego testowania wprowadzono modyfikacje do Chromium (np. JsepTransport::AddRemoteCandidates), aby bezpiecznie naśladować zachowanie ofiary.

  • Środki łagodzące: Rozwiązania obejmują odrzucanie pakietów z niezweryfikowanych adresów, co zostało wdrożone w nowszych wersjach bibliotek, takich jak libnice. Główne rozwiązanie podkreśla zaufanie do procesu weryfikacji ICE i przetwarzanie tylko pakietów z zweryfikowanymi kombinacjami IP i portu.

Scenariusze niepodatne

  • Konfiguracje serwera DTLS: Przypadki, w których przeglądarka działa jako serwer DTLS lub gdy serwer mediów nie używa portów ephemerowych do sesji mediów, nie są podatne na tę podatność.

Wnioski

Ta podatność podkreśla delikatną równowagę w procesach inicjalizacji sesji mediów oraz potrzebę precyzyjnego timingu i mechanizmów weryfikacji, aby zapobiec eksploatacji. Programiści są zachęcani do wdrażania zalecanych poprawek bezpieczeństwa i zapewnienia solidnych procesów weryfikacji, aby złagodzić takie podatności.

Wsparcie dla HackTricks

Last updated