İçeriğe atla

Heartbleed

Heartbleed
Heartbleed'ı temsil eden logo. Güvenlik şirketi Codenomicon, Heartbleed'a hem bir isim hem de bir logo vererek konunun kamuoyunda bilinirliğine katkıda bulundu.[1][2]
CVE kimliğiCVE-2014-0160
Yayınlanma1 Şubat 2012 (12 yıl önce) (2012-02-01)
Keşfedildiği tarih1 Nisan 2014 (10 yıl önce) (2014-04-01)
Düzeltildiği tarih7 Nisan 2014 (10 yıl önce) (2014-04-07)
KeşfedenNeel Mehta
Etkilenen yazılımOpenSSL (1.0.1)
Web sayfasıheartbleed.com

Heartbleed, Taşıma Güvenliği Katmanı (TLS) protokolü gerçekleştiriminde geniş biçimde kullanılan, açık kaynak kodlu kriptografi kütüphanesi OpenSSL'de 2014 yılı Nisan ayında tespit edilen bir yazılım hatasıdır. Heartbleed bu TLS için kullanılan OpenSSL örneğinin, istemci ya da sunucu olduğu fark etmeden kötü niyetle kullanılabilir. Bu açık sayesinde bir saldırgan sunucu hafızasından veri okuyabildiği gibi, bir sunucunun SSL özel anahtarlarını da ele geçirebilir.

OpenSSL in düzeltilmiş bir sürümü 7 Nisan 2014 te yayınlandı ve aynı gün Heartbleed hatası halka duyuruldu.

Heartbleed çalışması: SSL bağlantısı için ilk olarak sunucunun çalışıp çalışmadığını kontrol eden paket gönderilir. Cevap gelince SSL veri iletişimi başlar. Veri iletişiminde istenen bilgi ve boyutu gönderilmektedir. Bu açığın sebebi: veri boyutunun SSL sunucusu tarafından kontrol edilmemesi istenen kadar veriyi geri göndermesidir. Bu da sunucunun o anda hafızada (RAM'de) bulunan bilgileri göndermesi anlamına gelmektedir. Sunucu hafızasında o anda kullanıcıların şifreleri, sitenin sertifikası olabilir ve saldırgan bu bilgileri kolay bir şekilde alabilir.

Çözümü: OpenSSL istenen bilginin boyutunu kontrol etmeye başlamıştır.

Yapılan incelemeler sonucunda bazı saldırganların yazılım hatasının tespitinden çok önce bu açığı kullanmış olma ihtimalinin yüksek olduğunu göstermektedir. Bloomberg'e konuşan iki muhbirin ifadesine göre ABD Ulusal Güvenlik Dairesi (NSA) bu açıktan haberdardı fakat kamuoyuna açıklamadı. NSA bu iddiayı yalanladı.

Tarihçe

7 Nisan 2014'te, OpenSSL versiyonlarında TLS Heartbeat eklentisinin bellek kullanma ile ilgili ciddi bir yazılım hatası içerdiği duyuruldu. Bu açık ile uygulamanın belleğindeki 64kb veri her heartbeat adı verilen istekle ele geçirilebilir.

Keşfedilmesi

Google ın güvenlik ekibinden Neel Mehta 1 Nisan 2014 te OpenSSL e Heartbleed i bildirmiştir.

Davranışı

Heartbleed'in tarifi

RFC 6520 Heartbeat Uzantısı, bağlantının bir ucundaki bilgisayarın Heartbeat istek mesajı göndermesini sağlayan TLS güvenli iletişim bağlantılarını test eder. Bu istek genel olarak karşıdaki bilgisayarın cevap verebiliyor durumda olduğunun kontrolünü gerçekleştirmek için yapılır. Bu Heartbeat isteği tipik olarak, bir metin ve dönecek cevap için 16-bit sayı uzunluğunda yük içerir. Bu isteği alan bilgisayar kesinlikle aynı yükte bilgiyi göndericiye geri göndermelidir.

Etkilenen OpenSSL versiyonlarında bu gelen isteğe karşılık, mesajın yükündeki uzunluğun tam miktarı kadar bilgi ara bellekten cevap olarak geri gönderilir. Bu hatadan dolayı göndericiye dönen mesaj, gelen istekteki metine ek olarak o an bellekte ne varsa içerir.

Bu nedenle Heartbleed, saldırganın kısa yük ve daha uzun cevap uzunluğu içeren kusurlu Heartbeat isteği göndererek, kurbanın belleğinden 64 kilobayt veri okumasına olanak sağlayarak kötü niyetle kullanılabilir. Gerçek bir Heartbeat İsteğinde karşıdaki bilgisayarın cevap verebilir durumda olduğu kontrolü için gönderilen mesaj örnek olarak "bana dört harf 'elma' cevabını ver" şeklinde iken, Hearbleed İsteğinde "bana 100 harf 'elma' cevabını ver" olarak gönderilir. O an bellekteki 'elma' metninden sonra geriye kalan 96 karakter cevap olarak gönderilir. Bu sayede saldırgan bellekte o an var olan bilgileri okuyabildiği gibi sertifika bilgilerine de ulaşabilir. Dönen cevabın "elma. Kullanıcı A parolasını 'parola123' olarak değiştirdi. Sunucu anahtarı 43508012430167.." şeklinde olması mümkündür.

Etkilenen OpenSSL sürümleri

OpenSSL in 1.0.1 den 1.0.1f'e kadar tüm sürümleri bu hatadan etkilenmiştir. 1.0.1'den daha önceki ve 1.0.1g'den daha sonraki sürümler bu hataya karşı savunmasız değildir. Bu etkilenen OpenSSL sürümleri -DOPENSSL_NO_HEARTBEATS ile derlenmedikçe savunmasız durumdadırlar.

Kaynakça

  1. ^ McKenzie, Patrick (9 Nisan 2014). "What Heartbleed Can Teach The OSS Community About Marketing". Kalzumeus. 20 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Şubat 2018. 
  2. ^ Biggs, John (9 Nisan 2014). "Heartbleed, The First Security Bug With A Cool Logo". TechCrunch (İngilizce). 11 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Şubat 2018. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">HTTP</span> iletişim protokolü

HTTP bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam bilgi sistemleri için uygulama seviyesinde bir iletişim protokolüdür. HTTP, World Wide Web için veri iletişiminin temelidir; burada köprü metni belgeleri, örneğin bir fare tıklamasıyla veya bir web tarayıcısında ekrana dokunarak kullanıcının kolayca erişebileceği diğer kaynaklara köprüler içerir.

POP3, OSI referans modelinin uygulama katmanında çalışan bir E-posta iletişim protokolüdür. Bu protokol yerel E-posta alıcıları tarafından uzak sunucudan E-postaları indirmek için kullanılır ve bu işlem TCP 110 numaralı port üzerinden gerçekleştirilir. POP ve IMAP günümüzde en çok kullanılan iki e-posta protokolüdür. Tüm güncel e-posta alıcıları ve sunucuları iki protokolü de destekler. POP birkaç versiyon olarak geliştirilmiştir ve şu anda standart olarak kullanılanı 3. versiyonudur. Bu yüzden POP3 adı kullanılır.

<span class="mw-page-title-main">DNS</span>

DNS, internet uzayını bölümlemeye, bölümleri adlandırmaya ve bölümler arası iletişimi organize etmeye yarayan, bilgisayar, servis, internet veya özel bir ağa bağlı herhangi bir kaynak için hiyerarşik dağıtılmış bir adlandırma sistemidir.

HTTPS bir bilgisayar ağı üzerinden güvenli iletişim için internet üzerinde yaygın olarak kullanılan bir HTTP uzantısıdır. HTTPS'te, iletişim protokolü Taşıma Katmanı Güvenliği (TLS) veya öncesinde, onun öncülü/selefi olan Güvenli Soket Katmanı (SSL) ile şifrelenir. Bu nedenle protokol sık sık TLS üzerinden HTTP veya SSL üzerinden HTTP olarak da adlandırılır.

<span class="mw-page-title-main">SIP</span>

Oturum başlatma Protokolü (SIP), ses, video ve mesajlaşma uygulamalarını içeren gerçek zamanlı oturumları başlatmak, sürdürmek ve sonlandırmak için kullanılan bir sinyal protokolüdür. VoIP gibi IP üzerinden üzerinden ses, görüntü ve anlık mesaj iletişimi yanı sıra LTE (VoLTE) üzerinden cep telefonu araması için multimedya iletişim oturumlarını sinyalize etmek ve kontrol etmek için kullanılır. Günümüz IP Telefonlarının çoğunluğu SIP Protokolü ile çalışmaktadır. Cisco gibi bazı üreticiler SIP kullanmakla beraber bazı telefon modellerinde SCCP tercih etmektedir.

<span class="mw-page-title-main">TCP</span>

TCP (Transmission Control Protocol), TCP/IP protokol takımının taşıma katmanı protokollerinden birisidir. Son güncellemesi Ağustos 2022 tarihi itibarıyla RFC 9293 içerisinde tanımlanmıştır.

Adres Çözümleme Protokolü ağ katmanı adreslerinin veri bağlantısı katmanı adreslerine çözümlenmesini sağlayan bir telekomünikasyon protokolüdür. 1982 yılında RFC 826 aracılığıyla tanımlanmıştır. STD 37 kodlu bir internet standardıdır.

<span class="mw-page-title-main">Vekil sunucu</span>

Vekil sunucu veya yetkili sunucu, İnternet'e erişim sırasında kullanılan bir ara sunucudur. Bu durumda, örneğin bir ağ sayfasına erişim sırasında doğrudan bağlantı yerine:

<span class="mw-page-title-main">Transport Layer Security</span> Internet Şifreleme Protokolü

Taşıma Katmanı Güvenliği (TLS) ve onun öncülü/selefi olan Güvenli Soket Katmanı (SSL), bilgisayar ağı üzerinden güvenli haberleşmeyi sağlamak için tasarlanmış kriptolama protokolleridir. X.509 sertifikalarını kullanırlar ve bundan dolayı karşı tarafla iletişime geçeceklerin kimlik doğrulaması asimetrik şifreleme ile yapılır ve bir simetrik anahtar üzerinde anlaşılır. Bu oturum anahtarı daha sonra taraflar arasındaki veri akışını şifrelemek için kullanılır. Bu, mesaj/veri gizliliğine ve mesaj kimlik doğrulama kodları için mesaj bütünlüğüne izin verir. Protokollerin birçok versiyonu ağ tarama, elektronik mail, İnternet üzerinden faks, anlık mesajlaşma ve İnternet üzerinden sesli iletişim gibi uygulamalarda yaygın olarak kullanılmaktadır. Bu durumda/içerikte/bağlamda en önemli özellik iletme gizliliğidir. Bundan dolayı kısa süreli oturum anahtarı, uzun süreli gizli simetrik anahtardan türetilememelidir.

Trivial File Transfer Protocol (TFTP) 1980 yılında tanımlanmış, FTP' nin temel fonksiyonel şekli olarak ifade edilen basit bir dosya transfer protokolüdür.

İngilizce: Lightweight Directory Access Protocol veya kısaca LDAP TCP/IP üzerinde çalışan indeks servislerini sorgulama ve değiştirme amacıyla kullanılan uygulama katmanı protokolü.

Datagram Congestion Control Protocol (DCCP), mesaj tabanlı bir Ulaşım katmanı protokolüdür.

<span class="mw-page-title-main">Aradaki adam saldırısı</span>

Man-in-the-middle saldırısı, saldırganın birbiri ile doğrudan iletişim kuran iki taraf arasındaki iletişimi gizlice ilettiği veya değiştirdiği saldırı türüdür. İletişim ağı üzerinde veri paketleri serbestçe dolaşır. Özellikle broadcast olarak salınan paketler, aynı ağa bağlı tüm cihazlar tarafından görülebilir. İlkesel olarak hedefinde kendi IP'si olmayan bir paketi alan makinelerin, bu paketlerle ilgili herhangi bir işlem yapmamaları gerekir. Ancak istenirse bu paketlere müdahale edebilir ya da içeriğini öğrenebilirler. Aradaki adam saldırısı ağ üzerindeki paketleri yakalayarak manipüle etmek olarak özetlenebilir.

DNS spoofing diğer adıyla DNS önbellek zehirlenmesi, Alan Adı Sistemi verisini bozarak, DNS çözümleme önbelleğine bozuk verinin yerleştirildiği bir bilgisayar güvenliği saldırısıdır. Ad sunucusunun yanlış sonuç dönmesini sağlar, örneğin IP adresi. Böylece saldırgan, trafiği kendi bilgisayarına yönlendirebilir.

POODLE atağı(Açılımı Padding Oracle On Downgraded Legacy Encryption) web tarayıcılarının SSL 3.0 mekanizmasının avantajından faydalanan ortadaki adam atağıdır.

<span class="mw-page-title-main">Squid (yazılım)</span>

Squid, HTTP ve FTP gibi web servisleri için proxy önbellekleme yapan aynı zamanda internet çıkışlarınızı filtreliyerek yönetmenizi sağlayan bir proxy server’dır. Öncelikli olarak HTTP ve FTP için kullanılsa da, TLS, SSL, Internet Gopher ve HTTPS gibi birkaç farklı protokole de sınırlı bir şekilde destek sağlayabilmektedir. Squid başta Unix türevi işletim sistemleri için bir daemon olarak tasarlanmıştır. 2.7 versiyonu ile windows port eklenmiştir. Yeni versiyonlar Cygwin ortamını kullanan windowslar için çalışabilmektedir. Squid GNU Genel Kamu Lisansı altında yayınlanan bir özgür yazılımdır.

Sunucu Adı Göstergesi (SNI) bir TLS protokolü uzantısı. Güvenli SSL bağlantısı oluşturulurken el sıkışma (handshake) sürecinin başlagıcında, istek içerisinde geçen sunucu adının (hostname) dijital sertifikasını doğrular. SNI teknolojisi aynı IP adresi ve TCP portu üzerinden birden fazla güvenli web sitesi için doğrulama işlemini gerçekleştirdiğinden, daha önceden SSL kullanmak için gerekli olan sabit IP zorunluluğunu ortadan kaldırır.

<span class="mw-page-title-main">Drown atağı</span>

DROWN atağı TLS protokol takımının, artık güvensiz olarak bilinen SSL v2 protokolünü desteklemesi sebebiyle yapılabilmektedir. DROWN, TLS ile hizmet veren bununla birlikte SSL v2 protokolünü destekleyen ve iki protokol arasında aynı açık anahtar bilgilerini paylaşan tüm sunucular üzerinde etkilidir. Ek olarak eğer açık anahtar sertifikası SSLv2 destekleyen farklı bir sunucu üzerinde kullanılıyor ise, TLS sunucusu yine bu zafiyetten etkilenerek bilgi sızıntısına maruz kalmaktadır.

Güvenli kabuk,, ağ hizmetlerinin güvenli olmayan bir ağ üzerinde güvenli şekilde çalıştırılması için kullanılan bir kriptografik ağ protokolüdür. En iyi bilinen örnek uygulaması bilgisayar sistemlerine uzaktan oturum açmak için olandır.

İndirgeme saldırısı veya sürüm geri alma saldırısı, bir bilgisayar sistemine veya iletişim protokolüne yapılan yüksek kaliteli çalışma modunu terk etmesini sağlayarak genellikle eski sistemlerle geriye dönük uyumluluk için sağlanan daha eski, daha düşük kaliteli bir çalışma moduna geçiş yapılmasıyla gerçekleşen bir kriptografik saldırı türüdür. OpenSSL'de, saldırganın istemci ve sunucu arasında TLS'nin daha düşük bir sürümünün kullanılmasını müzakere etmesine izin veren böyle bir kusur örneği bulundu. Bu, en yaygın sürüm indirgeme saldırı türlerinden biridir. Başka bir örnek ise, web trafiğini sırasında araya girmek ve kullanıcıyı bir web sitesinin güvenli, HTTPS sürümünden şifrelenmemiş bir HTTP sürümüne yönlendirmektir.