WebRTC DoS
Reading time: 3 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Bu sorun bu blog yazısında bulundu: https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/
WebRTC medya sunucularındaki tanımlanan zafiyet, medya oturumlarının başlatılması sırasında, özellikle ICE medya onay doğrulaması ile DTLS trafik başlatma arasında bir yarış durumu nedeniyle ortaya çıkmaktadır. İşte detaylı bir inceleme:
Zafiyetin Kaynağı
- UDP Port Tahsisi: Bir kullanıcı WebRTC araması başlattığında, medya sunucusu medya akışlarını yönetmek için UDP portları tahsis eder, IP ve port sinyalizasyon aracılığıyla iletilir.
- ICE ve STUN Süreçleri: Kullanıcının tarayıcısı, medya onay doğrulaması için ICE kullanır ve medya sunucusuna bağlantı yolunu belirlemek için STUN kullanır.
- DTLS Oturumu: Başarılı STUN doğrulamasının ardından, SRTP anahtarlarını oluşturmak için bir DTLS oturumu başlar ve medya akışı için SRTP'ye geçilir.
Sömürü Mekanizması
- Yarış Durumu Sömürüsü: Bir saldırgan, meşru kullanıcıdan önce bir DTLS ClientHello mesajı göndererek bir yarış durumunu sömürebilir, geçersiz bir şifreleme kümesi olan
TLS_NULL_WITH_NULL_NULL
gibi bir şey kullanabilir. Bu, sunucuda bir DTLS hatasına neden olur ve SRTP oturumunun kurulmasını engeller.
Saldırı Süreci
- Port Taraması: Saldırgan, hangi UDP portlarının gelen medya oturumlarını yönettiğini tahmin etmelidir, bu portlara null şifreleme kümesi ile ClientHello mesajları göndererek zafiyeti tetikler.
- Saldırı Diyagramı: Sıralama, saldırgan tarafından sunucuya gönderilen birden fazla ClientHello mesajını, meşru sinyalizasyon ve DTLS mesajları ile iç içe geçirerek, hatalı şifreleme kümesi nedeniyle bir el sıkışma hatasına yol açar.
Test ve Azaltma
- Güvenli Test: Saldırganlar, belirli medya portlarını hedef alarak DTLS ClientHello mesajlarını tekrar oynatmak için Scapy gibi araçlar kullanır. Etik testler için, kurban davranışını güvenli bir şekilde taklit etmek amacıyla Chromium'da (örneğin,
JsepTransport::AddRemoteCandidates
) değişiklikler yapılmıştır. - Azaltma Önlemleri: Çözümler, doğrulanmamış adreslerden gelen paketlerin düşürülmesini içerir; bu, libnice gibi kütüphanelerin daha yeni sürümlerinde uygulanmıştır. Temel çözüm, ICE doğrulama sürecine güvenmeyi ve yalnızca doğrulanmış IP ve port kombinasyonlarından gelen paketleri işlemeyi vurgular.
Zafiyetten Etkilenmeyen Senaryolar
- DTLS Sunucu Konfigürasyonları: Tarayıcının bir DTLS sunucusu olarak davrandığı veya medya sunucusunun medya oturumları için geçici portlar kullanmadığı durumlar bu zafiyete karşı duyarsızdır.
Sonuç
Bu zafiyet, medya oturumlarının başlatılması süreçlerindeki hassas dengeyi ve sömürüyü önlemek için kesin zamanlama ve doğrulama mekanizmalarının gerekliliğini vurgulamaktadır. Geliştiricilerin önerilen güvenlik düzeltmelerini uygulamaları ve bu tür zafiyetleri azaltmak için sağlam doğrulama süreçlerini sağlamaları tavsiye edilmektedir.
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.