Mod Security bir Web Application Firewaludur. Temel anlamıyla, Http isteklerini analiz ederek, Http serverımıza gelmeden işlemleri sonlandırmaktadır. Örnek olarak, Header’da User-Agent kısmında spider yazıyorsa paketi drop et diyebilmekteyiz. SQL İnjection, Xss gibi açıklarda da kullanabilmektedir ancak temelde paketi headerlarına göre filtrelemektedir.

Rulelar yazarak Paketlere neler olacağını söylediğiniz bir Rule diline (SecRules) sahip olan Mod Security’ye bir Rule Engine diyebilmekteyiz.

SecRulelar temel olarak şu yapıdadır: SecRule VARIABLES OPERATOR [ACTIONS]

SecRule Dilini anlatmak başlarken kolay olan Action kısmından başlayalım, eğer Rule’da istenenler sağlanırsa pakete yapılan işlemlerdir. Basitçe Allow,Block, Deny, Drop, Pass’tir. Allow izin veriyor, Block direkt olarak blockluyor, deny hata mesajı ile blockluyor, Drop direkt ağ bağlantısı kesiyor, Pass ise sonraki rule’a aktarıyor. Yanı sıra Log Actionları’da vardır. AuditLog, Log vb komutlar ile yapılan Log actionları gerçekten önemli olabilmektedir.

Secrule’daki değişkenler temel olarak rule’da http isteğinin neresini kullanacağımızı belirleriz. Örenek olarak, user agent headerını kullanacak isek Variable kısmında belirtiriz.

Operator kısmı eşleşilecek (Match) Regex’in yazıldığı kısımdır.

Secrule’lara örnekler verelim:

SecRule REQUEST_HEADERS:User-Agent “(bot|spider)” “drop” içinde bot veya spider olan bir paket gelir ise paketi drop et anlamına gelmektedir.

SecRule REQUEST_URI “/admin” “deny” eğer Request URI /admin olursa isteği geri çeviriyor.

SecRule ARGS:ip “;”⁷⁹*” “drop” eğer ip adresi 79 ile başlıyor ise drop et anlamına gelmektedir.

Evet Mod Security basitçe budur. Gerçekten faydalı ve kullanılabilir olarak göze çarpmaktadır. Ancak dikkat edilmesi gereken hususlardan biri her bir Rule’un sisteme az da olsa bir yük getireceği ve bu yükün her bir istekte tekrarlanacağı gerçeğidir. Bunları dikkate alarak kullanmakta fayda vardır.

Son olarak OWASP’ın hazır Rule Setleri ile minimum bir güvenlik seviyesine ulaşılabilmektedir. Aşağıda linkten hakkında gerekli bilgilere ulaşabilmektesiniz: https://owasp.org/www-project-modsecurity-core-rule-set/

Originally published at http://anilkaynr.wordpress.com on September 23, 2021.

Computer Engineer,Sociologist, CSE Master Student

Computer Engineer,Sociologist, CSE Master Student