با افزایش روز افزون برنامههای تحت وب، مهاجمان سایبری بیشتر وقت خود را برای نفوذ به این سامانه ها می گذارند، تا حدی که بنا بر گزارش ها بیش از ۷۰% حملات اینترنتی از طریق نفوذ به سامانه های تحت وب انجام می گیرد.
با توجه به این موضوع و وجود اطلاعات مهم سازمان ها و اشخاص بر روی بستر وب، الزمی است که سازمان سیاست های امنیتی به منظور مقابله با این تهدیدات داشته باشند. یکی از راهکارهای موثر در حوزه امن سازی برنامه های تحت وب استفاده از فایروال برنامه تحت وب یا همان WAF می باشد. WAF مخفف Web Application Firewall می باشد و مانند سدی بین مهاجمان و برنامه های تحت وب، فعالیت می کنند. بطور کلی قوانین وضع شده بر روی WAF ها حملات متداول مانند Cross-Site Scripting (XSS)، SQL Injection و بسیاری دیگر از حملات مرسوم دیگر را مسدود می کند.
در مقایسه با سیستم های تشخیص نفوذ(IDS / IPS) ، WAF ها تمرکز شدیدتری بر روی ترافیک برنامه ها دارند و توانایی ارائه تجزیه و تحلیل جریان عمیق داده را ارائه می دهند. IDS/IPS به عنوان گیت وی تمام ترافیک شبکه را نظارت می کنند، در حالی که WAF فقط به دنبال حملات ناشی از برنامه ها است و بیشتر پروتکل HTTP / HTTPS را نظارت می کند.
برای درک بهتر WAF، مهمترین موردی که باید بدانید ماهیت حملات مدرن شبکه ها است. بیشتر حملات موفق زمانی انجام شدند که مهاجمان با استفاده از آسیب پذیری در کدها و استفاده از این آسیب پذیری ها، توانستند بدافزار خود را بعنوان بخشی از ترافیک برنامه جایگزین کنند. با افزایش استفاده از برنامه های تحت وب، نیاز به سیستم هایی که می توانند ترافیک HTTP/HTTPS را بطور خاص و با استفاده از طیف گسترده ای از پارامترها و الگوهای رفتاری، رمزگشایی و تجزیه و تحلیل کنند، افزایش یافت. از آنجا که WAF دقیقا بر ترافیک برنامه ها نظارت می کند، می تواند بعنوان ابزاری برای load balancing نیز استفاده شود.
فایروال برنامه تحت وب چطور کار میکند؟
یک WAF درخواست های HTTP را تجزیه و تحلیل می کند و مجموعه ای از قوانین را تعیین می کند که مشخص می کند چه قسمت هایی از تبادلات دیتا و پکت ها بدون اشکال هستند و چه قسمت هایی دارای اشکال و احیانا کدمخرب هستند. قسمت های اصلی پکت های HTTP که یک WAF آنالیز می کند، درخواست های GET و POST است. از درخواست GET برای بازیابی داده ها از سرور استفاده می شود و از درخواست های POST برای ارسال داده به سرور برای تغییر وضعیت آن استفاده می شود.
WAF ها می توانند از دو رویکرد برای تحلیل و فیلتر کردن محتوای مخرب موجود در درخواست های HTTP یا ترکیبی از این دو رویکرد استفاده کنند:
- لیست سفید (Whitelisting): رویکرد لیست سفید به این معنی است که WAF تمام درخواست ها را بطور پیش فرض رد می کند و فقط به درخواست های قابل اعتماد اجازه می دهد. در واقع این لیست، لیستی از ایمن بودن آدرس های IP را ارائه می دهد. لیست سفید نسبت به لیست سیاه از منابع کمتری برخوردار است. نقطه ضعف استفاده از لیست سفید این است که ممکن است ناخواسته ترافیک سالم را مسدود کند. این روش توصیه نمی شود.
- لیست سیاه (Blacklisting): رویکرد لیست سیاه به شما اجازه می دهد تا پکت ها را امتحان کنید و از امضاهای از پیش تعیین شده برای جلوگیری از ترافیک وب مخرب و محافظت از آسیب پذیری های وبسایت ها یا برنامه های وب استفاده کنید. این رویکرد یک لیست از قوانین است که بسته های مخرب را نشان می دهد. رویکرد لیست سیاه برای وب سایت های عمومی و برنامه های وب مناسب تر است زیرا از طریق آدرس های IP ناآشنایی که به نظر نمی رسد مخرب یا سالم هستند، ترافیک زیادی دریافت می کنند. نکته منفی این رویکرد این است که، لیست سیاه بیشترین منابع را به خود اختصاص می دهد.
- امنیت ترکیبی (Hybrid Security): این رویکرد تلفیقی از عناصر موجود در رویکردهای لیست سفید و لیست سیاه است.
صرف نظر از مدل امنیتی که WAF از آن استفاده می کند، در نهایت برای تجزیه و تحلیل فعل و انفعالات HTTP کار می کند و قبل از رسیدن به سرور برای پردازش، ترافیک مخرب را کاهش می دهد یا به طور ایده آل، از بین می برد.
برای مشاهدهی معرفی ویدئویی WAF به انتهای پست مراجعه کنید.
معرفی انواع مختلف WAF
- Network-based WAF: این نوع WAF ها معمولا بصورت سخت افزاری هستند و می توانند تاخیر در دریافت و ارسال پکت ها ا کاهش دهند زیرا در محل نصب می شوند. اکثر فروشندگان عمده WAF مبتنی بر شبکه، تکثیر قوانین و تنظیمات را در چندین وسیله مختلف امکان پذیر می سازند، از این رو استقرار، پیکربندی و مدیریت در مقیاس بزرگ امکان پذیر می شود. بزرگترین نقطه ضعف برای این نوع محصول WAF، موضوع هزینه است؛ هزینه سرمایه اولیه و همچنین هزینه های عملیاتی مداوم برای نگهداری.
- Host-based WAF: این نوع WAF ها ممکن است با کدهای برنامه یکپارچه شده باشند. مزایای اجرای WAF مبتنی بر میزبان شامل هزینه کمتر و افزایش گزینه های سفارشی سازی است. WAF های مبتنی بر میزبان می توانند یک چالش برای مدیریت باشند زیرا به کتابخانه های برنامه نیاز دارند و برای اجرای مؤثر به منابع سرور محلی وابسته هستند.
- Cloud-hosted WAF: این نوع WAF ها راه حل کم هزینه ای را برای سازمان هایی که می خواهند برای اجرا و مدیریت به حداقل منابع نیاز دارند، ارائه می دهند. استفاده و راه بری این نوع از WAF ها آسان می باشد و بصورت اشتراکی در دسترس هستند و اغلب برای تغییر مسیر ترافیک برنامه ها فقط به یک DNS یا تغییر پروکسی نیاز دارند.
چرا به WAF نیاز دارید؟
همانطور که در بالاتر اشاره شد، امروزه فایروال های شبکه و محلی به تنهایی نمی توانند حملات هکرها را به وبسایت شما متوقف کنند، زیرا وقتی صحبت از ترافیک آنلاین مخرب است، این راه حل ها مؤثر نیستند. این در حالی است که متأسفانه بسیاری از شرکت های میزبان هاستینگ از امنیت وب سایت شما مراقبت نمی کنند. ممکن است فکر کنید که آنها اینکار را انجام می دهند در حالی هدف اصلی آنها در دسترس بودن سایت شما می باشد نه محافظت از سایت شما در برابر حملات هکرها. به همین دلیل شما باید اطمینان حاصل کنید که از راهکارهای WAF به منظور جلوگیری از حملات سایبری و هک شدن سایت ها یا برنامه های تحت وب تان استفاده می شود.
یک WAF بصورت تخصصی می تواند از حملات زیر جلوگیری کند :
- حملات Cross-site Scripting (XSS)
- حملات SQL Injection
- حملات File Inclusion
- حملات Session Hijacking
- حملات DOS و DDOS
- حملات Buffer Overflow
- حملات Cookie Poisoning
- و بسیاری دیگر از حملات موجود در لایه برنامه های کاربردی تحت وب
نحوه استقرار WAF ها:
- Reverse Proxy: در این حالت ترایک بطور مستقیم به WAF می رود. برای مثال، استقرار imperva WAF به صورت پروکسی معکوس است.
- Transparent Reverse Proxy: در این حالت WAF بطور جداگانه ترافیک فیلتر شده را به برنامه های وب ارسال می کند.
- Transparent Bridge: در این حالت ترافیک HTTP مستقیما به برنامه وب می رود.
معرفی محصولات تجاری و متن باز
همانطور که برندهای معتبری در حوزه محصولات تجاری وجود دارد، محصولات متن باز و رایگانی نیز وجود دارد که می توانید از آنها استفاده کنید. از معتبرین محصولات تجاری در این حوزه می توان به F5، Fortiweb، Barracuda و Sucuri اشاره کرد. در حوزه متن باز هم می توان به Mod Security، Naxsi و WebKnight اشاره کرد.