امنیت؛ بدون هیچ اغراق و بزرگنمایی مهمترین و پرچالشترین مقوله در دنیای ارتباطات دیجیتال بوده و هست. با تولد اینترنت و با فراگیر شدن آن و استقبال پرشور شرکتهای تجاری و شخصیتهای حقیقی برای حضور و افتتاح غرفه در این شبکه ارتباطی فراجغرافیایی، روزبهروز بر اهمیت مقوله امنیت در این دنیای جدید و صدالبته با نرخ رشد جمعیت بسیار بالاتر از دنیای واقعی، افزوده شدهاست. فراهم شدن امکان دسترسی آسان کاربران خانگی، بستر نوینی را برای ایجاد و توسعه انواع تعاملات و ارتباطات از راه دور در تمامی حوزههای اقتصادی، اجتماعی، فرهنگی و... از کلانترین تا خردترین سطوح پیریزی کرد و امروز زندگی بدون اینترنت اگر نگوییم محال، بسیار سخت و دشوار و پرهزینه است.
نتیجه اینکه، اهمیت توجه به مقوله امنیت در این دنیای جدید همانقدر جدی، مهم و منطقی است که امنیت در زندگی واقعی، از شرکتهای بزرگ گرفته تا کاربران خانگی. اهمیت مقوله امنیت در دنیای کنونی و کمتوجهی اکثریت کاربران ایرانی از مدیران صنایع و مراکز دولتی و خصوصی تا کاربران خانگی، ما را بر آن داشت از این پس بهطور ثابت و جدیتر از گذشته به آن بپردازیم. نوشته پیش رو، بخش اول از مستند داستانی آنتیویروسهاست که با همکاری دفتر نمایندگی آنتیویروس VBA32 در ایران برای شما عزیزان آماده شدهاست. قسمت دوم و پایانی این داستان در شماره آتی تقدیم خواهدشد.
آنتیویروسها نرمافزارهایی هستند که براي شناسایی، جلوگیری از فعالیت و حذف بدافزارهایی چون ویروسهای کامپیوتری، کرمهای اینترنتی، تروجانها، جاسوسافزارها، آگهیافزارها، روتکیتها و بکدورها و... استفاده ميشوند. آنتیویروسها براي شناسایی و نابودی بدافزارها از تکنیکهای خاصی استفاده میکنند که این تکنیکها در آنتیویروسهای مختلف دارای وجوه تمایزی هستند که به آنها خواهیم پرداخت.
تاریخچه
اگر بخواهيم به تاریخچه آنتیویروسها بپردازیم، بايد به گذشته برگشته و نیمنگاهی به تولید ویروسهای کامپیوتری بیاندازیم.
با وجودي که اولین ویروس کامپیوتری را فومن نیومن در سال 1949 با توانايي ساخت يک برنامه کامپيوتري همراه ويروس توليد کرد اما تولید یک ویروس به معنای واقعی در اوایل دهه 1980 میلادی و در سال 1984 توسط Ken Thompson انجام شد.
درست در همان سال، شخصی به نام Fred Cohen تأثیر ویروسها روی سیستمهای کامپیوتری را در آزمایشگاه خود بررسي کرد که به ارائه یک تعریف رسمی برای ویروسها منجر شد و از آن پس براي نامگذاری یک فایل مخرب ویروس بهعنوان مرجع استفاده شد.
بنابراين، اولین ویروسهای کامپیوتری مخرب در دهه 1980 میلادی بهطور رسمی پا به عرصه وجود گذاشتند.
با اينکه درباره اولین نرمافزار تولیدشده براي حذف ویروس نظرات متعددی وجود دارد اما بسياري معتقدند، یک هکر آلمانی به نام Brend Fix اولین نرمافزار را براي حذف یک ویروس کامپیوتری در سال 1987 نوشتهاست. درست در همان سال برای دستگاههای Atari ST دو نرمافزار آنتیویروس به نامهای G Data و UVK2000 تولید شد.
در سال 1988 Fred Cohen که اولین تعریف رسمی برای ویروس را در سال 1984 به جهانیان معرفی کردهبود، به توسعه استراتژیهای موردنیاز براي تولید نرمافزارهای ضدویروس پرداخت، استراتژیهایی که آنتیویروسهاي تولیدی بعد از این تاریخ از آنها استفاده کردند.
همچنین در سال 1988 گروهی که به Virus-L معروف بودند با عضویت در BITNET (شبکهای بین دو دانشگاه معروف نیویورک) به بحث و بررسی درباره چگونگی فعالیت ویروسها و روشهای شناسایی و حذف آنها پرداختند.
در این گروه، افراد معروفی چون John McAfee و Eugene Kaspersky ديدهميشدند که بعدها در زمینه تولید آنتیویروس دو شرکت به راه انداختند.
قبل از اینکه شبکههای جهانی اینترنت عمومیت پیدا کنند، بيشتر ویروسها از طریق فلاپی درایوها انتقال پیدا میکردند، به همین دلیل بيشتر آنتیویروسهای تولیدشده فقط به بررسی بوتسکتورهای فلاپیها و هارددرایوها میپرداختند.
البته بعد از جهانی شدن اینترنت شکل و شمایل انتقال ویروسها نیز تغییر یافت. با توجه به تغییرات مختلفی که در ساختار ویروسها به وجود آمد، به مرور زمان ویروسهای کامپیوتری جای خود را به بدافزار دادند. به همین دليل، در حال حاضر ویروسها خود در زمره بدافزارها طبقهبندی میشوند.
در حال حاضر، بدافزارهای مختلفی در دنیای کامپیوتر وجود دارند که از آنجمله میتوان به: ویروس، تروجان، کرم اینترنتی، جاسوسافزار، آگهیافزار، روتکیت، بکدور و... اشاره کرد. از اینرو به نظر میرسد، لفظ عامیانه ویروس کامپیوتری جای خود را به لفظ بزرگتری به نام بدافزار (Malware) داده باشد.
بدافزارها (Malicious Software) به برنامههای مخربی گفتهميشود که با آلوده کردن سیستمهای کامپیوتری به دنبال رسیدن به اهدافی خاص هستند. هر بدافزار براي آلوده کردن و آسیبرسانی از فرآیند مختص به خود استفاده میکند که دارای پیچیدگیهای خاص خود است. از اینرو، آنتیویروسها بايد طوری طراحی شوند که بتوانند با هرگونه تهدیدی مقابله کنند.
روشهای شناسایی
یکی از معدود نتایج نظری برگرفته از مطالعاتی که روی ویروسهای کامپیوتری انجام گرفته به اثباتهای عملی که 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» گفتهمیشود.
منتظر قسمت دوم باشید ...
http://sakhtafzarmag.com/security-network/security-articles/12888-1391-08-17-08-53-53.html