برای آموزش نصب WAF روی سرورهای لینوکسی در ابتدا باید بدانیم WAF چیست؟ شما از فایروالهای مبتنی بر میزبان و فایروالهای شبکه استفاده کردهاید اما آیا تا به حال به پیادهسازی فایروال برنامههای وب یا WAF فکر کردهاید؟ فایروالها به هر شکلی از ابتدای شبکهسازی وجود داشتهاند. اولین فایروالها حتی به عنوان فایروال شناسایی نشدند. آنها چیزی بیش از موانع فیزیکی بین شبکهها نبودند. در دهه ۱۹۸۰ اولین دستگاهی که بهطور خاص برای فایروال طراحی شده بود توسط DEC توسعه یافت. از آن زمان، فایروالها به شکلهای بی شماری تکامل یافتهاند.
استفاده از وب اپلیکیشنها برای کسبوکارهای مدرن ضروری است، اما سایه تهدیدات امنیتی از سوی هکرها و مجرمان سایبری روی سر آنها سنگینی میکند. دیواره آتش وب (WAF) برای محافظت از وب اپلیکیشنها در برابر حملات به وجود آمده است. دیواره آتش وب یک ابزار امنیتی حیاتی است که ترافیک HTTP مخرب را فیلتر، مسدود و بر آن نظارت میکند. در این مطلب بررسی میکنیم که WAF چیست و چگونه کار میکند، برای چه کاربردهایی مناسب است، چرا اهمیت دارد و با انواع آن نیز آشنا میشویم. همچنین به نصب و راه اندازی آن روی سرور لینوکس خواهیم پرداخت.
فایروال چیست؟
فایروال به طور کلی و در سادهترین حالت خود دستگاهی است که برای اجازه یا رد کردن ترافیک بر اساس مجموعهای از قوانین طراحی شده است. این قوانین میتوانند به سادگی «اجازه دادن به HTTP و مسدود کردن هر چیز دیگری» باشند یا میتوانند بینهایت پیچیدهتر باشند، از جمله پروتکلها، پورتها، آدرسها و حتی اثر انگشت برنامه. برخی از فایروالهای مدرن حتی از یادگیری ماشینی نیز در ترکیب استفاده کردهاند.
Waf چیست؟
میتوان گفت WAF نوعی فایروال است که ترافیک پروتکل Hypertext Transfer یا HTTP را در حین رفتوآمد به یک وبسایت یا وب اپلیکیشن فیلتر، مسدود و بر آن نظارت میکند. WAF میتواند مبتنیبر شبکه، هاست یا ابر باشد. این فایروال معمولا از طریق Reverse Proxy مستقر میشود و در مقابل یک یا چند وبسایت یا اپلیکیشن قرار میگیرد.
مانند سایر فناوریها، با تکامل فایروالها، برخی کاربردهای خاص برای فایروالها شناسایی شدهاند. فایروالهای وباپلیکیشن (WAF) یکی از این موارد کاربردی هستند. WAF یک فایروال است که به طور خاص برای مدیریت ترافیک “وب” یعنی ترافیک با استفاده از پروتکل HTTP طراحی شده است.
به طور کلی، نقش WAF این است که تمام ترافیک HTTP را که برای یک وب سرور تعیین میشود، بررسی کند، درخواستهای شناسایی شده تحت عنوان “بد” را کنار بگذارد و ترافیکهای شناسایی شده تحت عنوان “خوب” را به آن منتقل کند. همانطور که ممکن است حدس بزنید جزئیات نحوه عملکرد این کار کمی پیچیدهتر است.
مانند فایروالهای معمولی، انتظار میرود که WAF انواع خاصی از ترافیک را مسدود کند. برای انجام این کار، باید لیستی از مواردی که باید مسدود شوند را در اختیار WAF قرار دهید. در نتیجه، محصولات اولیه WAF بسیار شبیه به سایر محصولات مانند نرمافزار ضد ویروس، محصولات IDS/IPS و موارد دیگر هستند. این همان چیزی است که به عنوان تشخیص مبتنی بر امضا شناخته میشود. امضاها معمولاً مشخصه خاصی از بسته HTTP را مشخص میکنند که میخواهید اجازه دهید یا رد کنید.
WAF که بهعنوان یک ابزار شبکه، پلاگین سرور یا سرویس ابری اجرا میشود، هر بسته را بررسی میکند و از یک رویکرد شرطی برای تجزیهوتحلیل منطق لایه 7 وب اپلیکیشنها استفاده میکند و قادر است ترافیک مضری که ممکن است به نفوذپذیری بیشتر وب و آسیبپذیری آن منجر شود را فیلتر و مسدود کند. در ادامه توضیح اینکه WAF یا دیواره آتش وب چیست میتوان اضافه کرد که یک کنترل امنیتی رایج است که برای محافظت از سیستمهای وب در برابر سوءاستفاده، بدافزارها، جعل هویت و سایر تهدیدات و آسیبپذیریهای شناختهشده و ناشناخته توسط شرکتها استفاده میشود.
WAF میتواند چندین مورد از خطرناکترین نقصهای امنیتی وب اپلیکیشنها را بلافاصله شناسایی کرده و از آنها جلوگیری کند. این در حالی است که فایروالهای سنتی شبکه و سایر سیستمهای تشخیص نفوذ (IDSها) و سیستمهای پیشگیری از نفوذ (IPSها) ممکن است قادر به انجام این کار نباشند. WAFها بهویژه برای کسبوکارهایی مانند فروشگاههای اینترنتی یا بانکداری الکترونیک که محصولات و خدمات خود را از طریق اینترنت ارائه میکنند کاربرد دارند.
چرا استفاده از WAF اهمیت زیادی دارد؟
اهمیت WAF یا دیواره آتش وب چیست؟ WAFها برای تعداد زیادی از سازمانها و شرکتهایی که محصولات یا خدماتی را بهصورت آنلاین ارائه میدهند اهمیت دارند. نمونههایی از این شرکتها شامل شرکتهای توسعهدهنده اپلیکیشنهای موبایل، ارائهکنندگان شبکههای اجتماعی و ارائهدهندگان خدمات بانکی دیجیتال میشود. WAF میتواند به شما در محافظت از دادههای حساس مانند سوابق فعالیتهای مشتریان و اطلاعات کارت بانکی آنها کمک کند و مانع از نشت این اطلاعات شود.
سازمانها معمولا بسیاری از دادههای حساس خود را در یک دیتابیس Backend ذخیره میکنند که از طریق وب اپلیکیشنها میتوان به آن دسترسی پیدا کرد. در حال حاضر شرکتها روزبهروز بیشتر و بیشتر از اپلیکیشنهای موبایل و دستگاههای IoT برای تسهیل تعاملات تجاری استفاده میکنند و بسیاری از تراکنشهای آنلاین در لایه اپلیکیشن انجام میشود. حملات سایبری به اپلیکیشنها نیز اغلب برای دسترسی به این دادهها رخ میدهد.
استفاده از WAF به شما کمک میکند الزامات انطباق نظیر PCI DSS را برآورده کنید. این الزامات برای هر سازمانی که اطلاعات کارت و حساب بانکی مشتریان خود را نگهداری میکند و نیاز به نصب فایروال دارد، ضروری است. بنابراین WAF یکی از اجزای ضروری مدل امنیتی یک سازمان است. داشتن WAF بسیار ضروری و مهم است. اما توصیه میشود آن را با سایر اقدامات امنیتی مانند سیستمهای تشخیص نفوذ (IDS)، سیستمهای پیشگیری از نفوذ (IPS) و فایروالهای سنتی ترکیب کنید تا به یک مدل امنیتی دفاعی عمیق دست پیدا کنید.
شما میتوانید با خرید سرور و راه اندازی یک سیستم WAF بر روی آن، از امنیت سایت و برنامههای خود اطمینان حاصل کنید.
روش کار دیواره آتش وب یا waf چیست؟
اکنون بررسی میکنیم که WAF یا دیواره آتش وب چگونه کار میکند؟ WAF میتواند یک نرمافزار، دستگاه یا سرویس باشد. دیواره آتش وب درخواستهای HTTP را تجزیهوتحلیل میکند و مجموعهای از قوانین را اعمال میکند که مشخص میکنند چه بخشهایی از تبادل اطلاعات سالم و چه بخشهایی مخرب هستند. بخشهای اصلی تبادل اطلاعات HTTP که WAF تجزیه و تحلیل میکند، درخواستهای GET و POST هستند. درخواستهای GET برای بازیابی دادهها از سرور و درخواستهای POST برای ارسال دادهها به سرور برای تغییر وضعیت آن استفاده میشوند. با این توصیفات اکنون میدانیم WAF چیست و چگونه کار میکند.
WAF میتواند یکی از سه رویکرد زیر را برای تحلیل و فیلتر کردن محتوای موجود در درخواستهای HTTP اتخاذ کند:
- Whitelisting: این مدل امنیتی، تمام درخواستها را بهطور پیشفرض رد میکند و فقط به درخواستهای قابل اعتماد اجازه عبور میدهد. این مدل، فهرستی از آدرسهای IP امن ارائه میکند. در Whitelisting منابع کمتری در مقایسه با Blacklisting مصرف میشود. ویژگی منفی Whitelisting این است که ممکن است بهطور ناخواسته ترافیک سالم را مسدود کند. یعنی درحالیکه شبکه گستردهای ایجاد میکند و میتواند کارآمد باشد، ممکن است دقیق عمل نکند.
- Blacklisting: این مدل امنیتی، از امضاهای ازپیشتعیینشده برای مسدود کردن ترافیک اپلیکیشن مخرب و محافظت از آسیبپذیریهای وبسایتها یا وب اپلیکیشنها استفاده میکند. Blacklisting فهرستی از قوانین است که بستههای مخرب وب را نشان میدهد. Blacklisting بیشتر برای وبسایتها و وب اپلیکیشنهای عمومی مناسب است. زیرا آنها ترافیک زیادی را از آدرسهای IP ناآشنا دریافت میکنند که مخرب شناخته نمیشود. نقطه ضعف Blacklisting این است که منابع بیشتری مصرف میکند و برای فیلتر کردن بستهها براساس ویژگیهای خاص به اطلاعات بیشتری نیاز دارد.
- امنیت ترکیبی: مدل امنیت ترکیبی، از عناصر Whitelisting و Blacklisting بهطور همزمان استفاده میکند.
صرفنظر از مدل امنیتی مورد استفاده WAF، تعاملات HTTP را تجزیهوتحلیل میکند و فعالیتهای مخرب یا ترافیک را قبل از رسیدن به سرور برای پردازش بهتر کاهش میدهد یا حذف میکند. اکثر WAFها برای مقابله با آسیبپذیریهای جدید، باید خط مشیهای خود را بهطور مرتب آپدیت کنند. بااینحال، پیشرفتهایی که اخیرا در یادگیری ماشین بهوجود آمده، برخی از WAFها را قادر ساخته تا بهطور خودکار آپدیت شوند.
مبین هاست یکی از مراجع اصلی سرور مجازی با منابع اختصاصی در ایران است که امکان خرید انواع سرور در لوکیشنهای مختلف را در دسترس قرار میدهد. سرورهای ارائهشده توسط مبین هاست توسط فایروالهای بهروز و کارآمد محافظت میشود تا خیالتان از بابت امنیت دادههای حیاتی کسبوکار راحت باشد.
کاربردهای دیواره آتش وب یا WAF چیست؟
WAF یا دیواره آتش وب برای چه کاربردهایی مناسب است؟ برخی از رایجترین کاربردهای WAF شامل موارد زیر میشوند:
- محافظت از وبسایتها و برنامهها در برابر حملات شناختهشده و ناشناخته: WAFها میتوانند طیف وسیعی از حملات سایبری را شناسایی و مسدود کنند. برخی از این حملات شامل حملاتی که از طریق آسیبپذیریهای شناختهشده صورت میگیرند، حملات جدید و حملات Zero day میشود.
- قفل کردن سیستمهای ناامن: از WAF میتوان برای اعمال سیاستهای امنیتی استفاده کرد تا فقط کاربران و درخواستهای مجاز بتوانند به وب اپلیکیشنها دسترسی داشته باشند.
- جلوگیری از نشت دادهها: از WAF میتوان برای جلوگیری از درز یا سرقت دادههای حساس مانند شماره کارت بانکی و اطلاعات شخصی استفاده کرد.
- کنترل دسترسی به URLها و پورت ها: از WAF میتوان برای محدود کردن دسترسی به URLها و پورتهای خاص یا مسدود کردن ترافیک استفاده کرد.
- کاهش خطرات پیکربندی نامناسب سرورها: از WAF میتوان برای اصلاح تنظیمات نادرست در وب سرورها و مواردی مانند رمزعبور ضعیف و پروتکلهای ناامن استفاده کرد.
- محافظت آنی: WAFها را میتوان بهشکلی پیکربندی کرد تا آپدیتهای آنی برای مقابله با تهدیدات و آسیبپذیریهای جدید دریافت کنند. بدینترتیب، سریعا در برابر هرگونه تهدید آنی مقاوم خواهند شد.
- محافظت از اندپوینتهای API: از WAF میتوان برای محافظت از اندپوینتهای API در برابر حملاتی مانند دسترسی غیرمجاز و دستکاری دادهها استفاده کرد.
- مسدود کردن رباتهای مخرب: از WAF میتوان برای مسدود کردن رباتهای مخربی که سعی در حذف دادهها یا انتشار بدافزار دارند استفاده کرد.
- اعمال محدودیت در ترافیک ورودی: از WAF میتوان برای اعمال محدودیت در ترافیک ورودی استفاده کرد تا از نفوذ مهاجمان به سرور از طریق درخواستها جلوگیری شود.
- فیلتر کردن محتوای نامناسب: از WAF میتوان برای فیلتر کردن محتوای نامناسب مانند فحاشی یا نفرت پراکنی استفاده کرد.
انواع WAF
در ادامه با رایجترین انواع WAF آشنا میشوید.
WAFهای مبتنی بر شبکه
WAFهای مبتنیبر شبکه یکی از رایجترین انواع WAF به شمار میروند که معمولا مبتنیبر سختافزار هستند و میتوانند Latency را کاهش دهند. زیرا بهصورت محلی از طریق یک دستگاه اختصاصی نصب میشوند و تا حد امکان نزدیک به اپلیکیشن هستند. اکثر فروشندگان بزرگ و مهم WAFهای مبتنیبر شبکه، امکان تکرار قوانین و تنظیمات را در چندین دستگاه فراهم میکنند. در نتیجه، استقرار، پیکربندی و مدیریت در مقیاس بزرگ امکانپذیر میشود. بزرگترین ویژگی منفی این نوع WAF هزینه بالای آن است. علاوهبر هزینه اولیه برای خرید و نصب، یک سری هزینههای عملیاتی مداوم برای نگهداری هم دارند.
WAFهای مبتنی بر هاست
WAFهای مبتنیبر هاست یکی از انواع WAF هستند که میتوان آنها را بهطور کامل در کد اپلیکیشن ادغام کرد. در خصوص مزایای این نوع از WAFها میتوان به هزینه کمتر و قابلیتهای شخصیسازی بیشتر اشاره کرد. اما مدیریت WAFهای مبتنیبر هاست، میتواند چالشبرانگیز باشد. زیرا برای اجرای موثر به منابع سرور محلی وابسته هستند. همچنین ممکن است به منابع بیشتری برای مدیریت نیاز داشته باشند.
WAFهای مبتنی بر هاست ابری
WAFهای مبتنیبر هاست ابری نیز یکی دیگر از انواع WAF هستند. این نوع WAFها یک گزینه کمهزینه محسوب میشوند و برای سازمانهایی که یک محصول مهم با حداقل منابع نیاز دارند مناسب هستند. WAFهای ابری بهصورت اشتراکی ارائه میشوند و بهراحتی قابل استقرار هستند. در اغلب اوقات فقط به یک DNS ساده یا تغییر پروکسی برای هدایت ترافیک اپلیکیشن نیاز دارند.
اگرچه سپردن مسئولیت فیلتر کردن ترافیک وب اپلیکیشنهای یک سازمان به یک ارائهدهنده شخص ثالث میتواند چالشبرانگیز باشد، اما این استراتژی از اپلیکیشنها در طیف گستردهای از مکانهای میزبانی محافظت میکند و اجازه میدهد سیاستهای مشابهی برای محافظت از اپلیکیشنها در برابر حملات لایه اپلیکیشن بهکار گرفته شود. همچنین، این ارائهدهندگان شخص ثالث جدیدترین اطلاعات را در اختیار دارند و میتوانند به شناسایی و مسدود کردن آخرین تهدیدات امنیتی اپلیکیشن کمک کنند.
ویژگیها و قابلیتهای WAF
دیواره آتش وب معمولا از ویژگیها و قابلیتهای زیر برخوردار است.
- دیتابیس Attack Signature: قبل از هر چیز باید توضیح دهیم که Attac Signatureها الگوهایی هستند که ممکن است ترافیک مخرب، از جمله انواع درخواست، پاسخهای غیرعادی سرور و آدرسهای IP مخرب شناختهشده را نشان دهند. پیش از این، WAFها عمدتا به دیتابیس این الگوها متکی بودند که دربرابر حملههای جدید یا ناشناخته موثر نبودند.
- تجزیه و تحلیل الگوی ترافیک مبتنی بر هوش مصنوعی: الگوریتمهای هوش مصنوعی، تجزیهوتحلیل رفتاری الگوهای ترافیک را برای شناسایی ناهنجاریهایی که نشاندهنده حمله هستند، امکانپذیر میکنند. این ویژگی شما را قادر میسازد تا حملاتی را که با الگوهای مخرب شناختهشده مطابقت ندارند شناسایی کنید.
- پروفایل اپلیکیشن: این ویژگی شامل تجزیهوتحلیل ساختار وب اپلیکیشن است که در آن درخواستهای معمولی، URLها، مقادیر و انواع دادههای مجاز بررسی میشود. این به WAF اجازه میدهد تا درخواستهایی که بهطور بالقوه مخرب هستند را شناسایی و مسدود کند.
- شخصی سازی: اپراتورها میتوانند قوانین امنیتی اعمالشده بر ترافیک اپلیکیشن را تعریف کنند. این امر به سازمانها اجازه میدهد تا رفتار WAF را مطابق با نیازهای خود شخصیسازی کرده و از مسدود شدن ترافیک قانونی جلوگیری کنند.
- Correlation engines: این موتورها ترافیک ورودی را تجزیهوتحلیل و آن را با امضاهای شناختهشده حملات، پروفایل اپلیکیشن، تجزیهوتحلیل هوش مصنوعی و قوانین شخصیسازی تریاژ (اولویتبندی) میکنند تا مشخص شود که آیا ترافیک موردنظر باید مسدود شود یا خیر.
- پلتفرمهای حافظتی DDoS: اگر WAF یک حمله DDoS را شناسایی کند، میتواند ترافیک را به پلتفرم حفاظتی DDoS منتقل کند. این امر حجم زیادی از حملات را مدیریت میکند.
- شبکههای تحویل محتوا (CDN): با توجه به اینکه WAFها در لبه شبکه مستقر میشوند، یک WAF مبتنیبر هاست ابری میتواند یک CDN را برای کش وبسایت و بهبود زمان بارگذاری آن فراهم کند. دیواره آتش وب، CDN را در چندین PoP که در سراسر دنیا توزیع شدهاند مستقر میکند. بنابراین، خدمات از نزدیکترین PoP به کاربران ارائه میشود.
تفاوت waf و فایروال
فایروال یک اصطلاح کلی برای فریمور (Firmware) است که با فیلتر کردن بستههای داده دریافتی، از یک شبکه کامپیوتری محافظت میکند. چندین دسته فایروال مختلف وجود دارد که در این تعریف کلی قرار میگیرند. این دستههای مختلف براساس نوع محافظتی که ارائه میکنند و نحوه ارائه آن از یکدیگر متمایز میشوند. فیلترینگ بسته، بازرسی وضعیت، پروکسی و NGFW برخی از انواع فایروال هستند.
WAF نیز یکی از انواع دستههای فایروال به شمار میرود که تفاوت آن در نحوه فیلتر کردن بستههای داده است. دلیل متمایز بودن WAF از سایر دستههای فایروال این است که فقط روی هکرهای وب در لایه اپلیکیشن تمرکز میکند. این در حالی است که انواع دیگر فایروالها، ممکن است توانایی محافظت از شبکه کامپیوتری در برابر حملات سایبری را نداشته باشند. WAF شبیه به فایروال پروکسی است اما تمرکز خاصی بر اپلیکیشن لاجیک لایه 7 دارد.
نمونههای WAF چیست؟
به عنوان مثال،WAF ها اغلب برای مسدود کردن حملات تزریق SQL استفاده میشوند. یک امضای بسیار ساده ممکن است فقط به دنبال عناصر شناسایی کلیدی یک حمله تزریق SQL معمولی باشد. به عنوان مثال، ممکن است به دنبال چیزی مانند AND 1=1 باشد که به عنوان بخشی از درخواست GET یا POST درج شده است. اگر این با یک بسته دریافتی مطابقت داشته باشد، WAF آن را به عنوان بد علامت گذاری کرده و آن را دور میاندازد.
امضاها به خوبی کار میکنند اما نیاز به نگهداری زیادی دارند تا اطمینان حاصل شود که موارد مثبت کاذب به حداقل میرسد. علاوه بر این، نوشتن امضا اغلب بیشتر یک شکل هنری است تا یک کار برنامهنویسی ساده.
نوشتن امضا نیز میتواند بسیار پیچیده باشد. شما اغلب سعی میکنید یک الگوی حمله کلی را بدون مطابقت با ترافیک قانونی مطابقت دهید. به صراحت، این میتواند بسیار اعصاب خردکن باشد.
پروژه ModSecurity یک پروژه منبع باز WAF است که به عنوان یک ماژول برای وبسرور Apache شروع شد اما از آن زمان به یک بسته ماژولار تبدیل شده است که با IIS، Nginx و دیگران کار میکند. ModSecurity یک WAF مبتنی بر امضا است و اغلب با مجموعهای از امضاهای پیشفرض به نام مجموعه قوانین هسته OWASP ModSecurity ارسال میشود.
مجموعه قوانین اصلی (CRS) یک نقطه شروع عالی برای استقرار یک WAF مبتنی بر امضا است. این شامل امضاهایی برای همه خطرات امنیتی برنامه وب ده برتر OWASP و همچنین طیف گستردهای از حملات دیگر است. توسعهدهندگان تمام تلاش خود را انجام دادهاند تا اطمینان حاصل کنند که CRS هشدارهای نادرست کمی دارد اما ناگزیر، هر کسی که CRS را به کار میگیرد، باید قوانین را تغییر دهد. این شامل یادگیری زبان قوانین و داشتن درک عمیق از پروتکل HTTP است.
با این حال، فناوری تکامل مییابد و ارائه دهندگان WAF جدیدتر از روشهای دیگری برای جلوگیری از ترافیک بد استفاده میکنند.
حرکت بسیار گستردهای از رویکردهای پیکربندی ایستا مانند لیستهای مجاز و مسدود کردن به روشهای پویاتر شامل API ها و یادگیری ماشین صورت گرفته است. این حرکت در چندین فناوری، از جمله فایروالهای سنتی، نرمافزار ضد ویروس وWAF ها انجام شده است.
یک WAF میتواند یاد بگیرد
در دنیای جدید و شجاع مجموعه قوانین پویا، WAFها از رویکردهای هوشمندتر برای شناسایی ترافیک خوب و بد استفاده میکنند. یکی از روشهای “آسانتر” استفاده شده، قرار دادن WAF در حالت “یادگیری” است تا بتواند ترافیک جریان یافته به وب سرور محافظت شده را کنترل کند. هدف در اینجا آموزش WAF چیست برای شناسایی ترافیک خوب است. این ممکن است شامل ترافیکی باشد که با الگوهایی مطابقت دارد که هنگام استفاده از امضاها به عنوان بد برچسبگذاری شدهاند. هنگامی که WAF آموزش داده شد، به حالت اجرایی منتقل میشود.
آموزش یک WAF مانند این، شبیه چیزی است که وقتی یک سیستم ایمیل را برای شناسایی هرزنامه آموزش میدهید، اتفاق میافتد. سیستمهای ایمیل اغلب از یک الگوریتم فیلتر برای شناسایی هرزنامه استفاده میکنند. این الگوریتمها نسبتاً خوب کار میکنند اما میتوانند برای اجازه دادن به اسپم مسموم شوند. مشکلات مشابهی در مورد الگوریتمهای استفاده شده توسط ارائهدهندگان WAF وجود دارد، به خصوص زمانی که WAF در حالت یادگیری است.
ارائهدهندگان پیشرفتهتر WAF از تکنیکهای اختصاصی برای اجازه دادن و مسدود کردن ترافیک استفاده میکنند. این تکنیکها شامل الگوریتمهایی هستند که میتوانند تشخیص دهند که آیا حملات خاصی علیه سیستم هدف کار میکنند یا خیر؟ و فقط حملاتی را که مضر هستند مسدود میکنند. با این حال، تکنیکهای پیشرفتهای مانند این، معمولاً فقط در ارائهدهندگان WAF SaaS یافت میشوند و نه در دستگاههای WAF مستقل.
نصب برنامه مبتنی بر وب فایروال (WAF)
پیش نیازهای نصب WAF
- یک وب سرور لینوکس راکی که آپاچی را اجرا میکند.
- تسلط به ویرایشگر خط فرمان. ما در این مثال از vi استفاده میکنیم.
- درک این موضوع که نصب این ابزار مستلزم نظارت بر اقدامات و تنظیم محیط شما است.
- یک حساب کاربری در سایت WAF Comodo
- همه دستورات به عنوان کاربر ریشه یا sudo اجرا میشوند
مقدمه
mod_security یک فایروال مبتنی بر وب منبع باز (WAF) است. این تنها یکی از اجزای ممکن از راهاندازی سرور وب سختشده Apache است و میتواند با یا بدون ابزارهای دیگر استفاده شود.
یکی از مواردی که هنگام نصب از مخازن عمومی راکی لینوکس در mod_security وجود ندارد، این است که قوانین نصب شده در بهترین حالت حداقل هستند. برای دریافت بسته گستردهتر از قوانین mod_security رایگان، ما از روش نصب WAF Comodo پس از نصب بسته پایه استفاده میکنیم.
توجه داشته باشید که Comodo یک تجارت است که ابزارهای زیادی را برای کمک به امنیت شبکهها میفروشد از جمله این ابزارها گواهینامه ssl است. ابزارهای رایگان mod_security ممکن است برای همیشه رایگان نباشند و لازم است برای دسترسی به قوانین، یک لاگین با Comodo تنظیم کنید.
نصب mod_security
برای نصب بسته پایه، از این دستور استفاده کنید که وابستگیهای گم شده را نصب میکند. ما همچنین به wget نیاز داریم، بنابراین اگر آن را نصب نکردهاید، این کار را نیز انجام دهید:
dnf install mod_security wget
راهاندازی حساب Comodo خود
برای راهاندازی حساب رایگان خود، به سایت WAF Comodo بروید و روی پیوند “ثبت نام” در بالای صفحه کلیک کنید. از شما خواسته میشود اطلاعات نام کاربری و رمز عبور را تنظیم کنید، اما هیچ صورتحساب کارت اعتباری یا دیگر صورت حسابی نیاز نیست. اعتبارنامههایی که برای ورود به وبسایت استفاده میکنید در راهاندازی نرمافزار Comodo و همچنین برای بهدست آوردن قوانین استفاده میشود، بنابراین باید آنها را در یک مدیر رمز عبور در جایی امن نگه دارید.
لطفاً توجه داشته باشید که بخش “شرایط و ضوابط” فرمی که برای استفاده از فایروال برنامه وب Comodo (CWAF) باید پر کنید، برای پوشش همه محصولات و خدمات آنها نوشته شده است. گفته شده، قبل از موافقت با شرایط، باید ان را با دقت بخوانید!
نصب CWAF
قبل از شروع، برای اینکه اسکریپت بعد از بارگیری ما اجرا شود، به برخی ابزارهای توسعه نیاز دارید. بسته را با استفاده از:
dnf group install 'Development Tools'
علاوه بر این، برای مشاهده صحیح mod_security باید وب سرور خود را برای Comodo اجرا کنید. بنابراین اگر از قبل در حال اجرا نیست، آن را شروع کنید:
systemctl start httpd
پس از ثبت نام در Comodo، یک ایمیل حاوی دستورالعملهایی در مورد اقدامات بعدی دریافت خواهید کرد. در اصل، کاری که باید انجام دهید این است که با اعتبار جدید خود وارد وب سایت شوید و سپس اسکریپت نصب کلاینت را دانلود کنید. از دایرکتوری روت سرور خود، از دستور wget برای دانلود نصبکننده استفاده کنید:
wget https://waf.comodo.com/cpanel/cwaf_client_install.sh
نصبکننده را با تایپ کردن اجرا کنید:
bash cwaf_client_install.sh
با این کار نصبکننده استخراج شده و فرآیند شروع میشود و به صفحه بازتاب مییابد. یک پیام دریافت خواهید کرد:
No web host management panel found, continue in 'standalone' mode? [y/n]:
“y” را تایپ کنید و اجازه دهید اسکریپت ادامه پیدا کند. همچنین ممکن است این اطلاعیه را دریافت کنید:
Some required perl modules are missed. Install them? This can take a while. [y/n]:
اگر چنین است، “y” را تایپ کنید و به ماژولهای گم شده اجازه نصب را بدهید.
Enter CWAF login: [email protected]
Enter password for '[email protected]' (will not be shown): *************************
Confirm password for '[email protected]' (will not be shown): ************************
لطفاً در اینجا توجه داشته باشید که احتمالاً باید قوانین را بارگیری کرده و آنها را در مکان صحیح نصب کنید، زیرا فیلد رمز عبور به علامت یا کاراکتر خاصی نیاز دارد اما ظاهراً فایل پیکربندی هنگام ارسال آن به سایت Comodo از نصبکننده یا نویسه دارای مشکل است.
به روز رسانی اسکریپت
این اسکریپتها همیشه با یک خطای اعتبارنامه خراب میشوند. این مورد احتمالاً روی مدیرانی که سرورهای وب با رابط کاربری گرافیکی (Cpanel / Plesk) را اجرا میکنند تأثیری نمیگذارد اما اگر برنامه را بهطور مستقل اجرا میکنید، همانطور که در مثال ما وجود داشت، این کار را میکند. در زیر می توانید راه حل را پیدا کنید.
Enter absolute CWAF installation path prefix (/cwaf will be appended): /usr/local
Install into '/usr/local/cwaf' ? [y/n]:
فقط مسیر را به عنوان داده شده بپذیرید و سپس “y” را در قسمت بعدی برای مسیر نصب تایپ کنید. اگر یک مسیر غیر استاندارد برای فایل پیکربندی برای Apache/nginx دارید، آن را در اینجا وارد کنید، در غیر این صورت فقط «Enter» را بدون تغییر فشار دهید:
If you have non-standard Apache/nginx config path enter it here:
اینجا جایی است که خرابی رخ می دهد و تنها راه حل این است که به صورت دستی قوانین را دانلود و نصب کنید. مطابق شکل زیر به دستورات پاسخ دهید:
Do you want to use HTTP GUI to manage CWAF rules? [y/n]: N
Do you want to protect your server with default rule set? [y/n]: y
اما انتظار داشته باشید که پیام بعدی را نیز دریافت کنید:
Warning! Rules have not been updated. Check your credentials and try again later manually
+------------------------------------------------------
| LOG : Warning! Rules have not been updated. Check your credentials and try again later manually
+------------------------------------------------------
| Installation complete!
| Please add the line:
| Include "/usr/local/cwaf/etc/modsec2_standalone.conf"
| to Apache config file.
| To update ModSecurity ruleset run
| /usr/local/cwaf/scripts/updater.pl
| Restart Apache after that.
| You may find useful utility /usr/local/cwaf/scripts/cwaf-cli.pl
| Also you may examine file
| /usr/local/cwaf/INFO.TXT
| for some useful software information.
+------------------------------------------------------
| LOG : All Done!
| LOG : Exiting
این کمی ناامید کننده است. می توانید به حساب خود در وب سایت Comodo بروید و رمز عبور خود را تغییر دهید و اسکریپت نصب را مجدداً اجرا کنید، اما چیزی را تغییر نمیدهد. اعتبارنامه ها همچنان ناموفق خواهند بود.
راه حل فایل قوانین CWAF
برای رفع این مشکل، باید قوانین را به صورت دستی از وب سایت نصب کنیم. این کار با ورود به حساب کاربری خود در https://waf.comodo.com و کلیک بر روی لینک “دانلود مجموعه قوانین کامل” انجام میشود. سپس باید قوانین را با استفاده از scp در وب سرور خود کپی کنید.
مثال:
scp cwaf_rules-1.233.tgz [email protected]:/root/
پس از کپی شدن فایل tar gzip، فایل را به دایرکتوری قوانین انتقال دهید:
mv /root/cwaf_rules-1.233.tgz /usr/local/cwaf/rules/
سپس به دایرکتوری قوانین بروید:
cd /usr/local/cwaf/rules/
و قوانین را از حالت فشرده خارج کنید:
tar xzvf cwaf_rules-1.233.tgz
هر گونه بهروزرسانی جزئی قوانین باید به همین ترتیب انجام شود. اینجاست که پرداخت قوانین و پشتیبانی میتواند مفید واقع شود. همه چیز به بودجه شما بستگی دارد.
پیکربندی CWAF
وقتی mod_security
را نصب کردیم، فایل تنظیمات پیشفرض در /etc/httpd/conf.d/mod_security.conf
نصب شد.
در دو مکان با ویرایش فایل شروع کنید:
vi /etc/httpd/conf.d/mod_security.conf
در بالای فایل، خواهید دید:
<IfModule mod_security2.c>
# Default recommended configuration
SecRuleEngine On
زیر SecRuleEngine On Line SecStatusEngine On را اضافه کنید تا اکنون بالای فایل به شکل زیر درآید:
<IfModule mod_security2.c>
# Default recommended configuration
SecRuleEngine On
SecStatusEngine On
سپس به انتهای این فایل پیکربندی بروید. ما باید به mod_security بگوییم که قوانین را کجا بارگذاری کند. قبل از ایجاد تغییرات باید این را در پایین فایل مشاهده کنید:
# ModSecurity Core Rules Set and Local configuration
IncludeOptional modsecurity.d/*.conf
IncludeOptional modsecurity.d/activated_rules/*.conf
IncludeOptional modsecurity.d/local_rules/*.conf
</IfModule>
ما باید در یک خط در پایین اضافه کنیم تا پیکربندی CWAF را اضافه کنیم، که به نوبه خود قوانین CWAF را بارگیری میکند. این خط شامل “/usr/local/cwaf/etc/cwaf.conf” است.
وقتی کارتان تمام شد، پایین این فایل باید به شکل زیر باشد:
# ModSecurity Core Rules Set and Local configuration
IncludeOptional modsecurity.d/*.conf
IncludeOptional modsecurity.d/activated_rules/*.conf
IncludeOptional modsecurity.d/local_rules/*.conf
Include "/usr/local/cwaf/etc/cwaf.conf"
</IfModule>
اکنون تغییرات خود را ذخیره و httpd را مجددا راهاندازی کنید.
systemctl restart httpd
اگر httpd خوب شروع شود، آنگاه شما آماده شروع استفاده از mod_security
با CWAF هستید.
جمعبندی
با توضیحاتی که در این مطلب ارائه شد، اکنون میدانیم که دیواره آتش وب یا WAF چیست و چگونه کار میکند، برای چه کاربردهایی مناسب است و چه انواعی دارد. WAF درواقع، یک ابزار امنیتی است که با فیلتر و مسدود کردن و نظارت بر ترافیک HTTP مخرب، از وب اپلیکیشنها در برابر حملات سایبری محافظت میکند. WAF بسته به نیازها و ترجیحات صاحب وب اپلیکیشن، میتواند بهعنوان یک راهحل مبتنیبر شبکه، مبتنیبر هاست یا مبتنیبر ابر مستقر شود.
WAF همچنین، میتواند قابلیتها و کاربردهای مختلفی داشته باشد که از جمله میتوان به تشخیص مبتنیبر قوانین، تشخیص مبتنیبر آنومالی شبکه، پچینگ مجازی، محدودسازی نرخ، مدیریت باتها، مسدودسازی مبتنیبر موقعیت جغرافیایی و رمزگذاری SSL/TLS اشاره کرد. بنابراین، WAF میتواند بهشکل کاملا جامع و قابل شخصیسازی، از وب اپلیکیشنها محافظت کند. پیادهسازی WAF در امنیت، عملکرد، قابلیت دسترسی، انطباق و شهرت وب اپلیکیشنها اهمیت دارد و باید بخشی از استراتژی امنیتی کسبوکارهای آنلاین باشد.