روشهای شناسایی
یکی از معدود نتایج نظری برگرفته از مطالعاتی که روی ویروسهای کامپیوتری انجام گرفته به اثباتهای عملی که Fred Cohen در سال 1987 به آن رسیدهبود، مربوط میشود. در این مطالعات، Fred Cohen به این نتیجه رسید که هیچ الگوی مشخصی نیست که بتوان تمامی ویروسها را از طریق آن شناسایی کرد.
پس از انجام تحقیقات نهایی، نتیجه این شد که، ویروسهای کامپیوتری، نرمافزار یا کدهای مخربی هستند که توانایی بازتولید و انتشار خود را دارند. اما بعدها محققان متوجه شدند، معانی جدیدی نیز وجود دارند که با وجود نقاط مشترک با ویروسها، از لحاظ عملکرد مترادف با ویروسها نبودند، ابزارهای مخربی براي رسیدن به اهداف خاص…
از سوی دیگر، نرمافزارهای آنتیویروس نیز براي شناسایی و حذف انواع مختلف بدافزار که با روشهای خاص و حرفهای در حال طراحی بودند، به فناوريهاي جدید مجهز میشدند که این فناوريها پایه و اساس طراحی آنتیویروسهای جدید هستند.
روشهای طراحی و شناسایی ویروسها توسط نرمافزارهای آنتیویروس
1. شناسایی از روی امضاء دیجیتالی (Signature Based detection)
معمولترین روشی که آنتیویروسها براي شناسایی بدافزارها استفاده ميکنند، شناسایی ویروسها از روی امضاء دیجیتالی است که در آن، آنتیویروسها محتویات یک فایل را با بانک اطلاعاتي از امضاء دیجیتالی ویروسهای اکتشافی مقایسه کرده و در صورت آلوده بودن فایلها بهعنوان بدافزار معرفی میشوند. به اين دليل که ويروسها ميتوانند خود را داخل فايلها جاسازي کنند، در این روش، تمام یا بخشی از فایلها اسکن میشود.
2. روش اکتشافی (Heuristic Based Detection)
در این روش، آنتیویروسها با بررسی عملکرد فعالیتهای مشکوک به اکتشاف ویروسهای ناشناخته میپردازند. این فناوري یکی از جدیدترین روشهای اکتشافی است.
3. روش تقلید (File Emulation)
یکی دیگر از روشهای شناسایی ویروسها توسط نرمافزارهای آنتیویروس که بر مبنای فناوري Heuristic Analyzer استوار هستند، روش تقلید فایل است. در این روش، با اجرای یک برنامه در محیط مجازی و سنجش رفتارهای به وقوع پیوسته و مقایسه آن با رفتارهای بدافزارهایی که از قبل به ثبت رسیدهاند، ميتوان تشخيص داد که این رفتار به یک بدافزار مربوط است یا نه. درصورتی که برنامه اجراشده، یک بدافزار باشد، اقدامات لازم براي پاکسازی و جلوگیری از فعالیت آن انجام خواهدشد.
شناسایی از روی امضاء دیجیتالی لازم اما ناکافی
همانطور که میدانید، نرمافزارهای آنتیویروس اغلب با روش تست امضاء دیجیتالی به شناسایی بدافزارها میپردازند. با وجودی که این روش یکی از روشهای مؤثر در این زمینه است اما زمانی بیشترین کارایی را دارد که آنتیویروس از قبل با این بدافزار برخورد کردهباشد و امضاء دیجیتالی آن توسط شرکتهای تولیدکننده آنتیویروس تولید و به بانک اطلاعاتي آنتیویروس افزوده شدهباشد. به همین دلیل این روش در مقابله با بدافزارهای جدید و ناشناخته راهی از پیش نخواهدبرد.
در روش شناسایی بر مبنای امضاء دیجیتالی با توجه به اینکه روزانه ویروسهای جدیدی تولید میشوند، نیاز بهبروزرسانی بانک اطلاعاتي امضاهای دیجیتالی امری اجتنابناپذیر به نظر میرسد. از این رو، براي یاری رساندن به شرکتهای تولیدکننده آنتیویروس امکاناتی داخل خود نرمافزارهای آنتیویروس تعبیه شده که امکان ارسال فایلهای مشکوک توسط کاربران کامپيوتر به شرکتهای سازنده آنتیویروس براي تجزيه و تحليل و افزودن به بانک اطلاعاتي امضاهای ویروسی داده شدهاست. عملیات کشف و خنثیسازی ویروسها توسط متخصصان این رشته و با بهکارگیری نرمافزارها و روشهای خاص در شرایط مهندسی معکوس اتفاق میافتد.
یکی از نرمافزارهایی که براي تجزيه و تحليل فایلهای مشکوک استفاده ميشود، نرمافزار Interactive Disassambler است. البته توجه داشتهباشید که این نرمافزارها کار یک آنتیویروس را انجام نميدهند، بلکه به متخصصان براي شناسایی و اضافهکردن امضاء دیجیتالی یک ویروس جدید به بانک اطلاعاتي آنتیویروس یاری میدهند.
با وجودی که روش شناسایی بر مبنای امضاء دیجیتالی روش مؤثری در جلوگیری از شیوع بسیاری از ویروسهای کامپیوتری است اما ویروسنویسان همواره با بهکارگیری فناوريهايي چون «Oligomorphic» و «Polymorphic» و به تازگي نيز فناوري کاملاً پیچیده «Metamorphic» سعی دارند، همواره یک قدم از نرمافزارهای آنتیویروس جلوتر باشند. در تکنیکهای جدیدی که برای ویروسنویسی استفاده ميشوند، این امکان وجود دارد که بخشي یا تمام فایل آلوده به صورت رمزنگاریشده تولید شود که این امر باعث میشود، ویروسهای از پیش شناختهشده نیز تنها با ایجاد تغییر در رفتار و شکل و شمایل خود، آنتیویروس را در روش مبتنی بر امضاء دیجیتالی فريب دهند، حتی اگر امضاء دیجیتالی ویروس پیشتر به بانک اطلاعاتي آنتیویروس افزوده شدهباشد.
با توجه به اینکه بسیاری از ویروسها براي انتشار و آلوده ساختن سیستمهای کامپیوتری از روشهای مشابه استفاده میکنند و فقط پس از نفوذ به کامپیوترها تنها با تغییر در بعضی از رفتارها، میزبان خود را تخریب میکنند، از این رو با ایجاد یک روش اکتشافی عمومی بسیاری از ویروسهای کامپیوتری که براي آلودهکردن سیستمها از یک مفهوم مشخص استفاده میکنند، شناسایی شده و در یک خانواده طبقهبندی ميشوند. بنابراین برای شناسایی هر نوع ویروس جدید نیازی نیست امضاء دیجیتالی آن ویروس در بانک اطلاعاتي آنتیویروس موجود باشد، بلکه با استفاده از فناوري Heuristic Analysis با تشخیص و تطبیق نوع رفتار و عملکرد یک فایل مشکوک با بدافزاری که از قبل شناسایی شده، آن فایل نیز جزء آن دسته از ویروس طبقهبندی شده و توسط آنتی ویروس شناسایی و حذف ميشوند.
از آن جمله میتوان بدافزار Sality را نام برد که در کلاسهبندی آنتیویروسهای مختلف دارای همخانوادههای مختلفی است که برای مثال در آنتیویروس VBA32 این بدافزار دارای دو همخانواده کاملاً متمایز به نامهای Sality Baka و Sality Kaka است.
با اینکه شناسایی یک ویروس مشخص و خاص از طریق امضاء دیجیتالی به نظر سودمند میآید اما شناسایی یک خانواده از ویروسها از طریق روش امضاء دیجیتالی عمومی (روش معمول در فناوري Heuristic Analysis) سریعتر است.
محققانی که در زمینه ویروسنویسی تبحر دارند به این موضوع پي بردهاند که، تمامی ویروسهایی که در یک خانواده طبقهبندی میشوند دارای نقاط مشترکی در کدنویسی هستند که به آنتیویروسها کمک میکنند با شناسایی این نقاط و ارتباط آنها با یک امضاء عمومی، تمامی آن بدافزارها شناسایی شوند (این امضاء دیجیتالی عمومی به بانک اطلاعاتي آنتیویروسها افزوده میشود).
این امضاهای دیجیتالی اغلب دارای کدهای ناپیوسته تقلبي هستند که ویروسنویسان غیرحرفهای به منبع ویروس اصلی که در گذشته تولید شده، اضافه کردهاند. از این رو، وجود همین کدهای نامتعارف و تقلبي به اسکنرهای آنتیویروسها اجازه میدهند که بتوانند ویروسها را شناسایی کنند، حتی اگر در ساختمان آن ویروسها از کدهای بیمعنی استفاده شدهباشد. به این روش شناسایی که از روش بالا استفاده میکند، روش «Heuristic Detection» گفتهمیشود.
سلام کاوه جان
مقاله بسیار عالی و مفیدی بود قسمت دومش رو هم مطالعه کردم بسیار عالی و کاربردی بود
موفق باشی
یا علی
قسمت دوم این مطلب هم بزودی منتشر می شود.
خیلی ممنون مفید واقع شد.
البته این مقاله کار مشترکی از من و دوست خوبم “عباس گنج خانی” بود که لازم می بینم از ایشون هم نام ببرم و هم تشکر کنم
خیلی جالب بود مخصوصا قسمت: روشهای طراحی و شناسایی ویروسها توسط نرمافزارهای آنتیویروس.
ممنون.