Post by Can Deger
Principal Security Advisor | Cyber - Cloud - AI Security Architect | Keynote Speaker
AWS'ten sonra şimdi de Cloudflare'in meşhur 18 Kasım kesintisinin raporu (postmortem) düştü. Yine "siber saldırı sandık ama kendi ayağımıza sıkmışız" vakası. (https://lnkd.in/dtYVVW-R) Olayın kökü yine inanılmaz basit bir yerde: Veritabanı izin değişikliği. Hiç bilmeyenler için şöyle özetleyeyim: Markete gidip "bana elma listesini ver" diyorsunuz. Normalde sistem size sadece elma reyonunu gösteriyor. Ama yapılan bir izin değişikliği ("yetkileri iyileştirme" çalışması) yüzünden sistem size hem elma reyonunu hem de depodaki tüm elmaları aynı listede getiriyor. Liste aniden iki katına çıkıyor. Cloudflare'in Bot Yönetim sistemi de bu "şişmiş" listeyi (feature file) alıyor. Yazılımda "bu liste asla X boyutunu geçmez" diye bir hafıza limiti koymuşlar (memory preallocation). Gelen dosya limiti aşınca, kodun o meşhur "unwrap" satırı hata veriyor ve sistem kendini kapatıyor (panic). İşin "kabus" kısmı şu: Bu hatalı liste her sunucuda oluşmuyor, sadece güncellenenlerde oluşuyor. Yani sistem bir çalışıyor, bir duruyor (Flapping). Ekip doğal olarak "Eyvah devasa bir DDoS saldırısı altındayız" sanıyor. Halbuki saldırı içeriden. Domino etkisiyle; önce Core Proxy gidiyor, ona bağlı Workers KV patlıyor, o gidince Dashboard girişi (Turnstile) çöküyor. Yani sorunu çözecek ekip panele bile giremiyor bir süre. Tabii olay duyulur duyulmaz "Bakın tek sağlayıcıya (vendor lock-in) güvenmeyin, bizim Multi-CDN çözümümüzü alsaydınız hissetmezdiniz bile" diyen felaket tellalları hemen sahneye çıktı. Dünyanın internet trafiğinin ciddi bir kısmını taşıyan bir devin, basit bir veritabanı sorgusu yüzünden globalde nasıl "panic" moda geçtiğini görmek korkutucu. Ama bunu "bizim ürünle çözerdiniz" diye pazarlamak daha da korkutucu. Mühendislikte "silver bullet" yoktur, trade-off vardır arkadaşlar. Ders belli: Kodunuzda "bu asla olmaz" dediğiniz her varsayım (assumption), bir gün mutlaka olur ve sizi gecenin bir yarısı uyandırır.