ModSecurity ile Hassas Veri İfşasının Engellenmesi

ModSecurity ile web güvenlik açıklarının engellenmesi hakkındaki yazı dizimizin bu bölümünde ModSecurity kullanarak web uygulamalarındaki basit kusurlar nedeniyle ortaya çıkan ve belki bütün bir sistem hakkında kritik veriler sunan hassas veri ifşasının engellenmesinden bahsedeceğiz.

 

Information Disclosure Zafiyeti Nedir?

Çok sayıda farklı türü olan hassas veri ifşasının ortaya çıkması genelde uygulama seviyesinde yapılan basit kusurlar veya sunucu/sistem ayarlarındaki küçük hatalardan kaynaklanmaktadır. İnternette hassas veri ifşasının neler olabileceğine dair şimdiye kadar yaşanan örnekleri ve hatta henüz açığı kapatılmamış olan yüzlerce örnek bulabileceğiniz kaynaklar var. Sadece basit Google aramalarıyla bile oldukça fazla kritik ve hassas veri ifşasına ulaşabiliyorsunuz.

Hassas veri ifşasının çok fazla çeşidinin olması nedeniyle hepsinin WAF veya ModSecurity CRS ile engellenmesi neredeyse imkansızdır. Fakat zafiyetin tam olarak nerede olduğu ve hangi verinin açığa çıktığı bilinebilirse özel bir ModSecurity kuralı ile bunu engellemek oldukça basit bir hale gelebiliyor.

Yazı dizimizin bu bölümünde genel bir örnek üzerinden ModSecurity ile hassas veri ifşasının engellenmesinden bahsedeceğiz. Bu yazıda ağırlıklı olarak High-Tech Bridge kaynağı referans olarak alınmıştır.

 

— BÖLÜM 7: ModSecurity ile Hassas Veri İfşasının Engellenmesi —

Altta scriptteki her hatanın bütün ortam değişkenlerinin (var_dump($_SERVER)) ifşasına neden olan bir PHP kodunu inceleyelim:

functions.php

<?
function doerror()
{
var_dump($_SERVER);
die();
}
?>

Yukarıdaki kod için özelleştirilmiş bir ModSecurity kuralı yazılarak, sunucunun kullanıcıya döndüğü HTML çıktısında bulunabilecek [“SERVER_SIGNATURE”], [“HTTP_HOST”] ve [“DOCUMENT_ROOT”] string’lerinin içinde geçtiği HTML yanıtının iptal edilmesi sağlanabilir. Bunun için alttaki kuraldan yararlanabiliriz:

mod_security_custom_rules.conf

SecRule RESPONSE_BODY "\[\"SERVER_SIGNATURE\"\]" "phase:4, t:none, chain, block, id:1071"
SecRule RESPONSE_BODY "\[\"HTTP_HOST\"\]" "t:none, chain"
SecRule RESPONSE_BODY "\[\"DOCUMENT_ROOT\"\]" "t:none"

Yukarıdaki ModSecurity kuralını kendi ihtiyaçlarınıza göre geliştirebilirsiniz. Böylece ModSecurity’nin dışarıya doğru giden istekleri de engelleme veya filtreleme yeteneğinin olduğunun bilinmesinde yarar var. Tabii her zaman olduğu gibi kusurların direkt kaynağında yani uygulamanın içinde düzeltilmesinde çok daha büyük yarar vardır. Ayrıca hassas veri ifşasına dair örnekler için https://cwe.mitre.org/data/definitions/200.html kaynağını da inceleyebilirsiniz.

Yazı dizimizin bir sonraki bölümünde görüşmek üzere…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir