spacer.png, 0 kB
Bilgi için: bilgi at bilgiguvenligi gov tr   

 

spacer.png, 0 kB
spacer.png, 0 kB
ModSecurity Denetim Kayıtlarını Anlamak Yazdır E-posta
Gökhan ALKAN, TÜBİTAK-UEKAE   
07.07.2008

1. ModSecurity Nedir ?

ModSecurity Ivan Ristric tarafından geliştirilen, Apache web sunucusunun bir modülü olarak çalışan açık kaynak kodlu, tehdit gözetleme ve engelleme sistemidir. Web uygulama güvenlik duvarı olarak da adlandırılan ModSecurity, hem tehdit gözetleme hem de engelleme sistemi olarak çalışabilmektedir. Kısaca yapılandırmasında gerçekleştirilen değerlere göre gelen istek için bir aksiyon alır.

2. ModSecurity Nasıl Çalışır ?

ModSecurity Apache web sunucusunun bir modülü olarak çalışır. İstemciden gelen istek ve sunucu cevabının analizi aşağıdaki şekildedir.

  1. Birinci adımda, isteğin biçimi bir dizi gömülü kontrol tarafından analiz edilir. Bu kontroller yapılandırma değerleri kullanılarak değiştirilebilir.

  2. İkinci adımda, istek kullanıcı tarafından tanımlanan girdi denetimine gider. Ne zaman bir eşleşme olursa, yine kullanıcı tarafından tanımlanan olaylar tetiklenir.

  3. İstek Apache tarafından işlenir.

  4. Eğer çıktı filtreleme aktifleştirilmiş ise, çıktı bir dizi kullanıcı tanımlı çıktı filtresine yönlendirilir. Eğer bir eşleşme olursa belirtilen davranışlar tetiklenir. 

Genel olarak ModSecurity çalışma prensibi Şekil 1’de gösterilmiştir.

modsecurity_calisma_prensibi.png

  Şekil 1 - ModSecurity Çalışma Prensibi

3. ModSecurity Kayıt Bilgisi Tutma Özelliği Ve Direktifleri

3.1 SecEngineAudit

Denetim kayıt bilgisi alma yeteneğini aktifleştirmek için kullanılır.

Örnek kullanım: SecAuditEngine On

Alabileceği değerler:

  • On – Bütün işlem bilgileri kayıt altına alınır.

  • Off – İşlem bilgileri kayıt altına alınmaz.

  • RelevantOnly – Uyarı, hata ya da ilgili olduğu düşünülen durum kodları kayıt altına alınır.

3.2 SecAuditLog

Audit kayıt bilgisinin tutulacağı kayıt dosyasının tam yolunu belirtmek için kullanılır.

Örnek kullanım: SecAuditLog /var/log/apache/logs/audit.log

Bu dosya açılışta sunucu root hakları ile çalıştığında açık halde bulunmaktadır. Root kullanıcı haklarına erişim izini bulunmayan kullanıcıların bu dosyaya yazma hakları bulunmadığından ya da bulunduğu dizine yazma izini olmadığından emin olunmalıdır.

Eğer arka arkaya kayıt bilgi biçimi (serial audit logging format) kullanılıyorsa bu dosya denetim kayıt bilgilerinin (audit logs) saklanması için kullanılır. Eğer eşzamanlı (concurrent) kayıt bilgi formatı kullanılıyorsa bu dosya indeks olarak kullanılacaktır ve oluşturulmuş bütün kayıt bilgisi dosyalarının kaydını içerir. Eğer eşzamanlı denetim kayıt bilgisi (concurrent audit logging ) kullanmayı düşünüyorsanız ve denetim kayıtlarını (audit logging) uzak bir sunucuya göndermeyi planlıyorsanız ya da ticari ModSecurity yönetim aracı (commercial ModSecurity Management Appliance) kullanmayı planlıyorsanız, ModSecurity kayıt bilgisi toplayıcı (ModSecurity Log Collector -mlogc-) yapılandırmanız ve kullanmanız gerekecektir. Bunun için aşağıdaki format denetim kayıt bilgisi biçimi ( audit log format ) için kullanılmalıdır.

SecAuditLog "|/path/to/mlogc /path/to/mlogc.conf" 

3.3 SecAuditLog2

Eş zamanlı kayıt bilgisi (concurrent logging) etkinleştirildiğinde ikincil denetim kayıt indeks dosyasının (audit log index) tam yolunu tanımlamak için kullanılır.

Örnek kullanım: SecAuditLog2 /var/log/apache/logs/audit2.log

3.4 SecAuditLogParts

Esas denetim kayıt bilgisinin detaylarını tanımlar.

Örnek kullanım: SecAuditLogParts ABCFHZ

Kullanılabilir denetim kayıt seçenekleri:

  • A – Denetim kayıt bilgisi başlığı (zorunlu)

  • B – İstek başlığı

  • C – İstek gövdesi

  • D – Aracılık eden başlık bilgileri (intermediary response headers) için ayrılmıştır, henüz gerçekleştirilmedi.

  • E – Arada bulunan cevap gövdesi (intermediary response body)

  • F – Son başlık bilgisi (son olarak içeriğin iletiminde Apache tarafından eklenen tarih ve sunucu başlık bilgileri dışında kalan  ). Arada bulunan cevap gövdesi (Intermediary response body) ModSecurity cevap gövdesini engellemediği sürece gerçek cevap gövdesi ile aynıdır, bu durumda gerçek cevap gövdesi hata mesajını içerecektir ( ya ön tanımlı Apache hata mesajı ya da ErrorDocument sayfası). 

  • G – Gerçek cevap gövdesi için ayrılmıştır, henüz gerçekleştirilmedi.

  • H – Denetim kayıt artbilgisi (audit log trailer)

  • I – C bölümünün yerine kullanılan bölümdür. multipart/form-data kodlaması kullanıldığı durumlar haricinde C bölümü ile aynı verileri kayıt altına alır. Bu durumda parametreler hakkında bilgiler içeren fakat dosyalar hakkında olmayan sahte bir application/x-www-form-urlencoded gövdesi içeren kayıt bilgisini tutacaktır.

  •  J – Ayrılmıştır. Bu bölüm uygulandığında multipart/form-data kodlaması kullanan aktarılmış dosyalar (uploades files) hakkında bilgi içerecektir.

  •  K –  Eşleştirildikleri sırayla eşleşen her kuralın tam listesini içerir.

  •  Z  – Son sınır bilgisi. Kayıt bilgisinin sonu olduğuna işaret eder. (zorunlu)

3.5 Sec AuditLogRelevantStatus

Hangi cevap durum kodunun ilgili denetim kaydı için kullanılacağını yapılandırır.

Örnek kullanım: SecAuditLogRelevantStatus ^(?:5|4\d[^4])

Bu direktifin asıl kullanım amacı kullanıcıya sadece belirlenmiş HTTP cevap durum kodlarını oluşturan işlemler için denetim kayıt bilgisi (audit logging) yapılandırması için izin vermektir. Bu direktif genellikle toplam denetim kayıt bilgisini artırmak için kullanılır. Bu direktif kullanıldığında 200 OK durum kodu ile sonuçlanan başarılı saldırılar için kayıt bilgisi tutulmayacağı unutulmamalıdır.

3.6 SecAudit LogStorageDir

Eş zamanlı denetim kayıt bilgisinin (concurrent audit log) nerede tutulacağını yapılandırır.

SecAuditLogStorageDir /var/log/apache/logs/audit

SecAuditLogType direktifi eş zamanlı (concurrent) olarak ayarlanmalıdır. Apache servisi başlamadan önce dizin oluşturulmalı ve yeni dosyaların çalışma zamanında oluşturulması için web sunucu yazılımı kullanıcısının yazma hakkı olmalıdır.

3.7 SecAuditLogType

Kullanıcılacak kayıt denetim mekanizmasının çeşidini yapılandırır.

Örnek kullanım: SecAuditLogType Serial

  • Geçerli direktifler:

  • Serial: Bütün denetim kayıt bilgileri (audit log) esas denetim kayıt dosyasında tutulacaktır.

  • Concurrent: Dentim kayıt bilgileri ayrı tutulacaktır.

4. Uygulama - ModSecurity Denetim Kayıt Bilgilerini Ayrıştırmak Ve Jarvinen (Parsing ModSecurity Logs)

Eğer ModSecurity Console uygulamasını kullanmıyorsanız, ModSecuirty denetim kayıt bilgilerini her gün izlemek ve analiz etmek oldukça zor olmaktadır. Jarvinen bu ihtiyacı karşılamak için yazılmış bir uygulamadır. Kısaca yaptığı iş, ModSecurity2 denetim kayıt bilgilerini ayrıştırıp bu bilgileri mysql veritabanına aktarmaktır. 2 parçadan oluşmaktadır. Betik programlama (shell script) kullanarak ModSecurity denetim kayıt bilgilerini ayrıştırıp veritabanına aktaran birinci parça ve php ile geliştirilmiş veritabanındaki ModSecurity denetim kayıt bilgilerini web arayüzünden kullanıcıya gösteren ikinci parça. Kabuk programlama kullanılmasındaki amaç uygulamanın taşınabilir olmasıdır. Bu şekilde kullanıcı fazladan bir yazılama gerek kalmadan Jarvinen uygulamasını çalıştırabilecektir. Uygulamanın kurulum ve yapılandırmasına ilişkin ayrıntılara http://code.google.com/p/jarvinen/ adresinden ulaşılabilir. Web arayüzüne ilişkin örnek çıktılar aşağıda gösterilmiştir. 

modsecurity2_denetim_kayt_bilgilerini_jarvinen_web_arayz_le_analiz_edilmesi.png

  Şekil 2 - ModSecurity Denetim Kayıt Bilgilerinin Jarvinen Web Arayüzü İle Analiz Edilmesi

Mysql veritabanına aktarılmış denetim kayıt bilgilerini kullanıcıya gösteren tarih, öncelik, kaynak_ip gibi kriterlere göre sıralayan ve kullanıcıya gösteren ve ModSecurity denetim kayıt bilgilerinin ayrıntılarına ilişkin daha detaylı bilgilerin edinilebildiği bölümden oluşmaktadır. Detayların görüntülenebildiği ikinci kısım Şekil 3’de gösterilmiştir. 

modsecurity2_denetim_kayt_bilgilerine_likin_detayl_bilgilerin_analiz_edilmesi.png
 Şekil 3 - ModSecurity2 Denetim Kayıt Bilgilerine İlişkin Detaylı Bilgilerin Analiz Edilmesi

Kaynaklar

[1] http://www.modsecurity.org/

[2] http://www.securityfocus.com/columnists/418/

[3] http://www.webguvenligi.org/wp-content/uploads/2007/05/modsec_owasp_06052007.pdf/

[4] http://code.google.com/p/jarvinen/


Favori olarak ekle (0) | Görüntüleme sayısı: 2938

Bu yazıya ilk yorumu yazın

Sadece kayıtlı kullanıcılar yorum yazabilir.
Lütfen sisteme giriş yapın veya kayıt olun.

 
spacer.png, 0 kB
spacer.png, 0 kB
Copyright 2012 TÜBİTAK-BİLGEM. Sitenin teknik altyapısında Joomla kullanılmıştır. Yazar ve site referans gösterilmeden alıntı yapılamaz. Görüşleriniz
spacer.png, 0 kB