تعامل با موتورهای اسکن آنتی ویروس ها چگونه است؟

مردم (یعنی افرادی مانند ژورنالیست های علم و تکنولوژی یا منتقدین محصولات)، اغلب از ما می پرسند که موتورهای اسکن شما چگونه کار می کنند، و اینکه چه تفاوتی بین موتورهای مبتنی بر امضا و دیگر انواع موتورهای اسکن وجود دارد. در واقع همین هفته پیش بود که چنین سوالی از ما پرسیده شد. خوب، پس اجازه دهید تا در این مقاله کمی عمیق تر به این مسئله بپردازیم….

brainfloppy

منظور از اسکن مبتنی برامضا، عمل چک کردن و کنترل یک Hash کامل فایل یا مجموعه ای از هش های جزیی فایل در یک لیست یا پایگاه داده است، تا به این ترتیب بتوان راجع به یک شی (فایل مشکوک به بدافزار) نظر داد و حکم آن را بدست آورد. می توان گفت تقریبا از همینجا بود که آنتی ویروس ها آغاز شدند، و این به دهه ۱۹۸۰ برمی‌گردد. ظهور نرم افزار های مخرب چند شکلی یا Polymorphic در اوایل دهه ۱۹۹۰، به مانند یک کارگشا و واسطه بود و موجب تکامل روش مبتنی بر امضا شد، تا در نهایت این تکامل به موتورهای پیشرفته اسکن فایل رسید.

بدین گونه بود که در دهه ۸۰ نمونه های جدیدی را دریافت کردیم.

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

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

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

بنابراین، زمانی که تهدید جدیدی بروز می کند، kicks in های اتوماسیون Backend، نمونه های اولیه را پوشش می دهند، این درحالی است که تحلیل گرها را وادار به نوشتن شناسایی های مناسب می کنند. از آنجایی که آنتی ویرس‌ها امروز می توانند به سادگی و به سرعت، جستجوی هش ها را در اینترنت انجام دهند، لذا این شناسایی های ساده، حتی به عنوان بخشی از به روز رسانی یک پایگاه داده محلی نیز ارائه نمی‌شوند. این مکانیزم جستجوی Cloud مزیت دیگری نیز دارد، و آن این است که به ما اجازه می دهد تا از مشتریان در برابر تهدیدهای در حال بروز، و صرف از نظر از زمان پدیدار شدنشان، به سرعت محافظت کنیم.

اما این تمام داستان نیست.

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

  1. مسدود کردن URL. با این کار، مانع کاربر می شویم تا در معرض سایتی قرار نگیرد که در حال میزبانی از یک Exploit Kit (کیت لوازم) یا دیگر محتویات مخرب است، به این ترتیب نیاز به ابزارهای محافظتی بیشتر، نیز برطرف می شود. ما این کار را اغلب از طریق کوئری های کلود IP reputation و URL انجام می دهیم. مسدود کردن اسپم و فیلتر کردن ایمیل ها نیز همین‌جا روی می‌دهد.
  2. Exploit detection یا بهره برداری از تشخیص. اگر کاربری از سایتی بازدید می کند که در حال میزبانی از یک Exploit Kitبوده، و آن کاربر نیز در حال اجرای نرم افزاری است که آسیب پذیر می باشد، در این صورت هر تلاشی برای بهره برداری از آن نرم افزار آسیب پذیر، به واسطه موتورهای نظارت بر رفتار ما، با انسداد مواجه خواهد شد.
  3. شبکه و اسکن on-access یا در دسترس. اگر کاربری، فایل مخربی را از طریق ایمیل یا دانلود یک فایل دریافت کند، در شبکه اسکن خواهد شد، یا زمانی که بخواهد آن فایل را روی دیسک بنویسد، اسکن انجام می گیرد. اگر فایل، مخرب تشخیص داده شود، در این صورت از سیستم کاربر حذف می گردد (برای مثال به قرنطینه می رود) .
  4. انسداد رفتاری. فرض کنید که هیچ تشخیص مبتنی بر فایلی برای یک شی، موجود نیست، بنابراین کاربر ممکن است اقدام به باز کردن یا اجرای آن سند، اسکریپت یا برنامه کند. در این مرحله، رفتار مخرب، به واسطه موتور رفتاری ما انسداد خواهد شد و یک بار دیگر نیز فایل حذف می گردد. حقیقت این است که اکثر مکانیزم های تحویل و ارائه مخرب، به سادگی می توانند به طور رفتاری مسدود شوند. در بیشتر موارد، زمانی که تهدیدهای جدیدی پیدا می کنیم، پی می بریم که پیشتر نیز در گذشته همین تهدیدها را داشته ایم، اما اکنون به مکانیزم هایی که این تهدیدها استفاده می کنند، آدرس منطقی اضافه شده است.

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

اسکن فایل، تنها یکی از مکانیزم هایی است که “فروشندگان آنتی ویروس” برای محافظت از نقاط پایانی استفاده می کنند. از آنجایی که اغلب، بردارهای حملات واقعی ما، در هر دو مکانیزم های تشخیص بهره برداری و انسداد رفتاری، به خوبی پوشش داده شده است، بنابراین برای هر تهدید جدیدی، با اضافه کردن شناسایی های مبتنی بر فایل، اذیت نمی شویم (یعنی امضاهای استاتیک). و به یاد داشته باشید که ما همیشه در پایان روز، اجزای محافظتی خود را در برابر تهدیدهای جهان واقعی، با استفاده از کل محصول و نه صرفا بخش های منفردی از آن، آزمایش می کنیم.

 

نوشته شده در: وبلاگ و اخبار امنیتی سایسک

ارسال دیدگاه: (۰) ←

ارسال دیدگاه