mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
38 lines
3.0 KiB
Markdown
38 lines
3.0 KiB
Markdown
# WebRTC DoS
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
**Ovaj problem je pronađen u ovom blog postu:** [**https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/**](https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/)
|
|
|
|
Opisana ranjivost u WebRTC medijskim serverima proizašla je iz **trke uslova** tokom inicijalizacije medijskih sesija, posebno između **ICE verifikacije medijskog pristanka** i **DTLS inicijacije saobraćaja**. Evo detaljnog pregleda:
|
|
|
|
### Poreklo Ranjivosti
|
|
|
|
1. **Dodela UDP Portova:** Kada korisnik inicira WebRTC poziv, medijski server dodeljuje UDP portove za upravljanje medijskim tokovima, pri čemu se IP i port komuniciraju putem signalizacije.
|
|
2. **ICE i STUN Procesi:** Korisnikov pretraživač koristi ICE za verifikaciju medijskog pristanka, koristeći STUN za određivanje putanje veze do medijskog servera.
|
|
3. **DTLS Sesija:** Nakon uspešne STUN verifikacije, započinje DTLS sesija za uspostavljanje SRTP glavnih ključeva, prelazeći na SRTP za medijski tok.
|
|
|
|
### Mehanizam Eksploatacije
|
|
|
|
- **Eksploatacija Trke Uslova:** Napadač može iskoristiti trku uslova slanjem DTLS ClientHello poruke pre legitimnog korisnika, potencijalno koristeći nevažeći šifarski skup kao što je `TLS_NULL_WITH_NULL_NULL`. Ovo uzrokuje DTLS grešku na serveru, sprečavajući uspostavljanje SRTP sesije.
|
|
|
|
### Proces Napada
|
|
|
|
- **Skener Portova:** Napadač treba da pogodi koji UDP portovi upravljaju dolaznim medijskim sesijama, šaljući ClientHello poruke sa null šifarskim skupom na te portove kako bi aktivirao ranjivost.
|
|
- **Dijagram Napada:** Sekvenca uključuje više ClientHello poruka koje napadač šalje serveru, isprepletenih sa legitimnom signalizacijom i DTLS porukama, što dovodi do neuspeha rukovanja zbog pogrešnog šifarskog skupa.
|
|
|
|
### Testiranje i Ublažavanje
|
|
|
|
- **Sigurno Testiranje:** Koristeći alate kao što je Scapy, napadači ponovo šalju DTLS ClientHello poruke usmerene na specifične medijske portove. Za etičko testiranje, modifikacije u Chromiumu (npr. `JsepTransport::AddRemoteCandidates`) korišćene su za bezbedno oponašanje ponašanja žrtve.
|
|
- **Mere Ublažavanja:** Rešenja uključuju odbacivanje paketa sa neproverenih adresa, kao što je implementirano u novijim verzijama biblioteka poput libnice. Primarno rešenje naglašava poverenje u ICE verifikacijski proces i obradu paketa samo sa validiranih IP i port kombinacija.
|
|
|
|
### Scenariji Bez Ranjivosti
|
|
|
|
- **DTLS Server Konfiguracije:** Situacije u kojima pretraživač deluje kao DTLS server ili kada medijski server ne koristi ephemerne portove za medijske sesije nisu podložne ovoj ranjivosti.
|
|
|
|
### Zaključak
|
|
|
|
Ova ranjivost ističe delikatnu ravnotežu u procesima inicijalizacije medijskih sesija i potrebu za preciznim vremenom i verifikacionim mehanizmima kako bi se sprečila eksploatacija. Programerima se savetuje da implementiraju preporučene bezbednosne ispravke i osiguraju robusne verifikacione procese kako bi ublažili takve ranjivosti.
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|