جدول محتوایی
فایروال 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، بیشترین است. پیشنهاد میکنم داکیومنت گیت هاب این برنامه را برای کسب اطلاعات بیشتر مطالعه کنید.
جالب بود
ممنون هرچی در مورد این موضوع میخواستم به راحتی عنوان کرده بودید
نامبروان هاستینگ هستید