Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ModSecurity — ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. It has a robust event-based programming language which provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis. | Kitploit
उपकरण/GitHubGitHub/owasp-modsecurity/modsecurity
Vulnerability AnalysisWAF BypassWeb SecurityIntrusion DetectionAPI SecurityLog Analysis
GitHubowasp-modsecurity/modsecurity

ModSecurity

रिपॉजिटरी देखें

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →

विवरण

ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx. It has a robust event-based programming language which provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis.

वेबसाइट
9.7k1.7k1 महीना पहलेKitploit द्वारा समीक्षित
साझा करें

Quality Assurance Build Status

Libmodsecurity, ModSecurity v3 परियोजना का एक घटक है। लाइब्रेरी कोडबेस ModSecurity कनेक्टरों के लिए एक इंटरफ़ेस के रूप में कार्य करता है, जो वेब ट्रैफ़िक लेता है और पारंपरिक ModSecurity प्रसंस्करण लागू करता है। सामान्य तौर पर, यह ModSecurity SecRules प्रारूप में लिखे गए नियमों को लोड/इंटरप्रेट करने और उन्हें आपके एप्लिकेशन द्वारा कनेक्टरों के माध्यम से प्रदान की गई HTTP सामग्री पर लागू करने की क्षमता प्रदान करता है।

यदि आप Apache के लिए ModSecurity (उर्फ ModSecurity v2.x) खोज रहे हैं, तो यह अभी भी रखरखाव में है और उपलब्ध है: यहाँ.

इस प्रोजेक्ट और पुराने ModSecurity (v2.x.x) में क्या अंतर है?

  • सभी Apache निर्भरताएँ हटा दी गई हैं
  • उच्च प्रदर्शन
  • नई सुविधाएँ
  • नया आर्किटेक्चर

Libmodsecurity ModSecurity प्लेटफ़ॉर्म का पूर्ण पुनर्लेखन है। जब पहली बार इसकी कल्पना की गई थी, तो ModSecurity प्रोजेक्ट केवल एक Apache मॉड्यूल के रूप में शुरू हुआ था। समय के साथ, लोकप्रिय मांग के कारण, प्रोजेक्ट को Nginx और IIS सहित (लेकिन इन्हीं तक सीमित नहीं) अन्य प्लेटफ़ॉर्म का समर्थन करने के लिए बढ़ाया गया है। अतिरिक्त प्लेटफ़ॉर्म समर्थन की बढ़ती मांग को पूरा करने के लिए, इस प्रोजेक्ट के अंतर्निहित Apache निर्भरताओं को हटाना आवश्यक हो गया है, जिससे यह अधिक प्लेटफ़ॉर्म स्वतंत्र हो गया है।

इस लक्ष्य के परिणामस्वरूप, हमने Libmodsecurity को पुनः आर्किटेक्ट किया है ताकि यह अब Apache वेब सर्वर पर निर्भर न रहे (संकलन और रनटाइम दोनों पर)। इसका एक पार्श्व प्रभाव यह है कि सभी प्लेटफ़ॉर्म पर उपयोगकर्ता बढ़े हुए प्रदर्शन की उम्मीद कर सकते हैं। इसके अतिरिक्त, हमने इस अवसर का लाभ उठाकर कुछ नई सुविधाओं के लिए आधार तैयार किया है, जिनकी उपयोगकर्ता लंबे समय से मांग कर रहे हैं। उदाहरण के लिए, हम भविष्य के संस्करणों में JSON प्रारूप में ऑडिटलॉग का मूल रूप से समर्थन करने के साथ-साथ अन्य कार्यक्षमताओं की एक श्रृंखला देख रहे हैं।

यह अब केवल एक मॉड्यूल नहीं है।

'ModSecurity' शाखा में अब पारंपरिक मॉड्यूल तर्क (Nginx, Apache और IIS के लिए) शामिल नहीं है जो पारंपरिक रूप से एक साथ पैक किए जाते थे। इसके बजाय, इस शाखा में केवल इस प्रोजेक्ट के लिए लाइब्रेरी भाग (libmodsecurity) है। इस लाइब्रेरी का उपभोग उन 'कनेक्टरों' द्वारा किया जाता है जिन्हें हम 'कनेक्टर' कहते हैं, ये कनेक्टर आपके वेबसर्वर के साथ इंटरफ़ेस करेंगे और लाइब्रेरी को एक सामान्य प्रारूप प्रदान करेंगे जिसे वह समझता है। इनमें से प्रत्येक कनेक्टर को एक अलग GitHub प्रोजेक्ट के रूप में बनाए रखा जाता है। उदाहरण के लिए, Nginx कनेक्टर ModSecurity-nginx प्रोजेक्ट (https://github.com/owasp-modsecurity/ModSecurity-nginx) द्वारा प्रदान किया जाता है।

इन कनेक्टरों को अलग रखने से प्रत्येक प्रोजेक्ट के अलग-अलग रिलीज़ चक्र, मुद्दे और विकास वृक्ष हो सकते हैं। इसके अतिरिक्त, इसका मतलब है कि जब आप ModSecurity v3 स्थापित करते हैं तो आपको केवल वही मिलता है जिसकी आपको आवश्यकता है, कोई अतिरिक्त नहीं जिसका आप उपयोग नहीं करेंगे।

संकलन

संकलन प्रक्रिया शुरू करने से पहले, सुनिश्चित करें कि सभी आवश्यक निर्भरताएँ स्थापित हैं।
अधिक जानकारी के लिए निर्भरताएँ और Git उपमॉड्यूल अनुभाग देखें।

संकलन के बाद, सुनिश्चित करें कि आपके बिल्ड/प्लेटफ़ॉर्म पर कोई समस्या नहीं है।
हम दृढ़ता से यूनिट परीक्षण और रिग्रेशन परीक्षण चलाने की सलाह देते हैं। ये परीक्षण उपयोगिताएँ tests/ उपफ़ोल्डर में स्थित हैं।

एक गतिशील लाइब्रेरी के रूप में, libmodsecurity को ऐसे स्थान पर स्थापित किया जाना चाहिए जहाँ आपका ऑपरेटिंग सिस्टम गतिशील लाइब्रेरी पा सके।

Unix (Linux, macOS, FreeBSD, …)

Unix-जैसे सिस्टम पर, प्रोजेक्ट संकलन प्रक्रिया के लिए autotools का उपयोग करता है।

यदि आप git चेकआउट के साथ काम कर रहे हैं, तो निर्माण करने से पहले रिपॉजिटरी को पुनरावर्ती रूप से क्लोन करना या सभी उपमॉड्यूल को प्रारंभ करना सुनिश्चित करें।
Git उपमॉड्यूल अनुभाग भी देखें।

root@kitploit:~
git clone https://github.com/owasp-modsecurity/ModSecurity ModSecurity
cd ModSecurity

यह रिपॉजिटरी git उपमॉड्यूल का उपयोग करता है। क्लोन करने के बाद, सभी उपमॉड्यूल को प्रारंभ और प्राप्त करना सुनिश्चित करें:

root@kitploit:~
git submodule update --init --recursive

आप सत्यापित कर सकते हैं कि सभी उपमॉड्यूल ठीक से प्रारंभ हैं:

root@kitploit:~
git submodule status

सही ढंग से प्रारंभ किए गए उपमॉड्यूल एक कमिट हैश दिखाते हैं। एक अग्रणी - इंगित करता है कि उपमॉड्यूल प्रारंभ नहीं किया गया है।

फिर आप बिल्ड प्रक्रिया शुरू कर सकते हैं:

root@kitploit:~
./build.sh
./configure
make
sudo make install

वितरण-विशिष्ट बिल्ड के बारे में विवरण हमारे विकी में पाए जा सकते हैं: संकलन व्यंजन

Windows

Windows बिल्ड जानकारी यहाँ पाई जा सकती है।

निर्भरताएँ

  • यह लाइब्रेरी C++17 मानक का उपयोग करके C++ में लिखी गई है।
  • यह “Sec Rules Language” पार्सर बनाने के लिए Flex और Bison (Yacc) का उपयोग करती है।
  • अनिवार्य निर्भरताओं में YAJL शामिल है, क्योंकि ModSecurity लॉगिंग और अपने परीक्षण ढांचे के लिए JSON का उपयोग करता है।
  • libXML2 (वैकल्पिक) का उपयोग XML अनुरोधों को पार्स करने के लिए किया जाता है।

नियमित अभिव्यक्ति इंजन (PCRE2 / PCRE)

  • SecRules में नियमित अभिव्यक्ति प्रसंस्करण Regex उपयोगिता (src/utils/regex.*) के माध्यम से कार्यान्वित किया जाता है।

  • डिफ़ॉल्ट रूप से, ModSecurity रेगेक्स हैंडलिंग के लिए PCRE2 का उपयोग करता है।

  • इसका उपयोग @rx, @rxGlobal, और @verifyCC जैसे ऑपरेटरों द्वारा किया जाता है।

  • बिल्ड-टाइम व्यवहार:

    • डिफ़ॉल्ट: PCRE2 का पता लगाया और उपयोग किया जाता है।
    • फ़ॉलबैक: लीगेसी PCRE का उपयोग किया जा सकता है यदि --with-pcre स्पष्ट रूप से प्रदान किया गया हो (WITH_PCRE)।
  • दूसरे शब्दों में, वर्तमान बिल्ड PCRE2 की अपेक्षा करते हैं जब तक कि स्पष्ट रूप से अन्यथा कॉन्फ़िगर न किया गया हो।

अन्य सभी निर्भरताएँ SecRules के भीतर निर्दिष्ट ऑपरेटरों या कॉन्फ़िगरेशन निर्देशों से संबंधित हैं और संकलन के लिए आवश्यक नहीं हो सकती हैं।

ऑपरेटर-संबंधित निर्भरताएँ

  • libinjection ऑपरेटरों @detectXSS और @detectSQL के लिए आवश्यक है।
  • curl निर्देश SecRemoteRules के लिए आवश्यक है।

यदि वे लाइब्रेरी गायब हैं, तो ModSecurity संबंधित ऑपरेटरों या निर्देशों के समर्थन के बिना संकलित किया जाएगा।

Git-उपमॉड्यूल

रिपॉजिटरी में निम्नलिखित उपमॉड्यूल शामिल हैं:

  • others/libinjection – @detectSQLi और @detectXSS ऑपरेटरों द्वारा उपयोग किया जाता है।

  • others/mbedtls (TF-PSA-Crypto सबसेट) – क्रिप्टोग्राफ़िक फ़ंक्शन और सहायकों (जैसे हैशिंग, बेस64) के लिए उपयोग किया जाता है।

    ध्यान दें: नया mbedTLS v4 लेआउट पुराने v3 संरचना के साथ संगत नहीं है। आंतरिक संरचना में काफी बदलाव आया है, और कई घटकों को उपमॉड्यूल (जैसे TF-PSA-Crypto) में स्थानांतरित कर दिया गया है।

    PR #3532 को मर्ज करने के बाद, चलाना आवश्यक है:

    root@kitploit:~
    git submodule update --init --recursive
    

    यह सुनिश्चित करता है कि सभी आवश्यक उपमॉड्यूल प्राप्त किए गए हैं। इस चरण के बिना, प्रोजेक्ट सफलतापूर्वक बिल्ड नहीं होगा।

    आप सत्यापित कर सकते हैं कि सभी उपमॉड्यूल ठीक से प्रारंभ हैं:

    root@kitploit:~
    git submodule status
    

    उदाहरण आउटपुट:

    root@kitploit:~
    bc625d5... bindings/python
    2117822... others/libinjection (v4.0.0)
    0fe989b... others/mbedtls (v4.1.0)
    a3d4405... test/test-cases/secrules-language-tests
    

    यदि कोई उपमॉड्यूल गायब है, तो इसे अग्रणी - के साथ दिखाया जाएगा, उदाहरण के लिए:

    root@kitploit:~
    -bc625d5... bindings/python
    

others/libinjection और others/mbedtls स्रोत बिल्ड के लिए प्रभावी रूप से आवश्यक हैं और निर्माण से पहले प्रारंभ किए जाने चाहिए।

वैकल्पिक बाहरी निर्भरताएँ

कई बाहरी लाइब्रेरी वैकल्पिक हैं और अतिरिक्त सुविधाओं को सक्षम करती हैं, जिनमें शामिल हैं:

  • libcurl – SecRemoteRules के लिए आवश्यक

  • LMDB – स्थायी भंडारण समर्थन

  • Lua – स्क्रिप्टिंग समर्थन

  • XML लाइब्रेरी – विस्तारित XML प्रसंस्करण

  • GeoIP (लीगेसी) / MaxMind

    लीगेसी GeoIP C API (libGeoIP) अप्रचलित है और अब MaxMind द्वारा रखरखाव नहीं किया जाता। अपस्ट्रीम रिपॉजिटरी को संग्रहीत कर दिया गया है और नई तैनाती के लिए इसका उपयोग नहीं किया जाना चाहिए।

    इसके बजाय, ModSecurity आधुनिक MaxMind DB API (libmaxminddb) का समर्थन करता है, जो सक्रिय रूप से बनाए रखा जाता है।

    कॉन्फ़िगरेशन के दौरान आप कुछ इस तरह देख सकते हैं:

    root@kitploit:~
    + GeoIP/MaxMind                                 ....found
        * (MaxMind) v1.12.2
           -lmaxminddb , -I/usr/include/x86_64-linux-gnu
    

    यह इंगित करता है कि libmaxminddb का उपयोग किया जा रहा है (अनुशंसित)।

    लीगेसी GeoIP लाइब्रेरी के बजाय MaxMind DB का उपयोग करने की दृढ़ता से अनुशंसा की जाती है।

लाइब्रेरी दस्तावेज़ीकरण

लाइब्रेरी दस्तावेज़ीकरण कोड के भीतर Doxygen प्रारूप में लिखा गया है। इस दस्तावेज़ीकरण को उत्पन्न करने के लिए, कृपया प्रदान की गई कॉन्फ़िगरेशन फ़ाइल "doxygen.cfg" के साथ doxygen उपयोगिता का उपयोग करें, जो "doc/" उपफ़ोल्डर में स्थित है। यह उपयोग उदाहरणों सहित HTML स्वरूपित दस्तावेज़ीकरण उत्पन्न करेगा।

लाइब्रेरी का उपयोग

लाइब्रेरी C++ और C इंटरफ़ेस प्रदान करती है। कुछ संसाधन वर्तमान में केवल C++ इंटरफ़ेस के माध्यम से उपलब्ध हैं, उदाहरण के लिए, कस्टम लॉगिंग तंत्र बनाने की क्षमता (प्रतिगमन परीक्षण देखें कि ये लॉगिंग तंत्र कैसे काम करते हैं)। उद्देश्य यह है कि दोनों API (C, C++) समान कार्यक्षमता प्रदान करें, यदि आपको API का कोई ऐसा पहलू मिलता है जो किसी विशेष इंटरफ़ेस के माध्यम से गायब है, तो कृपया एक मुद्दा खोलें।

उपफ़ोल्डर उदाहरणों के अंदर, API का उपयोग करने के सरल उदाहरण हैं। नीचे कुछ दिखाए गए हैं:

C++ का उपयोग कर सरल उदाहरण

root@kitploit:~
using ModSecurity::ModSecurity;
using ModSecurity::Rules;
using ModSecurity::Transaction;

ModSecurity *modsec;
ModSecurity::Rules *rules;

modsec = new ModSecurity();

rules = new Rules();

rules->loadFromUri(rules_file);

Transaction *modsecTransaction = new Transaction(modsec, rules);

modsecTransaction->processConnection("127.0.0.1");
if (modsecTransaction->intervention()) {
   std::cout << "There is an intervention" << std::endl;
}

C का उपयोग कर सरल उदाहरण

root@kitploit:~
#include "modsecurity/modsecurity.h"
#include "modsecurity/transaction.h"


char main_rule_uri[] = "basic_rules.conf";

int main (int argc, char **argv)
{
    ModSecurity *modsec = NULL;
    Transaction *transaction = NULL;
    Rules *rules = NULL;

    modsec = msc_init();

    rules = msc_create_rules_set();
    msc_rules_add_file(rules, main_rule_uri);

    transaction = msc_new_transaction(modsec, rules);

    msc_process_connection(transaction, "127.0.0.1");
    msc_process_uri(transaction, "http://www.modsecurity.org/test?key1=value1&key2=value2&key3=value3&test=args&test=test");
    msc_process_request_headers(transaction);
    msc_process_request_body(transaction);
    msc_process_response_headers(transaction);
    msc_process_response_body(transaction);

    return 0;
}

योगदान

आप इस प्रोजेक्ट में योगदान करने के लिए स्वागत से अधिक हैं और ModSecurity के इस नए संस्करण के आसपास समुदाय को बढ़ाने की उम्मीद करते हैं। रुचि के क्षेत्रों में शामिल हैं: नई कार्यक्षमताएँ, सुधार, बग रिपोर्ट, शुरुआती उपयोगकर्ताओं के लिए समर्थन, या कुछ भी जिसमें आप मदद करने को तैयार हैं।

पैच प्रदान करना

हम आपके पैच को GitHub के बुनियादी ढांचे के भीतर रखना पसंद करते हैं ताकि हमारी समीक्षा कार्य और हमारे Q.A. एकीकरण की सुविधा हो। GitHub "पुल अनुरोध" करने के तरीके पर उत्कृष्ट दस्तावेज़ीकरण प्रदान करता है, अधिक जानकारी यहाँ उपलब्ध है: https://help.github.com/articles/using-pull-requests/

कृपया कोडिंग शैली का सम्मान करें। पुल अनुरोधों में विभिन्न कमिट शामिल हो सकते हैं, इसलिए प्रति कमिट एक सुधार या कार्यक्षमता का एक टुकड़ा प्रदान करें। कृपया अपने लक्ष्य कार्य के दायरे से बाहर कुछ भी न बदलें (उदाहरण के लिए, एक फ़ंक्शन में कोडिंग शैली जिसे आपने पारित किया है)। इस प्रोजेक्ट में उपयोग की जाने वाली कोडिंग शैली के बारे में अधिक जानकारी के लिए, कृपया देखें: https://www.chromium.org/blink/coding-style

व्याख्यात्मक कमिट संदेश प्रदान करें। आपकी पहली पंक्ति आपके पैच के मुख्य बिंदुओं को देनी चाहिए, तीसरी और बाद वाली पंक्तियाँ आपके पैच के बारे में अधिक विस्तृत विवरण/तकनीकी विवरण देती हैं। पैच स्पष्टीकरण समीक्षा प्रक्रिया के दौरान मूल्यवान है।

कहाँ से शुरू करें यह नहीं पता?

हमारे कोड के भीतर TODO या FIXME के रूप में चिह्नित विभिन्न आइटम हैं जिन पर आपके ध्यान की आवश्यकता हो सकती है। grep करके आइटमों की सूची देखें:

root@kitploit:~
$ cd /path/to/modsecurity-nginx
$ egrep -Rin "TODO|FIXME" -R *

Doxygen दस्तावेज़ीकरण के भाग के रूप में एक TODO सूची भी उपलब्ध है।

अपने पैच का परीक्षण करना

मैन्युअल परीक्षण के साथ, हम दृढ़ता से आपको हमारे प्रतिगमन परीक्षण और यूनिट परीक्षण का उपयोग करने की सलाह देते हैं। यदि आपने एक ऑपरेटर लागू किया है, तो उसके लिए यूनिट परीक्षण बनाना न भूलें। यदि आप कुछ और लागू करते हैं, तो प्रोत्साहित किया जाता है कि आप इसके लिए पूरक प्रतिगमन परीक्षण विकसित करें।

प्रतिगमन परीक्षण और यूनिट परीक्षण उपयोगिताएँ मूल हैं और किसी बाहरी उपकरण या स्क्रिप्ट की मांग नहीं करती हैं, हालाँकि आपको अन्य रिपॉजिटरी से परीक्षण मामले प्राप्त करने की आवश्यकता है, क्योंकि वे ModSecurity के अन्य संस्करणों के साथ साझा किए जाते हैं, वे अन्य रिपॉजिटरी git उपमॉड्यूल हैं। उपमॉड्यूल रिपॉजिटरी प्राप्त करने और उपयोगिताओं को चलाने के लिए, नीचे दिए गए कमांड का पालन करें:

root@kitploit:~
$ cd /path/to/your/ModSecurity
$ git submodule update --init --recursive
$ make check

डिबगिंग

डिबगिंग प्रक्रिया शुरू करने से पहले, सुनिश्चित करें कि आपका बग कहाँ है। समस्या आपके कनेक्टर या libmodsecurity में हो सकती है। यह पहचानने के लिए कि बग कहाँ है, यह अनुशंसा की जाती है कि आप एक प्रतिगमन परीक्षण विकसित करें जो उस परिदृश्य का अनुकरण करता है जहाँ बग हो रहा है। यदि बग प्रतिगमन-परीक्षण उपयोगिता के साथ पुन: उत्पन्न हो सकता है, तो इसे डीबग करना और यह सुनिश्चित करना कि यह फिर कभी न हो, कहीं अधिक सरल होगा। Linux पर यह अनुशंसा की जाती है कि डिबगिंग करने वाला कोई भी व्यक्ति आवश्यकतानुसार gdb और/या valgrind का उपयोग करे।

कॉन्फ़िगरेशन/संकलन समय के दौरान, आप कंपाइलर ऑप्टिमाइज़ेशन को अक्षम करना चाह सकते हैं जिससे आपके "बैक ट्रेस" पठनीय डेटा से भर जाएँ। संकलन ऑप्टिमाइज़ेशन मापदंडों को अक्षम करने के लिए CFLAGS का उपयोग करें:

root@kitploit:~
$ export CFLAGS="-g -O0"
$ ./build.sh
$ ./configure --enable-assertions=yes
$ make
$ sudo make install

"Assertions हमें धारणाओं का दस्तावेज़ीकरण करने और विकास प्रक्रिया में शुरुआती उल्लंघनों का पता लगाने की अनुमति देते हैं। इससे भी महत्वपूर्ण बात, एसर्शन हमें न्यूनतम प्रयास के साथ उल्लंघनों का पता लगाने की अनुमति देते हैं।" https://dl.acm.org/doi/pdf/10.1145/240964.240969

जहाँ लागू हो, एसर्शन का उपयोग करने और परीक्षण और डिबगिंग वर्कफ़्लो के दौरान उन्हें '--enable-assertions=yes' के साथ सक्षम करने की अनुशंसा की जाती है।

बेंचमार्किंग

स्रोत ट्री में एक बेंचमार्क टूल शामिल है जो लाइब्रेरी प्रदर्शन को मापने में मदद कर सकता है। उपकरण test/benchmark/ निर्देशिका में स्थित है। बिल्ड प्रक्रिया बाइनरी को भी यहाँ बनाती है, इसलिए संकलन समाप्त होने के बाद आपके पास उपकरण होगा।

चलाने के लिए, बस टाइप करें:

root@kitploit:~
cd test/benchmark
$ ./benchmark
Doing 1000000 transactions...

आप कम मान भी पास कर सकते हैं:

root@kitploit:~
$ ./benchmark 1000
Doing 1000 transactions...

समय मापने के लिए:

root@kitploit:~
$ time ./benchmark 1000
Doing 1000 transactions...

real	0m0.351s
user	0m0.337s
sys	0m0.022s

यह बहुत तेज़ है क्योंकि बेंचमार्क न्यूनतम modsecurity.conf.default कॉन्फ़िगरेशन का उपयोग करता है, जिसमें बहुत अधिक नियम शामिल नहीं हैं:

root@kitploit:~
$ cat basic_rules.conf

Include "../../modsecurity.conf-recommended"

वास्तविक नियमों के साथ मापने के लिए, उसी निर्देशिका में डाउनलोड स्क्रिप्ट में से एक चलाएँ:

root@kitploit:~
$ ./download-owasp-v3-rules.sh
Cloning into 'owasp-v3'...
remote: Enumerating objects: 33007, done.
remote: Counting objects: 100% (2581/2581), done.
remote: Compressing objects: 100% (907/907), done.
remote: Total 33007 (delta 2151), reused 2004 (delta 1638), pack-reused 30426
Receiving objects: 100% (33007/33007), 9.02 MiB | 16.21 MiB/s, done.
Resolving deltas: 100% (25927/25927), done.
Switched to a new branch 'tag3.0.2'
/path/to/ModSecurity/test/benchmark
Done.

$ cat basic_rules.conf

Include "../../modsecurity.conf-recommended"

Include "owasp-v3/crs-setup.conf.example"
Include "owasp-v3/rules/*.conf"

अब कमांड बहुत अधिक मान देगा।

बेंचमार्क कैसे काम करता है

उपकरण एक सीधा रैपर एप्लिकेशन है जो लाइब्रेरी का उपयोग करता है। यह एक ModSecurity इंस्टेंस और एक RuleSet इंस्टेंस बनाता है, फिर निर्दिष्ट संख्या के आधार पर एक लूप चलाता है। इस लूप के भीतर, यह वास्तविक HTTP लेनदेन का अनुकरण करने के लिए एक Transaction ऑब्जेक्ट बनाता है।

प्रत्येक लेन-देन कुछ GET पैरामीटर के साथ एक HTTP/1.1 GET अनुरोध है। सामान्य हेडर जोड़े जाते हैं, उसके बाद प्रतिक्रिया हेडर और एक XML बॉडी जोड़ी जाती है। चरणों के बीच, उपकरण जाँचता है कि कोई हस्तक्षेप हुआ है या नहीं। सभी लेन-देन समान डेटा के साथ बनाए जाते हैं।

ध्यान दें कि उपकरण अंतिम चरण (लॉगिंग) को कॉल नहीं करता है।

यदि आप किसी भिन्न नियम सेट के साथ प्रयास करना चाहते हैं तो कृपया basic_rules.conf को रीसेट करना याद रखें।

मुद्दों की रिपोर्ट करना

यदि आप एक कॉन्फ़िगरेशन समस्या का सामना कर रहे हैं या कुछ वैसा काम नहीं कर रहा जैसा आप उम्मीद करते हैं, तो कृपया ModSecurity उपयोगकर्ता मेलिंग सूची का उपयोग करें। GitHub पर मुद्दों का भी स्वागत है, लेकिन हम पसंद करते हैं कि उपयोगकर्ता पहले मेलिंग सूची पर प्रश्न पूछें ताकि आप एक पूरे समुदाय तक पहुँच सकें। साथ ही, नया मुद्दा खोलने से पहले मौजूदा मुद्दों की जाँच करना न भूलें।

यदि आप GitHub पर एक नया मुद्दा खोलने जा रहे हैं, तो हमें अपने libmodsecurity का संस्करण और एक विशिष्ट कनेक्टर का संस्करण (यदि कोई हो) बताना न भूलें।

सुरक्षा मुद्दा

कृपया किसी भी सुरक्षा मुद्दे को सार्वजनिक न करें। हमसे संपर्क करें: [email protected] पर मुद्दे की रिपोर्ट करें। एक बार समस्या ठीक हो जाने पर आपको श्रेय दिया जाएगा।

सुविधा अनुरोध

हम मेलिंग सूचियों के माध्यम से समुदाय के साथ किसी भी नई सुविधा अनुरोध पर चर्चा करने के लिए तैयार हैं। आप वैकल्पिक रूप से, GitHub मुद्दे खोलने में संकोच न करें जो नई सुविधाओं का अनुरोध करते हैं। नया मुद्दा खोलने से पहले कृपया जाँच लें कि क्या उसी विषय पर कोई मुद्दा पहले से खोला गया है।

बाइंडिंग

libModSecurity का डिज़ाइन बाइंडिंग के साथ एकीकरण की अनुमति देता है। संभावित बाइंडिंग के साथ आसान एकीकरण बनाने के लिए API [बाइनरी] संगतता को तोड़ने से बचने का एक प्रयास है। वर्तमान में, समुदाय द्वारा बनाए रखी गई कुछ उल्लेखनीय परियोजनाएँ हैं:

  • Python - https://github.com/actions-security/pymodsecurity
  • Rust - https://github.com/rkrishn7/rust-modsecurity
  • Varnish - https://github.com/xdecock/vmod-modsecurity

पैकेजिंग

डिस्ट्रोस में समय पर हमारे पैकेज रखना एक इच्छा है जो हमें है, इसलिए हमें बताएं कि पैकेजर के रूप में आपके काम को सुविधाजनक बनाने के लिए हम कुछ कर सकते हैं।

प्रायोजक नोट

ModSecurity का विकास Trustwave द्वारा प्रायोजित है। प्रायोजन 1 जुलाई, 2024 को समाप्त होगा। अतिरिक्त जानकारी यहाँ पाई जा सकती है https://www.trustwave.com/en-us/resources/security-resources/software-updates/end-of-sale-and-trustwave-support-for-modsecurity-web-application-firewall/

टूल डाउनलोड करें

एक अग्रणी - इंगित करता है कि उपमॉड्यूल प्रारंभ या प्राप्त नहीं किया गया है।

  • test/test-cases/secrules-language-tests – make check द्वारा उपयोग किया जाने वाला साझा SecRules अनुरूपता और प्रतिगमन परीक्षण सूट।

  • bindings/python – ModSecurity के लिए Python बाइंडिंग (कोर लाइब्रेरी संकलन के लिए आवश्यक नहीं)।