TR | WebRTC IP Leak
WebRTC Nedir?
Real-Time Communications yani gerçek zamanlı iletişimdir. Ses, video ve data transferi için, javascript api kullanılarak yapılan açık kaynak bir projedir. Günümüzde tarayıcılardan tam destek almasından ve kolay geliştirebilir olmasından dolayı popülerleşmiştir. W3C ve IETF tarafından desteklenmektedir. Günümüzde tarayıcılara gömülü olarak gelmektedir. Özetle hiçbir kuruluma gerek duyulmaması, geliştirilebilir ve açık kaynak olması, topluluklar tarafından desteklenmesi sebebiyle popülaritesi artmıştır.
Demo: https://www.appr.tc/
Güncellemeler için: https://webrtcweekly.com/
Detaylı bilgi için: https://webrtc.org/
WebRTC Leak
Öncelikle zafiyeti anlamak için webrtc protokollerini inceleyelim.
Session Traversal Utilities for NAT (STUN)
WebRTC eşler aracılığıyla data alışverişi yaptığı için bu alışverin sağlanmasında stun sunucuları kullanılır. Bağlantı sağlarken gönderilen bilgiler arasında lan ve wan bilgilerimiz de mevcut. Protokolün işleyişindeki mantıkda zafiyet ortataya çıkıyor. Buradaki ip bilgilerimiz gizlenmediği yani sunucu ve eş arasında saf halde veri akışi sağlandığı için bilgilerimiz sızıyor.
Traversal Using Relays around NAT (TURN)
Stun protokolünden farkı eşler arasındaki veri akışında köprü görevi görmesidir. Diğer eşe bilgi giderken turn sunucularından çıkış yapıldığı için kendi wan ve lan ip bilgilerimiz gizlenmiş olur.
Zafiyetimiz web sitelerinin stun sunucularına yapılan istekteki ip bilgilerinin kaydedilmesinden ibaret. Vpn kullansanız dahi vpn protokolleri stun sunucularına giden bilgilerin kontrolünü yapmadığı için vpn sunucularının atadığı ip gözükmeyecektir. Bu durumda ister triple vpn, ister zenmate (ki kendisi oldukça güvensiz ama bir o kadar da popülerdir) isterseniz de adblock, ghostery, privacy badger gibi eklentileri kullanın, bu protokolün kontrolünü sağlamadığı için zafiyet giderilemeyecektir..
Zafiyet Tespiti ve Çözümü
http://berkimran.com.tr/ipleak/ipleak.html adresinden sonuca bakalım. ( Proje için: https://github.com/diafygi/webrtc-ips)
Test edebileceğiniz siteler: https://www.browserleaks.com/webrtc , https://ipleak.net/ (user agent xss açığı mevcut tavsiye etmiyorum).

Default olarak gelen tarayıcı ayarlarıyla yapılan test sonucu
Yukarıdaki ekran görüntüsünde tarayıcı olarak Chrome kullandım ve hiçbir güvenlik önlemi almadım. Bu durumda vpn, webproxy vs. kullanmak dahi bu bilgilerin sızmasında önlem olamaz. Pptp veya openvpn bağlantısı yapmanız da etkili olmayacaktır.
Bu durumda çözümleri tarayıcılara göre ele almak gereklidir.
Firefox
- Eklenti kurmakla çok basit çözülebilir. Ancak tarayıcı ayarlarını yapmak varken eklenti kullanmak çok da mantıklı değil. Disable WEBRTC eklentisi ile çözüm bulabilirsiniz.
https://addons.mozilla.org/en-US/firefox/addon/happy-bonobo-disable-webrtc/ - Adres satırına about:config yazarak giriş yapın. media.peerconnection.enabled değerinin false olduğundan emin olun. Zafiyet devam ederse aşağıdaki değerlerde de değişiklik yapın.
media.peerconnection.turn.disable = true
media.peerconnection.use_document_iceservers = false
media.peerconnection.video.enabled = false
media.peerconnection.identity.timeout = 1
Chrome
- Şu an için sadece eklenti ile düzeltilebiliniyor. Tavsiyem Firefox kullanmanızdan yana.
Link: https://chrome.google.com/webstore/detail/webrtc-leak-prevent/eiadekoaikejlgdbkbdfeijglgfdalml/related
Sonuç

Gerekli önlemler alındığında sonuç.
Firefox tarayıcımda gerekli önlemleri aldığımda bilgilerimizin korunduğunu görüyoruz.