TR | Gizlilik Rehberi – 1
Son zamanlarda kulağımıza çok gelir oldu bu kelime “gizlilik”. Facebook’un Cambridge Analytica vakası, Twitter’ın iç ağdaki log sistemindenden kaynaklanan bir açıklıktan dolayı kullanıcı parolalarının açık şekilde iletildiğini duyurması, seçmen bilgilerinin yayılması, sürecini yakınen takip ettiğimiz, gizliliğimizi ve özgürlüğümüzü kısıtlayan VPN, site engellemeleri ve daha nicesi. Tüm bu olaylara bakıldığında gizliliğin hayatımızda ne noktada olduğunu daha net görebiliyoruz. Bu yazımızda internette nasıl anonimlik sağlayacağınızdan bahsederken örnek olaylarla da istihbarat servislerinin ve 0-day araştırmacılarının nasıl bu gizliliği hiçe saydıklarını göreceğiz. Her şey kamerayı kapatmaktan ibaret değil…
1) WebRTC IP Leak
WebRTC (Web Real-Time Communication), adından da anlaşılabileceği üzere eş zamanlı dosya aktarımı, konferans, canlı akış ve web uygulamaları için tarayıcıların doğrudan birbiri ile haberleşebilmesini adına geliştirilmiş bir teknolojidir. Günümüz tarayıcılarında gömülü olarak gelmektedir ve direkt olarak çalıştırılabilmektedir. Her tarayıcıda gömülü gelen ve tetiklenmesi için herhangi ek bir aktiviteye gerek duymayan bir teknoloji için zafiyet de kaçınılmazdır. Peki nedir gizliliğimizi tehlikeye atan?
WebRTC, IP tanımlamasında standarttan farklı teknikler kullanır. Bu teknik Interactive Connectivity Establishment (ICE)’dir. ICE IP adresi tespitinde STUN/TURN sunucularını kullanılır. WebRTC açısından bakıldığında bu sunucular “IP adresim nedir?” sorusuna yanıt verir. Zafiyeti detaylı anlamak için bu kavramları da incelemek gerek.
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 düz metin halinde veri akışı 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 iletilmiş olur. Aşağıdaki şemada çalışma mantığı görülmektedir.
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 triple VPN, proxy ya da diğer yöntemleri kullansanız dahi iç ağ IP adresiniz sızmış olacaktır. Zafiyet sırasında gerçekleşen isteğin kod bloğundan bir kesit;
function findIP(onNewIP) { var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var pc = new myPeerConnection({iceServers: [{urls: "stun:stun.l.google.com:19302"}]}), noop = function() {}, localIPs = {}, ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g, key;
https://berkimran.com.tr/ipleak/ipleak.html adresinden kendi tarayıcınızda testi gerçekleştirebilirsiniz.
Zafiyetli bir tarayıcıda iç ağ IP adresi resimdeki gibi ifşa olacaktır. Belirtmekte fayda var bu testi yaparken VPN kullandım. Testi yaptınız ve iç ağ IP adresiniz ifşa oldu, bu durumda tarayıcınıza bağlı olarak çeşitli korunma yöntemleri bulunmakta.
Firefox
- Adres satırına about:config yazıp ayarlara girin.
- İlk defa giriyorsanız riski kabul ediyorum butonuna tıklamalısınız.
- media.peerconnection.enabled değerini aratın.
- Çift tıklayarak değerini ‘false’ yapın.
Chrome
Günümüz itibarıyla sadece eklentiler ile engellemek mümkün. Bunun için WebRTC Network Limiter eklentisini kullanabilirsiniz.
Safari
Herhangi bir ayar yapmanıza gerek kalmadan Safari zafiyeti önlemektedir.
2) DNS Leak
Anonim olmak için mümkün olduğunca verilerinizi paylaşmamanız gerek. Dolayısıyla tüm trafiğinizin anonim şekilde sağlanması çok önemli. Güvenli iletişiminize birisizi sızarsa tüm bilgileriniz tehlikededir demektir. Söz konusu DNS olunca da bir zayıflık söz konusu oluyor tabii ki. İşletim sisteminiz ya da modeminizden dolayı size atanan bir DNS sunucundan dolayı tüm trafiğiniz ifşa olabilir. Bir anonim ağda bulunsanız dahi çeşitli durumlarda varsayılan DNS sunucusu ile bağlantı kurabilirsiniz. Bunu dnsleaktest.com sitesinde çok güzel açıklamışlar.
Görüldüğü üzere direk ISP servisinin DNS sunucu ile haberleşildiğinde zafiyet ortaya çıkabilmektedir. Günümüz servis sağlayıcılarının ve onun atadığı DNS sunucularının bizi izlediğini varsayarsak bir anonim bağlantının ne kadar güvenli olduğunu daha iyi kavrayabiliriz. Örnek bir test ve zayıflığın kanıtı;
Çözüm çok basit. VPN servisi ile anonim bir ağ kullanmak ve VPN servisinin DNS sunucularını kullanmak. Ayrıca bkz. Dnscrypt
3) VPN(Virtual Private Network)
Yasaklamalardan ve sansürlerden dolayı Türkiye’nin teknoloji gündemini oldukça meşgul eden bir konu. Konu ile alakalı çok güzel yazılar yazıldı, teknik olarak açıklandı. Ancak ben farklı bir soruya cevap bulmak istiyorum “peki hangi VPN?”. Açıkcası 2012’den bu yana bir fiil her türlü VPN firmasını test ettim, kullandım. 6 yılda neredeyse her firmanın gizlilik politikasını, double & triple VPN mantığını ve işin detaylarına hakim oldum. Şöyle tecrübeleri aktarmak isterim;
- Aşinası olduğumuz bir “kayıt tutmuyoruz” klasiği
Türkiye’nin de yakından bildiği bir VPN firması, politikasında kendinden kayıt(log) tutmuyoruz diye bahsettiği halde bir hacklenme vakası ile sarsıldı. Zamanının 1day exploit kiti ile VPN firmasının sunucularına girmeyi başaran hacker, tutulan tüm logları tek tek gözler önüne serdi. Bundan dolayı da insanlarda “log tutmadıklarını nereden bilebiliriz” şeklinde sorular oluştu. Cevabı aslında hepimiz biliyoruz.
- FBI, CIA, NSA gibi istihbarat çalışması yapanlara bilgi vermiyoruz
Uzun uzun yazıp açıklamak istemiyorum. Sadece şunu düşünmeniz yeterli. Ortalama aylık 100 dolar verdiğiniz bir firma sizi tüm istihbarat servislerine karşı koruyor 🙂
Peki hangi VPN firması seçilmeli?
Tecrübelerime dayanarak aşağıdaki maddelere dikkat çekmek isterim;
- Ödeme yöntemi olarak elektronik para kabul etmesi(btc, eth. vs.),
- Dns isteklerini, trafiği, timestamps, IP adres, ödeme yöntemi gibi kayıtları tutmaması,
- Trafiğin hangi algoritma ile şifrelendiği,
- Bağlı olduğu ülkenin yasaları,
- Hizmet verdiği sunucu lokasyonları, varsa bandwidth sınırlaması,
- E-mail ve parola ile değil kendi atadığı sistemle giriş yapılması(dolayısıyla veri tutulmayacak).
Özetle bir VPN firmasının gizlilik politikasında belirttiği yazıdan bir kesit;
…kullanıcılarımızla ilgili bilgileri ifşa etmemiz istendiğinde, elimizde verebileceğimiz hiçbir bilginin bulunmadığı anlamına geliyor. Ancak, kredi kartı ödemeleri ve banka havaleleri kayıt altına alınmaktadır. Bu kayıtlar, bankalar veya kart firmaları tarafından tutulmakta ve tarafımızca silinmesi imkanı bulunmamaktadır. Anonim olarak işlem yapabilmek için nakit veya kripto para birimi ile ödeme yapma seçeneklerini kullanın.
kıyaslama için https://thatoneprivacysite.net/ adresini kullanabilirsiniz. Ek olarak;
https://torrentfreak.com/vpn-services-keep-anonymous-2018/
https://medium.com/@blackVPN/no-logs-6d65d95a3016
https://spideroak.com/articles/guest-post-can-you-trust-a-vpn-to-protect-your-privacy/
5 göz 9 Göz 14 göz
Şimdi tüm söylediklerimi unutun. Yukarıdaki en güvenli dediğimiz VPN firmaları bile neden güvensiz inceleyelim.
Ülkeler arasında istihbarat toplamak amaçlı bir ittifak vardır. Ülkelerin topluca vatandaşlarını izleme ve gözetlemesi üzerine kuruludur. Sızan verilerde Türkiye’nin de bunun için “milyon” dolar civarında bir yazılıma ödeme yaptığı görülmektedir. Detayını bilemediğimiz gibi kesinliği hakkında da bilgi sahibi değiliz. Gelelim göz(etleme)lere.
5 Göz;
- Avustralya
- Kanada
- Yeni Zelanda
- İngiltere
- Amerika
bkz. https://en.wikipedia.org/wiki/UKUSA_Agreement
Dokuz Göz(öncekileri de içerir);
- Danimarka
- Fransa
- Hollanda
- Norveç
Ondört Göz(öncekileri de içerir);
- Almanya
- Belçika
- İtalya
- İsveç
- İspanya
Şimdi sizden ricam o çok övdüğünüz VPN firmalarının hangi lokasyonda olduğuna bakmanız 🙂
Warrant Canary
Ekşi Sözlük’te ssg gayet net açıklamış şu şekilde alıntılayalım.
ing. mahkeme emri kanaryası. “kanarya” tabiri madenlerde gaz kaçağını tespit etmek için kanaryaların kullanımından geliyor. kanarya bıcır bıcır öttüğü sürece sürece gaz kaçağı olmadığını anlıyorsun. ne zaman kanarya susarsa gaz kaçağı olduğunu anlıyorsun. bu taktik, yani gaz kaçağı olduğunu değil ama olmadığını anlamak, amerikan şirketleri tarafından beyan etmenin suç olduğu hukuksal gizlilik durumlarını aşmak için kullanılıyor.
bir firmanın amerikan mahkemesi tarafından gizli emir almasını beyan etmesi hukuken yasak, ama almadığını beyan etmesi değil. dolayısıyla firma ta ki alana kadar:“bugüne kadar mahkemeden gizli bir emir almadık”
beyanı yazıyor. ne zaman o yazı kaybolursa anlıyorsun ki gizli emir almışlar. bildiğim kadarıyla bu tekniğin gerçekten mahkemede uygulayanı akladığı test edilmedi ama büyük mecra ve servis sağlayıcılar tarafından yaygın olarak kullanılıyor.
VPN kullanmak sizi tamamen anonim yapmaz. Ancak eskisine göre daha iyi bir çözüm sunar.
4)TOR(The Onion Routing)
Üzerine onlarca yazı yazıldı, onlarca eğitim videosu çekildi. O yüzden yine bilinen kısımdan ziyade biraz yorumsal kısmına değinmek istiyorum. TOR projesi gizlilik için en büyük çalışmalardan birisi. Günümüzde hakkında onlarca fikir var. Çoğunluk projenin istihbarat servisleri tarafından fonlandığını ve suçluları bulmak için ellerinde 0day exploitler bulundurduğunu düşünmekte. Bug bounty kapsamında gönderilen örnek bir raporu incelemekte fayda var “https://hackerone.com/reports/253429“. Çoğu kişinin bundan daha kritik zafiyetleri bulduğuna eminiz. Aşağıdaki haberleri okuyalım.
https://thehackernews.com/2017/11/tor-browser-real-ip.html
https://thehackernews.com/2017/09/tor-zero-day-exploits.html
Özetle çok büyük bir illegal aktivite için değilseniz, sadece gizliliğini düşünüyorsanız gayet yerinde bir tercih. Ancak %100 gizlilik sağlamadığını da umarım anlatabilmişimdir. Özellikle VPN ve TOR bağlantısı yapsanız bile hatta VPN > VPN > VPN > TOR > Web Proxy şeklinde bir şema izleseniz dahi bahsettiğimiz gibi WebRTC ile IP adresiniz ifşa olabilir.
5) HTTP Başlık Bilgileri
Siteleri görüntülemek için her istek yaptığımızda bir HTTP trafiği de oluşturmuş oluruz. Bu trafiğin içinde bilgilerimiz de gitmekte. Dolayısıyla bu trafikte giden bilgilerimizi mümkün olduğunca değiştirmeli ya da korumalıyız.
DNT (Do Not Track)
Beni izleme özelliği tarayıcılarımızda yıllardır mevcut. Siteye yaptığınız her isteğe “DNT: 1” değerini işler. Dolayısıyla siteye “beni izleme” mesajı vermiş oluruz. Ancak, bu sitenin %100 sizi izlemeyeceğine işaret değildir. Verilerinizin izlenip izlenmeyeceğini bu hususta yine site belirleyecektir. Aşağıda örnek bir istek gösterilmiştir.
User Agent
User-Agent bilgisinde hangi tarayıcıyı kullandığımız hangi işletim sistemine sahip olduğumuz gibi bilgiler gitmektedir. Dolayısıyla gerçekten farklı olarak bu bilgileri değiştirmemiz gizlilik açısından bir artı olacaktır. Reklam içeren link kısaltma sitelerine girdiğinizde genellikle işletim sisteminize göre zararlı yazılım gösterirler. GNU/Linux kullanan bir kullanıcı Windows işletim sistemine ait bir user-agent bilgisi kullanıyorsa karşısına Windows için üretilmiş bir zararlı yazılım çıkacaktır. Bundan dolayı hem gizliliğini sağlamış hem de güvenli kalmış olacaktır.
Resimde de görüldüğü gibi user-agent başlığından Mac bilgisini alan site ona göre zararlı göstermiş oldu. Bundan dolayıdır ki user-agent bilgimizi olduğundan farklı göstermek gerekli.
Cookie
Web sunucusu gelen kullanıcıları ayırt etmek için her kullanıcıya bir session tanımlar. Sunucunun tuttuğu Session id’yi şifreliyerek (değişiklik gösterebilir) Cookie bölümüne ekler. Özetle cookie sizin web sitesindeki parmak izinizdir. XSS zafiyeti ile kendisini yakından tanımaktayız. Oturum bilgilerinizin XSS ya da diğer zafiyetlerle elde edilmesi hem gizliliğiniz hem de güvenliğiniz açısından son derece kritiktir. Bu yazımızda çerezlerin güvenliği ve gizliliği hakkında iki hususta durmak istiyorum. Bunlardan ilki tarayıcıda saklanan cookie güvenliği diğeri ise web zafiyetleri ile alakalı.
- Stealer
2011’den bu yana (tabii ki öncesinde de dahil olmak üzere) popülerleşmiş yerini fidye yazılımlarına bırakan bir backdoor türüdür. Stealer’ın amacı tarayıcıdaki çerezlerinizi alıp mail adresine, FTP adresine ya da sizin belirleyeceğiniz bir yöntemle size iletmektir. Başlangıca yerleşmez, kendini kopyalamaz, sadece tarayıcılardaki çerezleri okur ve ilgili adreslere iletir. Dolayısıyla diske erişim izni isteyecek ve dışarıya bağlantı oluşturacaktır. Diğer zararlı yazılımlara istinaden daha az izin istemektedir. Dolayısıyla korunmak adına diskte(tarayıcıda) çerez tutulmamalıdır. Bunun için tarayıcılarda seçenek bulunmakta, eklentilerle de bu olay güçlendirilmektedir. Daha öncesinden kalan çerezleriniz varsa Gutmann metoduyla silmeniz gerekmektedir.
- Web Zafiyetleri
Web zafiyetleri ve cookie dendiği zaman akla gelen ilk zafiyet XSS’dir şüphesiz. XSS zafiyetinin işlevselliğine ve türevine bağlı olarak çerez bilginiz elde edilebilir. Buna önlem olarak çoğu tarayıcı özellikle Reflected(yansıtılan) XSS için iyileştirmeler yapmıştır. Ancak günümüzde bunlar hala yeterli değildir ve kolay atlatılabilmektedir. Bu durumda kullanıcılara ve geliştiricilere düşen sorumluluklar var. Geliştiriciler açısından bakıldığında, çerezlerin HttpOnly olarak işaretlenmesi ve SecureFlag kullanılması gereklidir. Bu şekilde örnek bir JavaScript XSS payload’ı ile tarayıcıdaki çereze erişilemeyecektir. Kullanıcı tarafından bakıldığında NoScript tarzı eklentiler ile her JavaScript dosyasının çalıştırılması engellenmelidir. Böylelikle Coinhive tarzı zararlı kod blokları ile siz video izlerken, sizin işlemciniz kullanılarak yapılan madenciliği engellemiş de olmaktasınız.
Referanslar:
https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment https://tools.ietf.org/html/rfc5766 https://github.com/VoidSec/WebRTC-Leak https://www.privacytools.io/ https://dnsleaktest.com