mod_security - گرگ شب
X
تبلیغات
رایتل
جمعه 18 آبان‌ماه سال 1386 ساعت 11:54 ب.ظ
mod_security
Web Intrusion Detection And Prevention

خب!!! در بحث امنیت قصد دارم ماژولهای امنیتی آپاچی رو بررسی کنیم. امنیت یا Security بحثی است که هیچ وقت تمومی نداره و همیشه سیستمهای کامپیوتری ما در خطر حمله هستند حتی ایمن ترین سیستمها.
یکی از مهمترین و اساسی ترین ماژولهای امنیتی آپاچی که به عنوان فایروال شخصی یا IDS ارائه می شود mod_security است.
- بررسی payload های بسته های ارسالی با متد post
- بررسی هدرها
- بررسی کوکی های کابر
- بررسی متغیرهای محیطی
- بررسی متغیرهای سرور
- بررسی خروجی اسکریپتها قبل از اجرا
- Request Filtering
- بررسی بسته های HTTPS
- ثبت وقایع
- حذف اسلشهای متوالی
- حذف فضاهای خالی , null byte-%00
- بررسی صحت Byte Range (که تنها مقادیر کاراکتری مشخصی می‌توانند به عنوان بخشی از درخواست قرار گیرند.)
- بررسی صحت URL Encoding
- بررسی صحت Unicode Encoding
- و ...
اینها تنها گوشه ای از عملکرد این ماژول است در واقع این ماژول یک راه حل مناسب برای جلوگیری از حملات XSS, CSRF, CRLF , SQL Injection , Buffer Overflow , جعل محتوا و فرمانهای OS در اختیار شما قرار می دهد.
هر کدام از حملات فوق در صورت نیاز به اختصار مورد بررسی قرار می گیرد.
طریقه استفاده از این ماژول پس از نصب آن به دو صورت است :
1- SecFilter KEYWORD [Actions]
2- SecFilterSelective LOCATION KEYWORD [Actions]
البته من هم مثل شما روش دوم رو ترجیح می دم.
قبل از استفاده شما نیاز به نوشتن چند خط در فایل پیکربندی دارید :

# Turn the filtering engine On or Off
SecFilterEngine On

# Make sure that URL encoding is valid
SecFilterCheckURLEncoding On

# Unicode encoding check
SecFilterCheckUnicodeEncoding Off

# Only allow bytes from this range
SecFilterForceByteRange 32 126

# Only log suspicious requests
SecAuditEngine RelevantOnly

# The name of the audit log file
SecAuditLog logs/audit_log
# Debug level set to a minimum
SecFilterDebugLog logs/modsec_debug_log
SecFilterDebugLevel 0

# Should mod_security inspect POST payloads
SecFilterScanPOST On

# By default log and deny suspicious requests
# with HTTP status 500
SecFilterDefaultAction "deny,log,status:500"


کامتنها خود گویای همه چیز هست!
البته نباید سخت گرفت قضیه ساده تر از اونیه که فکر می کنید.
خب حالا یک مثال در مورد جلوگیری از حملات SQL Injection با استفاده از کوکی :
SecFilterSelective COOKIE_sessionid "!^(|[0-9]{1,9})$"
با درج دستور فوق در فایل پیکربندی آپاچی ، تنها کوکی هایی پذیرفته می شوند که شامل ارقام 9-1 باشند.
همچنین شما می توانید با استفاده از این ماژول فقط به ثبت رویدادها (LOG) بپردازید بدون آنکه جلوی درخواستی
را بگیرید یا پیغامی به کاربر نشان دهید.
این ماژول را می توانید به همراه راهنمای نصب و راه اندازی از سایت رسمی آن تهیه کنید :
http://www.modsecurity.org
n!ghtw0lf
good luck