🏛️ Siber Arkeoloji #11 — Bir Kalp Atışıyla Sızan Sırlar: Heartbleed Zafiyeti (2014) Herkese Selamlar, Bugün sizlerle birlikte siber güvenlik tarihinin en ikonik ve kulağa havalı gelen o yıkıcı saldırılarından birini, yani Heartbleed (Kanayan Kalp) zafiyetini ele alıyoruz. Yıl 2014... İnternette şifreli iletişim denince akla gelen ilk şey olan SSL/TLS protokolünün bel kemiğini OpenSSL adlı açık kaynaklı kütüphane oluşturuyordu. Bankalardan e-posta sunucularına, sosyal medya devlerinden devlet sitelerine kadar internetin yaklaşık %66'sı verilerini OpenSSL ile şifreleyerek koruyordu. Peki, şifreli tünelin tam ortasında "kalbi kanatan" ve sunucuların tüm sırlarını dışarı sızdıran şey neydi? Gelin beraber öğrenelim: Heartbeat (Kalp Atışı) Uzantısı: Sunucu ile tarayıcı arasındaki bağlantının kopmadığını doğrulamak için "Heartbeat" adı verilen bir mekanizma kullanılır. Tarayıcı sunucuya minik bir paket gönderir: "Sana 'KUŞ' kelimesini gönderiyorum (4 harf), bağlantı canlıysa bana bu 4 harfli kelimeyi geri yolla." Sunucu da "KUŞ" der ve bağlantı devam eder. Kulaktan kulağa oyunu gibi düşünebilirsiniz. Sınır Kontrolü Eksikliği (Buffer Over-Read): OpenSSL kodunda devasa bir mantık hatası vardı. Saldırgan sunucuya "KUŞ" kelimesini gönderip, paketin uzunluğunu 64 KB (65.535 bayt) olarak beyan ediyordu! Bellekten (RAM) Sızan Sırlar: Zafiyet tam olarak burada başlıyordu. Sunucu, gelen verinin gerçekten 64 KB olup olmadığını kontrol etmiyordu (Input Length Validation eksikliği). "Bana 4 harf yolladın ama 64 KB dediğin için sana RAM'deki ilk 4 harfi ve arkasından gelen 63.996 baytlık rastgele sunucu belleği verisini geri gönderiyorum" diyordu! Hiç İz Bırakmayan Hırsızlık: Saldırgan tek bir istekte sunucunun RAM belleğinde o an ne varsa (kullanıcı şifreleri, kredi kartı bilgileri, oturum çerezleri) şak diye okuyabiliyordu. En tehlikelisi ise sunucunun tüm şifrelemesini sağlayan Özel Anahtar (Private Key) bellekteyse sızıyordu. Üstelik bu işlem sunucu loglarında hiçbir iz bırakmıyordu! 📌 Siber Güvenlik Dersi: Heartbleed, bellek güvenliği (Memory Safety) ve girdi doğrulamasının (Input Validation) ne kadar kritik olduğunu acı bir şekilde gösterdi. Yazılmayı unutan tek bir if kontrolü, dünya genelindeki milyonlarca sunucunun anahtarlarını saldırganlara teslim etti. Bugün C/C++ yerine Rust gibi bellek güvenli dillerin popülerleşmesinin arkasındaki en büyük tarihsel sebeplerden biri işte bu kanayan kalptir. "Siber dünyanın en geçilmez şifreleme zırhı bile, bellek sınırını unuttuğunuz an kağıttan bir kaleye dönüşür." 💬 Mustafa soruyor: Sizce kritik altyapılarda kullanılan açık kaynaklı kütüphanelerin güvenliği yeterince denetleniyor mu, yoksa milyonlarca sistem hâlâ arkada tek bir geliştiricinin unuttuğu if satırlarına mı emanet? Yorumlarda buluşalım! 👇