ModSecurity Nedir? ModSecurity Nasıl Kullanılır?

modsecurity

ModSecurity Nedir?

ModSecurity, farklı web sunucuları (Ör. Apache, Nginx ve IIS.) tarafından desteklenen açık kaynaklı bir web tabanlı güvenlik duvarı uygulamasıdır. Günümüzdeki saldırıların % 70’inden fazlası artık web uygulamaları üzerinden yapılmaktadır. Web uygulamalarının bu gibi durumlara karşı daha güvenli hale gelmesi için ModSecurity ve benzeri güvenlik duvarı araçları kullanılmaktadır.

ModSecurity Kullanmanın Faydaları

Günümüzde en çok sömürülen ve birçok sitede bulunan ortak güvenlik zafiyetleri şunlardır:

  • SQL enjeksiyonu ve Blind SQL enjeksiyonu.
  • Cross Site Scripting (XSS).
  • OS Komutu Enjeksiyonu ve Uzaktan Komut Erişimi.
  • Dosya adı Enjeksiyonu.
  • ColdFusion, PHP ve ASP enjeksiyonu.
  • E-Mail Enjeksiyonu
  • HTTP Yanıt Saldırıları.
  • PDF XSS Saldırıları.
  • Truva Atları ve Backdoor Saldırıları

Dolayısıyla, bir yandan bu web açıklarını algılayıp engelleyen ve diğer yandan sunucunun güvenliğini güçlendiren ModSecurity gibi güçlü bir güvenlik duvarına ihtiyaç duyulmaktadır.

Peki bu güvenlik açıklarına karşı ModSecurity ne gibi önlemler alıyor ve uygulamamızı nasıl daha güvenli hale getiriyor?

Sunucuda ModSecurity Kontrolü

ModSecurity’nin web sunucusunda yüklü olup olmadığını bilmiyor olabilirsiniz. Aslında ModSecurity güvenlik duvarını tespit etmek oldukça kolay. Örneğin web sayfasını görüntülenmek yerine 406 (Kabul Edilemez Hatası), 403 (Yasak Hatası), 404 (Bulunamadı Hatası) gibi hata veya bilgi mesajları gösteren herhangi bir web sitesi, üzerinde barındırıldığı sunucuda ModSecurity yüklü olduğunu gösterir. Bu mesajlar, ModSecurity tarafından tanımlanan Temel Kural Kümesi’nin (CRS) ihlali nedeniyle oluşur.

Ayrıca sunucu barındırma şirketinizin bunu sağlayıp sağlamadığını kontrol panelinize giriş yaparak da bu durumu kontrol edebilirsiniz.

ModSecurity Modülünü Açma / Kapatma

Sunucunuzdaki ModSecurity modülünü açmak veya kapatmak için ilk önce Cpanel’e giriş yapın:

ModSecurity Kullanımı

Daha sonra Cpanel ekranınızdaki Security (Güvenlik) sekmesinden ModSecurity uygulamasını açın.

Açılan sayfada modülü devre dışı bırakmak için gerekli yerlere tıklayabilirsiniz.

ModSecurity Kullanımı

ModSecurity Nasıl Çalışır?

ModSecurity hem Linux hem de Windows işletim sistemlerinde desteklenir ve bir web sunucusu (Apache veya IIS) modülü olarak çalışır. Web uygulamalarına yönelik saldırıları algılamak ve önlemek için, güvenlik duvarı (ModSecurity) web sunucunuza gelen tüm istekleri ve bu isteklere gönderilen yanıtları kontrol eder. Kontrol başarılı olursa, içeriği almak için HTTP isteğini web sitesine yönlendirilir. Kontrol başarısız olursa, önceden tanımlanmış eylemler gerçekleştirilir.

ModSecurity Kullanımı

İstek/yanıt kontrolü başarısız olursa istek engellenir ve şu işlemler gerçekleşir:

  • Güvenlik izleme ve erişim kontrolü sağlanır.
  • Sanal yamalama yapılır.
  • Tam HTTP trafik kaydı tutulur.
  • Güvenlik değerlendirmesi yapılır.
  • Pasif güvenlik değerlendirmesi yapılır.
  • İstek tabanlı filtreleme yapılır.
  • URL Kodlama Doğrulaması yapılır.
  • IP Adresi kontrol edilir.
  • Boş bayt saldırısı önlenir.
  • Sunucu kimliği maskelenir.
  • Bellek limitleri yüklenir.

Şimdi basit bir senaryo ile ModSecurity çalışma mantığını adım adım inceleyelim. Sunucuya basit bir istek geldiğini ve bu isteğe bir de yanıt verildiğini düşünelim. Bu durumda beş adımlık bir çalışma mantığı çizebiliriz:

  1. İstek başlığı (Request Headers)
  2. İstek içeriği (Request Body)
  3. Cevap başlığı (Response Headers)
  4. Cevap içeriği (Response Body)
  5. Kayıt tutma (Logging)
ModSecurity Kullanımı

Şimdi bu adımları detaylı bir şekilde inceleyelim:

İstek başlığı (Request Headers)

Bu adımda kurallar, Apache istek başlıklarını okuduktan hemen sonra devreye girerler. Burada istek içerikleri (Request Body) okunmaz. Yani istek parametrelerinin hepsi mevcut değildir. Bu kısımda istek başlıklarına göre kurallar yazabilir ve istek içeriğinin nasıl olması gerektiğine karar verebilirsiniz.

İstek İçeriği (Request Body)

Uygulamaya yönelik çoğu kural bu kısımda işlenir. Genelde kurallarımız cevap üzerinden değil de istek üzerinden olacaktır. Örneğin bir textfield kısmından gelen veriler için yapılacak hamleleri bu kısımda belirleriz. ModSecurity istek içeriği safhasında aşağıdaki kodlama tiplerini destekler.

  • Application/x-www-form-urlencoded (Veri transferinde kullanılır.)
  • Multipart/form-data (Dosya transferinde kullanılır.)
  • Text/xml (XML veri geçişinde kullanılır.)
Cevap Başlığı (Response Headers)

Bu adımda isteklere göre gönderilecek cevap başlıkları işlenir. Bazı yanıt durum kodlarının (404 gibi) Apache tarafından istek döngüsünde daha önce ele alındığını ve beklendiği gibi tetiklenemediğini unutmayın.

Cevap İçeriği (Response Body)

Bu adımda ise cevap analizi yapılır. Cevap içeriği üzerinde yazılacak kurallar bu kısımda yazılır. Örneğin hata mesajlarını burada tanımlayabilirsiniz.

Kayıt Tutma (Logging)

Bu adımda kayıt tutma başlamadan önce yazılacak kurallar belirlenir. Örneğin hata mesajlarının nasıl kayıt altına alınacağını bu adımda tanımlayabilirsiniz.

Bu adımlarda gerçekleşmesini istediğiniz işlemleri ModSecurity güvenlik duvarı sayesinde kural olarak tanımlayabilir ve bu sayede sunucunuzu daha verimli bir şekilde yönetip saldırılara karşı daha güvenli bir hale getirebilirsiniz.

Blog postu ile ilgili bir sorunuz varsa bizimle iletişime geçebilirsiniz.

Mustafa SARIDAL

Size nasıl yardımcı olalım?

İhtiyacınız olan her an Prisma danışmanları yanı başınızda. Bizimle 7/24 iletişime geçebilirsiniz.


    Sızma testi hizmetlerimizi incelediniz mi?