ModSecurity ile web güvenlik açıklarının engellenmesi hakkındaki yazı dizimizin bu bölümünde ModSecurity kullanarak web uygulamalarında oturumlara ve kritik işlemlere ait çerezlerin güvenliğini sağlayan HttpOnly ve Secure Flag kullanımının unutulması ya da kullanılmaması sonucu oluşan güvenlik açığını gidermenin yolundan bahsedeceğiz.
HttpOnly ve Secure Flag Nedir?
HttpOnly flag, web uygulamasında bulunan XSS zafiyetinin sömürülmesiyle yoluyla JavaScript’in oturum çerezlerini okuyamamasını saÄŸlayan oldukça etkili bir çerez koruma yöntemidir. Secure flag ise oturum çerezlerinin sadece güvenlik kanal olan HTTPS üzerinden gönderilmesini saÄŸlayacak ÅŸekilde iÅŸaretleyen bir çerez koruma mekanizmasıdır. Secure flag, aynı anda hem HTTP hem de HTTPS ile çalışan sitelerde saldırganın kullanıcıyı HTTP baÄŸlantıyı kullanmaya zorlayarak oturum çerezlerini elde etmesini engelleyerek bu kritik çerezlerin sadece HTTPS üzerinden gönderilmesini zorlar. Web uygulamalarında httponly ve secure flag yöntemlerinin kullanılmaması sonucunda web uygulama kullanıcılarının halka açık kablosuz internet aÄŸlarını kullandığı sırada ve/veya uygulamanın XSS ve CSRF gibi zafiyetleri barındırmasından ötürü baÅŸta oturum çerezleri olmak üzere tüm kritik çerezlerini kaptırma tehlikesiyle karşı karşıya kalır.
Yazı dizimizin bu bölümünde ModSecurity ile httponly ve secure flag kullanımından bahsediyoruz. Bu yazıda High-Tech Bridge ve InfoSec Institute blog referans olarak alınmıştır.
— BÖLÜM 6: ModSecurity ile HttpOnly ve Secure Flag Eksikliğini Giderme —
ModSecurity CRS, “sessid”, “phpsessid” veya “sessionid” gibi bilinen ortak oturum çerezleri için httponly ve secure flag’i otomatik olarak ayarlayan “modsecurity_crs_55_application_defects.conf” adlı kural setine sahiptir. Fakat bu kural seti otomatik olarak kapalı yani pasif gelmektedir. EÄŸer web uygulamanızda bilinen ortak çerez isimlerinden farklı olarak isimler kullanıyorsanız, bu ModSecurity kural seti gerek korumayı yapmayacaktır. Bu yüzden uygulamanıza özel olan çerezler için özel ModSecurity kuralı yazmak gerekecektir. Bunun için alttaki kuraldan yararlanılabilir:
mod_headers_custom_rules.conf Header edit Set-Cookie "^((?i:SizinCerezinAdi=(?i:(?!httponly).)+))$" "$1; HttpOnly"
Yukarıdaki örnekten de görüldüğü üzere ModSecurity çerez yönetimi de yapabilmektedir. Tabii her zaman için en iyi yol, bunun doğrudan web uygulamasının içinde yapılmasıdır.
Yazı dizimizin bir sonraki bölümünde görüşmek üzere…