Tag Archives: transparent dns proxy

DNS’in Kökü

Gece itibariyle DNS’lerde bir sıkıntı olduğu söyleniyordu. Bana da bununla ilgili epey bir mesaj geldi. “Şu İSS’yi kullanıyorum, şu DNS sunucusunu kullanıyorum fakat Internete bağlanamıyorum, zaman aşımı alıyorum” diye gelen mesajlar sonrası kendim kontrol ettiğimde bir sıkıntı görememiştim. Fakat, Twitter‘da konuyla ilgili tweet sayıları giderek artmaya başladı ve ardından da Chip Türkiye‘nin “Türkiye’de DNS’lerin de kökü kazınıyor!” haberi geldi. Sanırım, söylentilerdeki doğruluk payı giderek artmaya başladı diyebilirim.

Yazıyı yayımladıktan bir süre sonra tekrar taslak formuna aldım. DNS’lerin kökünün kazınmasından ziyade daha farklı bir şeylerin döndüğünü düşünüyordum. Sabah ise OpenDNS ve Google DNS sunucuları üzerinden yapılan sorguların her ne hikmetse Türk Telekom sunucularına yönlendiğini gördüm. Bunun birçok sebebi olabilir. DNS spoofing, DNS hijacking, arada bulunan bir transparan DNS proxysisi ile sorguların açık DNS sunucularına ulaşmadan İSS’nin DNS sunucularına yönlendirilmesi gibi. Yaptığım basit bir analizde aldığım sonuç, yapılanı doğrular nitelikteydi:

kame ~ $ nslookup twitter.com 8.8.8.8
Server:    8.8.8.8
Address:   8.8.8.8#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

kame ~ $ nslookup twitter.com 208.67.222.222
Server:    208.67.222.222
Address:   208.67.222.222#53

Non-authoritative answer:
Name       twitter.com
Address:   195.175.254.2

Bir de engellenmemiş bir adresin çıktısına bakalım:

kame ~ $ nslookup duckduckgo.com 8.8.8.8
Server:    8.8.8.8
Address:   8.8.8.8#53

Non-authoritative answer:
Name       duckduckgo.com
Address:   176.34.131.233
Name       duckduckgo.com
Address:   46.51.197.88
Name       duckduckgo.com
Address:   46.51.197.89

Engellenmemiş adres için herhangi bir sıkıntı yok gibi durmakta. Şimdi bunu daha anlaşılır bir dille anlatalım. DNS (domain name system); türkçesi alan adı sistemi, Internet ağını oluşturan birimlerin IP adreslerini akılda daha kolay tutulması için dönüştürülen adresleri (domain, www.duckduckgo.com gibi) ve iletişimi organize eden bir sistemdir. DNS sunucuları ise Internet adreslerinin IP karşlığının kayıtlı tutulduğu sunuculardır. Bir örnekle anlatmak gerekirse, www.duckduckgo.com adresini tarayıcınızdan girdiniz, bu Intenet adresindeki makine ile iletişim kurulabilmesi için DNS sunucusuna sorgunuz gitti, DNS sunucusu ise eğer bu isim karşılığındaki IP adresine sahipse, 50.18.192.250 dedi ve bu IP’ye sahip makineye yönlendirildiniz. Fakat, yukarındaki çıktıda Google DNS kullanıyorsanız ve tarayıcınızdan www.twitter.com yazdığınız anda sorgunuz gitmesi gereken Google DNS sunucuları yerine 195.175.254.2 adresine, yani Türk Telekom’a yönlendirildi.

Bu işin biraz da tekniğine bakalım. Bir İSS’siniz ve kötü niyetli bir DNS sunucusu yapmak istiyorsunuz. Bu DNS sunucunuzun IP’sini 195.175.254.2 olduğunu varsayalım. Diğer yanda, ülkenizde hizmet veren güvenilir Google gibi DNS sunucuları var. Siz bu sunucuları kendi kullanım amacınızla işleyişlerini manipüle edip yani gasp edip kendi kötü niyetli sunucunuza yönlendirdiniz (route). Ardından Google DNS kullanan biri Twitter’a girmek istedi. Sorgusunu gönderdi, hop bu sefer Google DNS yanıt verecekken kurduğunuz kötü niyetli DNS sunucusu yanıt verdi. Yani bunu yapabilmek için de adresi twitter.com/195.175.254.2 olarak atadınız. twitter.com diyen 199.59.149.230‘a erişmek yerine tanımlanmış olan 195.175.254.2 IP adresli makineye erişecektir. Bu makine ne yapabilir? Sizi burada bekletebilir, … kararla site erişime engellendi yazısı ile karşılayabilir, DNS sorgularını loglayabilir, sizlere gereksiz reklam sonuçları gösterebilir (bunu yapan birçok İSS mevcut) vs.

Şu an bizim yaşadığım durum da; siz Google veya OpenDNS kullandığınız takdirde, sorgularınız Türk Telekom’un sunucusuna gidiyor ve burada bekletiliyorsunuz. Normalde bu DNS’ler ile erişmeniz gereken adrese de sahte DNS sunucusunda bekletildiğiniz için erişemiyorsunuz. Erişemediğiniz için de sadece yaptığınız sorgu biliniyor. Bu şekilde herhangi bir hesabın, kimin kullandığının bilinmesi mümkün olmaz. Fakat, bir spoofing yapılırsa o zaman işin rengi değişir.  Spoofing’de de siz herhangi bir siteye bağlandığınızı zannedersiniz fakat IP/adres manipüle edildiği için hiç alakası olmayan, saldırganın bilgilerinizi çalacağı sahte bir yere ulaşırsınız. Böylece, örneğin Twitter’a giriş yaptığınızı sanarken sahte bir Twitter sitesi üzerinden tüm bilgileriniz alınabilir.

Şimdi bu yönlendirme ile ilgili bir diğer bir tespite gelelim. İlk başta ben Twitter ve Youtube‘a girenleri mi tespit etmek istiyorlar, bu yüzden sadece bu ikisi mi yönlendirildi diye düşünmüştüm. Fakat sonradan rastgele, daha önce engellenmiş iki porno sitesi için tekrar nslookup yaptım. Sonuç:

kame ~ $ nslookup pornhub.com 8.8.8.8
Server:    8.8.8.8
Address:   8.8.8.8#53

Non-authoritative answer:
Name       pornhub.com
Address:   195.175.254.2

kame ~ $ nslookup xnxx.com 8.8.8.8
Server:    8.8.8.8
Address:   8.8.8.8#53

Non-authoritative answer:
Name       xnxx.com
Address:   195.175.254.2

Fakat, buna henüz gasp edilmemiş bir DNS sunucusu ile bakarsak:

kame ~ $ nslookup xnxx.com 77.88.8.8
Server:    77.88.8.8
Address:   77.88.8.8#53

Non-authoritative answer:
Name       xnxx.com
Address:   141.0.174.37
Name       xnxx.com
Address:   141.0.174.38
Name       xnxx.com
Address:   141.0.174.35
Name       xnxx.com
Address:   141.0.174.39
Name       xnxx.com
Address:   141.0.174.34

Anlaşılan engelli tüm adresler Google DNS ve OpenDNS için aynı yere yönlendirilmiş durumda. İSS tarafından Yandex DNS‘te herhangi bir yönlendirme (routing) olmadığı için sonuç sorunsuz gözüküyor. Şimdilik, Google DNS ve OpenDNS kullanmamak, yaşanabilecek manipülasyonlardan ve spoofing gibi saldırılardan etkilenmeyi azaltacaktır. Kaldı ki Türk Telekom tarafından yapılan bu şeyin yasalara aykırı ve suç olduğu da söylenmektedir. Daha önce de DNS gaspı (hijacking) ile ilgili belirttiğim üzere İSS’ler bunu daha öncede yapabilmekte, olmayan sayfa sorgularında sizlere yanıt vermekte, bunu sahte DNS sunucuları ile gerçekleştirmekte, sorguları reklamların olduğu sitelere yönlendirmekteydiler.

Sonuç olarak, ortada ciddi bir sıkıntının olduğunu söylemek gerekli ve bu durum yakından takip edilmeli. Açıkçası gasp edilen 2 DNS sunucusunun engellenmemiş adreslerin sorgularına verecekleri yanıtlar da “kötü niyetli” birileri tarafından manipüle edilmeye açıktır. Şu anda dava hazırlıkları da yapılmakta. Yazıyı kafam çok karışmış bir şekilde yazdım. Hatam varsa şimdiden kusura bakmayın. Bilgilendirirseniz memnun olurum.

Bu konuyla ilgili olarak kısaca birkaç link vereyim (siz de konuyla ilgili yazı linkleri verirseniz buraya eklerim):

[1] http://www.turk-internet.com/portal/yazigoster.php?yaziid=46356
[2] https://eksisozluk.com/entry/41565793

Ekleme (03.04.2013): Twitter yasağı Anayasa Mahkemesi tarafından kaldırıldı ve sonunda TİB denilen kurum-cuk kademeli olarak engeli kaldırdıklarını duyurdu. Peki DNS yönlendirmesi bitti mi? Hemen VPN, Tor vs kullanmayı bırakıp Twitter’a girmek mantıklı mı? Yeni analizimize bakalım:

kame ~ $ nslookup twitter.com 8.8.8.8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   twitter.com
Address: 199.16.156.70
Name:   twitter.com
Address: 199.16.156.38
Name:   twitter.com
Address: 199.16.156.198

Peki engeli henüz kaldırılmamış Youtube için bakalım:

kame ~ $ nslookup youtube.com 8.8.8.8
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name       youtube.com
Address:   195.175.254.2

O da ne? DNS yönlendirmesi devam ediyor! Yani; VPN, Tor vs. kullanmaya GoogleDNS, OpenDNS gibi yönlendirilmiş DNS sunucuları kullanmamaya kaldığınız yerden devam ediyorsunuz.

Tagged , , , , , , , , , , , , , , ,

DNS Leak Tehlikesi

Kullandığımız anonim ağlara ya da VPN tünellerine aldanıp anonim olduğumuzu zannederken, aslında tüm Internet aktivitelerimizin İSS tarafından rahatça izlenip kaydedilebilmesi, bir DNS sızıntısı ile o kadar kolay ki.

  • DNS Sızıntısı (Leak) Nedir?

what-is-a-dns-leak
Anonim bir ağ ya da VPN servisi kullandığınız zaman, bilgisayarınızdan geçen tüm trafiğin bu anonim ağ ya da  servis üzerinden güvenli bir şekilde gönderildiği varsayılır. Tor veya VPN kullanmanızdaki temel neden, trafiğinizi İSS’nizden ve diğer üçüncü kişilerden gizlemek, anonimliğinizi arttırmaktır. Fakat bazı durumlar vardır ki, siz güvenli bir VPN bağlantısı kurduğunuzu düşünseniz bile, İSS’niz Internet trafiğinizi izleyebilir ve çevrimiçi aktivitelerinizi monitörleyebilir. Yani, bir nedenle sorgularınız VPN bağlantınız ya da anonim ağ yerine İSS’nizin DNS sunucularına da yönleniyorsa, burada bir DNS sızıntısı (leak) var demektir. Şema üzerinden anlatırsak; bir VPN tüneline sahipsiniz ve EFF için bir sorguda bulundunuz. Normal olarak sorgunuz tünelden VPN servisine, VPN servisinin DNS sunucusu ve oradan da EFF’ye ulaşmalı. Fakat, sorgunuza İSS’niz DNS sunucusu da cevap vermektedir. Bu da şu anlama gelmektedir; İSS’niz İnternet aktivitilerinizi bir bir kaydetmekte, sizleri rahatça izlemektedir.

Anonimliği tehdit eden en büyük tehlikelerden biri DNS sızıntısıdır. Çünkü, anonim bir ağa bağlı olsanız bile (mesela Tor), işletim sisteminiz anonim servis tarafından atanan anonim DNS sunucuları yerine kendi varsayılan sunucularını kullanmaya devam etmektedir. Bu da kullanıcılara sahte gizlilik hissi vermekte ve sonuçları üzücü olmaktadır.

Etkilenenler;
VPN sunucuları
Socks proxyleri (Tor gibi)

Etkilenmeyenler;
CGI Proxyleri
SSH tünel ile HTTP proxyleri

  • Transparan DNS Proxyleri

transparent-dns-proxy

Günümüzde bazı İSS’lerin Transparan DNS Proxysi adında bir teknoloji kullandığı bilinmektedir. Bu şu işe yarıyor; siz eğer bir DNS sorgusu yaparsanız, İSS bunu sadece kendi DNS’leri üzerinden (TCP/UDP port 53) yapılmaya zorluyor. Bir örnek vererek anlatalım. Siz DNS sunucusu olarak OpenDNS‘i kullanmaktasınız ve EFF için bir sorgu yapacaksınız. Transparan DNS Proxysisi sizin isteğiniz OpenDNS sunucularına ulaşmadan araya girip akışı keserek İSS’nin kendi DNS sunucusuna yönlendirmekte ve OpenDNS sunucusu yerine İSS DNS sunucusu cevap vermektedir. Siz tabi bu noktada “Ben VPN kullanıyorum, güvendeyim.” veya “Tor kullanıyorum, güvendeyim.” diyebilirsiniz. Fakat, sonuçlar sizin beklediğiniz yönde gerçekleşmemektedir (şemalar DNS leak test’ten alıntıdır).

  • Tehlikenin Boyutlarına Dair

Bir tehlike modeli üzerinde (Modeller çoğaltılabilir. Mesela ücretsiz anonim socks proxyler üzerinden modeller oluşturulabilir, denemesi size kalmış.) sizlere DNS sızıntısı göstereyim. Modelimiz şu; Amerika lokasyonlı bir VPN servisi kullanıldığınızı düşünün. Ayrıca tarayıcınız da Tor üzerinden internete (exit-node da Amerika’da) girdiği farzedilmekte. Fakat, dinamik ip kullanmaktasınız ve özel bir DNS ayarına sahip değilsiniz;

2013-10-20-002934_1920x1080_scrot

Tor veya VPN servisinizin DNS sunucularını görmeniz (görmezseniz daha iyi) doğal olarak beklenendir. Sizin tek görmek istemeyeceğiniz şey ise, trafiğinizi ondan gizlediğinizi sandığınız İSS’niz olacaktır. Fakat, sonuca bakarsak;

2013-10-20-014138_1920x1080_scrot

Tam bir facia! En üstte VPN servisinizi görüyorsunuz. Daha da kötüsü, siz Tor kullanmanıza ve VPN tüneli oluşturmanıza rağmen, ve tüm bunların üzerine kendinizi tamamen güvende (tamamen olmasa da bir nebze) hissederken, farkında olmadığınız bir DNS sızıntısına sahipsiniz. Diğer enteresan nokta, Firefox, socks proxy (Tor) yerine işletim sisteminin bağlı olduğu ağ (İSS) üzerinden DNS sorgusu gerçekleştirip, Tor’u tamamen atlamış. Tabi burada benim aklımı daha çok kurcayalayan şey, TTNet’in ya da Türkiye’de hizmet veren herhangi bir İSS’nin transparan dns proxysine ya da proxlerine sahip olup olmadığı. Gerçi, TTNet pişkin pişkin Phorm kullanmaya devam edip ve DPI ile paket analizlerine dalmış olduğu için bunu sormak (gene de şunda veya bunda vardır diyemiyorum) abesle iştigaldir.

  • DNS Sızıntı Testi

Böyle bir durumla karşıya karşıya olup olmadığınızı anlamak için;

– DNS Leak Test: https://www.dnsleaktest.com
– IP Leak: http://ipleak.net/

  • İSS’nin DNS Gaspı (Ekleme: 19.11.2013)

Buradaki işlemleri terminalden gerçekleştireceğiz. Önce, varolmayan bir domain adresine ping atalım;

kame $ % ping yokboylebirdomain.ltd
PING yokboylebirdomain.tld (195.175.39.75): 56 data bytes
64 bytes from 195.175.39.75: icmp_seq=0 ttl=236 time=336 ms
64 bytes from 195.175.39.75: icmp_seq=1 ttl=236 time=292 ms
64 bytes from 195.175.39.75: icmp_seq=2 ttl=236 time=274 ms

İşte aradığımız! Var olmayan bir domain’e 195.175.39.75 IP’si üzerinden yanıt geliyor. Yani İSS’niz (örnekte gerçek) sahte bir adres üzerinden sorgularınıza yanıt veriyor.

kame $ % nslookup yokboylebirdomain.tld
Server: 192.168.2.1
Address: 192.168.2.1#53

Non-authoritative answer:
Name: yokboylebirdomain.tld
Address: 195.175.39.75
Name: yokboylebirdomain.tld
Address: 195.175.39.71

Sahte IP’yi sonunda yakaladık; 195.175.39.71!

  • Ne Yapmalı?

Öncelikle, testi yaptığınızı ve kötü sonuçla karşılaştığınızı varsayarak; bir, statik ip ayarını yapmayı öğrenin. Internette bununla ilgili girilmiş tonlarca yazı, alınmış ekran görüntüsü ve nasıl yapacağınızı anlatan videolar bulunmakta. Bir aramanıza bakar. Hangi işletim sistemini kullanırsanız kullanın, bunu yapın.

İki, iyi bir DNS servisi bulun. Benim bu konudaki önerim aşağıda. Eğer, sizin farklı görüşleriniz varsa, ben sadece Google DNS’i kullanmamanızı tavsiye ederim. Onun yerine OpenDNS‘i gönül rahatlığıyla (dediğime pişman olmam umarım) kullanın, kullandırın.

Üç, Firefox’unuzu aşağıda anlattığım şekilde ayarlayabilirsiniz. Ayrıca, kötü bir VPN servisi kullanmayın, para veriyorsanız da paranızı ziyan etmeyin.

Dört, eğer Windows kullanıyorsanız, öncelikle Toredo‘yu Windows cmd üzerinden kapatın (netsh interface teredo set state disabled). İyi bir firewall kurabilirsiniz. Son olarak, DNS Leak Test’in şu önerilerini uygulayın.

Beş, GNU/Linux’ta alternatif olarak Polipo kurup kullanabilirsiniz.

Altı, Dnscrypt kurup kullanabilirsiniz (Platform bağımsız!).

  • Hangi DNS Servisi?

Ben OpenNIC Project‘in DNS sunucularını kullanmaktayım. Beni kullanmaya iten en önemli ayrıntısı, ücretsiz, sunucuların kayıtlarını bir süre sonra (saatte bir, 24 saatte bir ya da hiç tutmayarak) silmesi (anonimleştirmesi), birçok ülkeden, istediğiniz DNS sunucusunu kullanmanıza olanak vermesi. Şimdilik, sicili gayet temiz ve sunucuları da performans olarak üzmeyecek düzeyde.

  • Firefox Ayarı

Firefox’ta bu dertten kolayca kurtulmak isterseniz eğer, adres çubuğuna about:config yazarak Firefox’un ayarlarını açabilirsiniz. Açtıktan sonra;

network.proxy.socks_remote_dns bulun ve onu true yapın. Böyleyece Firefox bağlı olduğu ağ üzerinden değil socks proxy üzerinden (ayarladıysanız Tor) DNS sorgusu yapacaktır. Eğer kullandığınız uygulamalar DNS ön yüklemesi yapıyorsa, ayarlarında DNSPrefech var mı yok bu bir bakın. Firefox için network.dns.disablePrefetch bulun ve true yapın.

  • Sonuç

DNS sızıntısı basit ve küçümsenecek bir durum değildir. Bunu iyice anlamak lazım. Bir diğer nokta da, “ben Tor’la yasaklı siteye girebiliyorsam nasıl isteğim İSS’me gitsin?” sorusu. Burada bir hataya düşüyorsunuz; Tor’la siteye girmek farklı bir şeydir, siteye girmek için gönderdiğiniz isteğin aynı anda İSS’nize de gitmesi (İSS üzerinden girmeseniz dahi) farklı bir şeydir. Sizin kaçınmanız gereken, konunun da özü, isteğin İSS’nin DNS  sunucularına da gitmesi. “Onu kullanmayı bilen zaten şunu da ayarlar.” yanlış bir bakış açısıdır. Ayarladığını zannedersiniz, güncellersiniz ayarlarınız sıfırlanır, değişir, “VPN kullanıyorum ya, n’olcak.” dersiniz, böyle bir olasılıktan haberdar değilsinizdir ya da iyi bir tehlike modeliniz yoktur, zor duruma düşersiniz.

Anonimlik sizin tehlike modelinize dayanır ve anonimlik düzeyiniz ölçülebilir (bunu her yazımda tekrarlayacağım). Bunun bilincinde olun!

Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , ,