آشنایی با Web Application Firewall (بخش دوم)
آشنایی با Web Application Firewall
برای مطالعه بخش اول آشنایی با Web Application Firewall اینجا کیلیک کنید
ویژه گی های یک WAF کارآمد
معمولا انتخاب یک WAF باید با توجه به ویژگی های مورد انتظار، میزان کارایی و محیط مورد استفاده ، صورت بگیرد ولی از آنجایی که تعداد تولید کنندگان تجهیزات WAF در حال افزایش می باشد آشنایی با ویژه گی های مهم و ضروری WAF ها یک امر ضروری جهت انتخاب صحیح و دقیق از بین محصولات مختلف می شود. از اینرو در ادامه این مستند به بررسی ویژه گی های یک WAF استاندارد پرداخته می شود. البته باید توجه داشت که صرف تهیه WAF با ویژه گی های ذکر شده در این قسمت به تنهایی تضمین کننده برطرف کردن مشکلات امنیتی برنامه های تحت وب نخواهد شد بلکه نحوه قرار گیری WAF در ساختار شبکه،نحوه انجام پیکربندی ،مدیریت و مانیتور کردن آن نقش بسیار تعیین کننده ای در جهت نیل به اهداف مورد نظر ایفا خواهد نمود.
– پاسخگویی سریع و مناسب به تهدیدات شناخته شده در زمینه برنامه های تحت وب از طریق تعریف سیاست های امنیتی و Rule ها
– پشتیبانی از استاندارهای شناخته شده در خصوص انواع تهدیدات مهم و نحوه برخورد با اینگونه تهدیدات مانند OWASP Top 10 و PCI DSS
– بررسی ورودی و خروجی های برنامه های تحت وب براساس تعریف سیاست های امنیتی و Rule ها و اجرای عملیات مناسب مانند Block,Allow,Alert و ثبت Log ،منتاسب با عمل انجام پذیرفته
– جلوگیری از خارج وفاش شدن اطلاعات مهم (Data leak prevention) – توانایی بررسی خروجی و پاسخ های برنامه های تحت وب از طریق تعریف سیاست های امنیتی و Rule ها و اجرای عملیات مناسب مانند Block,Allow,Alert ,Mask
– پیاده سازی سیاست های امنیتی از طریق مدل های Positive , Negative . در مدل Positive یا White List عملیات قابل قبول ، رفتار ها مجاز ، ورودی های قابل قبول ، رنج داده های معتبر مشخص گردیده وتنها انجام این عملیات مجاز بوده و هرگونه عملیات دیگر غیرمجاز تشخیص داده می شود و از انجام آن ممانعت به عمل خواهد آمد. در مدل Negative یا Black List ،لیست تمام رفتارهای غیر مجاز مشخص گردیده وتمام عملیات قبل از اجرا و انجام با این لیست مقایسه شده وتنها در صورتی که عملیات با این لیست (لیست Black List) مطابقت نداشته باشد انجام آن امکان پذیر خواهد بود.
– بررسی محتوای صفحات وب از قبیل HTML, Dynamic HTML ,CSS وهم پروتکل های انتقال محتوای صفحات وب از قبیل HTTP,HTTPS,TLS
– بررسی پیغام های Web Service ها شامل SOAP وXML در هر دو مدل Document و RPC-Oriented
– بررسی هرگونه پروتکل و یا Data Construct که برای انتقال اطلاعات به برنامه تحت وب یا دریافت اطلاعات از آن استفاده می شود
– ممانعت ازحمله و دسترسی غیر مجازبه خود WAF
– پشتیبانی از قابلیت SSL/TLS Termination یا پشتیبانی از امکان قرارگیری در مسیر ترافیک Encrypt شده بصورتی که بتواند ترافیک را قبل از رسیدن به برنامه تحت وب ، جهت – بررسی Decrypt نماید. ترافیک Encrypt شده تنها در صورتی قابل بررسی توسط WAF می باشد که عملیات مربوط به SSL Termination ، قبل رسیدن تراقیک به برنامه تحت وب صورت پذیرد
– جلوگیری یا تشخیص Session Token tampering مثلا از طریق رمز کردن Session Cookie ، Hidden Form Fields یا استفاده از سایر روش هایی که برانی نگهداری وضعیت Session ها مورد استفاده قرار می گیرد.
– قابلیت دریافت آپدیت های جدید و اعمال Signature ها بصورت Dynamic وManual
– داشتن قابلیت Fail Open (یعنی در صورت از کار افتادن WAF مثلا به دلیل مشکل سخت افزاری ،تمامی ترافیک ورودی و خروجی بدون انجام بررسی اجازه انتقال و عبور از WAF را داشته باشد ) یا پشتیبانی از قابلیت Fail Close ( یعنی در صورت از کار افتادن WAF مثلا به دلیل مشکل سخت افزاری ،هیچ گونه ترافیک ورودی و خروجی ،اجازه انتقال و عبور از WAF را نداشته باشد)
– پشتیبانی از SSL Client Certificate و Proxying Client Authentication via Cetificate در صورتی که برنامه تحت وب برای شناسایی کاربران از Client SSL Certificate استفاده نماید. در صورتی عدم پشتیبانی از این ویژگی توسط WAF ، برنامه های تحت وب قرار گرفته در پشت WAF با مشکل مواجه خواهند گردید. بسیاری از WAF های مدرن قابلیت استفاده از LDAP یا سایر سرویس های مشابه را دارا می باشند.
در جدول زیر مشکلات امنیتی عمومی موجود در برنامه های تحت وب و میزان توانایی WAF در مواجه با این مشکلات نشان داده شده است.
علامات بکار رفته در این جدول عبارتند از:
+ مشکل بصورت خیلی خوب توسط WAF پوشش داده می شود
– مشکل توسط WAF پوشش داده نمی شود یا بصورت جزئی پوشش داده می شود
! وا بستگی به یک محصویب نیاز برنامه دارد
= مشکل تا حدودی توسط WAF قابل رفع می باشد.
نکاتی در مورد استفاده از WAF
در حالی که استفاده از WAF ،میزان امنیت برنامه های تحت وب را به میزان قابل توجهی افزایش می دهد ولی در بعضی از شرایط و محیط های پیاده سازی باید مواردی را در هنگام استفاده از WAF مورد توجه قرار داد در غیر اینصورت استفاده از WAF موجب بوجود آمدن مشکلاتی در اجرای برنامه های تحت وب می گردد . از مهمترین این موارد می توان به نکات زیر اشاره نمود:
– وب سایت هایی که از header ، URL و Cookie های غیر معمول استفاده می کنند. در این حالت باید WAF را بصورت صحیح پیکربندی نمود در غیر اینصورت ممکن است که موارد فوق از سوی WAF بعنوان Exploit تشخیص داده شود و به اشتباه Drop گردد.در حالی که این پارامترها از سوی برنامه تحت وب کاملا صحیح ودرست می باشند.
– محتواهایی که با استانداردهای HTML/HTTP ذکر شده در RFC ها مطابقت نداشنه یا بصورت غیر معمول پیاده سازی شده باشند ممکن است توسط WAF بلاک گرددند در این حالت نیز می توان با Tune کردن WAF از بروز این مشکل جلوگیری نمود.
– در صورت استفاده از تکنولوژهای از قبیل DHTML,AJAX یا سایر روش های ایجاد صفحات وب بصورت پویا در برنامه های تحت وب ، معمولا نیاز به انجام تست و Tuning در WAF وجود خواهد داشت زیرا بعضی از متدهای دسترسی به برنامه های تحت وب توسط این تکتولوژی ها ،بصورت پیش فرض در WAF ها بصورت گونه ای از حملات تشخیص داده می شود و بلاک خواهند گردید.
– اگر WAF بصورت Reverse Proxy پیاده سازی شده باشد و برنامه های قرار گرفته در پشت WAF احتیاج به اطلاعاتی از قبیل IP کابران برای اجرا داشته باشند در این حالت نیز معمولا نیز به انجام تغییرات در پیکربندی WAF وجود خواهد داشت .معمولا در این حالت WAF اطلاعات مربوط به Client-Side را در درون یک HTTP Header قرار می دهد.
تست ارزیابی آسیب پذیری(vulnerability assessment) یک برنامه تحت وب باید قبل از قرارگرفتن برنامه در محیط عملیاتی انجام پذیرد.
تفاوت ما بین IPS و WAF
با تغییر و تکامل روش های نفوذ و بهره بردن از نقاظ ضعف موجود در برنامه ها، به جای تمرکز برنقاط ضعف موجود در زیرساخت شبکه، نیاز به یک راه حل جامع امنیتی جهت مقابله با این تهدیدات جدید احساس می گرددید.از اینرو در سال های اخیر شاهد ایجاد سیستم های IPS (Intrusion Prevention System) جهت مقابله با این تهدیدات جدید بوده ایم. تقریبا در اکثر IPS ها امروزی و مدرن ،روش اصلی کارمبتنی بر استفاده از Signature ها و تطبیق ترافیک عبوری از IPS با Signature های موجود و تعریف شده در IPS می باشد. در این حالت اگر ترافیک عبوری با Signature ها موجود در IPS مطابقت نماید این امر نشانگر شناسایی یک تهدید یا عمل غیر مجاز می باشد و با توجه به پیکربندی انجام گرفته در سیستم ، اقدام مقتضی دراین خصوص انجام صورت می گیرد.با پیچیده و پیشرفته تر شدن روش های نفوذ، هدف جدید بسیاری از حملات ،برنامه های تحت وب می باشند. یکی از محدویت های اصلی IPS ها جهت برخورد با این حملات ، استفاده از روش Signature-Based جهت تشخیص و جلوگیری از این حملات می باشد.از آنجایی که ساختار هر برنامه تحت وب با دیگر برنامه تحت وب متفاوت می باشد استفاده تنها از روش بررسی برحسب الگوی ترافیک (Pattern Match) کارایی لازم جهت برخورد با روش های نفوذ به برنامه های تحت وب را دارا نمی باشد.
جلوگیری و مقابله با روش های نفوذ در لایه هفت (لایه برنامه های کاریردی) در برنامه های تحت وب نیاز مند یک سیستم امنیتی با توانایی شناخت کامل از ساختار برنامه های تحت وب و ویژگی ها مختص به برنامه می باشد که این توانایی و ویژگی ها معمولا بصورت کامل و یکپارچه در Web Application Firewall ها پیاده سازی گردیده است.
از آنجایی که مقایسه فنی و مورد به مورد تفاوت های موجود مابین IPS و WAF هدف این مستند نمی باشد تنها در جدول زیر بصورت مختصر به تفاوت های اصلی مابین این سیستم ها اشاره شده است.
همچنین از نظر انعطاف پذیری در هنگام پیاده سازی می توان دو سیستم را بصورت زیر با یکدیگر مقایسه نمود:
نویسنده : مهندس سعید آژیده
pingback آشنایی با Web Application Firewall (بخش اول) - گروه آموزشی AdminPro