جدول محتوایی

فایروال ModSecurity

ModSecurity یک برنامه فایروال تحت وب برای وب سرور آپاچی است. فایروال ModSecurity علاوه بر ارائه قابلیت‌های گزارش‌گیری، می‌تواند ترافیک HTTP را به‌منظور شناسایی حملات به‌صورت بلادرنگ نظارت کند. ModSecurity همچنین به عنوان یک ابزار تشخیص نفوذ عمل می کند و به شما امکان می دهد به رویدادهای مشکوکی که در سیستم های وب شما رخ می دهد واکنش نشان دهید.

خرید سرور مجازی ایران با بهترین قیمت

 

اگرچه فایروال ModSecurity با یک پیکربندی پیش فرض ارائه می شود، ما در این مقاله از OWASP ModSecurity Core Rule Set (CRS) نسخه 3.0.2 استفاده می کنیم. هدف پروژه OWASP «ارائه مجموعه‌ای از قوانین تشخیص حمله عمومی که به راحتی قابل اتصال است که سطح پایه حفاظت را برای هر برنامه وب فراهم می‌کند» ارائه می‌کند، و CRS برای «محافظت از برنامه‌های کاربردی وب در برابر طیف گسترده‌ای از حملات…» است. با حداقل هشدارهای غلط.» این نسخه از CRS به ModSecurity 2.8.0 یا بالاتر نیاز دارد. پیکربندی از طریق مجموعه قوانین برای جلوگیری از حملات رایج مانند تزریق SQL، اسکریپت نویسی بین سایت و اجرای کد از راه دور انجام می شود.

 

نصب فایروال ModSecurity

قبل از نصب فایروال ModSecurity، باید Apache را روی سرور مجازی خود نصب کنید. در این مقاله از پشته LAMP استفاده می کنیم.

اوبونتو یا دبیان :

sudo apt-get install libapache2-mod-security2

راه اندازی مجدد آپاچی:

/etc/init.d/apache2 restart

بررسی کنید که نسخه ModSecurity 2.8.0 یا بالاتر باشد:

apt-cache show libapache2-mod-security2

 

توجه:
هنگام فهرست کردن همه مدها با استفاده از apachectl -M، فایروال ModSecurity تحت نام security2_module فهرست می شود.

 

CentOS :

yum install mod_security

با وارد کردن دستور زیر آپاچی را ریستارت کنید:

/etc/init.d/httpd restart

بررسی کنید که نسخه ModSecurity 2.8.0 یا بالاتر باشد:

yum info mod_security

 

 

مجموعه قوانین هسته فایروال OWASP ModSecurity

مراحل زیر برای توزیع های مبتنی بر دبیان است. مسیرهای فایل و دستورات برای RHEL کمی متفاوت خواهد بود.

1. نام فایل پیش‌فرض ModSecurity را منتقل کرده و تغییر دهید:

mv /etc/modsecurity/modsecurity.conf-recommended modsecurity.conf

 

2. در صورت نیاز git را نصب کنید:

sudo apt install git

 

3. OWASP ModSecurity CRS را از Github دانلود کنید:

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

 

4. به دایرکتوری دانلود شده بروید. انتقال و نام crs-setup.conf.example را به crs-setup.conf تغییر دهید. سپس rules/ را نیز حرکت دهید.

cd owasp-modsecurity-crs
mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf
mv rules/ /etc/modsecurity/

 

5. فایل پیکربندی باید مطابق با مسیر بالا مطابق با دستورالعمل IncludeOptional باشد. یک دستورالعمل Include دیگر اضافه کنید که به مجموعه قوانین اشاره می کند:

etc/apache2/mods-available/security2.conf

<IfModule security2_module>
      # Default Debian dir for modsecurity's persistent data
      SecDataDir /var/cache/modsecurity

      # Include all the *.conf files in /etc/modsecurity.
      # Keeping your local configuration in that directory
      # will allow for an easy upgrade of THIS file and
      # make your life easier
      IncludeOptional /etc/modsecurity/*.conf
      Include /etc/modsecurity/rules/*.conf
</IfModule>

 

6. Apache را مجدداً راه اندازی کنید تا تغییرات اعمال شوند:

/etc/init.d/apache2 restart

 

تست ModSecurity

OWASP CRS بر روی ModSecurity ساخته می شود تا قوانین موجود را بتوان گسترش داد.

1. به پیکربندی پیش‌فرض Apache بروید و دو دستورالعمل دیگر را با استفاده از پیکربندی پیش‌فرض به عنوان مثال اضافه کنید:

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403,msg:'Our test rule has triggered'"
</VirtualHost>

 

2. آپاچی را مجددا راه اندازی کنید و صفحه فهرست را با دستور curl بچرخانید تا عمدا آلارم ها را راه اندازی کنید:

curl localhost/index.html?testparam=test

کد پاسخ باید 403 باشد. باید پیامی در گزارش ها وجود داشته باشد که نشان دهد قانون فایروال ModSecurity تعریف شده کار می کند. می توانید با استفاده از: sudo tail -f /var/log/apache2/error.log بررسی کنید.

ModSecurity: Access denied with code 403 (phase 2). String match “test” at ARGS:testparam. [file “/etc/apache2/sites-enabled/000-default.conf”] [line “24”] [id “1234”] [msg “Our test rule has triggered”] [hostname “localhost”] [uri “/index.html”] [unique_id “WfnEd38AAAEAAEnQyBAAAAAB”]

 

3.تأیید کنید که OWASP CRS در حال اجرا است:

curl localhost/index.html?exec=/bin/bash

گزارش های خطا را دوباره بررسی کنید: این قانون تلاش برای اجرای یک اسکریپت bash دلخواه را گرفته است.

ModSecurity: Warning. Matched phrase “bin/bash” at ARGS:. [file “/etc/modsecurity/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf”] [line “448”] [id “932160”] [rev “1”] [msg “Remote Command Execution: Unix Shell Code Found”] [data “Matched Data: bin/bash found within ARGS:: exec/bin/bash”] [severity “CRITICAL”] [ver “OWASP_CRS/3.0.0”] [maturity “1”] [accuracy “8”] [tag “application-multi”] [tag “language-shell”] [tag “platform-unix”] [tag “attack-rce”] [tag “OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION”] [tag “WASCTC/WASC-31”] [tag “OWASP_TOP_10/A1”] [tag “PCI/6.5.2”] [hostname “localhost”] [uri “/index.html”] [unique_id “WfnVf38AAAEAAEqya3YAAAAC”]

 

مراحل بعدی

فایل های پیکربندی واقع در /etc/modsecurity/*.conf را بررسی کنید. اکثر فایل ها با تعاریف گزینه های موجود کامنت می شوند. فایروال ModSecurity از یک سطح امتیازدهی استفاده می کند که در آن بالاترین عدد یعنی 5، بیشترین است. پیشنهاد میکنم داکیومنت گیت هاب این برنامه را برای کسب اطلاعات بیشتر مطالعه کنید.

 

12رای - امتیاز 5 ممنون از امتیازی که دادید..!