Tag Archives: man in the middle

Büyük Birader’le Mücadele Etmek

Çocukluğumda yaptığım yaramazlıklar için en çok duyduğum öğüt, “karda yürü ama izini belli etme” idi. Her anımızın gözetlendiği, bir şekilde kaydı tutulduğu ya da bir şekilde bize ait özel dediğimiz verilerin okunduğu şu günlerde Büyük Birader’le mücadeleye nereden başlamalı, bir giriş olarak anlatmak istedim.

  • Biraz paranoya iyidir

Anonimlikte, bence, motivasyon çok önemli. Her adımınızı gözetleyen Büyük Birader’e karşı zihnen de bir mücadele vermektesiniz ve bu konuda motive, sizlere çok büyük bir destek kaynağı olacaktır. Motivasyonun yanına biraz da paranoya eklersek, bence harika olur. Paranoya’nın kısa bir tanımına bakalım:

Paranoya, bireyin herhangi bir olay karşısında olayın oluşumundan farklı olarak gelişebileceğini kendi içerisinde canlandırma yolu ile öne sürdüğü ve sınırsız sayıda çeşitlendirebileceği hayal ürünlerinin tümüdür.

Sizlere yazılarımda devamlı “tehlike modeli“‘nden bahsetmekteyim. Tehlike modeli oluşturmak (kişisel görüşüm) biraz da paranoyaya dayanıyor (ayrıca hesapları ayrıbilmekte örnek bir model var). Çünkü her olay karşısında, bu olayın gelişimi için farklı canlandırmalar oluşturuyor ve buna karşı güvenliğinizi sağlamak üzerine yeni yöntemler geliştiriyorsunuz. Elbette bunu hastalık boyutuna taşımak kişise zarar verecektir. Fakat, paranoyanın model geliştirmedeki etkisini gözardı etmemek gerekli. Anonimlikle ilgili ısrarla söylediğim şeylerden birisi de; “kimsiniz ve kimden saklanıyorsunuz, neden ve ne tür bir risk almayı hedefliyorsunuz?”. Yani, anonimlik düzeyiniz hesaplanabilir, biraz paranoyak olun, iyi bir model oluşturun ve kendinizi koruyun!

  • Kriptografiye önem vermek

Türkiye’deki üniversitelerde kriptografi ile ilgili ne kadar eğitim veriliyor ya da ne kadar insan bu konuda bilgilendiriliyor, bunun üzerine pek bilgi sahibi değilim. Kriptografi çok çok önemli bir konu ve üzerine ciddi olarak düşülmesi, ayrıca bu konuda yerel literatüre çok şey katılması gerekli olduğu düşünüyorum. Kısa bir tanım yapacak olursak:

Kriptografi, gizlilik, kimlik denetimi, bütünlük gibi bilgi güvenliği kavramlarını sağlamak için çalışan matematiksel yöntemler bütünüdür. Bu yöntemler, bir bilginin iletimi esnasında karşılaşılabilecek aktif ya da pasif ataklardan bilgiyi -dolayısıyla bilgi ile beraber bilginin göndericisi ve alıcısını da- koruma amacı güderler.

Sizin için önemli olan tüm verileri şifrelemelisiniz. Bunun daha başka bir açıklaması yok. Eğer mümkünse tüm verilerinizi şifreleyin. Bu, sizi güvende tutmanın temel ve başlıca yollarından biridir. Bu konuda ne tür araçlar kullanabilirsiniz, kısaca bir göz atacak olursak:

* E-postalarınız için GnuPG kullanabilirsiniz.
* Dosyalar için ccrypt ya da encfs kullanabilirsiniz.
* Disk için TrueCrypt ya da dm-crypt + LUKS kullanabilirsiniz.
* Anlık mesajlaşmalarda OTR eklentisini kullanabilirsiniz.
* Ağ için SSH kullanabilirsiniz.

Örnekler elbette çoğaltılabilir. Burada iş sadece şifrelemekle bitmiyor. Temel bir örnek ve tavsiye olarak, kullanacağınız şifre ya da şifreler sizinle ilgili ya da size ait herhangi bir bilgi içermemeli. Güvenli bir şifrenin yolu akılda kalması (inanın kalıyor) zor da olsa, rastgele şifrelerden geçiyor. Bu, sözlük saldırılarında ya da brute force saldırılarında sizlere ciddi bir avantaj sağlamakta. Dikkati çekmek istediğim bir diğer nokta ise kanun uygulayıcılarının yoktan delil var etme ya da herhangi bir şeyi delil olarak kullanma konusundaki tutumları. Bu nedenle, şifrelediğiniz herhangi bir şey yazılı/basılı olarak elinizde bulunmamalı. Elinizdeki basılı dökümanlarla işiniz bittiyse, yakın gitsin. Yedek alacaksanız, aldığınız bu önemli ve şifreleri verilerin yedeğini ailenize, eşinize, dostunuza ait bilgisayarlarda saklamamanız tavsiyedir.

  • Hesapları ayırabilmek

Hesapları ayırmaktan kastettiğim, anonim kimliğiniz ile gerçek kimliğinizi içeren hesapların ayrımını yapmak çok önemli. Anonim hesabınız üzerinden gerçek hesaplarınıza bir bağlantı kurulmamalı. Eğer bu bağlantı kurulursa, artık anonim de değilsinizdir. Anonimlik, tanımı gereği içinde anonim özneleri aşmaya çalışan saldırganları da içerir. Yani, eğer bir anonimlik varsa bu anonimliği ortadan kaldırabilmek için çalışanlar da olacaktır. Bu, kanun uygulayıcı olur, gizli servisler olur, başka bir anonim özne olur. Önemli olan bir saldırgan varlığını asla unutmamak.

Bir diğer nokta da anonim hesabınız üzerinden gerçekte tanıdığınız ve sizin bu kimliğinizi bilen insanlarla pek iletişime geçmemeniz (özellikle telefonla) gerekliliği. Bu konuda kararınız net olmalı ya da en azından ne kadar bilgiye sahip ya da ne zaman bilgiye sahip olacaklarını iyi kararlaştırmak gerekli. Bu, bence çeşitli riskleri de beraberinde getiriyor. Saldırgan ne kadar dar bir çevre oluşturabilirse, sizin kimliğinizi tespit etmesi de o kadar çabuk olabilir. Şimdi bunu basitçe örneklendirelim (şema eklendi):

model

Ben anonim kimliği “X“, gerçek kimliği “A” olan bir bireyim. “X” kimliğini gerçekte kim olduğunu (A’yı) bilen “W“, “Y” ve “Z” gerçek kimlikleri var. Ayrıca, “X” kimliğini aşıp “A” kimliğine ulaşmak isteyen saldırgan “S” var. Eğer, saldırgan “S“, benim “W“, “Y” veya “Z” gerçek kimlikleri ile iletişimde olduğumu bir şekilde farkederse saldırı kapsamını daha karmaşık ve kapsamlı bir halden daha spesifik ve daha dar bir hale getirir. Gerekirse, “W“, “Y” ya da “Z“‘ye doğrudan veya dolaylı olarak baskı/saldırı düzenleyerek benim gerçek kimliğime ulaşabilir. Bu saldırı, örneğin, bir man-in-the-middle saldırısı olabilir. Siz “X” anonim kimliği üzerinden “W” gerçek kimliği ile iletişime geçerken, saldırgan araya girip mesaj içerikleri ile oynayarak sizin “A” gerçek kimliğinizi elde edebilir. Bu bahsettiğim örnek, ayrıca bir tehlike modelidir. Bu yüzden ısrarla diyorum ki, bir tehlike modelinizin olması şart!

  • Kayıtlar

Özellikle /tmp, /var/log ve kullanıcı dizininde (/home/kullanıcı) kalan geçmiş ya da yedek dosyaları sizin için bir risk teşkil etmekte. Kullandığınız program, araç vs. her ne ise bunun nerede kayıt tuttuğunu bilmeniz sizin faydanıza olacaktır. Bir diğer noktada terminal üzerinde gerçekleştirdiğiniz şeylerin (kabuktan kabuğa değişmekte) de ayrı ayrı kaydı tutulmakta. Örneğin:

bash: .bash_history
zsh: .zsh_history
vim: .viminfo
.
.

Yedekler için:
*.swp
*.bak
*~
.
.

Bu sizin kullandığınız ortama göre değişim göstereceği için temel olarak sıralayabileceğim belli başlı şeyleri örnek olarak gösterdim. Sistemden çıkış yaparken bunları silerseniz ya da en azından nelerin kaydını tuttuklarını incelerseniz sizin yararınıza olur. Uygulama olarak Bleachbit, temizleme konusunda tercih edilebilir (Emre’ye teşekkürler.).

  • Karda yürü ama izini belli etme

Ceza hukukunun ciddi bir eleştirisini hukukçu olmadığım için yapamam. Fakat, kanun uygulayıcılarının hukuk dışı deliller elde ederek bireyi hapse atıp, daha sonra mahkemede tutuklu olarak yargılamaya başlaması ne vahim bir durumda olduğunun göstergesidir. Sonuca gelirsek, iyi bir motivasyon, biraz paranoya, önemli verileri şifreleyip anonim kimliğimizle gerçek kimliğimizin ayrımı tam olarak yapabilmek, kendimize uygun tehlike modelleri geliştirip bunlara karşı savunma yöntemleri hazırlamak, ve son olarak karda yürüyüp izimizi belli etmemek! Ayrıca, bu yöntemler sadece burada yazanlarla sınırlı değildir. Herkesin ayrı bir modeli olacak ve yöntemler de ona göre şekillenecektir.

Büyük Birader’i artık her zamankinden daha soğuk bir kış bekliyor.

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

SSL, Man In The Middle Ve TurkTrust

Wired‘da yayımlanan Law Enforcement Appliance Subverts SSL makalesinden (haber mi deseydik?) sonra biraz geriye gidip makale üzerinden ve yakınlarda gerçekleşmiş TurkTrust‘ın hatalı sertifika üretimi üzerine enteresan bir benzerlikten bahsedeceğim.

Man in the middle attack nedir?
man-in-the-middle
MitM saldırısı yapısı itibariyle aktif bir dinlemedir. Kurban ile sunucu arasındaki orjinal bağlantıya bağımsız bir bağlantı ile giren saldırgan, aslında kendi kontrolü altında bulunan iletişimi, kurbanı ve sunucu ile arasındaki iletişimin gizli ve sadece birbirleri arasında gerçekleştiğine inandırır. Tüm bu süreçte ise gönderilen ve alınan mesajlar saldırgan üzerinden gider. Daha iyi anlaşılabilmesi için wiki‘de bulunan çok güzel bir örnek üzerinden adım adım gidelim (şema Tails‘tan alıntıdır):

  1. Ali, hoşlandığı kız Ayşe’ye bir mesaj göndermek ve onunla pastanede buluşmak ister fakat aralarında bir üçüncü şahıs olan ve Ayşe’den hoşlanan ortak arkadaş Işık vardır ve ikisi de Işık’tan haberdar değildir;
  2. Ali “Ayşe, ben Ali. Bana anahtarını ver.”-> Işık Ayşe
  3. Işık, Ali’nin gönderdiği bu mesajı Ayşe’ye yönlendirir fakat Ayşe bu mesajın Işık’tan geldiğini bilmez;
  4. Ali Işık -> “Ayşe, ben Ali. Bana anahtarını ver.” Ayşe
  5. Ayşe anahtarı ile yanıt verir;
  6. Ali Işık <- “Ayşe’nin anahtarı” Ayşe
  7. Işık, Ayşe’nin anahtarını kendi anahtarı ile değiştirir ve mesajı Ali’ye yönlendirir;
  8. Ali <- “Işık’ın anahtarı” Işık Ayşe
  9. Ali, Ayşe’ye göndereceği mesajı Ayşe’nin sandığı anahtar ile şifreler ve Ayşe’ye gönderir;
  10. Ali “Saat 22:00’da pastanede buluşalım(Işık’ın anahtarı ile şifrelenmiş)” -> Işık Ayşe
  11. Anahtar aslında Işık’ın olduğu için, Işık mesajın şifresini kırar, içeriğini istediği gibi okur, eğer isterse mesajın içeriğini değiştirir, ve elinde bulunan Ayşe’nin anahtarı ile yeniden şifreler ve mesajı Ayşe’ye yönlendirir;
  12. Ali Işık “Saat 22:00’da çorbacıda buluşalım(Ayşe’nin anahtarı ile şifrelenmiş)” -> Ayşe
  13. Ayşe ise bunun Ali’den kendi anahtarı ile şifrelenmiş olarak ulaştığını düşünür. Garibim Ali saat 22:00’da pastanede Ayşe’yi beklerken Ayşe ise Ali ile buluşacağını düşünüp saat 22:00’da çorbacıya, yani Işık’a gider.

SSL, bir kriptografik protokol olup, web trafiğini şifrelemek için kullanılmaktadır. Bu protokol sörf, e-posta, internet üzerinden fax ve VOIP gibi çok geniş çaplı uygulamaları kapsar ve yüksek düzeyde bir şifrelemedir. Tarayıcı ile sunucu arasındaki iletişim ve verinin yukarıda bahsettiğim şekilde dinlenilmesini önler. Hergün ziyaret ettiğiniz birçok site HTTP[S] kullanmaktadır. HTTP ise bu şifrelemeye sahip değildir, gönderilen mesajlar herkes (mesela İSS’niz, ağınızdaki başka bir şahıs) tarafından zorlanmadan okunabilmekte/dinlenebilmektedir.

Makaleye dönecek olursak, Packet Forensics isimli bir şirket bir kutu yapıyor ve bu kutu şifre kırmadan iletişimin arasına girerek gerçek SSL sertifikasını kendi oluşturduğu sahte SSL sertifikası ile değiştiriyor. Şirket sözcüsü Ray Saulino ise bu kutuyu kanun uygulayıcıları için yaptıklarını, Internette tartışıldığını ve çok özel bir şey olmadığını söylüyor. Bununla birlikte, TurkTurst firması 2013 yılı başında 2 adet “hatalı” SSL sertifikası ürettiğini farkediyor (konu ile ilgili ayrıntılı bilgi almak için bu yazıyı okuyabilirsiniz!)

TurkTrust yapığı 4 Ocak 2013 tarihli kamuoyu açıklamasında şöyle diyor:

Yapılan incelemeler sonucunda, söz konusu hatalı üretimin sadece bir kez gerçekleştiği, sistemlerimize herhangi bir müdahalenin söz konusu olmadığı, hatalı üretim sonucu ortaya çıkan bir zarar bulunmadığı tespit edilmiştir.

Microsoft’un duyurusu:

TURKTRUST Inc. incorrectly created two subsidiary CAs (*.EGO.GOV.TR and e-islem.kktcmerkezbankasi.org). The *.EGO.GOV.TR subsidiary CA was then used to issue a fraudulent digital certificate to *.google.com. This fraudulent certificate could be used to spoof content, perform phishing attacks, or perform man-in-the-middle attacks against several Google web properties.

Microsoft, duyurusunda TurkTrust firmasının 2 tane hatalı sertifika oluşturduğunu (*.ego.gov.tr ve e-islem.kktcmerkezbankasi.org), bu hatalı sertifikanın çeşitli Google web özelliklerine karşı phishing ya da man in the middle saldırılarına neden olabileceğini söylüyor.

Microsoft çözümü:

To help protect customers from the fraudulent use of this digital certificate, Microsoft is updating the Certificate Trust list (CTL) and is providing an update for all supported releases of Microsoft Windows that removes the trust of certificates that are causing this issue.

Microsoft, kullanıcılarını bu sahte sertifakalardan koruyabilmek için bir yama yayımlamak zorunda kalıyor. Açık ve net olarak sahte sertifikadan kullanıcıların haberdar olmadığını (muhtelemen man in the middle saldırısı ile ilişkili), ve bunun için de kullandıkları hedef işletim sistemlerini güncellemelerini istiyor.

Mozilla’nın çözümü:

Mozilla is actively revoking trust for the two mis-issued certificates which will be released to all supported versions of Firefox in the next update on Tuesday 8th January. We have also suspended inclusion of the “TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) Aralık 2007” root certificate, pending further review.

Mozilla ise duyurusunda Firefux’un 8 Ocak Salı günü tüm desteklenen sürümleri için bu sertifikaları kaldıracaklarını ayrıca “Aralık 2007 tarihlikök sertifikayı ise ileri bir inceleme için askıya alacaklarını söylüyor.

Wired’ın makalesinde geçen kısmı aynen buraya aktarıyorum:

The boxes were designed to intercept those communications — without breaking the encryption — by using forged security certificates, instead of the real ones that websites use to verify secure connections.

Diyor ki; kutular, yukarıda da kısaca bahsettiğim gibi -şifreyi kırmadan- websitelerin güvenli bağlantıları onaylamak için kullandığı gerçek sertifikalar yerine, sahte güvenlik sertifikaları tarafından iletişimlerine müdahale etmek için tasarlanmıştır. Yani burada söz konusu olan saldırı “man in the middle attack“‘tır. Makalenin değindiği bir başka nokta ise daha da vahim bir şeyi ortaya çıkartıyor:

To use the Packet Forensics box, a law enforcement or intelligence agency would have to install it inside an ISP, and persuade one of the Certificate Authorities — using money, blackmail or legal process — to issue a fake certificate for the targeted website. Then they could capture your username and password, and be able to see whatever transactions you make online.

Packet Forensics kutusunu kullanmak için mesela bir istihbarat servisinin (Türkiye için MİT diyelim) kutuyu İSS (mesela TTNet) içine kurmalı, bir tane Sertifika Sağlayıcısı’nı (tesadüfe bakın, TurkTrust) para ile, şantajla ya da yasal bir süreçle hedef websitesi için sahte sertifika üretmesine ikna etmeli. Sonuçta ne oluyor, sizin çevrimiçi olarak yaptığınız işlemler görülebilir ve kullanıcı adınızla şifreniz elde edilebilir olacaktır.

Tabi ki yazından TurkTrust böyle bir şey yapmıştır sonucuna varılmamalı. Öncelikli olarak, Packet Forensics’in böyle bir kutu ürettiği, bu kutunun kullanıldığı ve kapalı kapılar ardında tanıtıldığı, kanun uygulayıcıları ya da istihbarat servislerinin hedef pazarları olduğu (kim bilir başka kimler var?) ve bunu pişkince söyleyebildikleridir. İkinci olarak, böyle bir kutunun kullandığınız ya da kullandığımız İSS tarafından “kanun uygulayıcılarına” ya da “istihbarat servisine” yardımcı olsun diye kurulup kullanıldığı ve bir SSL sertifika sağlayıcısının bir şekilde buna ortak edilebileceği olasılığıdır. Tüm bunlar “olanaklı mıdır?” sorusuna gelirsek (TurkTrust’ı bunun dışında tutuyorum); gönderdiğiniz bir e-postanın bir kopyasının aynı anda NSA sunucularında da yer alması, görüntülü konuşmaların simultane olarak NSA tarafından kaydedilmesi gibi uç örnekler, çok büyük boyutlardaki verinin NSA tarafından her yıl yedeklenmesi gibi daha bir sürü örnek vereceğimiz şeylerin olması da çoğu insana olanaklı gözükmüyordu. Her şeyden önce (bu örneğe istinaden) deşifrelemek için  uğraşmak yerine MitM (kutunun yaptığı) çok daha etkili bir sonuç verecektir. SSL sertifikasını kırmaya çalışmak yerine “araya girmek” ve akışa müdahale etmek çok daha basit ve hızlıdır. XKCD’nin şu karikatürü ise çok güzel bir özet. Dahası, bir İSS düşünün, Phorm, DPI, Finfisher ve bilinmeyen bir sürü kötücül uygulamaya sahip ve (gerçek olduğunu varsayarak) böyle bir kutunun varlığından da bir şekilde haberdar, bunu mu kullanmayacak? Bir diğer nokta da, (makaleye istinaden) diyelim ki devletiniz ve istihbarat servisiniz kapınızı çaldı ve sizden böyle bir şey istedi, kafa tutacak güce sahip misiniz? Her geçen gün kişisel gizlilik haklarının yok sayıldığı, ihlal edildiği ve insan haklarına aykırı durumların çıktığı şu günlerde sizlere bol sabır dilerim.

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

Arka Kapı

Eğer işlemcinizin üreticisi (AMD, Intel, Qualcomm vd.) NSA tarafından arka kapı bırakmaya zorlanmışsa ya da herhangi bir donanımızda bu tarz gizlilik ihlalleri yapılmışsa, kendinizi nasıl korumaya çalışırsanız çalışın NSA sizinle ilgili her şeyi görebilir.

Daha ayrıntılı bir açıklama yapmam gerekirse; kullandığınız donanımın geliştirme aşamasında, Büyük Birader sizleri izleyebilmek için üreticileri arka kapı bırakması için zorlamış, çip geliştirmesinde doğrudan veya dolaylı olarak katkıda bulunmuşsa kendinizi gizleyebilmeniz pek de mümkün olmayacaktır. Buradaki izleme daha çok sizin yaptığınız her şeyi kaydetmek değil de kendilerine bir arka kapı bırakmak, zamanı geldiğinde ya da ihtiyaç duyulduğunda buna başvurarak gerekli bilgiyi temin etmektir.

Bu tarz bir veri temini her şeyi kaydedip samanlıkta iğne aramaktan çok değerli veriyi almaya yarar. Kendini mükemmel bir şekilde kamufle etmiş böyle bir yöntem, kullandığınız herhangi bir cihazın rahatça izlenmesine olanak sağlayacaktır. Bir diğer deyişle, NSA kendi işleri için hazırlattığı özel çiplere sahip olacak, tüketici ise bu çiplere sahip donanımları bunun farkında bile olmadan satın alarak kullanmaya başlayacak. Her şey uzaktan bir komplo teorisi gibi durmaktadır. Fakat son sızan bilgilere göre buna benzer, daha doğrusu bunu ima edecek bir çalışma 2007 yılında başlamış. Google ise bu dönemde kendine ait her servis için noktadan noktaya (man in the middle yok demek) kriptolanmış iletişim için çalışmaktaydı ve Snowden’dan sonra bu işi iyice hızlandırdı. Bu, şu işe yarayacak; eğer biri verileri bir şekilde Google’dan temin etmek isterse Google istese bile bu verileri veremeyecek.

Bu noktada, Windows ve Mac OS kullanıcıları ciddi anlamda tehlikede olduğu varsayılabilir. GNU/Linux kullanıcıları nispeten daha az, *BSD kullanıcıları ise daha da az tehlikedeler. Art niyetli bir firmware, işlemci (donanım) üzerindeki bu tarz arka kapıları aktive edebilir ve bundan istediği gibi faydalanabilir. Siz ise işletim sisteminizi, donanım yazılımınızı güncelleştirdiğinizi zannedebilirsiniz. Kulağa çok çılgınca geldiği doğru. Böyle bir şeyin yapılmış olabileceğini ise ancak ileri düzey bir elektron mikroskobu ve ileri düzey teknik aletlerle işlemcinizi inceleyerek görebilirsiniz.Böyle bir şeyi test etmek ise tüketicilerin boyunu aşmaktadır.

Bir Kernel hacker’ı olan Theodore Ts’o, Intel’in /dev/random’ı sadece RDRAND’e dayanması gerekliliğindeki ısrarını neden reddetiğini de bu üstte anlattığım “komplo teorisi“‘ne dayanarak söylüyor. Diyor ki; “Denetlenmesi kesinlikle mümkün olmayan, bir çipin içine gizlenmiş uygulama demek olan sadece donanımsal RNG‘ye güvenmek, KÖTÜ bir fikirdir.” Örneğin, eğer Intel, RNG’yi doğrudan işlemcileri içine yerleştirirse kullanıcıların yazılımı kullanması yerine yazılımın kullanıcıları kullanmasına olanak sağlamış olacaktır. Başka bir deyişle, eğer RNG bir anahtar ile dağıtılmakta ise bunu tespit edebilmek imkansız olacak. Fakat kullanıcı yazılıma dayanarak RNG’yi gerçekleştirirse, yazılımdaki buna benzer bir arka kapı ise kolaylıkla farkedilebilecektir.

Ne yapalım, harddiskimizi kriptoladıktan sonra bilgisayarımızın üzerine benzip döküp yakalım mı?” dediğinizi duyar gibiyim. “NSA beni ne yapsın?” diyerek espri yaptığınızı biliyorum. Fakat bunu her normalleştirdiğinizde size dönüşü daha kötü olacak, daha çok gizlilik ihlali içerecek, sizleri aptal yerine koyacak ve birer köleye çevirecektir. Farkında olun, uyanık olun, hakkınıza sahip çıkın!

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