Web sitelerinde ve kurumsal yazılımlarda her gün karşılaştığımız, artık kanıksadığımız ama aslında hiçbir güvenlik sağlamayan bazı "kurallar" vardır. Bu kurallar o kadar anlamsızdır ki, sadece yöneticilerin gece rahat uyumasını sağlar. Siber güvenlik dünyasında biz buna "Security Theater" (Güvenlik Tiyatrosu) diyoruz. Tıpkı havaalanlarındaki sıvı yasağı gibi; çok büyük bir güvenlik önlemi gibi durur ama gerçek bir saldırganı asla durdurmaz.
Gelin, sektör olarak yıllardır yaptığımız ve artık vazgeçmemiz gereken bu saçmalıklara bir göz atalım.
1. "Şifrenizi Her 30 Günde Bir Değiştirmek Zorundasınız"
Bunu kurumsal şirketler çok sever. Peki gerçekte ne olur? Kullanıcı "Denizhan2026!" olan şifresini mecbur kaldığı için "Denizhan2026!!" yapar. Bir sonraki ay "Denizhan2026!!!" olur. Gerçek bir hacker bu şifreyi ele geçirdiğinde, kullanıcının o ay şifrenin sonuna kaç tane ünlem koyduğunu tahmin etmesi sizce ne kadar sürer? Şifre değiştirme zorunluluğu güvenliği artırmaz, sadece kullanıcıları zayıf ve tahmin edilebilir kalıplar kullanmaya iter. Hatta NIST (Amerikan Ulusal Standartlar Enstitüsü) bile artık "Şifreler ifşa olmadığı sürece düzenli değiştirme zorunluluğunu kaldırın" diyor.
2. Karmaşık Şifre Kuralları (Büyük harf, rakam ve en az bir hiyeroglif içermelidir)
"Şifreniz en az 1 büyük harf, 1 küçük harf, 2 rakam ve en az 1 özel karakter içermelidir." Bu kural yüzünden insanlar şifrelerini hatırlayamaz, post-it kağıtlara yazıp monitörlerinin kenarına yapıştırırlar. Oysa Tr0ub4dor&3 gibi karmaşık görünen kısa bir şifreyi kırmak, bilgisayarlar için çok kolaydır. Ancak kırmızı-kalem-masada-duruyor gibi sadece küçük harflerden oluşan uzun bir cümleyi kırmak (Brute Force ile) yüzyıllar sürer. Biz ise kullanıcıları zorla ilkini seçmeye zorluyoruz.
3. Kod Kötüyken WAF (Web Application Firewall) Arkasına Saklanmak
Birçok startup, uygulamasındaki SQL Injection veya XSS açıklarını kodu düzelterek çözmek yerine, önüne devasa ve pahalı bir WAF (Cloudflare vs.) koyarak sorunu çözdüğünü sanır. WAF elbette faydalıdır ancak bu, evin kapısı kırıken içeri kimse girmesin diye bahçeye güvenlik görevlisi dikmeye benzer. Eğer o güvenlik görevlisi bir an arkasını dönerse veya biri arka bahçeden dolaşırsa evin içi tamamen savunmasızdır. Gerçek güvenlik dışarıda değil, içerde başlar: Veriyi temizle (sanitize inputs), ORM kullan, "Principle of Least Privilege" (En Az Yetki Prensibi) uygula.
Güvenlik, kullanıcıya eziyet etmek değildir. Güvenlik; görünmez, sessiz ve sistemin temeline (architecture) işlenmiş olmalıdır. Kullanıcının klavyesini kırmasına sebep olan CAPTCHA'lar veya anlamsız şifre kuralları sistemi korumaz; sadece kullanıcıyı sizden nefret ettirir.
DevOps süreçlerini tasarlarken her zaman şu dengeyi gözetmek zorundayız: Bir sistemin güvenliği (Security), onun kullanılabilirliğini (Usability) yok ediyorsa, o sistem zaten başarısız olmuş demektir.