محسن مهابادی زاده
9th December 2014, 03:05 PM
الگوریتمهای شناسایی بدافزارها / بخش اول
پایداری ملی:
به راحتی میتوان گفت که کشف ویروسها یکی از پرهزینهترین و سختترین کارها در زمینه مبارزه با ویروسهای کامپیوتری است، که همواره نیازمند متخصصانی در این حوزه میباشد که بتوانند فایلهای حاوی بدافزارها را به خوبی آنالیز کرده و راهکارهایی را جهت شناسایی بدافزارها استخراج کنند.
بعد از انتخاب یک آنتیویروس و نصب آن بر روی سیستم، کاربر سه انتظار اصلی از آنتیویروس نصب شده دارد. 1. کشف ویروسها 2. شناسایی و تعیین هویت ویروس 3.آلودگی زدایی ایجاد شده بر روی فایلها توسط ویروس
این سه مورد از اساسی ترین پارامترهای مرتبط با یک آنتیویروس میباشد. سعی بر این است در این مقاله تا حدامکان در مورد روشهای کشف ویروسها صحبت شود و مزایا و معایب هر روش و لزوم وجود این روشها مورد بررسی قرار گیرد.
کشف ویروسها
به راحتی میتوان گفت که کشف ویروسها یکی از پرهزینهترین و سختترین کارها در زمینه مبارزه با ویروسهای کامپیوتری است، که همواره نیازمند متخصصانی در این حوزه میباشد که بتوانند فایلهای حاوی بدافزارها را به خوبی آنالیز کرده و راهکارهایی را جهت شناسایی بدافزارها استخراج کنند. از این رو سوالات متعددی بوجود میآید همچون اینکه، آیا روشهای شناسایی بدافزار به صورت عمومی و کلی هستند یا نه و برای هر خانواده از بدافزارها نیازمند یک روش جداگانه هستیم؟
آیا پاسخ حاصل از این روشهای کشف ویروسها کامل و دقیق هستند؟ آیا این روشهای کشف خطری برای سیستم کاربر ندارند؟ و سوالهای از این قبیل که سعی داریم در اینجا به صورت مختصر پاسخهایی را برای این پرسشها داشته باشیم.
خروجی حاصل از مراحل کشف ویروس را میتوان به 4 حالت کلی بیان کرد:
1. اگر ویروس واقعاً وجود داشته باشد و نتیجه حاصل از کشف هم مثبت باشد پاسخ مثبت درست خواهیم داشت.
2. اگر ویروس واقعاً وجود داشته باشد و نتیجه حاصل از کشف منفی باشد، پاسخ منفی نادرست اعلام خواهد شد.
3. اگر ویروس واقعاً وجود نداشته باشد و نتیجه حاصل از کشف هم منفی باشد پاسخ منفی درست اعلام خواهد شد.
4. اگر ویروس واقعاً وجود نداشته باشد و نتیجه حاصل از کشف مثبت باشد آنگاه پاسخ مثبت نادرست اعلام خواهد شد.
میزان درصدهای این حالات در پویش فایلهای یک سیستم معیار اصلی جهت تعیین قدرت شناسایی آنتیویروسها میباشد.
روشهای کشف بر اساس اینکه آیا در زمان بررسی فایل، باید فایل مربوطه اجرا شود یا نه به دو گروه تقسیم میشود :
1. شناسایی ایستا
2. شناسایی پویا
روشهای ایستا
به روشی که در آن شناسایی بدافزار بدون اجرای فایل مورد نظر انجام گیرد، شناسایی ایستا میگوییم. از مزایای این روش میتوان به آلوده نشدن سیستم در حال اجرای ویروس و سرعت بالای شناسایی اشاره کرد. از روشهای موجود در این حوزه میتوان به شناسایی بر اساس امضا و شناسایی بر اساس اکتشاف اشاره کرد.
[*=center]شناسایی بر اساس امضا: هر بدافزاری برای اینکه بتواند شناسایی شود نیازمند یک شناسه یکتا میباشد. این شناسه میتواند قسمتهای مشخصی از باینری مربوط به فایل باشد یا اینکه میتواند یک مجموعه رفتار یکتا از بدافزار باشد که اصطلاحاً به امضای بدافزار گفته میشود، امضا گرفته شده باید به گونهای باشد که بتواند حجم زیادی از آن خانواده توسط آن امضا گرفته شود، با این کار حجم زیادی از ویروسها فقط توسط یک امضا شناسایی میشود. این امضاها در ساختارهای مختلف در یک نرم افزار آنتیویروس در کنار هم قرار میگیرند و در زمان پویش فایل ، محتوای فایلها با این امضاها بررسی میشود و در صورت تطابق فایل مورد جستجو به عنوان یک ویروس شناخته میشود. استفاده از الگوریتمهای پویش فایل که در سرعت و حافظه مصرفی مناسب باشند یکی از مهمترین موارد شناسایی بر اساس امضا هستند.
[*=center]شناسایی بر اساس اکتشاف : یک فایل حاوی بدافزار ممکن است که دارای مشخصههای باشد که یک فایل سالم معمولاً آن ویژگیها و مشخصه ها را ندارد. برخلاف روش قبل که بیشتر در یک خانواده به دنبال یک مشخصه خاص برای اعلام ویروسی بودن آن فایل مینمود، در این روش به دنبال مشخصههای عامی هستیم که بتوانیم بوسیله آنها و با استفاده از الگوریتمهای بر پایه هوش مصنوعی به شناسایی بدافزارهایی که از آنها امضایی وجود ندارد و ناشناخته هستند بپردازیم.
[*=center]
[*=center]
در این روشها معمولاً یکسری از هیورستیکها که میتوانند خاصیت بدافزاری بودن فایل را بالا ببرند بررسی میشوند و در نهایت ترکیبی از اینها به عنوان یک احتمال جهت ویروسی بودن معرفی میشود. هیورسیتیکهای همچون حلقههای رمزگشا، فراخوانی توابع و API های مشکوک، رشتهها و کلیدواژههای که ایجاد خاصیت بدافزاری میکنند و... . همچنین ممکن است از هیورستیکهای استفاده شود که احتمال بدافزار بودن فایل را کمتر کند، مانند اینکه بدافزار از واسط کاربری گرافیکی یا پنجرههای Pop-up استفاده کند.
[*=center]
[*=center]
[*=center]یکی از مهمترین مزایای این روش این است که بسیاری از بدافزارها هستند که ممکن است هنوز ناشناخته مانده باشند و امضای برای آنها تاکنون ایجاد نشده باشد، با استفاده از این روش میتوان با توجه به ویژگیها و خصیصههای که آن بدافزار دارد احتمالی را به آن اختصاص دهد که باعث کشف بدافزار شود. نگرانی که در استفاده از این روش وجود دارد، وجود خطاهای مثبت کاذب میباشد، که آنتی ویروسهای مختلف با استفاده از روشهای مختلف سعی بر این دارند که این خطای مثبت کاذب را به پایین ترین حد ممکن برسانند
شناسایی پویا
به روشی که در آن شناسایی بدافزار با اجرای فایل مورد نظر انجام گیرد، شناسایی پویا میگوییم. در این روش سعی بر این است که بدافزار در یک محیط مجازی اجرا شود و تمامی رفتارهای آن مورد بررسی قرار گیرد و در صورت مشکوک بودن رفتارهای فایل اجرا شده، ویروسی بودن آن اعلام شود. بسیاری از بدافزارها هستند که در حالت ایستا قابل شناسایی نیستند، چرا که فایل مرتبط با آن بدافزار به صورت رمزشده میباشد، و از این رو نمیتوان اطلاعات لازم برای شناسایی بدافزار همچون وجود امضا ویروس یا ویژگیهای که باعث شناسایی بدافزار از طریق روشهای هیورستیک است را استخراج نمود و برای شناسایی این نوع بدافزارها باید به گونهای بدافزار را رمزگشایی کرد ، در شناسایی پویا با اجرا کردن بدافزار سعی در گذر از این موانع داریم.
اما از معایب این روش میتوان به بدافزارهایی اشاره کرد که فعال شدن آنها نیازمند برآورده شدن شرایطی خاص باشد، و ممکن است زمانی که بدافزار در حال اجرا است شرایط لازم برای آن مهیا نشود، در صورتی که با استفاده از روشهای ایستا امکان داشت که بتوان ویژگیهایی را استخراج کنیم که بدافزار به راحتی قابل شناسایی باشد. در مجموع جهت شناسایی بدافزار بهتر است از ترکیبی از هر دو روش استفاده شود تا بتوان دقت شناسایی را بدین ترتیب بالاتر برد.
جام جم
کد خبر: ۱۱۱۴۴
تاریخ انتشار: ۱۸ آذر ۱۳۹۳ - ۰۹:۱۰
پایداری ملی:
به راحتی میتوان گفت که کشف ویروسها یکی از پرهزینهترین و سختترین کارها در زمینه مبارزه با ویروسهای کامپیوتری است، که همواره نیازمند متخصصانی در این حوزه میباشد که بتوانند فایلهای حاوی بدافزارها را به خوبی آنالیز کرده و راهکارهایی را جهت شناسایی بدافزارها استخراج کنند.
بعد از انتخاب یک آنتیویروس و نصب آن بر روی سیستم، کاربر سه انتظار اصلی از آنتیویروس نصب شده دارد. 1. کشف ویروسها 2. شناسایی و تعیین هویت ویروس 3.آلودگی زدایی ایجاد شده بر روی فایلها توسط ویروس
این سه مورد از اساسی ترین پارامترهای مرتبط با یک آنتیویروس میباشد. سعی بر این است در این مقاله تا حدامکان در مورد روشهای کشف ویروسها صحبت شود و مزایا و معایب هر روش و لزوم وجود این روشها مورد بررسی قرار گیرد.
کشف ویروسها
به راحتی میتوان گفت که کشف ویروسها یکی از پرهزینهترین و سختترین کارها در زمینه مبارزه با ویروسهای کامپیوتری است، که همواره نیازمند متخصصانی در این حوزه میباشد که بتوانند فایلهای حاوی بدافزارها را به خوبی آنالیز کرده و راهکارهایی را جهت شناسایی بدافزارها استخراج کنند. از این رو سوالات متعددی بوجود میآید همچون اینکه، آیا روشهای شناسایی بدافزار به صورت عمومی و کلی هستند یا نه و برای هر خانواده از بدافزارها نیازمند یک روش جداگانه هستیم؟
آیا پاسخ حاصل از این روشهای کشف ویروسها کامل و دقیق هستند؟ آیا این روشهای کشف خطری برای سیستم کاربر ندارند؟ و سوالهای از این قبیل که سعی داریم در اینجا به صورت مختصر پاسخهایی را برای این پرسشها داشته باشیم.
خروجی حاصل از مراحل کشف ویروس را میتوان به 4 حالت کلی بیان کرد:
1. اگر ویروس واقعاً وجود داشته باشد و نتیجه حاصل از کشف هم مثبت باشد پاسخ مثبت درست خواهیم داشت.
2. اگر ویروس واقعاً وجود داشته باشد و نتیجه حاصل از کشف منفی باشد، پاسخ منفی نادرست اعلام خواهد شد.
3. اگر ویروس واقعاً وجود نداشته باشد و نتیجه حاصل از کشف هم منفی باشد پاسخ منفی درست اعلام خواهد شد.
4. اگر ویروس واقعاً وجود نداشته باشد و نتیجه حاصل از کشف مثبت باشد آنگاه پاسخ مثبت نادرست اعلام خواهد شد.
میزان درصدهای این حالات در پویش فایلهای یک سیستم معیار اصلی جهت تعیین قدرت شناسایی آنتیویروسها میباشد.
روشهای کشف بر اساس اینکه آیا در زمان بررسی فایل، باید فایل مربوطه اجرا شود یا نه به دو گروه تقسیم میشود :
1. شناسایی ایستا
2. شناسایی پویا
روشهای ایستا
به روشی که در آن شناسایی بدافزار بدون اجرای فایل مورد نظر انجام گیرد، شناسایی ایستا میگوییم. از مزایای این روش میتوان به آلوده نشدن سیستم در حال اجرای ویروس و سرعت بالای شناسایی اشاره کرد. از روشهای موجود در این حوزه میتوان به شناسایی بر اساس امضا و شناسایی بر اساس اکتشاف اشاره کرد.
[*=center]شناسایی بر اساس امضا: هر بدافزاری برای اینکه بتواند شناسایی شود نیازمند یک شناسه یکتا میباشد. این شناسه میتواند قسمتهای مشخصی از باینری مربوط به فایل باشد یا اینکه میتواند یک مجموعه رفتار یکتا از بدافزار باشد که اصطلاحاً به امضای بدافزار گفته میشود، امضا گرفته شده باید به گونهای باشد که بتواند حجم زیادی از آن خانواده توسط آن امضا گرفته شود، با این کار حجم زیادی از ویروسها فقط توسط یک امضا شناسایی میشود. این امضاها در ساختارهای مختلف در یک نرم افزار آنتیویروس در کنار هم قرار میگیرند و در زمان پویش فایل ، محتوای فایلها با این امضاها بررسی میشود و در صورت تطابق فایل مورد جستجو به عنوان یک ویروس شناخته میشود. استفاده از الگوریتمهای پویش فایل که در سرعت و حافظه مصرفی مناسب باشند یکی از مهمترین موارد شناسایی بر اساس امضا هستند.
[*=center]شناسایی بر اساس اکتشاف : یک فایل حاوی بدافزار ممکن است که دارای مشخصههای باشد که یک فایل سالم معمولاً آن ویژگیها و مشخصه ها را ندارد. برخلاف روش قبل که بیشتر در یک خانواده به دنبال یک مشخصه خاص برای اعلام ویروسی بودن آن فایل مینمود، در این روش به دنبال مشخصههای عامی هستیم که بتوانیم بوسیله آنها و با استفاده از الگوریتمهای بر پایه هوش مصنوعی به شناسایی بدافزارهایی که از آنها امضایی وجود ندارد و ناشناخته هستند بپردازیم.
[*=center]
[*=center]
در این روشها معمولاً یکسری از هیورستیکها که میتوانند خاصیت بدافزاری بودن فایل را بالا ببرند بررسی میشوند و در نهایت ترکیبی از اینها به عنوان یک احتمال جهت ویروسی بودن معرفی میشود. هیورسیتیکهای همچون حلقههای رمزگشا، فراخوانی توابع و API های مشکوک، رشتهها و کلیدواژههای که ایجاد خاصیت بدافزاری میکنند و... . همچنین ممکن است از هیورستیکهای استفاده شود که احتمال بدافزار بودن فایل را کمتر کند، مانند اینکه بدافزار از واسط کاربری گرافیکی یا پنجرههای Pop-up استفاده کند.
[*=center]
[*=center]
[*=center]یکی از مهمترین مزایای این روش این است که بسیاری از بدافزارها هستند که ممکن است هنوز ناشناخته مانده باشند و امضای برای آنها تاکنون ایجاد نشده باشد، با استفاده از این روش میتوان با توجه به ویژگیها و خصیصههای که آن بدافزار دارد احتمالی را به آن اختصاص دهد که باعث کشف بدافزار شود. نگرانی که در استفاده از این روش وجود دارد، وجود خطاهای مثبت کاذب میباشد، که آنتی ویروسهای مختلف با استفاده از روشهای مختلف سعی بر این دارند که این خطای مثبت کاذب را به پایین ترین حد ممکن برسانند
شناسایی پویا
به روشی که در آن شناسایی بدافزار با اجرای فایل مورد نظر انجام گیرد، شناسایی پویا میگوییم. در این روش سعی بر این است که بدافزار در یک محیط مجازی اجرا شود و تمامی رفتارهای آن مورد بررسی قرار گیرد و در صورت مشکوک بودن رفتارهای فایل اجرا شده، ویروسی بودن آن اعلام شود. بسیاری از بدافزارها هستند که در حالت ایستا قابل شناسایی نیستند، چرا که فایل مرتبط با آن بدافزار به صورت رمزشده میباشد، و از این رو نمیتوان اطلاعات لازم برای شناسایی بدافزار همچون وجود امضا ویروس یا ویژگیهای که باعث شناسایی بدافزار از طریق روشهای هیورستیک است را استخراج نمود و برای شناسایی این نوع بدافزارها باید به گونهای بدافزار را رمزگشایی کرد ، در شناسایی پویا با اجرا کردن بدافزار سعی در گذر از این موانع داریم.
اما از معایب این روش میتوان به بدافزارهایی اشاره کرد که فعال شدن آنها نیازمند برآورده شدن شرایطی خاص باشد، و ممکن است زمانی که بدافزار در حال اجرا است شرایط لازم برای آن مهیا نشود، در صورتی که با استفاده از روشهای ایستا امکان داشت که بتوان ویژگیهایی را استخراج کنیم که بدافزار به راحتی قابل شناسایی باشد. در مجموع جهت شناسایی بدافزار بهتر است از ترکیبی از هر دو روش استفاده شود تا بتوان دقت شناسایی را بدین ترتیب بالاتر برد.
جام جم
کد خبر: ۱۱۱۴۴
تاریخ انتشار: ۱۸ آذر ۱۳۹۳ - ۰۹:۱۰