تمام برنامه های کاربردی تحت وب که در سال های اخیر رشد بسیاری داشته اند، مورد هدف حمله هکرها واقع شده اند. هکرها از روش-هایی استفاده می کنند که به طور خاص با هدف بهره برداری از نقاط ضعف نرم افزارهای کاربردی تحت وب طراحی می شوند و این حمله ها توسط سیستم های امنیتی سنتی IT مانند فایروال های شبکه یا سیستم های IDS/IPS با دقت کافی قابل تشخیص نیستند. این ابزارها توسط OWASP توسعه داده شده و برای افرادی که در بخش امنیتی برای توسعه و بهره برداری ایمن از یک برنامه کاربردی تحت وب فعالیت می کنند، مناسب می باشند. یکی از این نوع ابزارها، ابزاری به نام Web Application Firewalls است، (که ممکن است با نام های Web Application Shields یا Web Application Security Filters نیز خوانده شود) که برای محافظت در مقابل حمله های صورت گرفته، به ویژه برای برنامه های کاربردی تحت وب مورد استفاده قرار می گیرد.
کلمات کلیدی: ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدی، وب، ﻛﻨﺘﺮل اﻣﻨﻴﺖ، مدیریت نشست،WAF،OWASP ، SQL Injection، XSS.
فهرست
1-4 موقعیت یابی برای فایروال.. 6
1-6 بررسی عوامل نیاز ما به WAF. 9
1-7 معرفی فایروال های مجهز و مدرن (SMARTWAF) 10
1-8 معیار ارزیابی برنامه فایروال.. 12
1-8-2 WAFEC2.0 (در دست اقدام) 13
فصل دوم: فایروال های برنامه های تحت وب.. 14
2-2 تعریف واژه WAF- فایروال برنامه های تحت وب.. 15
2-3 ویژگی های برنامه های کاربردی وب نسبت به امنیت این برنامه ها 16
2-3-1 جنبه های سطح عالی در درون سازمان.. 16
2-3-2 جنبه های فنی هر یک از برنامه های تحت وب شرکت های خصوصی.. 17
2-4 مروری بر ویژگی های فایروال برنامه کاربردی وب (WAF) 18
2-4-1 چه مواقعی WAFها برای امنیت برنامه های تحت وب مناسب هستند؟. 18
2-4-2 نمونه ای از مکانیزم های امنیتی WAFها با استفاده از اسیب پذیری های خاص.... 20
2-5 بررسی اجمالی مزایا و خطرات ناشی از فایروال های برنامه های تحت وب.. 24
2-5-2 مزایای اضافی WAFها (وابسته به عملکرد واقعی محصولات) 25
2-6 امنیت در مقابل OWASP TOP10 - مقایسه WAFها و روش های دیگر. 26
2-7 معیارهای تصمیم گیری برای استفاده و یا عدم استفاده از WAF. 34
2-7-1 معیارهای گسترده سازمانی.. 34
2-7-2 ضوابط مربوط به یک برنامه تحت وب.. 34
2-7-4 در نظر گرفتن جنبه های مالی.. 37
2-8 بهترین شیوه برای معرفی و عملکرد WAF. 38
2-8-1 جنبه های موجود در زیرساخت های وب.. 38
2-8-1-1 زیرساخت های مرکزی و یا غیر مرکزی -تغییرات قابل پیش بینی.. 38
2-8-2-1 منطبق با سیاست های امنیتی موجود. 39
2-8-2-2 مدیر برنامه های تحت وب.. 39
2-8-3 روال های تکراری پیاده سازی (از امنیت اولیه تا حفاظت کامل) 40
فصل سوم: اﻣﻨﻴﺖ ﺑﺮﻧﺎﻣﻪﻫﺎی ﻛﺎرﺑﺮدی تحت وب.. 42
3-3 ﺳﻄﻮح وارﺳﻲ اﻣﻨﻴﺖ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻛﺎرﺑﺮدی.. 45
3-3-1-1 ﺳﻄﺢ 1A- ﭘﻮﻳﺶ ﭘﻮﻳﺎ (وارﺳﻲ ﺧﻮدﻛﺎر ﺟﺰﻳﻲ) 48
3-3-1-2 ﺳﻄﺢ 1B- ﭘﻮﻳﺶ ﻛﺪ ﻣﻨﺒﻊ (وارﺳﻲ ﺧﻮدﻛﺎر ﺟﺰﻳﻲ) 49
3-3-2-1 ﺳﻄﺢ 2A- ازﻣﻮن اﻣﻨﻴﺖ (وارﺳﻲ دﺳﺘﻲ ﺟﺰئی) 54
3-3-3 ﺳﻄﺢ 3 – وارﺳﻲ ﻃﺮاﺣﻲ.. 54
3-3-4 ﺳﻄﺢ 4 – وارﺳﻲ داﺧﻠﻲ.. 57
3-4 ﺟﺰﺋﻴﺎت وارﺳﻲ ﻧﻴﺎزﻣﻨﺪیﻫﺎ 61
3-4-2 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ اﺣﺮاز ﻫﻮﻳﺖ... 64
3-4-4 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ ﻛﻨﺘﺮل دﺳﺘﺮﺳﻲ.. 67
3-4-5 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ اﻋﺘﺒﺎرﺳﻨﺠﻲ.. 69
3-4-6 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ ﻛﺪﮔﺬاری ﺧﺮوﺟﻲ.. 70
3-4-7 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ رﻣﺰﻧﮕﺎری.. 71
3-4-8 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ ﺛﺒﺖ وﻛﻨﺘﺮل ﺧﻄﺎ 72
3-4-9 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ ﺣﻔﺎﻇﺖ دادهﻫﺎ 74
3-4-10 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ اﻣﻨﻴﺖ ارﺗﺒﺎﻃﺎت.. 75
3-4-11 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ اﻣﻨﻴﺖ HTTP......... 76
3-4-12 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ ﭘﻴﻜﺮﺑﻨﺪی اﻣﻨﻴﺘﻲ.. 77
3-4-13 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ ﺟﺴﺘﺠﻮی ﻛﺪﻫﺎی ﻣﺨﺮب.. 78
3-4-14 ﻧﻴﺎزﻣﻨﺪیﻫﺎی وارﺳﻲ اﻣﻨﻴﺖ داﺧﻠﻲ.. 78
3-5 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﮔﺰارش وارﺳﻲ.. 79
فصل چهارم: اﺷﻨﺎﻳﻰ ﺑﺎ ﺣﻤﻼت SQL Injection. 81
4-5 ازﻣﻮن ﺗﺰرﻳﻖ SQL ........ 90
4-5-1 ازﻣﻮن ﺗﺰرﻳﻖ SQL اﺳﺘﺎﻧﺪارد. 93
4-6 ﺗﺰرﻳﻖ روالﻫﺎی ذﺧﻴﺮه ﺷﺪه. 99
4-8 اﻧﮕﺸﺖ ﻧﮕﺎری از RDBMS ............... 103
4-9 ﺣﻤﻠﻪی Timing ............ 103
4-10 روشهای مقابله با حملات SQL Injection. 104
فصل پنجم: اﺷﻨﺎﻳﻰ ﺑﺎ ﺣﻤﻼت XSS. 106
5-3-3 ﻣﻮﺟﻮدﻳﺖﻫﺎی HTML و ﻓﻴﻠﺘﺮﻫﺎ 112
5-3-4 روﻳﻜﺮد Exclusion..................... ... 118
5-4 راه های مقابله با حملات XSS. 122
6-2 ملاحظات امنیتی و اقدامات متقابل.. 129
6-3 به کارگیری رمزنگاری در تمامی مبادلات.. 129
6-3-1 پیاده سازی HTTPOnly در زبان های برنامه نویسی.. 131
6-3-2 پشتیبانی مرورگرهای مختلف از HTTPOnly. 132
6-4 تنها ذخیره شناسه نشست درسمت کلاینت... 133
6-5 پیاده سازی فیلترینگ پارامتر Referrer متد GET. 133
6-6 شناسایی و بررسی کاربر برای جلوگیری از حمله ربودن نشست... 134
6-7 انقضای نشست در صورت عدم فعالیت... 135
6-8 شناسه نشست را قابل مشاهده قرار ندهید. 136
6-9 انتخاب شناسه نشست مناسب... 136
6-10 جلوگیری از اسیب پذیری XSS. 137
6-11 اجبار در ایجاد شناسه نشست سمت سرور. 138
فصل هفتم: نتیجه گیری و ارزیابی.. 139
7-1 نتیجه گیری و ارزیابی.. 140
فهرست اشکال
شکل 1-1 اشنایی با معماری فایروال.. 4
ﺷﻜﻞ3-1 ﺳﻄﻮح OWASP ASVS ........................... 44
ﺷﻜﻞ 3-2 ﺳﻄﻮح OWASP ASVS .......................... 46
ﺷﻜﻞ 3-3 ﻣﺜﺎل ﻣﻌﻤﺎری اﻣﻦ در ﺳﻄﺢ 1 از OWASP ASVS. 48
ﺷﻜﻞ 3-4 ﺳﻄﻮح OWASP ASVS ........................... 50
ﺷﻜﻞ 3-5 ﻣﺜﺎل ﻣﻌﻤﺎری اﻣﻦ، در ﺳﻄﺢ 2 از OWASP ASVS......................... 53
ﺷﻜﻞ3-6 ﺳﻄﺢ 3 در OWASP ASVS......................... 55
ﺷﻜﻞ 3-7 ﻣﺜﺎﻟﻲ از ﻣﻌﻤﺎری اﻣﻦ در ﺳﻄﺢ 3 از OWASP ASVS......................... 57
ﺷﻜﻞ 3-8 ﺳﻄﺢ 4 در OWASP ASVS......................... 58
ﺷﻜﻞ 3-9 ﻣﺜﺎل ﻛﺪ ازﻣﺎﻳﺶ ﻧﺸﺪه ﺳﻄﺢ 4 در OWASP ASVS......................... 61
شکل 3-10 نمای کلی یک گزارش... 79
شکل 6-1 پشتیبانی مرورگرهای مختلف از HTTPOnly. 132
شکل6-2 پیاده سازی فیلترینگ... 134
شکل 6-3 مثال هایی از مقادیر رشته برای شناسایی کاربر. 135
فهرست جداول
جدول 2-1 نمونهای از مکانیزمهای امنیتی WAFها بااستفاده از اسیب پذیریهای خاص.... 23
جدول 2-2 امنیت در مقابل OWASP TOP10. 34
ﺟﺪول 3-1 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﻣﻌﻤﺎری اﻣﻦ.. 64
ﺟﺪول 3-3 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﻣﺪﻳﺮﻳﺖ ﻧﺸﺴﺖ... 67
ﺟﺪول 3-4 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﻛﻨﺘﺮل دﺳﺘﺮﺳﻲ.. 68
ﺟﺪول 5 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﻣﺮﺑﻮط ﺑﻪ اﻋﺘﺒﺎرﺳﻨﺠﻲ ورودی را در ﭼﻬﺎر ﺳﻄﺢ ﻧﺸﺎن ﻣﻲدﻫﺪ: 69
ﺟﺪول 3-5 ﻧﻴﺎزﻣﻨﺪیﻫﺎی اﻋﺘﺒﺎرﺳﻨﺠﻲ ورودی.. 69
ﺟﺪول 3-6 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﻛﺪﮔﺬاری ﺧﺮوﺟﻲ.. 71
ﺟﺪول 3-7 ﻧﻴﺎزﻣﻨﺪیﻫﺎی رﻣﺰﻧﮕﺎری.. 72
ﺟﺪول3-8 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﺛﺒﺖ و ﻛﻨﺘﺮل ﺧﻄﺎ 74
ﺟﺪول3-9 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﺣﻔﺎﻇﺖ داده. 75
ﺟﺪول 3-10 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ارﺗﺒﺎﻃﺎت اﻣﻦ.. 76
ﺟﺪول 3-11 ﻧﻴﺎزﻣﻨﺪیﻫﺎی اﻣﻨﻴﺖ 77
ﺟﺪول 3-12 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﭘﻴﻜﺮﺑﻨﺪی اﻣﻨﻴﺘﻲ.. 77
ﺟﺪول 3-13 ﻧﻴﺎزﻣﻨﺪیﻫﺎی ﺟﺴﺘﺠﻮی ﻛﺪ ﻣﺨﺮب.. 78
ﺟﺪول 3-14 ﻧﻴﺎزﻣﻨﺪیﻫﺎی اﻣﻨﻴﺖ داﺧﻠﻲ.. 79
فصل اول مقدمه
1-1مقدمه
برنامه فایروال ها، نسل جدیدی از تکنولوژی اطلاعاتی- امنیتی شبکههای اینترنتی هستند که برای محافظت از وبسایتها در برابر تهدیدهای امنیتی، طراحی شدهاند. معمولاً فایروالها تهدیدها و تجاوزاتی را که توسط سیستمها و فایروالهای شبکه قابل تشخیص نیستند را شناسایی کرده و انها را دفع مینمایند، بدون اینکه به اصلاح کد منبع نیازی داشته باشند. اما مسئله اساسی این است که وب، به خصوص پروتکلHTTP،برای برنامههای کاربردی پیچیده طراحی نشده است.
بدین منظور ما میخواهیم در این پژوهشدستهای از سیستمهای امنیتی؛ فایروالهای برنامههای تحت وب (WAF)، که به ویژه برای تأمین امنیت برنامههای کاربردی تحت وب مناسب هستند را معرفی نماییم. بنابراین ابتدا به معرفی IPSها و سپس عوامل نیاز ما به WAFو معرفی برخی از فایروالهای مدرن و مجهز میپردازیم و در نهایت معیار ارزبابی فایروالها را بررسی مینماییم تا مقدمهای برای ارائه فصلهای اتی فراهم شود.
پـــایــان نــامه فایروال های برنامه های تحت وب