فایروال برنامههای کاربردی تحت وب (WAF)
ماهیت برنامههای کاربردی
اکثر برنامههای کاربردی که روزانه ما از آنها استفاده میکنیم شباهت زیادی به مجموعه موجودات یک کلنی دارند. این برنامهها شامل مجموعهای از اجزای مجزا و مستقل و قابل اجرا در محیطهای جداگانه با نیازهای عملیاتی و زیرساختی متفاوت (زیرساختهای ابری و مرکز داده محلی) میباشند که تحت یک شبکه به هم متصل میشوند. با توجه به این موضوع، برنامههای کاربردی از مجموعه ای از لایهها و زیرلایهها تشکیل شدهاند که با هم و در کنار هم کار میکنند. با نگاهی دقیق به این معماری میتوان نتیجه گرفت که هریک از این اجزا به خودی خود مستعد حملات متعددی میباشند.
مهم ترین اصل در ارزیابی مناسب و دقیق از اقدامات دفاعی در مقابل حملات، شناخت دامنه مربوط به انواع مختلف حملات میباشد.
شکل زیر نمای کلی از لایههای اصلی یک برنامه کاربردی معمول را نشان میدهد: لایه سرویس، TLS ،DNS، شبکه و لایه کنترل دسترسی
هریک از این لایهها شامل زیرلایههای لیست شده در زیر میباشند:
TLS
- Encryption
- Certificate authorities
ACCESS CONTROL
- Authentication
- Authorization
- Identity
- Federation
SERVICES
- App source code
- Internal code
- External code
- Server-side infrastructure
- Web server
- CDN
- Data storage
- Server-side frameworks
- Global ISPs
- Internet routing
DNS
- DNS servers
- Registrars
لایه سرویس برنامههای کاربردی
لایه سرویس برنامه کاربردی شامل سه زیرلایه، معماری سمت سرور، فرم ورک سمت سرور و کد منبع برنامه کاربردی میباشد. کد منبع برنامه از دو زیر لایه Internal code و External code تشکیل میشود.
Internal Code
کدهای Internal قسمتی از برنامه کاربردی تحت وب است که عمل خاصی را انجام میدهد. این کد میتواند مربوط به برنامه اصلی (مانند کد مربوط به Microsoft SharePoint یا Salesforce) یا قسمتی از برنامه کاربردی باشد که مطابق با نیاز سازمان تغییر یا توسعه داده شده است.
External Code
کدهای External شامل قسمتهایی از کد برنامه کاربردی با قابلیت استفاده مجدد میباشد. در واقع این کدها بیشتر مربوط به سایر برنامههای کاربردی لینک شده به برنامه اصلی میشود.
این قسمت از برنامه شامل پلاگینها، کتابخانهها، اسکریپتهای سمت سرور و کدهای خارجی لینک شده به برنامه نیز میشود. در بیشتر موارد و با وجود تستها و اقدامات امنیتی، این لایه بیشتر توسط هکرها برای یافتن حفرههای امنیتی مورد اسکن قرار میگیرد.
زیرساخت سرور
زیرساخت سرور شامل سرورهای مستقلی است که وظیفه اصلی آنها پشتیبانی از برنامه کاربردی است. این زیرلایه شامل سرور برنامه کاربردی، شبکه CDN، برنامه کاربردی، پایگاه داده و فایل سرور میباشد.
این زیرلایه نسبت به کدهای خارجی لینک شده به برنامه کاربردی از یکپارچگی بالایی برخوردارند. به همین دلیل Patch کردن و بالانس سرورها بسیار راحت تر انجام میگیرد. در حال حاضر این زیرلایه با بیشترین آمار حملات DDoS لایه اپلیکیشن، با هدف ایجاد اختلال در سرویس دهی روبرو است.
لایه کنترل دسترسی
لایه TLS
لایه DNS
لایه شبکه
رابط کاربری
تهدیدات برنامههای کاربردی تحت وب
- Credential theft
- Credential stuffing
- Session hijacking
- Brute force
- Phishing
APP SERVICES
- API attacks
- Injection
- Malware
- DDoS
- Cross-site scripting
- Cross-site request forgery
- Man-in-the-middle
- Abuse of functionality
Client
- Cross-Site Scripting
- Cross-site request forgery
- Man-in-the-browser
- Session hijacking
- Malware
Network
- DDoS
- Eavesdropping
- Protocol abuse
- Man-in-the-middle
DNS
- Man-in-the-middle
- DNS cache poisoning
- DNS spoofing
- DNS hijacking
- Dictionary attacks
- DDoS
TLS
- DDoS
- Protocol abuse
- Session hijacking
- Certificate spoofing
فایروال برنامههای کاربردی تحت وب (WAF)
طی سالهای گذشته OWASP به طور پیوسته در حوزه تعریف و ارایه تکنیکهای جدید و بروز برای توسعه برنامههای کاربردی مقاوم در برابر حملات فعال بوده است. OWASP در طول این سالها منابع و مستندات مورد نیاز توسعه دهندگان وب برای طراحی برنامههای کاربردی امن را در اختیار آنها قرار داده است .
با این وجود اکثرا شاهد این هستیم که این قواعد در طراحی همه برنامههای کاربردی رعایت نمیشوند.شاید موضوع داشتن IDS ،IPS و فایروال قوی در شبکه برای حفاظت از وب سرورها در مقابله با برخی حملات، امری بسیار حیاتی باشد. اما متاسفانه اکثرا این تجهیزات قادر به تشخیص و جلوگیری از حملاتی مانند Sql injection، انواع حملات XSS و حملات Session hijacking نمیباشند. بنابراین آنچه مشخص است این است که برای حفاظت از سرورها و برنامه های کاربردی تحت وب، نیاز به فایروالی تخصصی است. این فایروال تحت عنوان WAF به بازار عرضه شده است.
وظیفه اصلی WAFها پوشش آسیب پذیریهای برنامههای کاربردی برای جلوگیری از حملات و نقض اطلاعات در لایه اپلیکیشن میباشد. WAFها با ارایه امنیت مورد نیاز در برابر باتهای مخرب، رمزنگاری در لایه اپلیکیشن، بررسی رابطهای برنامههای کاربردی (API) و همچنین آنالیز رفتاری موجودیتهای مختلف به حفاظت از برنامههای کاربردی در برابر حملات وب کمک میکند.
با توجه به این که 75 درصد از حملات مربوط به نقض امنیت اطلاعات در لایه اپلیکیشن با حمله به اطلاعات هویتی کاربران و سرویس ها آغاز می شود، WAFها با رمز کردن دادهها و اطلاعات کاربری در لایه اپلیکیشن و بدون نیاز به بروز رسانی برنامه کاربردی از این نوع حملات جلوگیری میکنند. ماژول Datasafe فایروال F5 از جمله ماژولهایی است که کلیه دادههای عبوری را رمز و ارسال مینماید.
با توجه به پیچیدگی حملات DDoS ، آنالیز رفتاری اصلیترین نیازمندی برای شناسایی این نوع حملات میباشد. اکثر حملات DDoS لایه 7 بیشتر به صورت مخفی انجام میشوند و ممکن است با استفاده از الگوهای شناسایی سنتی و روشهای شناخته شده همچنان ناشناس باقی بمانند. WAFهای پیشرفته اغلب برای تشخیص این نوع حملات از قابلیت یادگیری رفتار مربوط به برنامه های کاربردی در کنار اطلاعات رفتاری بدست آمده از ترافیک و بار سرور استفاده میکنند. این رویکرد در اکثر موارد منجر به بیشترین تعداد تشخیص صحیح با کمترین میزان تشخیص اشتباه میشود. در ادامه فرایند تشخیص الگوی مربوط به آن به صورت اتوماتیک ایجاد و برای تشخیصهای بر خط مورد استفاده قرار میگیرد.
تعدادی از ارایه دهنده گان فایروالهای برنامه های کاربردی (WAF)
- A10 Networks
- Barracuda
- Brocade
- Citrix
- F5
- Fortinet
- Imperva
- Radware
- SonicWall
دیدگاهتان را بنویسید