Yazılım Güvenliği ve Güvenlik İhlali Yönetimi
![]() |
Kısa bir süre önce üyesi olduğum bir derneğin üye veritabanı içerisindeki tüm bilgiler ile birlikte çalındı. Yüksek olasılıkla yalnızca bir sefer değil, problem fark edilene değin birden fazla kez çalındı. Yaşanan problem ve sonrasındaki eylemler dizisinden çıkartılabilecek iki önemli ders var: (i) yazılımları güvenli geliştirmezseniz canınız yanar ve (ii) güvenlik ihlallerine ilişkin acil durumları nasıl yöneteceğinize ilişkin planlarınız yoksa günü geldiğinde dağılıverirsiniz. |
Bu yazıda çok kısaca derneğin başını derde sokan, başka yerlerde de çok sık karşılaştığımız, güvenlik hatalarından söz etmeye çalışacağım. Derneğin adını vermeyeceğim ama dernek problemle ilgili olarak tüm üyelerini bilgilendirdiği için zaten biliyor olduğunuzu da tahmin ediyorum.
Derneğin üyelik yönetimi yazılımı internete açık şekilde çalışıyordu ve yazılımın iki büyük hatası bizi çok zor durumda bıraktı. Birinci hata yazılımın doğru ve eksiksiz biçimde girdi denetimi yapamıyor olmasıydı. Kullanıcıdan alınan girdilerin pozitif kontrol listeleri ile denetlenmesi ve ancak uygunluğundan emin olunduktan sonra işleme tabi tutulması temel bir gereksinim olmasına rağmen bu yapılmamıştı. Saldırgan basit bir SQL sokuşturma saldırısı ile veritabanı üzerinde dilediği gibi select cümlecikleri çalıştırıverdi.
Girdi denetimi problemlerinin etkisini azaltmak için depolanmış prosedür (stored procedure) kullanımı ve hazırlanmış SQL cümlecikleri (prepared SQL statements) kullanımı gibi savunma derinliği oluşturacak hazırlıklar da yapılmamıştı. Bütün bunların sonucunda SQL sokuşturması saldırgan açısından çok kolay gerçekleşti.
İkinci büyük hata yazılımın üyelere ait parolaları açık metin halinde depolamasıydı. Veritabanında üye parolalarının açık metin halinde depolanması, veritabanı yöneticisinin ya da bir biçimde veritabanına erişim elde eden herkesin bu parolaların tümünü bir çarşaf liste halinde görebilmesine imkan veriyordu. Saldırgan SQL sokuşturması ile veritabanında dilediği gibi select cümlecikleri çalıştırmayı başarınca üyelerin parolalarını da toparlayıverdi. Parolaların tek yönlü şifrelenmiş ya da özetlenmiş biçimde depolanması (geriye açık metine dönüştürülemez halde olması) temel bir gereksinimken bu da yapılmamıştı.
Problemin varlığı keşfedildiğinde atı alan Üsküdar’ı geçmiş, veriler çalınmıştı. Üyelerin parolalarını toparlayan saldırgan bu parolaları Hotmail, Yahoo, MySpace vb. popüler sitelerde deneyebilecek hale gelmişti. Güvenlik ihlalinin etkin biçimde yönetilememesi sonucunda Dernek Yönetimi problemi üyelerine duyurmakta bir kaç gün geç kaldı. Bunun olumsuz bir sonucu olarak parolalarımız bir kaç gün daha fazla İnternet’te dolaştı. Dernek yönetiminin durumu kontrol altına almak, hatayı gidermek ve duyuruyu yapmak noktasındaki gecikmesi tümüyle hazırlıksız yakalanmalarının bir sonucu olarak gerçekleşti.
Umarım bu küçük hikaye hepimize güzel bir ders olur…
