بخشی از مقاله
چکیده
یکی از چالشهای دنیای امروز کامپیوتر پیدا کردن معیاری ساده و قوی برای شناسایی فایل های ویروسی است. در این مقاله، منطق فازی برای تشخیص ویروس پیشنهاد میشود. قدرت و سادگی منطق فازی در گروه بندی باعث شده است که منطق فازی نقطه عطف این مقاله باشد. علاوه بر منطق فازی، از کد باینری و N-gram نیز کمک میگیریم؛ به این صورت که پایگاه داده-ای از N-gram فایلهای مختلف ایجاد کرده و سپس با استفاده از منطق فازی مشخص میکنیم که فایل ویروسی است و یا بیخطراست.
.1 مقدمه
ویروسهای کامپیوتری تهدید بزرگی برای دنیای کامپیوتری هستند. محققانی که در این زمینه کار میکنند برای طبقه بندی و روشهای تشخیص این ویروسها تلاش کرده و کارهای مختلفی انجام دادهاند. نرم افزارهای آنتی ویروس تجاری فعلی یک ویروس را تنها پس از ظاهر شدن ویروس و ایجاد آسیب تشخیص میدهند. به همین دلیل شناسایی ویروسهای کامپیوتری پلیمورف و دگرگون شونده که از روشهای پیچیده تری برای تکامل خود استفاده میکند کار دشواری است. بنابراین لازم است از مدلهای قوی برای درک تکامل و سپس تشخیص اعمال برای حذف آنها استفاده کنیم. [4]
مقاله نرم افزار محاسباتی تشخیص ویروس [1] برای شناسایی ویروسها از ژنتیک الگوریتم و منطق فازی کمک گرفته شده است. ژنتیک الگوریتم برای بهینه سازی و مجموعه فازی برای طبقه بندی و ایجاد گروههای فازی استفاده شده است. اما پارامترهای شناسایی ویروس در این مقاله مبهم هستند. از جمله این پارامترها میتوان به کاهش سرعت سیستم، خطای متعدد، رفتار غیر طبیعی سیستم و... اشاره کرد. واضح است که صرفا استفاده از چنین پارامترهایی برای شناسایی و طبقه بندی ویروسها ، خصوصا ویروسهای دگرگون شونده معیار مناسبی نیست .
در مقاله ترکیبی از شبکههای عصبی و سیستم ایمنی مصنوعی [2] از شبکه عصبی برای دسته بندی و از سیستم ایمنی مصنوعی برای آموزش به سیستم کمک گرفته شده است. پارامتر شناسایی ویروس در این مقاله تولید N-gram از کد باینری است . از آن جایی که کد باینری همان محتوای فایل است، پس می توان نتیجه گرفت که کد باینری پارامتر مناسبی برای تشخیص ویروس است. اما استفاده از کد باینری نیازمند فضای زیادی است، ترجیح داده می شود از N-gramتولید شده از کد باینری استفاده شود تا در ذخیره فضا صرفه جویی کرد. [6]
از طرفی منطق فازی که بر اساس نظریه مجموعههای فازی ساخته شده است فرمتی چند ارزشی دارد یعنی برخلاف منطق کلاسیک که به هر گزاره یک ارزش 0 - دروغ مطلق - و یا 1 - حقیقت مطلق - میدهد، درجه ای از حقیقت را به هر گزاره اختصاص میدهد. این ویژگی علاوه بر اینکه باعث میشود مدل سازی به واقعیت نزدیک شود، منطق فازی را برای تصمیم گیریهای سریع بر اساس دادههای موجود مناسب میکند. [5]
ما در این مقاله توجه خود را به سمت نوع دیگری از فایلها نیز بردهایم. فایلهایی موجود هستند که ممکن است رفتار آنها شبیه به ویروس باشد اما خطری برای رایانه ایجاد نکنند، این نوع فایلها را شبه ویروس نام گذاری کردهایم. در این مقاله با استفاده از N-gram فایل و پایگاه دادهای از N-gram های فایلهای بیخطر ، ویروس، شبه ویروس، درصد تطبیق را محاسبه و سپس با قوانین منطق فازی تصمیم گرفته میشود که این فایل در کدام دسته قرار دارد.
.2 منطق فازی
فرآیندهایی که در دنیای واقعی مدل میشوند معمولا دقیق نیستند. در اکثر اوقات نمیتوان واقعیتی که همراه با عدم قطعیت است را آنچنان که واقعا است مدل کرد و در مدل کردن محدودیت هایی داریم. نتیجه این است که چون واقعیت خوب مدل نشده ، نتیجه مدل سازی - راه حل مدل - نیز کارایی لازم را به عنوان راه حل برای دنیای واقعی ندارد. تئوری فازی اولین بار در سال 1965 توسط لطفی زاده یا زاده معرفی شد.زاده به ناتوانی ریاضیات کلاسیک برای پرداختن به مسائل نادقیق دنیای واقعی اشاره کرد و چارچوب جدیدی به نام تئوری فازی را پایه ریزی کرد و مبانی آن را معرفی نمود.
تئوری فازی یک چارچوب جدید است که توانایی مدل کردن واقعیت را آن چنان که هست دارد .در واقع ضعف چارچوب ریاضیات کلاسیک این بود که واژههایی مثل کم، متوسط و زیاد در آن تعریف نشده بود؛ بنابراین اگر بخواهیم قواعد نادقیق - فازی - را به زبان ریاضیات کلاسیک تعریف کنیم آنچه که به دست می آید ممکن است با آن چه که مدنظر ما بوده متفاوت باشد و کارایی مدنظر ما تأمین نشود. زیرا ریاضیات کلاسیک ابزار لازم برای بیان واقعیتهای نادقیق فوق را ندارند.[9]
چارچوب جدید فازی سعی میکند مدل را با واقعیت بهم نزدیک کند و فاصله بین مدل سازی و تفکر انسان را کم کند. در این چارچوب بستر مناسبی برای تعریف واژههای فازی مثل کم، متوسط و زیاد فراهم میشود که تطابق خوبی با طرز فکر و احساس انسان دارد. قبل از آن که بخواهیم منطق فازی و قوانین آن را برای شما معرفی کنیم باید در ابتدا مجموعههای فازی و تفاوت آن را با مجموعههای کلاسیک را تعریف کنیم. در ریاضیات کلاسیک مجموعههای کلاسیک را داریم که مرزهای یک مجموعه کاملا مشخص هستند و به همین علت به آنها مجموعه Crisp هم گفته میشود. مجموعههای کلاسیک در مقابل مجموعههای فازی قرار دارند که در آنها مرزها نامشخص هستند. یک مجموعه کلاسیک 2 بخش مهم دارد :
-1اعضای هر مجموعه از یک دیگر قابل تشخیص اند.
-2برای هر شی داده شده، چه شی داده شده عضو مجموعه ای باشد و چه نباشد، شی موجودیت مجزایی از مجموعه دارد.
مجموعههای فازی با رد شرط دوم از مجموعههای کلاسیک متفاوت هستند. یعنی برخلاف مجموعههای کلاسیک نیازی به مرزهای تند و تیزی برای جدا کردن اجزای مجموعه خود از یک دیگر ندارند. عضویت هر شی در مجموعه مثل مجموعه کلاسیک تصدیق یا تکذیب نمیشود، اما موضوع درجه وجود دارد. یک مجموعه فازی که روی یک مجموعه جهانی تعریف میشود دارای یک تابع است، که شبیه به تابع مشخصه مجموعه کلاسیک است. هر کدام از این توابع به هر شی در یک مجموعه یک درجه عضویت را اختصاص میدهد. که این تابع به هر المنت x از U یک عدد A - x - از 1]، [0 را نسبت میدهد. و این عدد را درجه عضویتx * در A نامیده میشود. پس در نتیجه عدد، درجه حقیقت گزاره " x عضوی از A است " را مشخص میکند.
پس در مجموعه های فازی میزان تعلق اعضاء، نسبی است. در مجموعههای کلاسیک 0 و 1 ارزش عددی ندارند بلکه نقش آنها نمادین است اما در مجموعههای فازی درجه عضویت اختصاص داده شده اهمیت عددی دارد. در مجموعه کلاسیک 0و 1 به عنوان علامت در نظر گرفته شده اما در مجموعه فازی 0 و 1 و دیگر اعداد به عنوان عدد مشاهده میشوند.[8] برای درک بهتر تابع عضویت فرض کنید یک جمعیت مشخصی را داریم و میخواهیم مشخص کنیم که این افراد جوان هستند یا خیر. به عنوان مثال وقتی میگوییم "حسن جوان است"، "حسن" عضو مجموعهای به نام "جوان" است که عناصر آن یعنی اشخاص در سنین مختلف به اندازههای متفاوت عضو این مجموعه هستند.
میزان عضویت افراد در مجموعه "جوان" را با عددی بین صفر و یک نشان میدهند که درجه عضویت نامیده میشود. درجه عضویت " صفر" یعنی فرد در این مجموعه هیچ عضویتی ندارد، مانند یک فرد هفتاد ساله که میتوان میزان عضویتش را در مجموعه فازی جوان "صفر" در نظر گرفت و درجه عضویت "یک" یعنی فرد صد در صد عضو مجموعه است مانند یک فرد 18 ساله. از طرفی اگر "حسن" 30 ساله باشد میتوان او را به اندازه 0/7 عضو مجموعه "جوان" دانست.