Fexyn
Fexyn
All posts

WebRTC leak'leri

Fexyn Team··4 min read

VPN'ine bağlanıyorsun. Status bar korunduğunu söylüyor. Bir web sitesi yüklüyorsun. Web sitesi tarayıcından gerçek IP adresini sessizce isteyebilir — VPN'in IP'sini değil, ISP'nin gerçekten atadığı olanı. Tarayıcın onu veriyor. Prompt görmüyorsun, uyarı görmüyorsun ve VPN tam olarak söz verdiğini yapıyor.

Bu bir WebRTC leak. Tarayıcı suçlu, VPN değil. Ve devre dışı bırakana kadar her modern tarayıcıda çalışır.

WebRTC nedir

WebRTC tarayıcının ses, video ve veri için peer-to-peer iletişim API'si. Google Meet, Discord ses kanalları, Slack huddle'ları, Whereby, Zoom'un in-browser kısımları — hepsi WebRTC kullanır. Direct file transfer'lar, screen sharing ve müşteri destek sayfalarındaki "click to call" buton'ları da.

Peer-to-peer bağlantılar çalışsın diye, tarayıcının public IP'ni bilmesi gerekir. Diğer taraf böyle ulaşır. WebRTC bunu STUN sunucusu ile çözer: tarayıcı public STUN sunucusuna sorar "hangi adresten geliyorum?". STUN sunucusu gördüğü IP'yi yanıtlar. Tarayıcı onu cache'ler ve WebRTC API üzerinden soran herhangi bir sayfaya verir.

Mimari 2011'de mantıklıydı. Latency-sensitive peer-to-peer use case'ti. Rastgele web sitelerden gizlilik tasarım belgesinde değildi.

VPN bunu neden düzeltmez

VPN network trafiğini tunnel eder. WebRTC'nin STUN exchange'i bunun üzerinde çalışır, ama tarayıcının cache'lediği yanıt iki durumda gerçek IP'n, tunnel'ınkı değil:

Durum 1: STUN VPN bağlanmadan önce sorgulandı. Tarayıcı startup'ta veya önceki networkte gerçek IP'ni öğrendi. Cache'lendi.

Durum 2: VPN STUN sunucusuna UDP tunnel etmiyor. Bazı VPN setup'larında routing edge case'leri var. STUN paketi tünelden kaçar.

Düzgün tunnel edilmiş VPN'de bile, browser-level STUN cache attack surface. Sayfaların STUN'ı kendileri sorgulamasına gerek yok; sadece tarayıcının zaten bildiği IP'leri WebRTC'den isterler.

Exposed vs leaking

Terminoloji önemli çünkü tepki farklı.

Exposed. VPN'de değilsin, sayfa ziyaret ediyorsun, sayfa gerçek IP'ni görüyor. Beklenen davranış. Leak değil; internetin tasarlandığı gibi çalışması.

Leak (sızıntı). VPN'DESİN, sayfa sadece VPN'in IP'sini görmeli ama WebRTC yine gerçek IP'ni veriyor. Bu sızıntı. Sahip olduğunu düşündüğün gizlilik kırıldı.

Fexyn'in WebRTC leak test aracı hangi durumda olduğunu gösterir. VPN bağlıyken görünen public IP Fexyn sunucusununkı olmalı. Kendi ev IP'n ise — sızıyorsun.

Tarayıcıya göre düzeltmeler

Düzeltme tarayıcıda yaşar, VPN'de değil. Her tarayıcı WebRTC'yi farklı işler.

Firefox — tam devre dışı

En temiz seçenek:

  1. Yeni sekme aç, about:config'e git. Uyarıyı kabul et.
  2. media.peerconnection.enabled'i ara.
  3. false yap.
  4. Firefox'u yeniden başlat.

Maliyet: tarayıcı tabanlı uygulamalarda video aramaları çalışmayı durdurur. Slack huddle'ları, Google Meet, Discord ses tarayıcıda — geri açana kadar ölü. Çoğu privacy-focused kullanıcı için kabul edilebilir.

Brave — yerleşik toggle

Brave gizlilik odaklı bir ayar gönderir:

  1. brave://settings'i aç.
  2. "WebRTC" ara.
  3. "WebRTC IP Handling Policy"'yi Disable non-proxied UDP'a ayarla.

Bu WebRTC'yi tamamen kırmayan en güçlü ayar. Aramalar çalışır; STUN trafiği proxy yoluyla sınırlandırılır. VPN'deki Brave kullanıcıları için doğru ayar.

Chrome ve Edge — extension gerekir

Hiçbirinde settings UI'da yerleşik WebRTC toggle yok. Extension gerekir. Şunlardan birini kur:

  • uBlock Origin "Prevent WebRTC from leaking local IP addresses" filtresi etkinleştirilmiş. uBlock Origin zaten doğru ad-blocker.
  • WebRTC Network Limiter (doğrudan Google tarafından yayınlanmış). Single-purpose, WebRTC'yi proxy path'ine sınırlandırır.

Chrome Web Store'daki rastgele bir-yıldızlı "WebRTC fix" extension'ları kaçın. Kategori düşük kaliteli ve bazen kötü amaçlı extension'ları çekiyor.

Safari

Safari WebRTC uygular ama toggle ortaya çıkarmaz. Safari'deyse ve WebRTC sızıntıları seni endişelendiriyorsa, Brave'e (Webkit-based, toggle var) veya Firefox'a (Gecko-based, tam devre dışı) geç.

Fexyn nasıl ele alır

Fexyn tarayıcına monkey-patch yapmaya çalışmaz. Tarayıcının WebRTC davranışı browser-side ve VPN'in override edebileceği veya etmesi gereken kapsamın dışında.

Fexyn yapar: tüm UDP trafiğini, STUN dahil — protokol izin verdiğinde — tunnel eder. WireGuard varsayılan olarak her şeyi tunnel eder. VLESS Reality ve OpenVPN configurations UDP'yi aynı yoldan tunnel eder. Destek sayfasında spesifik tarayıcı ayarları önerir. Leak test aracı sağlar — spesifik tarayıcı/ayar kombinasyonunu doğrulayabilirsin.

Düzeltme sonrası yeniden test et

Tarayıcı ayarlarını değiştirdikten sonra tarayıcıyı yeniden başlat ve fexyn.com/tools/webrtc-leak-test'te testi yine çalıştır. Görünen public IP Fexyn sunucusu ile eşleşmeli.

Hala gerçek public IP'ni görüyorsan, değişiklik uygulanmadı. Şunu kontrol et: tarayıcının gerçekten yeniden başladığı (sekmeleri kapatmak yetmez), Brave için ayarın "Disable non-proxied UDP" olduğu (force proxy değil), Chrome/Edge için extension'ın etkin olduğu.

WebRTC leak'in olmadığı şey

WebRTC leak'ler spesifik olarak browser API üzerinden IP'nin açığa çıkmasıyla ilgili. Şunu etkilemezler: non-browser uygulamalar, kendi networking'ini kullanan mobile uygulamalar, VPN tunnel'ın kendisi bozuldu (tunnel iyi; tarayıcı tunnel katmanının üstünde bilgi gönüllü olarak veriyor).

İlgili okuma

Fexyn'i 7 gün ücretsiz dene. Tunnel kendi kısmını yapıyor; tarayıcı düzeltmeleri tek seferlik ayar.

WebRTC leak'leri | Fexyn VPN