اجازه دهید در ابتدا آمار را بررسی کنیم تا علت استفاده از ModSecurity را بیابیم:
- گزارش آسیب پذیری برنامه کاربردی وب Acunetix در سال 2019 اشاره می کند که 46درصد وب سایت ها دارای آسیب پذیری های امنیتی بالا هستند. آنها همچنین می گویند 87درصد وب سایت ها دارای آسیب پذیری های امنیتی متوسط هستند.
- گزارش Web Attack از Akamai اشاره می کند که “حملات در سطح برنامه ها مانند تزریق SQL یا برنامه نویسی cross-site حدودا 38درصد افزایش یافته است.
به عبارت دیگر ، همه ی ما می توانیم با اقدامات کم, امنیت بیشتری داشته باشیم. امیدوار هستیم ، شما نیز با استفاده از ModSecurity برای محافظت از وب سایت, موافق باشید.
در زیر به حملاتی که mod security باعث جلوگیری از آنها می شود اشاره شده است:
- تزریق sql(sqli)
- برنامه نیسی Cross-Site(XSS)
- درج پرونده محلی (LFI)
- درج پرونده از طریق ریموت(RFI)
- اجرای کد از راه دور (RCE)
- تزریق کد PHP
- نقض پروتکل HTTP
- رفع Session
- تشخیص اسکنر
- مسدود کردن آی پی کشور
ModSecurity همچنین از نشت کد تصادفی جلوگیری می کند. به عنوان مثال ، یک برنامه وب می تواند خطایی ایجاد کند که جزئیات حساس درباره برنامه یا سرور را نشان می دهد. ModSecurity احتمال مشاهده این جزئیات توسط مهاجمان را کاهش می دهد.
در زیر لیست از خطاهای احتمالی PHP را ببینید که ModSecurity از نمایش آنها در مرورگر جلوگیری می کند:
برای نمونه خطای 403 در وردپرس
ممکن است خطایی مشابه با خطای “updating failed” در وردپرس مشاهده کنید.
این خطا می تواند دلایل زیادی داشته باشد. دلایل آن شامل موارد زیر است: نادرست بودن تنظیمات سرور ، خراب شدن پرونده .htaccess ، دسترسی های نادرست پرونده و موارد دیگر.
بنابراین ، برای اینکه علت خطای 403 مشخص شود ، به اطلاعات بیشتری نیاز خواهید داشت.
در ابتدا بر روی تب NETWORK در developer tools کلیک کنید.
در پنجره ی NETWORK می توانید خطای قرمز رنگ را بررسی کنید.
چگونه تایید شود که modsecurity باعث بروز خطای 403 شده است؟
فایل لاگ در ابونتو در مسیر /var/log/apache2/modsec_audit.log و مسیر زیر در NGINX است.
/var/log/httpd/ modsec_audit.log یا /var/log/modsec_audit.log
گزارش ModSecurity از بخشهایی تشکیل شده است. ‘A’ ، ‘B’ ، ‘و در نهایت’ Z ‘نامگذاری شده است. بخش ها با یک شناسه تصادفی منحصر به فرد نشان داده می شوند. شناسه چیزی شبیه به این خواهد بود:
همه بخشها اجباری نیستند ، اما بخشهای A و Z اجباری هستند.
برای مثال در زیر نمونه ای از لاگ modsecurity قرار دارد.
نگاهی می اندازیم به اطلاعات بخش H
- این مقاله می گوید که کد (“<! -“) در پست ارسال شده به سرور وردپرس, مشاهده شده است.
- عدد “941180” نشان دهنده شماره قانون ModSecurity است که باعث بروز محدودیت شده است.
- مقدار
نسخه قانون استفاده شده را نشان می دهد.
به دقت به شناسه ها و اعداد توجه کنید زیرا باید در زمان غیر فعال کردن به خاطر داشته باشید.
چرا هشدار غلط وجود دارد؟
هشدارها همیشه هم درست نیستند و برخی اوقات ممکن است اطلاعات اشتباه به ما بدهند.
استفاده از مجموعه قوانین جدید, دریافت آلارم های اشتباه را کاهش می دهد.با استفاده از نسخه 3 حدودا 90 درصد اخطارهای اشتباه کاهش خواهد یافت.
در ادامه ی این مقاله به چگونگی غیر فعال قوانین و یا غیر فعال شدن کلی modsecurity خواهیم پرداخت.