6. Yanlış Güvenlik Yapılandırması (Security Misconfiguration)
Güvenlik Yapılandırması, uygulamalar, uygulama sunucusu, web sunucusu, veritabanı sunucusu ve platform için tanımlanmalı ve dağıtılmalıdır. Bunlar doğru şekilde yapılandırılmadığında, saldırganın hassas verilere veya işlevlere yetkisiz erişime sahip olması mümkün olabilir.
Bazen bu tür kusurlar, sistemin tamamen çökmesine bile sebep olabilir. Platformlarda ve sunucularda kullanılan yazılımın güncel tutulması da iyi bir güvenliktir.
Etkileri:
Bu güvenlik açığından yararlanan saldırgan, kullanılan teknolojiyi ve uygulama sunucusunun bilgilerini (sürüm bilgileri, veritabanı bilgileri vb.) görüntüleyebilir ve saldırı gerçekleştirmek için uygulama hakkında bilgi edinebilir.
Muhtemel Saldırı Alanları:
-
URL
-
Form Alanları
-
Giriş alanları
Örnekler:
-
Uygulama sunucusu yönetici konsolu otomatik olarak yüklenebilir. Varsayılan hesaplar değiştirilmez. Saldırgan, varsayılan parolalarla oturum açabilir ve yetkisiz erişim elde edebilir.
-
Sunucunuzda Dizin Listeleme devre dışı bırakılmamışsa saldırgan herhangi bir dosyayı bulmak için dizinleri listeleyebilir.
Öneriler:
-
Bileşenleri birbirinden ayıran ve güvenlik sağlayan güçlü uygulama mimarisi oluşturun.
-
Varsayılan kullanıcı adlarını ve şifreleri değiştirin.
-
Dizin listelerini devre dışı bırakın ve erişim kontrol denetimlerini uygulayın.
7. Güvensiz Kriptografik Depolama (Insecure Cryptographic Storage)
Güvensiz Kriptografik depolama, hassas verilerin güvenli bir şekilde depolanmadığı zaman ortaya çıkan yaygın bir güvenlik açığıdır.
Kullanıcı kimlik bilgileri, profil bilgileri, sağlık bilgileri, kredi kartı bilgileri vb. hassas verilerdir. Bu veriler, uygulama veritabanında saklanabilir. Bu veriler, şifreleme veya karma oluşturma (Hash) kullanılmayarak uygunsuz bir şekilde depolandığında, saldırganlara karşı savunmasız olacaktır.
Etkileri:
Bir saldırgan bu güvenlik açığını kullanarak, kimlik hırsızlığı, kredi kartı dolandırıcılığı veya diğer suçları gerçekleştirmek için bu tür zayıf korunan verileri çalabilir, değiştirebilir.
Muhtemel Saldırı Alanları:
Örnekler:
Bir uygulama kullanıcıların şifrelerini salt (Salt, orijinal verilere eklenen rastgele bir veridir. Hashing işleminden önce şifreye eklenir ve şifrenin tahmin edilmesini zorlaştırır) ve hash olmadan saklar. Saldırgan, SQL enjeksiyonu (SQL Injection) saldırısı ile parola dosyasına erişim sağlar. Salt ve Hash uygulanmamış şifreler kaba kuvvet ile (Brute Force) ile kolayca tespit edilebilirken, salt ve hash yapılmış şifrelerini çözümlenmesi yıllar sürebilir.
Öneriler:
-
Hassas bilgilerde şifreleme yaparken uygun güçlü standart algoritmalar kullanın. Kendi şifreleme algoritmalarınızı kullanmayın. Yalnızca AES, RSA genel anahtar şifreleme ve SHA-256 gibi onaylanmış genel algoritmaları kullanın.
-
Site dışı yedeklemelerin şifreli olduğundan, ancak anahtarların ayrı olarak yönetildiğinden ve yedeklendiğinden emin olun.
8. URL Tabanlı Erişimi kısıtlayamama (Failure to restrict URL Access)
Web uygulamaları, korumalı bağlantıları ve düğmeleri işleme alamadan önce URL erişim haklarını kontrol eder. Uygulamaların, bu sayfalara her erişildiğinde benzer erişim kontrollerini gerçekleştirmesi gerekir.
Uygulamaların çoğunda ayrıcalıklı sayfalar, konumlar ve kaynaklar kullanıcılara sunulmaz. Fakat incelemeler sonrası iyi bir tahminle, bir saldırgan ayrıcalıklı sayfalara erişebilir, işlevleri çalıştırabilir ve gizli bilgileri görüntüleyebilir.
Etkileri:
-
Bu güvenlik açığı ile saldırgan uygulamaya giriş yapmadan yetkisiz URL'lere erişim sağlayabilir, özel sayfalara erişebilir, işlevleri çalıştırabilir ve gizli bilgileri görüntüleyebilir.
Muhtemel Saldırı Alanları:
Örnekler:
-
Saldırgan, URL'nin kullanıcı rolünü "/kullanici/detaylar" olarak gösterdiğini fark eder. "/admin/detaylar" olarak değiştirerek yetkisiz olduğu admin sayfalarına erişim sağlayabilir.
Öneriler:
-
Güçlü erişim kontrolleri uygulayın.
-
Kimlik doğrulama ve yetkilendirme politikaları rol tabanlı olmalıdır.
-
İstenmeyen URL'lere erişimi kısıtlayın.
9. Yetersiz Taşıma Katmanı Koruması (Insufficient Transport Layer Protection)
Kullanıcı (istemci) ve sunucu arasındaki bilgi alışverişi ile ilgili bir zafiyettir. Uygulamalar genellikle bir ağ üzerinden kimlik doğrulama ayrıntıları, kredi kartı bilgileri, oturum bilgileri gibi hassas bilgileri iletir.
Uygulama üzerinde zayıf algoritmalar kullanmak veya süresi dolmuş veya geçersiz sertifikalar kullanmak veya SSL kullanmamak, iletişimin güvenilmeyen kullanıcılara açık olmasına izin verebilir, bu da web uygulamasının güvenliğini tehlikeye atabilir.
Etkileri:
-
Bu web güvenlik açığından yararlanan bir saldırgan, gerçek kullanıcının kimlik bilgilerini ele geçirip uygulamaya erişim sağlayabilir.
-
Kredi kartı bilgileri çalınabilir.
Muhtemel Saldırı Alanları:
-
Ağ üzerinden gönderilen veriler.
Öneriler:
-
Güvenli HTTP'yi etkinleştirin ve yalnızca HTTPS üzerinden kimlik bilgisi aktarımını zorunlu kılın.
-
Sertifikanızın geçerli olduğundan ve süresinin dolmadığından emin olun.
Örnekler:
SSL kullanılmayan bir uygulamada, saldırgan sadece ağ trafiğini izleyerek kimliği doğrulanmış bir kurbanın oturum çerezini elde edebilir. Bu çerez çalınarak “Ortadaki Adam – Man In The Middle” saldırısı gerçekleştirilebilir.
10. Doğrulanmamış Yönlendirmeler (Unvalidated Redirects and Forwards)
Web uygulamalarında, kullanıcıları başka sayfalara yönlendirmek için birkaç yöntem kullanılır. Başka sayfalara yönlendirilirken uygun bir doğrulama yoksa, saldırganlar bunu kullanarak kurbanlarını kimlik avı veya kötü amaçlı yazılım sitelerine yönlendirebilir veya yetkisiz sayfalara erişmek için yönlendirmeleri kullanabilir.
Etkileri:
Saldırgan, kullanıcıya kodlanmış kötü amaçlı URL eklenmiş gerçek bir URL gönderebilir. Kullanıcı, saldırganın gönderdiği URL'nin yalnızca ilk kısmına bakar ve kurban olabilir.
Örnekler:
http://www.website.com/login.php?redirectURL=digersite.com
Bu şekle çevrilebilir:
http://www.website.com/login.php?redirectURL=tehlikelisite.com
Öneriler:
-
Uygulamalarınızda yönlendirmeleri kullanmaktan kaçının. Kullanılacaksa bile varış yerinin hesaplanmasında kullanıcı parametrelerinin kullanılmasına dikkat edin.
-
Hedef parametreler olmak zorundaysa, sağlanan değerin geçerli ve kullanıcı için yetkilendirilmiş olduğundan emin olun.