Heartbleed

SSL/TSL protokolü Internet üzerinde web sunucuları, tarayıcılar, e-posta, anlık mesajlaşma araçları ve VPN gibi uygulamaların şifreli bir şekilde haberleşmeleri için geliştirilmiştir. Temel amacı gizlilik ve güvenlik sağlamaktır. Açık ve gizli anahtara sahiptir. Açık anahtar ile şifrelenen veri gizli anahtar tarafından çözülür. Böylece iletilen verinin şifresinin doğru adreste ve doğru alıcı tarafından çözülmesi sağlanır. İşleyiş yapısına Wiki‘den (Türkçe) bakalabilirsiniz. Kısaca anlatacak olursak:

  • Ali -> Selam -> Ayşe diye bir mesaj yolladı. Bu mesaj desteklenen en yüksek TSL protokolü, rastgele bir sayı, doğrulama, şifreleme, mesaj doğrulama kodu (MAC) içeren şifreleme yöntemi ve bir sıkıştırma yöntemi ile yollandı.
  • Ayşe -> Selam -> Ali diye cevap verdi. Bu cevap da Ali tarafından seçilen TSL protokolü, rastgele sayı, doğrulama, şifreleme, mesaj doğrulama kodu (MAC) içeren şifreleme yöntemi ve sıkıştırma yöntemine uygun olarak verildi.
  • Ayşe -> Sertifika -> Ali mesajı yolladı. Bu mesaj şifreleme yöntemine uygun olarak şeçildi.
  • Ayşe -> SelamTamamlandı -> Ali diye bir mesaj daha yolladı.
  • Ali -> AnahtarDeğişimi -> Ayşe mesajı yolladı. Bu mesaj açık anahtarı (PreMasterSecret veya hiçbir anahtar) içermektedir. Bu değişimle artık üzerinden iletişim kurabilecekleri ortak bir sır belirleyebilecekler.
  • Ali ve Ayşe rastgele sayılar ve anahtar ile doğrulama ve şifrelemede kullanacakları ortak bir sır oluşturdular.
  • Ali -> ŞifrelemeYönteminiDeğiştir -> Ayşe mesajı gönderdi. Bu mesaj “Ayşe, bundan sonra sana göndereceğim her mesaj doğrulanacak ve şifrelenecek.” anlamına gelmektedir.
  • Ali -> Bitti -> Ayşe mesajı gönderdi. Bu mesaj  oluşturulan sır ile doğrulanmış ve şifrelenmiştir.
  • Ayşe Bitti mesajının şifresini çözmek isteyecektir. Eğer, oluşturdukları sıra uygun değilse el sıkışma gerçekleşmeyecektir.
  • Ayşe -> ŞifrelemeYönteminiDeğiştir -> Ali mesajı gönderdi. Bu mesaj da “Ali, bundan sonra sana göndereceğim her mesaj doğrulanacak ve şifrelenecek” anlamına gelmektedir.
  • Ayşe -> Bitti -> Ali mesajı gönderdi. Aynı şekilde oluşturulan sır ile doğrulandı ve şifrelendi.
  • Ali de Bitti mesajının şifresini çözecektir.
  • Son noktada, el sıkışma işlemi tamamlanmış olacaktır.

SSL/TSL’e kısa bir giriş yaptıktan sonra dün Heartbleed adıyla bir OpenSSL hatası keşfedildi. Heartbleed adı ise TSL/DTSL’de olan heartbeat (RFC6520) uzantısındaki hatadan geliyor. Bu hata normal şartlar altında şifreli bir şekilde korunun verinin çalınmasına sebep olabilmektedir. Bununla birlikte, gizli anahtar ile şifreli verinin çözülmesi, kullanıcıların sahip oldukları kullanıcı adı ve şifre gibi içeriklerin elde edilmesi, iletişimin dinlenebilmesi, verilerin servis veya kullanıcılardan hiçbir şekilde farkında olmadan çalınmasına olanak sağlamaktadır. Diğer yandan, yapılabilecek herhangi bir saldırının kolaylığı ve iz bırakmaması kullanıcıları büyük bir risk altına sokmaktadır. Yukarıdaki işleyiş örneğine de bakacak olursanız Ali ile Ayşe arasında geçen şifreli iletişim bu hata yüzünden saldırganların iletişimde kullanılan şifrelere sahip olmalarına ve mesaj içeriğini çok kolay bir şekilde elde edebilmelerine neden olmaktadır.

Nelerin sızmış olabileceğine dair olarak dört kategori oluşturulmuş. Bunlar; birinci anahtarlar, ikincil anahtarlar, şifreli veriler ve hafıza içerikleridir. Kısaca özetlersek; birincil anahtarlar şifreleme için kullanılan açık ve gizli anahtarları içermektedir. Saldırganın servisler tarafından şifrelenen trafiğin arasına girilebileceği, şifreyi çözebileceği, özellikle geçmiş trafiğin hatanın yamalansa bile şifresinin çözülebileceğidir. İkincil anahtarlar, servislerde kullanılan kullanıcı adı ve parola gibi kullanıcı içerikleridir. Şifreli veriler, servislerde tutulan verilerdir. Bunlar iletişime konu olan veriler, e-postalar, belgeler veya şifrelemeye konu olan herhangi bir içerik olabilmektedir.  Hafıza içerikleri de hafıza adreslerinde tutulan teknik detaylar olabildiği gibi çeşitli saldırılara karşı alınan güvenlik önemleri de olabilmektedir.

Ben de etkileniyor muyum?

Malesef etkileniyorsunuz. OpenSSL Internet üzerindeki trafiği şifrelemek üzere en çok kullanılan açık kaynak şifreleme kütüphanesi olduğu için en çok kullanılan sosyal medya siteleri, kurduğunuz SSL içerikli bir uygulama, ağ uygulamaları, hatta devlet siteleri bile gizlilik ve işlemleri (trafik, giriş vs.) korumak adına bu protokolü kullandığı için etkilenmektedir. Bu yüzden sizler de doğrudan veya dolaylı olarak etkilenmektesiniz. Ayrıca, ilk keşfedenlerin bu hatayı bulanlar olmadığını da unutmamalısınız. Hatayı duyuran Codenomicon ve Google‘dan Neel Mehta yaptıkları test saldırılarında durumun çok ciddi olduğunu ve bu açığın çoktan kullanılmış olabileceğini belirtmektedirler.

Hangi OpenSSL sürümleri etkilenmekte?

  • OpenSSL 1.0.1 ve 1.0.1f etkilenmekte,
  • OpenSSL 1.0.1g etkilenmiyor,
  • OpenSSL 1.0.0 etkilenmiyor,
  • OpenSSL 0.9.8 etkilenmiyor.

Hangi GNU/Linux dağıtımları etkilenmekte?

  • Debian Wheezy, (OpenSSL 1.0.1e-2+deb7u4) etkilenmekte,
  • Ubuntu 12.04.4 LTS, (OpenSSL 1.0.1-4ubuntu5.11) etkilenmekte,
  • CentOS 6.5, (OpenSSL 1.0.1e-15) etkilenmekte,
  • Fedora 18, (OpenSSL 1.0.1e-4) etkilenmekte,
  • OpenBSD 5.3 (OpenSSL 1.0.1c 10 Mayıs 2012) ve 5.4 (OpenSSL 1.0.1c 10 Mayıs 2012) etkilenmekte,
  • FreeBSD 8.4 (OpenSSL 1.0.1e) ve 9.1 (OpenSSL 1.0.1c) etkilenmekte,
  • NetBSD 5.0.2 (OpenSSL 1.0.1e) etkilenmekte,
  • OpenSUSE 12.2 (OpenSSL 1.0.1c) etkilenmekte.

Ne yapmalı?

Servis tarafını ilgilendiren duruma biz herhangi bir şey yapamıyoruz. Sadece, onların SSL sertifikalarını güncellemelerini bekleyeceğiz. Ardından, bir önlem olarak kullandığımız parolalarımızı değiştireceğiz. Bununla birlikte, bizi ilgilendiren tarafta ise ilk olarak dağıtımlarınızda kurulu olan OpenSSL paketinin sürümünü kontrol edin. Kontrol ettiğimde bende yüklü olan 1.0.1f olan sürümü 1.0.1g‘ye düşürüldü. Eğer, bu açıktan etkilenen bir sürüme sahipseniz ilk iş olarak etkilenmeyen sürümlere geçin. Muhtemelen, bir güncelleme çıkmıştır.

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

15 thoughts on “Heartbleed

  1. Woğ says:

    Teşekkürler detaylı bilgilendirme için. Acaba hangi methodlar ile OpenSSL’nin bu açığından faydalanabilirler merak ediyorum…

  2. Volkan Evrin says:

    Merhaba,

    Güzel bir bilgi özeti olmuş. Benim tavsiyem ise “şifre” ve “parola” kelimelerini düzgün yerlerde kullanılmasını önermek olur. Örneğin: “…kullanıcıların sahip oldukları kullanıcı adı ve şifre gibi içeriklerin elde edilmesi,…” değil de kullanıcı adı ve parolası gibi içeriklerin… denmesi gerekir. Zira, bildiğiniz gibi encryption ile password farkını Türkçe’ye çevirirken de kullanmak gerekir.

    • Kus says:

      Selamlar Volkan,

      Önermenizde haklısınız. Şifreli veri / kullanıcı parolası şeklinde bir ayrım yapmak lazım. Fakat, öyle bir alışkanlık olmuş ki ister istemez yazarken gözden kaçabiliyor.

  3. Anonymous says:

    Meraba konuyla alakasız ama birşey sormak istiyorum ben googlede gezinirken mesela otel fiyatlarına bakıyorum facebookda anasayfada otel sayfa önerileri çıkıyor bilirsiniz facebokun önerdiği sayfalar anasayfanıza gelir.oyun arastırıyorum o oyunla ilgili sayfalar geliyor sanırım tarayıcımın siteler için tuttuğu çerezlerimi görebiliyor facebook ve ona göre sayfalar öneriyor.bunun önüne nasıl geçebiliriz ?

  4. Zİyaretçi says:

    Merhaba;

    Konunun ilk çıktığı günleri takip eden zamanda Debian’da OpenSSL’e dair bir update geldi fakat vesiyonu halen etkilenen sürümde yani “OpenSSL 1.0.1e 11 Feb 2013” gözüküyor. OpenSSL’in sitesinden “OpenSSL 1.0.1g” sürümünü indirip elle kurmamı önerir misiniz yoksa yapılan update’ten sonra bu açık kapatılmış mıdır? Teşekkürler.

    • Kus says:

      Selamlar,

      Debian güncelleme ile hatanın giderilmiş olduğunu duyurmuş [1].

      For the stable distribution (wheezy), this problem has been fixed in version 1.0.1e-2+deb7u5.
      For the testing distribution (jessie), this problem has been fixed in version 1.0.1g-1.
      For the unstable distribution (sid), this problem has been fixed in version 1.0.1g-1.

      Bana sorarsanız gerek yok.

      [1] http://www.debian.org/security/2014/dsa-2896

  5. Yılmaz says:

    Sayın Kus,

    Sizin dün verdiğiniz haberi koskoca bbc bugün veriyor, işte haber linki:

    http://www.bbc.com/news/technology-26954540

    Bizi bilgilendirdiğiniz için size teşekkür ederim. Bu arada bağlantılarınız ne kadar kuvvetli ve sağlamki önceden haber verebildiniz merak ettim doğrusu.
    Başarılar dilerim.

    • Kus says:

      Selamlar Yılmaz,

      Geç farketmiş olabilirler, haberin ziyaretçi ve reklam geliri getirmeyeceğine inanmışlardır, bir sürü nedeni olabilir. Ben teşekkür ettim. Bağlantım yok, güncelleme yaparken neden OpenSSL paketi eski sürüme getirildi diye bakarken gördüm. Biraz şans eseri oldu.

  6. […] Burada çok detaylı açıklama yapamayacağım ama Türkçe olarak güzel bir açıklama için buraya, İngilizce için buraya […]

  7. mueddib says:

    Merhaba;

    bu açıkla ilgili olarak Snort tarafında bir rule mevcut.

    alert tcp any any -> $HOME_NET 443 (msg:”Attempted Heartbleed access exploitation for OpenSSL 1.0.1f and lower”; flow: to_server; content:”| 18 03 02 00 03 01 40 00 |”; reference:cve, CVE-2014-0160;)

    Paylaşmak istedim.

  8. Erman says:

    Merhaba,

    Bu kadar çok geniş bilgiyi nereden ve nasıl öğrendiğinizi çok görmezseniz bizimle paylaşır mısnız? Üniversitede araştırma görevlisi falan mısınız yoksa bir firmada Bilgi işlem müdürü falan mı inanın sizi tanımayı çok isterdim. Yani yazılarınızı okuyorum ama hepsi ayrı tez konusu..
    Sizin yöneldiğiniz alana en azından yeni başlayanlar için (benim gibi cahiller gibi) tavsiyelerde bulunur musunuz?
    Sizi iyi yerlerde görmek dileklerimle, Saygılar.

    • Kus says:

      Selamlar Erman,

      Geniş bir bilgim olduğunu düşünmüyorum. Fakat, araştırmayı çok seviyorum ve bir şeyler araştırırken de sıkılmıyorum. Yalnız, bu araştırma kısmı sadece ilgimi çeken konulardır. Onların da belirli bir kısmı burada yazılmış vaziyette. Bilgi işlem müdürü ve araştırma görevlisi değilim. Şaşırtıcı gelebilir ama işsizim. Hatta birikmiş GSS prim borcum var.

      Tavsiyelere gelince ilk olarak, kendinizi bu konularda cahil diye görmeyin veya nitelemeyin. Şaka bile olsa çok yanlış bir bakış açısı. İkinci olarak, birey şunu görmeyi hep atlıyor; bir şeye büyük derseniz o bazı şeylerden büyüktür, bazı şeylerden de küçüktür. Yani herkesin vakıf ve eksik olduğu konular var. Bu çok normal bir durum ve üstesinden de gelinebilir. Ne yapmalıyız diyenlere tavsiyem her şeyi anlatan sihirli bir websitesi yok bu yüzden de ilginizi çeken konularla ilgili tarama yapmanız gerekiyor. Bu taramaları akademik, Internette paylaşılan yazılar (blog gibi), kitaplar, dergiler şeklinde yapabilirsiniz. Başlarda sıkıcı gelebilir, ne anlatıyor bu da diyebilirsiniz. Son olarak, sabit diskinizde bir bölüm oluşturun, buraya indirdiğiniz kaynakları koyun, bir tane GNU/Linux kurun (sanal olması farketmez), en azından öğrendiğiniz şeyleri kurcalayıp kendi ortamlarında gözleyebilirsiniz.

      Bu ülkede bir yerlere gelebileceğimi de pek zannetmiyorum. Başka bir ülkede olsaydım gelirmiydim orası bile şüpheli.

  9. Ufuk says:

    Merhabalar

    TLS 1.3 şifrelemesi hangi cipper’lardan oluşuyor?

    RC4’ü NSA yaptıysa neden dünya kadar kişiler,kurumlar daha bunu kullanıyor.Üstelik NSA’ya karşı açıklama yapan O ülkenin (us) kurumları,kuruluşları.
    Ayrıca TLS 1.3’den önce hangi güvenli yani şifrelemesi çözülemeyecek başka yokmu?

    Https üzerinden RC4 dinlenebilir diye biliyorum.Konuyu aydınlığa kavuşturabilir misiniz?

    • Kus says:

      Selamlar Ufuk,

      TSL için Wiki [1] makalesine bakabilirsin. Kısaca belirtilmiştir. Bu arada 1.3 ne zaman çıktı? 2013 Eylül’ünde istek listesi dolaşıyordu. Sonrasında takip de etmedim.

      İkinci soruna gelirsek, algoritmalarla ilgili bir yazı yazacaktım fakat 3 aydır taslak olarak duruyor. Kısaca burada bahsedeyim. Algoritma hazırlandıktan sonra yayımlanır ve bu algoritma tüm dünyada bilim adamları, bilgisayar mühendisleri, matematikçiler vd. tarafından test edilir ve güvenilirliği için onay verilir. Yani, sadece bir kurum hazırlıyor veya katkıda bulunuyor, sonra bunlar kullanılmaya başlıyor gibi bir durum yok.

Leave a Reply to Yılmaz Cancel reply

Your email address will not be published. Required fields are marked *