Mod Security Nedir ?

ModSecurity, web uygulamalarının güvenliğini sağlamak için kullanılan bir açık kaynak kodlu bir web uygulama güvenlik modülüdür. ModSecurity, HTTP isteklerini ve yanıtlarını incelerek, potansiyel olarak zararlı içerik veya saldırganlar tarafından yapılan istekleri tespit etmeye ve engellemeye çalışır. ModSecurity, genellikle web sunucularına (örneğin Apache ve Nginx) eklendiğinde kullanılır. İstekleri inceleme ve engelleme işlemleri için kurallar kullanır. Bu kurallar, OWASP (Open Web Application Security Project) gibi güvenlik uzmanları tarafından oluşturulmuş veya kullanıcı tarafından özelleştirilebilir. ModSecurity, web uygulamalarının güvenliğini arttırmak için kullanılan bir araçtır ve SQL injection, XSS, CSRF, file inclusion gibi açıklardan korunmanıza yardımcı olur.

 

ModSecurity Kurulumu ve Yapılandırması

ModSecurity, web sunucusuna (örneğin Apache veya Nginx) eklenen bir eklentidir. Kurulum ve yapılandırma işlemleri web sunucunuzun kullandığınız sistem ve işletim sistemiye bağlı olarak değişebilir. Aşağıda genel bir kurulum ve yapılandırma süreci verilmiştir:

  • ModSecurity’nin en son sürümünü indirin ve web sunucunuzun desteklediği sistem ve işletim sistemi için uygun bir yükleme paketi seçin.
  • Web sunucunuzda ModSecurity’yi yükleyin. Apache kullanıyorsanız, mod_security eklentisini Apache’ye eklemek için kullanabileceğiniz bir komut satırı aracıdır. Nginx kullanıyorsanız, Nginx modülünü yüklemek için nginx.conf dosyasını düzenlemelisiniz.
  • ModSecurity’nin yapılandırma dosyasını düzenleyin. Bu dosya genellikle /etc/modsecurity veya /usr/local/modsecurity dizinlerinde bulunur. Bu dosya, ModSecurity’nin nasıl çalışacağını, hangi kuralları kullanacağını ve hangi olayları kaydetmesini istediğinizi belirler.
  • ModSecurity kurallarını yapılandırın. ModSecurity, OWASP kurallarını kullanmak için önceden hazırlanmış bir kurallar seti sunar. Bu kurallar genellikle /usr/local/modsecurity/owasp-modsecurity-crs dizininde bulunur ve modsecurity.conf dosyasındaki “Include” satırları ile yüklüdür.
  • Web sunucunuzu yeniden başlatın ve ModSecurity’nin çalışıp çalışmadığını kontrol edin.
  • ModSecurity’nin performansını ve etkililiğini izlemek için log dosyalarını inceleyin. Bu log dosyaları genellikle /var/log/modsecurity dizininde bulunur.

Dikkat etmeniz gereken önemli bir nokta: ModSecurity kurallarını yapılandırırken dikkatli olmanız gerekir, aksi takdirde geçerli isteklerin yanlış şekilde engellenmesine neden olabilirsiniz.

 

ModSecurity Regex Kuralları

ModSecurity, kurallarını yazmak için birkaç farklı dil kullanabilir, ancak en yaygın olarak kullanılanı reguler ifadeler (regex) dilidir. Regex kuralları, ModSecurity tarafından incelenen HTTP istekleri ve yanıtları için bir eşleştirme yapar. Eşleştirme yapılan içerik, saldırganlar tarafından yapılan istekleri tespit etmek veya geçerli istekleri engellemek için kullanılır.

Regex kuralları, genellikle modsecurity.conf veya .htaccess dosyalarında yer alır. Örnek olarak, aşağıdaki regex kuralı, bir isteğin URL’sinde “eval(” ifadesini arar ve eşleştirirse, o isteği engeller:

Bu kural, eval() fonksiyonunun kullanılmasını engellemek için tasarlanmıştır, çünkü eval() fonksiyonu genellikle kötü amaçlı kodlar tarafından kullanılır.

Bu sadece bir örnektir, ModSecurity için birçok regex kuralı mevcut. Örneğin, bir isteğin içeriğinde SQL enjeksiyonu yapmak için kullanılan anahtar kelimeleri arayan veya bir isteğin içeriğinde XSS açığını sömüren kodları arayan kurallar yazabilirsiniz. Daha fazla bilgi için ModSecurity kurallarının belirli bir konuda nasıl yazılacağını öğrenmek için OWASP ModSecurity Core Rule Set (CRS) veya ModSecurity Dökümantasyon sayfalarını inceleyebilirsiniz

 

ModSecurity ve OWASP Top 10 Açıkları

OWASP (Open Web Application Security Project) Top 10, web uygulamalarının en yaygın güvenlik açıklarını listelemek için tasarlanmış bir projedir. ModSecurity, bu açıkların çoğunu tespit etmeye ve engellemeye çalışır. Aşağıda OWASP Top 10 açıklarının ModSecurity tarafından nasıl ele alındığına dair genel bir özet verilmiştir:

  1. Injection: ModSecurity, SQL, OS veya XML Injection gibi enjeksiyon saldırılarını tespit etmek için regex kuralları kullanabilir.
  2. Broken Authentication and Session Management: ModSecurity, geçersiz oturum yönetim kurallarını veya oturumların çalınmasını engellemek için kurallar kullanabilir.
  3. Cross-Site Scripting (XSS): ModSecurity, XSS saldırılarını engellemek için sanal hizmetler ve regex kuralları kullanabilir.
  4. Insecure Direct Object References: ModSecurity, doğrudan nesne referanslarının yetkisiz erişimini engellemek için kurallar kullanabilir.
  5. Security Misconfiguration: ModSecurity, web sunucusunun yapılandırmasını ve güvenliğini kontrol etmek için kurallar kullanabilir.
  6. Sensitive Data Disclosure: ModSecurity, hassas verilerin yanlış şekilde paylaşılmasını engellemek için kurallar kullanabilir.
  7. Missing Function Level Access Control: ModSecurity, fonksiyon seviyesinde erişim kontrolünün yetersizliğini engellemek için kurallar kullanabilir.
  8. Cross-Site Request Forgery (CSRF): ModSecurity, CSRF saldırılarını engellemek için kurallar kullanabilir.
  9. Using Components with Known Vulnerabilities: ModSecurity, bilinen açıklıklar içeren bileşenlerin kullanımını engellemek için kurallar kullanabilir.
  10. Unvalidated Redirects and Forwards: ModSecurity, geçersiz yönlendirmeleri ve ilerlemeleri engellemek için kurallar kullanabilir.

Ancak unutmayın, ModSecurity yalnızca bir araçtır ve tüm OWASP Top 10 açıklarını önleyemeyebilir. Bu nedenle, ModSecurity’nin yanı sıra diğer güvenlik önlemleri de alınması gerekir. Örneğin, uygulamanın kodunun güvenliğini sağlamak, güncel güvenlik yama ve parçalarını yüklemek, güvenli bir şifre politikası uygulamak veya güvenli bir yapılandırma kullanmak gibi. Ayrıca, ModSecurity kurallarının doğru yapılandırılmış ve test edilmiş olduğundan emin olmak gerekir, aksi takdirde geçerli isteklerin yanlış şekilde engellenmesine neden olabilirsiniz.

 

ModSecurity Log Analizi ve Raporlama

ModSecurity, HTTP istekleri ve yanıtları için kurallar kullanarak web uygulamalarının güvenliğini sağlar. Bu kuralların etkililiğini ve performansını anlamak için ModSecurity log dosyalarını analiz etmek ve raporlamak önemlidir. ModSecurity, izlenen olayları ve engellenen istekleri log dosyalarına kaydeder. Bu log dosyaları, web sunucusunun yapılandırmasına bağlı olarak /var/log/modsecurity veya /usr/local/modsecurity dizininde bulunur.

ModSecurity log dosyaları, genellikle Apache veya Nginx tarzında yapılandırılmış olsa da, çeşitli formatlarda olabilir. Örneğin, Apache’nin mod_security modülü, Apache log dosyalarına kaydedilirken, Nginx modülü Nginx log dosyalarına kaydedebilir. Log dosyalarını analiz etmek için birçok araç mevcuttur, örneğin Logwatch, Logcheck veya Elastic Stack.

ModSecurity log dosyalarını analiz ederken aramak için önemli bilgileri içerebilir,

  • Engellenen istekler
  • Kuralların etkililiği
  • İsteklerin zamanlaması
  • Saldırıların kaynağı
  • En sık kullanılan kurallar
  • Kuralların sonuçları (engellendi, uyarı, izin verildi)
  • Log dosyalarının boyutu ve performans

ModSecurity log dosyalarını analiz etmek ve raporlamak, web uygulamalarının güvenliğini sağlamak için önemlidir, çünkü bu bilgiler, ModSecurity kurallarının etkililiğini ve performansını anlamak için kullanılabilir. Ayrıca, bu bilgiler, saldırıların kaynağını belirlemek ve saldırıların önlenmesine yönelik önlemler almak için kullanılabilir.

 

ModSecurity ve Web Uygulamalarının Güvenliği

ModSecurity, web uygulamalarının güvenliğini sağlamak için kullanılan bir araçtır. Bu, HTTP istekleri ve yanıtlarını incelerek potansiyel olarak zararlı içerik veya saldırgan tarafından yapılan istekleri tespit etmeye ve engellemeye çalışır.

ModSecurity, birçok farklı güvenlik açığını engelleyebilir. Örneğin, SQL injection, XSS, CSRF, file inclusion gibi açıklardan korunmanıza yardımcı olabilir. SQL injection saldırılarına karşı, ModSecurity, istekleri incelerek ve regex kuralları kullanarak SQL komutlarının içerisinde zararlı karakterleri tespit edebilir. XSS saldırılarına karşı, ModSecurity, istekleri incelerek ve sanal hizmetler kullanarak geçersiz kodları tespit edebilir. CSRF saldırılarına karşı, ModSecurity, istekleri incelerek ve anti-CSRF kuralları kullanarak geçersiz istekleri tespit edebilir. File inclusion saldırılarına karşı, ModSecurity, istekleri incelerek ve kurallar kullanarak geçersiz dosya yollarını tespit edebilir.

ModSecurity, ayrıca web sunucusunun yapılandırmasını ve güvenliğini kontrol etmek için kurallar kullanabilir. Örneğin, sunucudaki dosya yollarının ve dosya izinlerinin doğru olup olmadığını kontrol edebilir.

Ancak unutmayın, ModSecurity yalnızca bir araçtır ve tüm güvenlik açıklarını önleyemeyebilir. Bu nedenle, ModSecurity’nin yanı sıra diğer güvenlik önlemleri de alınması gerekir. Örneğin, uygulamanın kodunun güvenliğini sağlamak, güncel güvenlik yama ve parçalarını yüklemek, güvenli bir şifre politikası uygulamak veya güvenli bir yapılandırma kullanmak gibi. Ayrıca, ModSecurity kurallarının doğru yapılandırılmış ve test edilmiş olduğundan emin olmak gerekir, aksi takdirde geçerli isteklerin yanlış şekilde engellenmesine neden olabilirsiniz.

 

ModSecurity ile DDoS ve Brute-Force Saldırılarının Engellenmesi

ModSecurity, DDoS (Distributed Denial of Service) ve Brute-force saldırılarını engellemek için kullanılabilir. Ancak, bu tür saldırıları engellemek için özel kurallar ve yapılandırmalar gerekir.

DDoS saldırılarını engellemek için, ModSecurity, istekleri incelerek ve kurallar kullanarak geçersiz istekleri tespit edebilir. Örneğin, ModSecurity, belirli bir zaman diliminde aynı IP adresinden çok fazla istek yapıldığını tespit ederse, o IP adresini engelleyebilir. Ayrıca, ModSecurity, belirli bir zaman diliminde çok fazla istek yapıldığını tespit ederse, o istekleri engelleyebilir.

Brute-force saldırılarını engellemek için, ModSecurity, istekleri incelerek ve kurallar kullanarak geçersiz giriş denemelerini tespit edebilir. Örneğin, ModSecurity, belirli bir zaman diliminde aynı IP adresinden çok fazla giriş denemesi yapıldığını tespit ederse, o IP adresini engelleyebilir. Ayrıca, ModSecurity, belirli bir zaman diliminde çok fazla giriş denemesi yapıldığını tespit ederse, o denemeleri engelleyebilir.

Ancak unutmayın, DDoS ve brute-force saldırılarını engellemek için sadece ModSecurity’nin kullanılması yeterli olmayabilir. Bu nedenle, DDoS ve brute-force saldırılarını engellemek için diğer önlemler alınması gerekir. Örneğin, web sunucusunun yapılandırmasını optimize etmek, saldırganların IP adreslerini engellemek veya saldırıları yönlendirmek, kullanıcı hesaplarının güvenliğini sağlamak veya saldırıları yönlendirmek için bir Cloudflare gibi bir hizmet kullanmak.

 

ModSecurity SSL/TLS Güvenliği

ModSecurity, SSL/TLS (Secure Sockets Layer/Transport Layer Security) güvenliği için kullanılabilir. SSL/TLS, web trafiğini şifrelemek için kullanılan bir güvenlik protokolüdür. ModSecurity, SSL/TLS trafiği için kurallar kullanarak potansiyel olarak zararlı içerik veya saldırgan tarafından yapılan istekleri tespit etmeye ve engellemeye çalışabilir.

  • Geçersiz sertifikaları veya sertifika sahiplerinin doğrulamasını yapabilir. Örneğin, ModSecurity, bir sertifikanın geçerlilik süresinin dolmasını veya sertifika sahibinin doğrulanmamış olduğunu tespit ederse, o isteği engelleyebilir.
  • Geçersiz şifreleme algoritmalarının kullanımını veya zayıf şifreleme kullanımını tespit edebilir. Örneğin, ModSecurity, bir isteğin şifreleme algoritmasının zayıf olduğunu veya geçersiz olduğunu tespit ederse, o isteği engelleyebilir.
  • Saldırganlar tarafından yapılan man-in-the-middle (MitM) saldırılarını tespit edebilir. Örneğin, ModSecurity, saldırganların sertifika sahibi olarak kendilerini tanıttığını veya sertifika sahibinin geçersiz olduğunu tespit ederse, o isteği engelleyebilir.

Ancak unutmayın, ModSecurity sadece bir araçtır ve SSL/TLS güvenliği için diğer önlemler alınması gerekir. Örneğin, web sunucusunda geçerli ve güncel bir SSL/TLS sertifikası kullanmak, SSL/TLS trafiği için doğru şifreleme algoritmalarını kullanmak ve zayıf şifreleme algoritmalarını kullanmamak, man-in-the-middle saldırılarına karşı tarama yapmak veya sertifika sahiplerinin doğrulamasını yapmak gibi. Ayrıca, ModSecurity SSL/TLS trafiği için kuralların doğru yapılandırılmış ve test edilmiş olduğundan emin olmak gerekir, aksi takdirde geçerli isteklerin yanlış şekilde engellenmesine neden olabilirsiniz.

 

ModSecurity ile Çoklu Ortam Desteği (NGINX, Apache, IIS)

ModSecurity, çeşitli web sunucuları için çoklu ortam desteği sunar. Örneğin, Apache, Nginx ve IIS gibi popüler web sunucuları için modüller mevcuttur. Bu modüller, web sunucusunun yapılandırmasına eklenerek ModSecurity’nin kullanılmasını sağlar.

Apache için mod_security modülü, Apache log dosyalarına kaydedilirken, Nginx için nginx_modsecurity modülü Nginx log dosyalarına kaydedebilir. IIS için modsecurity-iis modülü, IIS log dosyalarına kaydedebilir.

ModSecurity modülleri, web sunucusunun yapılandırmasına bağlı olarak farklı bir şekilde yapılandırılabilir ve kuralların yapılandırılması için farklı araçlar ve yöntemler kullanılabilir. Ancak, temel olarak, ModSecurity modülleri, web sunucusuna eklenir ve web sunucusu tarafından yönetilir. Bu, ModSecurity’nin kurallarını yapılandırmak, etkinleştirmek veya devre dışı bırakmak için web sunucusunun yapılandırmasını değiştirmek gerektiği anlamına gelir.

 

ModSecurity ile Özel Kurallar ve Özel Uygulamalar için Özelleştirme

ModSecurity, özel kurallar ve özel uygulamalar için özelleştirmeye izin verir. Bu, ModSecurity’nin varsayılan kurallarının yanı sıra özel olarak yazılmış kuralları da içerebilir. Özel kurallar, web uygulamasının özelliklerine ve güvenlik ihtiyaçlarına uygun olarak yazılabilir.

ModSecurity, birçok yapılandırma ve kuralların yazılması için araçlar sunar. Örneğin, ModSecurity Core Rule Set (CRS) kurallarının yanı sıra, ModSecurity’nin kurallarını yazmak için kullanabileceğiniz araçlar arasında:

ModSecurity kurallarını yazmak için kullanabileceğiniz yapılandırma dilini kullanabilirsiniz
ModSecurity Kural Yazarı (Rule Writer) araçları, kuralların yazımını ve yapılandırmasını kolaylaştırır

ModSecurity Audit Log Analyzer (ALA) araçları, ModSecurity tarafından oluşturulan günlükleri analiz etmek için kullanılabilir.
Ayrıca, özel uygulamalar için ModSecurity özelleştirme yapmak için, ModSecurity’nin API’sini kullanabilirsiniz. Bu, özel uygulamalar için ModSecurity’nin özelliklerini ve işlevlerini uyarlayabilmenizi sağlar.

Ancak, unutmayın ki özel kurallar yazarken veya özelleştirirken dikkatli olmalısınız, yanlış yazılmış veya yapılandırılmış kurallar geçerli isteklerin yanlış şekilde engellenmesine neden olabilir veya güvenliği etkileyebilir. Özel kuralların test edilmiş olduğundan emin olmalı ve uygun bir güncelleme yönetimi yürütmelisiniz.

Bir cevap yazın