بخشی از مقاله

چکیده –امروزه، حملههای نرمافزاری مخرب و تهدیدها علیه امنیت دادهها و اطلاعات، فرآیندی پیچیده شده است. تنوع و تعداد این حملهها و تهدیدها نتیجه فراهم کردن انواع مختلف روشهای دفاع در مقابل آنهاست، اما متاسفانه تکنولوژیهای تشخیص امروزی برای مقابله با روشهای جدید طراحان نرمافزار مخرب که از آنها برای گریز از ضدمخربها استفاده میکنند، موثر نیستند. محققان تلاش زیادی کرده اند تا سیستم های ضد بدافزار با روش های موثر تشخیص بدافزار ارائه دهند و از سیستم های کامپیوتری محافظت کنند.

یک سیستم تشخیص بدافزار سیستمی است که برای تعیین این مسئله به کار می رود که آیا یک برنامه قصد خرابکاری دارد یا خیر. از این رو پژوهشهای اخیر در حال گام برداشتن به سوی کاوش بدافزار با استفاده از سیستم های دقیق و الگوریتم های هوشمند برای کشف بدافزار هستنداخیراً. محققان، روش های تشخیص بدافزار را با استفاده از دادهکاوی و روشهای یادگیری تقویتی پیشنهاد کرده اند که بدافزارهای ناشناخته را هم مانند بدافزارهای شناخته شده، شناسایی کنند. در این مقاله، ما یک سیستم نرمافزاری هوشمند تشخیص بدافزار را طراحی و پیادهسازی نمودهایم که فایل هدف را با استفاده از ابزارهای آنالیز، تجزیه و تحلیل کرده و سپس با استفاده از تکنیکهای دادهکاوی و یادگیری تقویتی نوع بدافزار را شناسایی، دستهبندی و درصد احتمال آن را محاسبه میکند.

-1 مقدمه

-1-1  تشخیص بدافزار

بدافزار به طور کلی به نرم افزارهایی گفته می شود که باعث هر گونه خرابی در رایانه شخصی، سرویس دهنده یا شبکه رایانه ای شوند. با متداول شدن حملات از این نوع، روش های مقابله با ویروس ها و جاسوس افزارها به سمت مقابله با بدافزارها هدایت شده اند و در این زمینه نرم افزارهای گوناگونی نیز تهیه شده است. در حال حاضر، کاربرد اینترنت به بخش جداییناپذیری از زندگی مدرن تبدیل شده است. مرورگر اینترنت، انواع مختلفی از نرم-افزارها را دانلود میکند که میتواند شامل بدافزار نیز باشد. یکی از اشکالات عمدهی استفادهی گسترده از اینترنت، آسیب پذیری در مقابله با نفوذ بدافزارهاست.

نامهای مختلفی برای بدافزارها مانند کدهای مخرب و برنامههای مخرب وجود دارد. بدافزار یک نرم افزار مخرب است که با قصد نقض سیاست سیستم کامپیوتری با توجه به محرمانه بودن، یکپارچگی و در دسترس بودن دادهها استفاده می-شود. این نرم افزار میتواند هر برنامهای از سیستم را تغییر دهد و یا حذف کند تا به عمد به توابع مورد نیاز سیستم آسیب برساند. گزارش اخیر سالانه در مورد تهدید امنیتی اینترنت در سال 2013 نشان میدهد، تهدید آنلاین در حال رشد است به خصوص دستگاه-های موبایل و رسانههای اجتماعی میزان حملات را در سال 2012 به حداکثر رسانده اند.[1]

این تهدیدها باعث به وجود آمدن سیستمهای تشخیص بدافزار شده است. در واقع، سیستم تشخیص بدافزار سیستمی است که برای تعیین این مسئله به کار می رود که آیا یک برنامه قصد خرابکاری دارد یا خیر. سیستم تشخیص شامل دو وظیفه اصلی می شود، تحلیل و تشخیص.[2] رشد سریع بدافزار باعث ایجاد تهدیدهای بسیاری در حوزه امنیت اطلاعات شده است. بنابراین مراکز دفاع سایبری اهمیت زیادی در بسیاری از کشورها دارد. همانند مرزهای یک کشور که میتواند مورد تهدید و هجوم قرار گیرد، فضای مجازی نیز می تواند مورد این تهدیدها قرار گیرد.[3]

مطالعات قبلی نشان میدهند که اغلب حملهها در حوزه فضای مجازی از سوی بدافزارها هستند. تشخیص به موقع حمله های امنیتی فضای مجازی، اهمیت بالایی در حفاظت از منابع دارد. برای تشخیص چنین بدافزارهایی قبل از ظهور اثرات مخرب آنها، بایستی روشهایی برای تشخیص رفتارهای خوب و بد نرم افزار، به منظور تشخیص اینکه کدام نرمافزار مشکلزاست و کدام نیست، به کار گیریم.[4]فعالیت های مخرب وارد مرحله جدیدی شده است که در آن کدهای مخرب به جای آلوده کردن رایانه ها، به دنبال سرقت اطلاعات شخصی کاربران به منظور سرقت و کلاه برداری از آن ها می باشند.

بر همین اساس تعداد و اثرات زیانبار بدافزارها به طور روز افزون در حال افزایش است. در همین راستا ارائه ابزارهایی که با بررسی فایل ها بتوانند تحلیلی روی آنها انجام دهند منجر به شکل گیری زمینه ای در هوش مصنوعی و فناوری اطلاعات گردیده که به تشخیص بدافزار معروف است. این حوزه تمام فعالیتهایی که به نوعی به دنبال نفوذ در سیستم هستند را شامل می گردد. آنالیز فایل ها توسط تکنیکهای یادگیری ماشین، یا روشهای مرتبط دیگر همگی در زمره مقوله تشخیص بدافزار قرار میگیرند. یکی از روشهایی که ذکر گردید، استفاده از تکنیکهای یادگیری ماشین و داده کاوی در این زمینه است.

-2-1  کارهای مرتبط با این زمینه

در میانه های دهه نود روش های مبتنی بر امضاء بوجود آمد .[5,6] عمده ترین ضعف این روش ها ناتوانی آن ها در شناسایی بدافزارهای چند شکلی و جد ید است. از آن به بعد، پژوهش هایی برای بهبود بخشیدن به روش های مبتنی بر امضاء ارائه شد [7,8,9,10] که یکی از بهترین این روش ها پروژه SAVE - Static Analyzer of Vicious Executables - است که تمرکز آن بر روی اندازه گیری شباهت بین کدهای مخرب شناخته شده و کدهای مشکوک است. با این حال که این پژوهش روش مبتنی بر امضاء را بهبود داد ولی همچنان در تشخیص بدافزارهای جدید و چند شکلی ناتوان بود.

تعدادی از این پژوهش ها نیز با استفاده کردن از الگوریتم های داده کاوی و یادگیری ماشین برای بهبود این روش ها تلاش کردند.[15,11,12] یکی از این کارها [8] از روش n-grams استفاده کرده است که در این پژوهش از 1971 فایل سالم و 1651 فایل مخرب به عنوان خصیصه استفاده شده است. در کاری که اخیراً توسط Ye[13] انجام شده است، اولین سیستمی - IMDS - که در آن از فراخوانی های API استفاده شد، ارائه شده است.

در این پژوهش از خصیصه هایی که از فراخوانی های API تولید شده و از داده کاوی روی این خصیصه ها استفاده شده است. داده این پژوهش از 12214 فایل سالم و 17366 فایل مخرب تشکیل شده است. آن ها از 2000 فایل برای تست کردن سیستم استفاده کرده اند که ثابت شده است به طور تصادفی از داده یادگیری انتخاب شده اند. Dai et al [14] یک سیستم تشخیص بد افزار را با استفاده از روش استاتیک پیشنهاد کرده است که بر پایه یادگیری ماشین است و ویژگیهایی را که مورد نیاز است را از داخل مدل استخراج میکند. همچنین در این سیستم مدلهای طبقهبندی با استفاده از تکنیک-های دادهکاوی انجام میشود.

-3-1  یادگیری تقویتی

یادگیری تقویتی یکی از حوزه های یادگیری ماشین است و اخیراً یکی از بیشترین موضوعات مطرح در هوش مصنوعی است. [16] - 1959 - Arthur Samuel از جمله اولین کسانی بود که بر روی یادگیری ماشین کار می کرد، با برنامه چکر. او از سیگنالهای پاداش که یک مولفه کلیدی در یادگیری تقویتی پیشرفته هستند استفاده نمی کرد، اما [ 17] Sutton بر روی سیگنالهای پاداش کار کرد و بعضی از تکنیک های Samuel را که شباهت زیادی به الگوریتم های تفاضل زمانی امروزی داشت را گسترش داد.

هدف اصلی از یادگیری، یافتن شیوه ای برای عملکرد در حالات مختلف است که این شیوه در مقایسه با سایرین، با در نظر گرفتن معیارهایی، بهتر است. هنگامی می توان گفت یادگیری اتفاق افتاده است که، عاملی بر اساس تجربیاتی که کسب می کند به نحوه ی دیگر، و به احتمال زیاد، بهتر عمل کند . در این صورت باید نحوه ی عملکرد عامل در اثر کسب اطلاعات جدید، متفاوت از نحوه ی عملکرد در زمان های قبل از کسب این اطلاعات و تجارب باشد.

در دهه ی 90 یادگیری تقویتی جذابیت زیادی را بین محققان کسب کرد. در مقابل رویکرد محبوب یادگیری با ناظر که عامل از طریق مثال هایی که توسط ناظر خارجی[18] آماده شده است آموزش می بیند، یادگیری تقویتی نیاز دارد که عامل به طور مستقیم با تعامل با سیستم آموزش ببیند و به پاداش ها یا جریمه های مبتنی بر اثر هر عمل در سیستم پاسخ دهد.

در یادگیری تقویتی، هدف اصلی از یادگیری، انجام دادن کاری و یا رسیدن به هدفی است، بدون آنکه عامل یادگیرنده، با اطلاعات مستقیم بیرونی تغذیه شود. در این روش، تنها مسیر اطلاع رسانی به عامل، از طریق یک سیگنال پاداش یا جریمه می باشد. تنها چیزی که از طریق سیگنال پاداش به عامل فهمانده می شود، این است که آیا تصمیم مناسبی گرفته است یا نه؟

موضوع این مطالعه بکارگیری یادگیری تقویتی و داده کاوی در سیستم هوشمند تشخیص بدافزار می باشد، تا با استفاده از این رویکرد فایل های ورودی به سیستم مورد تجزیه و تحلیل قرارگرفت و درصد نزدیکی هر فایل به دسته مربوطه را مشخص کنیم. به علاوه تجربیات به دست آمده از این تحقیق می توانند پایه ای برای تحقیقات بیشتر در به کارگیری تکنیک های یادگیری تقویتی و داده کاوی برای سیستم های هوشمند تشخیص بدافزار و مسائل پیچیده تر باشند. این مقاله به صورت زیر سازماندهی شده است: بخش بعدی معرفی یادگیری تقویتی به عنوان یک رویکرد در سیستم هوشمند تشخیص بدافزار، بخش 3 الگوریتم های یادگیری تقویتی، بخش 4 نتایج شبیه سازی و بخش آخر نتیجه گیری.

-2 معرفی یادگیری تقویتی به عنوان یک رویکرد در سیستم هوشمند تشخیص بدافزار

در چارچوب یادگیری تقویتی یک عامل یادگیرنده باید اطلاعات را از محیطش درک کند. اطلاعات درک شده برای تشخیص وضعیت فعلی محیط استفاده می شود. سپس عامل یک عمل را بر اساس وضعیت درک شده انتخاب می کند تا اجرا کند. عمل انتخاب شده ممکن است بر اثر یک تغییر در وضعیت محیط حاصل شده باشد. براساس وضعیت جدید یک تقویت سریع وجود دارد که برای پاداش دادن یا جریمه کردن عمل انتخاب شده، در نظر گرفته شده است.

این فعل و انفعالات بین عامل و محیطش تا زمانی که عامل یک استراتژی تصمیم گیری را یاد می گیرد تا مجموع پاداش ها را حداکثر کند ادامه می یابد . Sutton و [19] Bartoچهار عنصر کلیدی را برای برخورد با مسائل یادگیری تقویتی عنوان می کنند: یک سیاست، یک تابع پاداش، یک تابع مقدار و یک مدل برای محیط. یک سیاست، رفتار عامل را در یک وضعیت داده شده تعریف می کند. یک تابع پاداش هدف کلی عامل را توصیف می کند که عامل را برای به دست آوردن هدف، آموزش می دهد. یک تابع مقدار، مقدار یک وضعیت را تعیین می کند یا یک جفت - وضعیت-عمل - که مشخص می کند عامل چقدر خوب است.

یک مدل محیط، وضعیت بعدی را با توجه به وضعیت فعلی داده شده و عمل پیشنهاد شده پیش بینی می کند. علاوه بر چهار عنصر بالا یک فرض کلیدی در چارچوب یادگیری تقویتی وجود دارد. اینکه هر تصمیم که الگوریتم یادگیری تقویتی می گیرد براساس وضعیت فعلی است که تمام موارد مهم را درباره ی دنباله ی کاملی از وضعیت های قبلی که منجر به آن می شوند خلاصه می کند.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید