Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

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).

ipleak2

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

  1. 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/
  2. 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

  1. Ş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ç

ipleak

Gerekli önlemler alındığında sonuç.

Firefox tarayıcımda gerekli önlemleri aldığımda bilgilerimizin korunduğunu görüyoruz.

About Berk İMRAN

Cyber security researcher

Follow Me