بخشی از مقاله
سیستم تشخیص نفود مبتنی بر وب معنایی برای برنامه های کاربردی وب
چکیده
امنیت نرم افزار وب یکی از نگرانی های امنیتی مهم برای کسب و کار الکترونیکی جامعه و به اشتراک گذاری اطلاعات است. با توجه به افزایش این موضوع تهدیدات سایبری نیز روند رو به رشدی داشته است. تحقیقات کنونی[1] نشان می دهد که بیش از %75 حملات در لایه کاربردی مستقر هستند و %95 برنامه های کاربردی آسیب پذیر به این حملات می باشند. در حال حاضر حفظ یک سطح امنیتی بالا برای اطمینان از ارتباط امن و قابل اعتماد اطلاعات بین سازمان های مختلف بسیار مهم میباشد. بنابراین سیستم های تشخیص نفوذ یک جزء لازم از نظر امنیت کامپیوترها و شبکه می باشد
هدف اصلی در انجام این تحقیق دستیابی به سیستم تشخیص نفوذی می باشد که نرخ خطاها در آن به حداقل رسیده و در مقابل نرخ تشخیص بالا و در حد ایده آل باشد. برای رسیدن به این هدف مفاهیم وب معنایی و بخصوص مفهوم آنتولوژی مورد توجه قرار داده شده است.
تکنیک ها و روش هایی که وب معنایی برای دستیابی به اهدافش استفاده می کند، مانند کمک گرفتن از مفهوم، محتوی و مضمون می باشد. در این مقاله ما یک روش برای تشخیص و طبقه بندی حملات برنامه های کاربردی وب ارائه می دهیم. در مقایسه با تکنیک های امنیتی مبتنی بر امضا که در حال حاضر وجود دارد، راه حل ما یک رویکرد مبتنی بر هستی شناسی برای حملات برنامه های کاربردی وب می باشد. این کار با استفاده از مفهوم منطقی و قواعد معنایی و مشخصات پروتکل امکان پذیر شده است.
کلمات کلیدی
سیستم تشخیص نفوذ، آنتولوژی، حملات، یرنامه های کاربردی وب، نرخ تشخیص، مثبت کاذب
- 1 مقدمه
امروزه فضای مجازی تبدیل به یک محیط متشکل از زیرساخت های دیجیتال پیچیده و در هم تنیده شده است که گاهی نمیتوان مرز روشنی بین آنها تعیین نمود. در همین راستا هرگاه سخن از موضوع امنیت در فضای مجازی به میان میآید، مرز مشخصی برای آن نمیتوان قائل شد و ابعاد گوناگونی مانند امنیت در لایه های فیزیکی، داده، شبکه، نر م افزار و... مطرح خواهد شد که هرکدام نیازمند توجهات خاص خود بوده و بسیار به هم وابسته می باشد. یکی از مهمترین ابعاد امنیت، امنیت نرم افزار و به ویژه برنامههای
کاربردی مبتنی بر وب میباشد، چرا که این نرم افزارها نقش واسط ارتباطی بین سازمان و کاربران بیرونی را داشته و به عنوان یک نقطه ورودی بسیار مناسب برای هکرها به شمار میروند و به همین دلیل بنابر آمار در بیش تر حملات صورت پذیرفته به سازمانها، آسیب پذیریهای موجود در این گونه نرم افزارها نقشی کلیدی در انجام موفقیت آمیز حملات ایفا کرده است. استفاده روز افزون کاربران از برنامه های کاربردی تحت وب، پتانسیل پرخطرِ بسیاری را از شبکه اینترنت به سمت کاربران آن سوق میدهد .علاوه بر این بروز خطاهای انسانی و توسعه برنامه های مبتنی بر وب توسط
برنامه نویسانی که آشنایی کافی با مسائل امنیتی ندارند، سرآغاز بروز تهدیدات امنیتی خواهد شد.
بنابراین سیستمهای تشخیص نفوذ1 یک جزء لازم از نظر امنیت کامپیوترها و شبکه میباشد. تشخیص نفوذ یکی از ابزارهای مفید برای شناسایی تلاشهای مخرب بر روی شبکه و حفاظت از سیستم بدون تغییر نرم افزار کاربر نهایی میباشد. سیستم تشخیص نفوذ به یک تکنولوژی مهم و بحرانی برای حفاظت از سیستمها تبدیل شده است. ما یک روش برای تشخیص و طبقه بندی حملات برنامه های کاربردی وب ارائه میدهیم. در مقایسه با روشهای امنیتی مبتنی بر امضا که در حال حاضر وجود دارد، راه حل ما یک روش مبتنی بر آنتولوژی2 است.
در این پایان نامه هدف ارایه یک سیستم تشخیص نفوذ مبتنی بر وب معنایی می باشد. قرار است تا از آنتولوژی"حملات برنامه های کاربردی وب" برای انجام عمل تشخیص نفوذ استفاده شود. ایجاد آنتولوژی برای حملات برنامههای وب و یافتن ویژگی های هرکدام و تحقیق جامع درباره این حملات با استفاده از نرم افزار 3protégé صورت می گیرد. مدل آنتولوژی با استفاده از شرح منطق که در زبان هستی شناسی وب (OWL) استوار است میباشد. قواعد استنتاج و گزاره ها با استفاده از jena که یکی از پلت فرم های جاوا است، پیاده سازی میشود. قبل از ارزیابی سیستم مدل دانش از ontoclean برای حذف افزونگیها و تناقضها در مشخصات استفاده می کند. برای پیاده سازی و اندازهگیری عملکرد سیستم، مجموعه داده های معیار KDD CUP 99 استفاده میشود سیستم پیشنهادی هم کارآمد است و با تجزیه و تحلیل فیلد مشخص از پروتکل، قادر به ارائه جستجوی مفید و همچنین کاهش میزان نرخ مثبت کاذب و افزایش نرخ کشف و شناسایی می شود.
در بخش اول مقاله درباره سیستمهای تشخیص نفوذ و انواع حملات کامپیوتری بحث می شود. تشریح مختصری از وب معنایی و کاربردهای آن درسیستمهای تشخیص نفوذ در بخش دوم انجام میگردد. در بخش سوم طراحی آنتولوژی
حملات برنامه های کاربردی توصیف شده و در بخش چهارم سیستم پیشنهادی توصیف شده و نتایج آن و بهبود حاصل شده بررسی می شود و سپس مطالب مطرح شده در مقاله نتیجهگیری میگردد.
-2 سیستم های تشخیص نفوذ و انواع حملات برنامه های کاربردی تحت وب
سیستمهای تشخیص نفوذ وظیفهی شناسایی و تشخیص هر گونه استفادهی غیرمجاز به سیستم، سوء استفاده و یا آسیب رسانی توسط هر دو دستهی کاربران داخلی و خارجی را بر عهده دارند. سیستمهای تشخیص نفوذ به صورت سیستمهای نرم افزاری و سخت افزاری ایجاد شده و هر کدام مزایا و معایب خاص خود را دارند. سرعت و دقت از مزایای سیستمهای سخت افزاری است و عدم شکست امنیتی آن ها توسط نفوذگران، قابلیت دیگر این گونه سیستمها میباشد. اما استفادهی آسان از نرم افزار، قابلیت انطباق پذیری در شرایط نرم افزاری و تفاوت سیستمهای عامل مختلف، عمومیت بیشتری را به سیستمهای نرم افزاری می دهد و عمومأ اینگونه سیستمها انتخاب مناسب تری هستند.
به منظور مقابله با نفوذگران به سیستمها و شبکههای کامپیوتری، روشهای متعددی تحت عنوان روشهای تشخیص نفوذ ایجاد گردیده است که عمل نظارت بر وقایع اتفاق افتاده در یک سیستم یا شبکه ی کامپیوتری را بر عهده دارد. روشهای تشخیص مورد استفاده در سیستم های تشخیص نفوذ به دسته های زیر تقسیم میشوند:
سیستم تشخیص نفوذ مبتنی بر رفتار غیر عادی:4 در این روش، یک نما از رفتار عادی ایجاد میشود. یک ناهنجاری ممکن است نشان دهنده ی یک نفوذ باشد. برای ایجاد نماهای رفتار عادی از رویکردهایی از قبیل شبکههای عصبی، تکنیکهای یادگیری ماشین و حتی سیستمهای ایمنی زیستی استفاده میشود. برای تشخیص رفتار غیرعادی، باید رفتارهای عادی را شناسایی کرده و الگوها و قواعد خاصی برای آن ها پیدا کرد. رفتارهایی که از این الگوها پیروی می کنند، عادی بوده و رویدادهایی که انحرافی
بیش از حد معمول آماری از این الگوها دارند، به عنوان رفتار غیرعادی تشخیص داده میشود.سیستم تشخیص نفوذ مبتنی بر رفتار غیر عادی براساس تجزیه و تحلیل رفتار جریان ورودی در برابر مشخصات تاسیس و طبقه بندی شده همه رفتارهای غیر عادی به عنوان مخرب رفتار می کند. [2] Song و همکاران[3] روشی برای تشخیص ناهنجاری که میتواند به طور خودکار تنظیم شود و باعث بهینه سازی مقادیر پارامترهایی که از قبل برچسب زده شده می شود، ارائه می دهد. توانایی تشخیص در چنین سیستم هایی به شدت به آموزش مدل داده بستگی دارد. یک مدل ضعیف باعث کاهش عملکرد تشخیص می شود. IDS مبتنی بر رفتار غیرعادی قادر به ارائه راه حل برای اثبات رفتارهای مخرب در حملات سطح برنامه های کاربردی هستند. چراکه این مدل نیز برای تامین امنیت سرورهای پایگاه دده در برابر حملات تزریق SQL استفاده می شود.
سیستم تشخیص نفوذ مبتنی بر امضاء:5 سیستمهای تشخیص نفوذ مبتنی بر امضا بر استفاده از امضا حملات ویا آسیب پذیری در حال حاضر شناخته شده و به کار بردن الگوریتم تطبیق الگوی اولیه که برای تشخیص تهدیدات امنیتی است، استفاده می کنند. چنین مکانیسمهای تشخیص در هر دو سطح شبکه با تجزیه و تحلیل ترافیک شبکه[4] و در سطح نرم افزار با نظارت بر سرور ورود اعمال می شود. امضا حملات شناخته شده در جلوگیری از حملات روز صفر بی اثر هستند. سیستمهای امنیتی را می توان به راحتی با ماهیت چند شکلی از حملات شکست داد. با توجه به افزایش نمایی در انواع حملات، IDS مبتنی بر امضا نیز با چالش افزایش سریع در قوانین امضا روبرو هستند. نگه داشتن هویت تهدید در پایگاه داده ها و به روزکردن آنها وقت گیر است. برای مثال اسنورت، دارای بیش از 2500 قوانین امضا میباشد.[5] شبکه IDS نیز مشکلاتی در کار با ارتباطات رمزگذاری بر روی وب داشته است. IDS برنامه های کاربردی در بسیاری از زمینهها با مشکل ایجاد دستی و به روز رسانی امضا روبرو هستند. Xu و همکاران[6] یک رویکرد برای تولید خودکار از آزمونهای امنیتی با استفاده از مدلهای تهدید
رسمی برای تشخیص ورودیهای نامعتبر را نشان داد.
سیستم تشخیص نفوذ مبتنی برتکنیکهای داده کاوی یا وابسته به آمار:6 تکنیکهای دادهکاوی برای تشخیص ناهنجاری[7] یک چارچوب براساس روش های آماری ارائه میکند. آنها اغلب به تجزیه و تحلیل سربار مخرب بااستفاده از روشهای آماری میپردازند. برخی سیستمهای تشخیص نفوذ مبتنی بر شبکه از تکنیکهای داده کاوی استفاده میکنند، این روش فرکانس کاراکترها را درنظر گرفته و احتمال وقع آن را در داده های مخرب محاسبه میکند. این روش فاقد معنا می باشد درحالیکه درک ماهیت متنی از یک حمله و عواقب آن ضروری است. Balzarotti و همکاران[8] از ترکیب روشهای تجزیه و تحلیل ایستا و پویا برای پاک کردن نقاط ضعف برنامه های کاربردی وب که به مهاجم اجازه دور زدن کنترل های امنیتی را میدهد، استفاده کردند. این روش تجزیه و تحلیل اثر بسیار محدود درجایی که از روشهای سنتی استفاده می شود، دارد و به طور معمول باعث تولید مثبت کاذب بسیاری میشود. Shahzad و همکاران[9] ساخت یک ردپای ژنتیکی به وسیله استخراج اطلاعات در بلوک کنترل هسته از یک فرایند، برای فعال کردن تشخیص فرآیندهای مخرب درزمان اجرا را پیشنهاد دادند
سیستم تشخیص نفوذ مبتنی بر آنتولوژی:7 راه حل های سیستم تشخیص نفوذ مبتنی بر هستی شناسی به طور فزاینده در امنیت اطلاعات استفاده میشود. راسکین و همکاران[10] یک هستی شناسی برای تمامیت دادههای منابع وب طراحی کردند و استفاده از هستی شناسی را برای امنیت اطلاعات حمایت کردند. آنها ادعا میکنند با استفاده از هستی شناسی، رفتار تودههای نفوذی را می توان به طور سیستماتیک با هرسطح از جزییات لازم شرح دهیم. هستی شناسی ها در کاهش تنوع زیاد مفاهیم به لیست کوچکتری از خواص کمک می کند. تشخیص دقیق دانش امنیت نیز می تواند در بهبود قابلیت های پیشگیری و واکنش مفید باشد. Landwehr وهمکاران[11] کلاسه های نفوذ با توجه به محل، وسایل و پیدایش ان ها طبقه بندی نمودند. Ning و
همکاران[12] یک مدل سلسله مراتبی برای مشخصات حملات از طریق بررسی ویژگی های حملات و صفات آن ها بررسی نمودند. [13] McHughروی طبقه بندی حملات با توجه به لایه های پروتکل تمرکز کرده است و Guha and [14]Mukherjee تجزیه و تحلیل هریک از لایه های پشته پروتکلTCP/IP را به عنوان پایه و اساس طبقه بندی حمله مورد توجه قرار دادند. Santos و همکاران[15] از هستی شناسی برای تشخیص پیامهای اسپم با گرفتن متون پیام ایمیلها و مفاهیم آن استفاده کردند. مشکل اصلی در سیستم هایی که قبلا ذکر شد این است که آنتولوژی فقط برای به تصویر کشیدن یک نمایش ساده از ویژگی های حمله استفاده می شد. این سیستم ها فاقد قدرت استدلال لازم هستند که هوشمندانه از سیستم محافظت کنند. این به خاطر ساختار طبقه بندی و تمرکز بیشتر بر روی لایه شبکه نسبت به لایه کاربردی است. بنابراین این مساله باعث بی توجهی و غفلت برخی از حملات بحرانی برنامه های کاربردی وب می شود.
-1-2 طبقه بندی انجمن OWASP در خصوص مخاطره های مهم در مورد امنیت برنامه های کاربردی:
OWASP سازمانی بین المللی و غیرانتفاعی میباشد که در راستای ایمنسازی طراحی، پیادهسازی، توسعه و تست پروژههای نرم افزاری فعالیت میکند. تمامی مستندات، ابزارها و چک لیستهای مندرج در سایت رسمی آن سازمان رایگان بوده و در جهت برطرف نمودن آسیب پذیریهای امنیتی متداول در تمامی قالبهای کاری نرم افزار توسعه داده شده است. چندین هزار کاربر فعال در سر تا سر جهان در این پروژه فعالیت داشته و در جهت بهبود مطالب و ابزار به این سازمان یاری میرسانند.
آخرین آسیب پذیریهای منتشر شده در سال 2013 توسط این سازمان 8(OWASP Top 10 List 2013) شامل:
-1 تزریق :(Injection) آسیب پذیری تزریق کد همانند تزریق SQL، OS و LDAP زمانی رخ میدهد که داده های نامعتبر به یک مترجم (Compiler or Interpreter) به جای دستور و یا query ارسال میگردند. هکر از طریق داده های
نامعتبر قادر به فریب مترجم شده و امکان اجرای دستورات غیر قانونی و یا رؤیت اطلاعات حیاتی بدون مجوز دسترسی برای او فراهم میشود.
-2 تاییدیه شکسته شده و مدیریت جلسه ( Broken
:(Authentication and Session Management عملیات نرم
افزارهای کاربردی مرتبط با اعطای مجوز دسترسی و مدیریت جلسه گاها به درستی پیاده سازی نشده و این امکان را به هکرها می دهد تا به اطلاعات حیاتی همانند رمز های عبور، گذرواژهها و نشان وارهها در جهت سوء استفاده و جعل هویت دسترسی پیدا کنند.
-3 پردازه گزاری فرا- وبگاهی(:(Cross-Site Scripting این آسیب پذیری زمانی رخ میدهد که نرم افزار کاربردی، دادههای نا امن را بدون اعتبار سنجی برای کاوشگر وب ارسال نماید. هکر توسط این آسیب پذیری قادر به اجرای اسکریپت بر روی کاوش گر قربانی، دزدیدن جلسه و یا تغییر مسیر قربانی به وب سایت های مخرب (malicious sites) خواهد بود.
-4 ارجاع ناامن به اشیاء داخلی برنامه ( Insecure Direct :(Object References این آسیب پذیری زمانی رخ می دهد که برنامه نویس دسترسی ارجاع یک منبع به اشیاء داخلی برنامه را باز گذاشته باشد (همانند فایل، دایرکتوری و یا بانک اطلاعاتی). بدون کنترل دسترسی به این اشیاء هکر قادر به دستکاری منابع در جهت دسترسی به اطلاعات حیاتی خواهد بود.
-5 پیکربندینادرست امنیتی(:(Security Misconfiguration امنیت مناسب نیارمند تعریف و استقرار پیکربندی مناسب برای نرم افزار، قالب کاری، وب سرور، بانک اطلاعاتی و سیستم عامل میباشد . تنظیمات امن میبایستی تعریف، پیاده سازی و نگهداری شوند که البته تنظیمات پیش فرض بسیار ناامن میباشند. همچنین می بایستی همیشه نرم افزارها بروز نگه داشته شوند.
-6 افشای اطلاعات حساس : (Sensitive Data Exposure )
بسیاری از نرم افزارهای کاربردی تحت وب بدرستی از اطلاعات محرمانه خود (همانند اطلاعات اعتبار سنجی کاربران و اطلاعات کارت بانکی) محافظت نمی کنند. هکر با دزدیدن این اطلاعات قادر به سوء استفاده از آنها و ایجاد