ModSecurity ile Path Traversal Açığını Engelleme

ModSecurity ile web güvenlik açıklarının engellenmesi hakkındaki yazı dizimizin bu bölümünde ModSecurity kullanarak path traversal (directory traversal) açığının nasıl engellenebileceğini ele alıyoruz. Oldukça eski ve bilinen bir açık türü olan path traversal hala mevcut ola, sayısız modern web uygulamasını etkileyen ve engellenmesi de çok zor olmayan bir web güvenlik açığıdır.

 

Path Traversal (Directory Traversal) Nedir?

Web uygulamalarında kullanıcıdan alınan girdinin web kök belge dizinini aşıp bir üst dizine sıçrayarak veya üst dizinlerde gezinerek sisteme ait dosyalarda okuma veya yazma işlemi yapması şeklinde sonuçlanan bir web uygulama güvenlik açığıdır. Path traversal zafiyeti için “relative path traversal”, “absolute path traversal”, “local file inclusion (LFI)” ve “remote file inclusion (RFI)”ı da içeren bir zafiyet ailesidir diyebiliriz.

Yazı dizimizin bu bölümünde ModSecurity ile path traversal açığının nasıl engellenebileceği üzerinde duracağız. Bu yazıda OWASP ModSecurity CRS kural setleri ve High-Tech Bridge (ağırlıklı olarak) kaynakları referans olarak alınmıştır. Path traversal hakkındaki teknik detaylar için BTRisk Blog‘taki yazıyı inceleyebilirsiniz.

 

— BÖLÜM 4: ModSecurity ile Path Traversal Açığını Engelleme —

ModSecurity CRS’in “40_generic_attacks.conf” ile “42_tight_security.conf” (paranoyak mod kural seti) setlerini kullanarak klasik anlamdaki path traversal açıkları engellenebilmektedir. Yalnız paranoyak moddaki kural seti çok sıkı olduğundan çok fazla “false-positive” oluşturabilmektedir. Bununla birlikte “absolute path traversal” türündeki path traversal varyasyonları ModSecurity ile başarılı bir şekilde engellenebiliyor.

Alttaki örnek zafiyetli kod incelendiğinde:

Eğer bu script’in meşru kullanımında bir kullanıcının /help ya da /docs altındaki HTML sayfalarını okuyacağı beklenirse, bu niyet alttaki URL payload’u ile kolayca istismar edilmeye açık hale gelecektir:

Bu haliyle kötü niyetli saldırganın web uygulamasına ait hassas verilerin bulunduğu dosyalara erişimi ModSecurity CRS’in klasik kural setleri ile engellenemeyecektir. Bu yüzden buna özel spesifik ModSecurity kuralı yazmak, bu spesifik saldırı vektörünü engellemede en etkili yol olarak öne çıkar. Bunun için de en az “false-positive” doğuracak alttaki özel kuralı kullanmak gerekecektir:

Böylece bu kural /help ya da /docs altındaki sadece alfenümerik “.html” uzantılı olan dosyaların kullanıcı tarafından çağrılabilmesini sağlayacaktır.

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

M. MEKİN PESEN

YAZAR:

Özel bir kurumda kıdemli bilgi güvenliği uzmanı olarak çalışan M. Mekin Pesen, Elektrik-Elektronik Mühendisliği lisans ve Bilgi Güvenliği Mühendisliği yüksek lisans diplomaları ile CISSP, ECSA, CEH ve CCSA sertifikalarına sahiptir. Kendisi siber güvenlik ve bilgi güvenliği genel başlıkları altında çeşitli konularda uzmanlaşmaktadır.
    

E-Bültene Kaydolun, Makaleler Posta Kutunuza Gelsin

Bu yazıyı başka hiçbir yerde ve şekilde yayınlayamazsınız ve/veya kullanamazsınız. Bu yazıyı kullanmanız, başka herhangi bir uyarıya gerek kalmadan her türlü hukuki sonucu daha en baştan kabul ettiğiniz manasına gelir.