Dijital dünyada güvenliğin temel direklerinden biri olarak gördüğümüz kimlik doğrulama süreçleri, bazen inanılması güç ihmallerle yerle bir olabiliyor. Danimarka’nın nüfus kayıt sistemi (CPR) üzerinde gerçekleşen ve milyonlarca verinin açığa çıkmasına yol açan siber saldırı, aslında teknik bir zafiyetten ziyade, kurumsal düzeyde kabul edilemez bir parola politikası hatasının sonucu olarak karşımıza çıkıyor. “123456” gibi temel düzeyde bile olmayan, saldırganların saniyeler içinde kaba kuvvet (brute-force) saldırılarıyla geçebildiği bir şifreleme mantığı, bir ülkenin tüm veri güvenliğini çöpe atabiliyor.
Neden Hâlâ Basit Şifreler Kullanıyoruz?
Sistem yöneticileri ve yazılım geliştiriciler olarak en büyük mücadelemiz, son kullanıcının veya operasyonel ekibin “kolaylık” arayışıyla güvenlik duvarlarını delmesi. Pratikte en çok karşılaşılan sorun, karmaşıklık ile erişilebilirlik arasındaki dengenin yanlış kurulmasıdır. Benim görüşüme göre, bir sistemin ne kadar sofistike bir altyapıya sahip olduğu, en zayıf noktasındaki parola kadar güçlüdür.
- Eğitim Eksikliği: Personelin brute-force saldırılarının nasıl çalıştığını anlamaması.
- Zayıf Politika Zorunluluğu: Sistem mimarisi seviyesinde şifre karmaşıklığının (password complexity) zorunlu tutulmaması.
- Hesap Yönetimi: Default veya test amaçlı bırakılan hesapların canlıya alınması.
Kurumsal Projelerde Güvenlik Standartları
Bir sistem mimarı veya DevOps mühendisi perspektifiyle, bu tür veri sızıntılarını engellemek adına alınması gereken aksiyonlar bellidir. Kurumsal projelerde genellikle şunları standart hale getirmemiz gerekir:
- Çok Faktörlü Kimlik Doğrulama (MFA/2FA): Parola tek başına asla yeterli değildir. OTP (One-Time Password) veya donanım anahtarları (FIDO2 gibi) artık bir seçenek değil, zorunluluktur.
- Şifre Hashleme Algoritmaları: Veritabanında şifreleri asla düz metin (plain text) olarak tutmuyoruz. Argon2 veya bcrypt gibi yüksek maliyetli hash algoritmaları kullanmak, olası bir veritabanı sızıntısında verilerin okunabilirliğini zorlaştırır.
- Sınırlı Deneme Hakkı (Rate Limiting): Bir hesabın arka arkaya yanlış denemelerle kilitlenmesi veya IP bazlı kısıtlamalar, otomatik saldırıların önüne geçer.
Yazılım Geliştirme Süreçlerinde “Best Practice” Yaklaşımı
Ben olsam bu senaryoda, sistemin dışa açılan uç noktalarında (endpoint) kesinlikle sıkı bir güvenlik katmanı kurgulardım. Şifre politikalarını uygulama bazında değil, kimlik sağlayıcı (Identity Provider – IdP) seviyesinde yönetmek, merkezi bir güvenlik politikası izlemenizi sağlar. Özellikle Docker tabanlı mikro hizmet mimarilerinde, kimlik doğrulama işlemlerini merkezi bir OAuth2 veya OIDC servisine devretmek, hata payını minimize eder.
Dikkat Edilmesi Gereken Kritik Noktalar
Geliştirdiğiniz web projelerinde veya yönettiğiniz sunucularda şu hatalara düşmemelisiniz:
- Hard-coded Credential: Kod içerisinde şifre unutmak, en yaygın ve riskli hatadır. Bunun yerine ortam değişkenleri (environment variables) veya HashiCorp Vault gibi gizli veri yönetim araçlarını tercih etmelisiniz.
- Audit Log Eksikliği: Sistemde hangi IP’nin, ne zaman, hangi hesapla başarısız giriş denemesi yaptığını loglamıyorsanız, saldırıyı fark etmeniz imkansızdır.
Sonuç: Güvenlik Bir Süreçtir, Ürün Değil
Danimarka örneği, teknolojinin kendisinden ziyade, onu yönetenlerin disiplinsizliğinin bir kurbanı oldu. Teknik bir danışman olarak söyleyebilirim ki; dünyadaki en güçlü firewall’u da kursanız, kullanıcı veya sistem yöneticisi “123456” gibi şifreler belirlediği sürece kapınız ardına kadar açıktır. Güvenlik, projenin en başından sonuna kadar entegre edilmesi gereken bir disiplindir.
Bu konu hakkında daha fazla teknik içerik için emrecb.com’u takip edebilirsiniz. İşletmeniz veya projeniz için profesyonel yazılım, sunucu yönetimi veya web çözümlerine ihtiyaç duyuyorsanız, güvenli altyapı kurguları konusunda benimle iletişime geçebilirsiniz.










Bir yanıt yazın