370 likes | 653 Views
و مبارزه با آنها. ویروس های رایانه ای. مباحث کلی. اهمیت امنیت دیجیتال تاریخچه ای از ویروس های رایانه ای بررسی رفتار ویروس ها روش های استاتیک شناسایی ویروس ها روش های دینامیک شناسایی ویروس ها حفظ کارایی در کنار امنیت آینده ی امنیت دیجیتال و آنتی ویروس ها. اهمیت امنیت دیجیتال.
E N D
و مبارزه با آنها ویروس های رایانه ای
مباحث کلی • اهمیت امنیت دیجیتال • تاریخچه ای از ویروس های رایانه ای • بررسی رفتار ویروس ها • روش های استاتیک شناسایی ویروس ها • روش های دینامیک شناسایی ویروس ها • حفظ کارایی در کنار امنیت • آینده ی امنیت دیجیتال و آنتی ویروس ها
اهمیت امنیت دیجیتال • افزایش روزافزون حضور تکنولوژی در زندگی انسان ها • عملیات بانکی و بانکداری الکترونیک • عملیات اداری و دولت الکترونیک • ذخیره اطلاعات شخصی از جمله فیلم، عکس در رایانه • ذخیره اطلاعات سازمان های دولتی بصورت دیجیتال • ذخیره اطلاعات شرکت ها از جمله روشها، تکنولوژی ها و اطلاعات خصوصی کاربران بصورت دیجیتال • انجام ارتباطات بین افراد بوسیله تکنولوژیهای جدید • کنترل سیستمهای خدمات عمومی از جمله آب، گاز و برق بوسیله رایانه • ایجاد روش های کلاهبرداری جدید به همراه هر تکنولوژی جدید
اهمیت امنیت دیجیتال • افزایش روزافزون حضور تکنولوژی در زندگی انسان ها • عملیات بانکی و بانکداری الکترونیک • عملیات اداری و دولت الکترونیک • ذخیره اطلاعات شخصی از جمله فیلم، عکس در رایانه • ذخیره اطلاعات سازمان های دولتی بصورت دیجیتال • ذخیره اطلاعات شرکت ها از جمله روش ها، تکنولوژی ها و اطلاعات خصوصی کاربران بصورت دیجیتال • انجام ارتباطات بین افراد بوسیله تکنولوژی های جدید • کنترل انواع سیستم های خدمات عمومی از جمله آب، گاز، برق و تلفن بوسیله رایانه • ایجاد روش های کلاهبرداری جدید به همراه هر تکنولوژی جدید
اهمیت امنیت دیجیتال • افزایش روزافزون حضور تکنولوژی در زندگی انسان ها • عملیات بانکی و بانکداری الکترونیک • عملیات اداری و دولت الکترونیک • ذخیره اطلاعات شخصی از جمله فیلم، عکس در رایانه • ذخیره اطلاعات سازمان های دولتی بصورت دیجیتال • ذخیره اطلاعات شرکت ها از جمله روش ها، تکنولوژی ها و اطلاعات خصوصی کاربران بصورت دیجیتال • آموزش از طریق رایانه و اینترنت • انجام ارتباطات بین افراد بوسیله تکنولوژی های جدید • کنترل انواع سیستم های خدمات عمومی از جمله آب، گاز، برق و تلفن بوسیله رایانه • ایجاد روش های کلاهبرداری جدید به همراه هر تکنولوژی جدید
تاریخچه ای از ویروس ها از اولین ویروس تا هم اکنون
تئوری ویروس ها • انتشار مقاله ی ”تئوری برنامه های خودتکثیر شونده“ (Theory of self-reproducing automata) در سال 1966توسط جان فون نومن (John vonNeumann) ریاضیدان برجسته یمجارستانی-آمریکایی
نخستین ویروس ها • طراحی نخستین ویروس شناخته شده به نام Creeper در سال 1971 • طراحی برنامه تکثیر شونده دیگری جهت پاکسازی Creeper به نام Reaper • طراحی نخستین ویروس مخرب به نام Wabbit در سال 1974 • انتشار نخستین ویروس بوت سکتور و فراگیر به نام Elk Cloner در سال 1981 • نخستین استفاده از نام ”ویروس“ برای برنامه های خود-تکثیر-شونده در مقاله ای توسط فردریک کوهن در سال 1984 • نخستین ویروس سازگار با IBM PC به نام Brain در سال 1986 • طراحی اولین مدل ویروس آلوده کننده در سال 1986 در آلمان توسط رالف برگر • انتشار گسترده ویروس ویِنا در سال 1987 • انتشار ویروس Cascade در شبکه IBM بلژیک به عنوان اولین ویروس خود رمزگذاری شونده (self-encrypting) در سال 1987 • طراحی ویروس 1260 به عنوان نخستین ویروس پلیمورفیک در سال 1990
شناخته شده ترین ویروس ها • ویروس ILOVEYOU در سال 2000 • 50 میلیون آلودگی در 10 روز • استفاده از موتور اسکریپت ویندوز • نوشته شده با زبان ویژوال بیسیک اسکریپت • مخفی کردن پسوند واقعی فایل • استفاده از مهندسی اجتماعی • ویروس CodeRed در سال 2001 • استفاده از حفره ی امنیتی IIS • اجرا تنها در حافظه (نداشتن هیچگونه فایل) و در نتیجه سخت بودن شناسایی آن • تنها آلوده سازی سرور های وب و تغییر صفحه ی آنها • نوشته شده به زبان اسمبلی
شناخته شده ترین ویروس ها • ویروس ILOVEYOU در سال 2000 • 50 میلیون آلودگی در 10 روز • استفاده از موتور اسکریپت ویندوز • نوشته شده با زبان ویژوال بیسیک اسکریپت • مخفی کردن پسوند واقعی فایل • استفاده از مهندسی اجتماعی • ویروس CodeRed در سال 2001 • استفاده از حفره ی امنیتی IIS • اجرا تنها در حافظه (نداشتن هیچگونه فایل) و در نتیجه سخت بودن شناسایی آن • تنها آلوده سازی سرور های وب و تغییر صفحه ی آنها • نوشته شده به زبان اسمبلی
شناخته شده ترین ویروس ها • ویروس Nimda در سال 2001 • تبدیل شدن به رایج ترین ویروس جهان در عرض 22 دقیقه • استفاده از چند روش آلوده سازی مختلف به صورت همزمان • استفاده از حفره های امنیتی IIS و Windows • استفاده از راه های بجا گذاشته شده توسط ویروس های دیگر • ویروس MyDoom در سال 2004 • تکثیر از طریق ایمیل • سریعترین ویروس که از طریق ایمیل پخش شده • در اوج تکثیر 1 از هر 12 ایمیل فرستاده شده در جهان • نوشته شده به زبان C • فعالیت جاسوسی
شناخته شده ترین ویروس ها • ویروس Nimda در سال 2001 • تبدیل شدن به رایج ترین ویروس جهان در عرض 22 دقیقه • استفاده از چند روش آلوده سازی مختلف به صورت همزمان • استفاده از حفره های امنیتی IIS و Windows • استفاده از راه های بجا گذاشته شده توسط ویروس های دیگر • ویروس MyDoom در سال 2004 • تکثیر از طریق ایمیل • سریعترین ویروس که از طریق ایمیل پخش شده • در اوج تکثیر 1 از هر 12 ایمیل فرستاده شده در جهان • نوشته شده به زبان C • فعالیت جاسوسی
بررسی رفتار ویروس ها یا چگونه ویروس بنویسیم؟!
شناسایی ویروس ها روش های استاتیک شناسایی
شناسایی مبتنی بر امضا • دریافت نمونه توسط مراکز جمع آوری • تحلیل نمونه در آزمایشگاه • استفاده از SandBox جهت اجرای ویروس • تعیین نوع آلودگی (کرم، ویروس یا تروجان) • بررسی بیشتر در صورت آلوده کننده بودن • بررسی بیشتر در صورت رمزگذاری کننده و یا پلیمورفیک بودن • تهیه ی امضا • در کرم ها: بر اساس نقاط حساس و منحصر به فرد عملکرد فایل کرم • در ویروس ها: بر اساس کدی که توسط ویروس ها به فایل ها متصل می شود • تست امضای جدید • تست بر روی تعداد بسیار زیادی از فایل های غیر-آلوده جهت جلو گیری از شناسایی اشتباه • انتشار امضای جدید • بروزرسانی شدن کلاینت ها و اضافه شدن امضاهای جدید به دیتا بیس
شناسایی مبتنی بر امضا • بر اساس شناسایی قسمت هایی از کد ”منحصر به فرد“ یافت شده در نمونهی آن ویروس انجام می شود • مزیت ها • شناسایی مطمئن ویروس های موجود در دیتابیس • سرعت بالا در بررسی • سادگی نسبی طراحی موتور و ساخت امضاها • امکان اضافه کردن روشی برای پاکسازی به امضا • معایب • شناسایی نکردن ویروس های جدید و مشابه • شناسایی مدتی پس از انتشار ویروس انجام می شود • امکان شناسایی ویروس های پلیمورفیک و متامورفیک وجود ندارد
(Generic) شناسایی عمومی • بر اساس شناسایی کدهای مشترک بین نمونههای مختلف ویروس ها • مزیت ها • شناسایی مطمئن خود ویروس • احتمال شناسایی ویروس های مشابه و نمونه های تغییر داده شده • سرعت متوسط در بررسی • امکان شناسایی برخی ویروس های پلیمورفیک • حجم کم برای تعداد بیشتری ویروس • معایب • شناسایی نکردن ویروس هایی که تغییرات زیادی پیدا کرده اند • امکان شناسایی ویروس های متامورفیک و بسیاری از ویروسهای پلیمورفیک وجود ندارد
(Heuristics) شناسایی با هوش مصنوعی • یافتن قسمت های مشکوک در کد • کدهای غیراجرایی (Junk code) • حلقه های رمزگشایی • کدهایی که خود را تغییر میدهند (Self-Modifying) • استفاده از APIهای غیر رسمی و نامتعارف • تغییر در قسمت های مهم سیستم از جمله اینتراپت ها • استفاده از دستورات غیر متعارف که توسط کمپایلر ها استفاده نمی شوند • یافتن علائم آلودگی • دستکاری در Entry Point فایل اجرایی • اضافه شدن کد در انتهای فایل اجرایی • بررسی طیفی از کدهای اجرایی داخل فایل • یافتن علائم غیر-آلودگی • مانند ساختن پنجره و نمایش آن • تصمیم گیری بر اساس امتیازهای علائم مثبت و منفی
(Heuristics) شناسایی با هوش مصنوعی • بر اساس جستجوی کد برنامه جهت یافتن کدهای ویروس-مانند انجام می شود • مزیت ها • شناسایی ویروس های کاملا جدید • نیاز کمتر به بروزرسانی • حجم کم برای تعداد زیادی ویروس • معایب • احتمال بالاتر شناسایی فایل های غیر آلوده بعنوان ویروس • کند بودن نسبی سرعت بررسی • سخت بودن طراحی الگوهای مناسب • سخت-تر بودن طراحی موتور
شناسایی ویروس ها روش های دینامیک شناسایی
شناسایی رفتاری • مانیتور کردن برنامه های در حال اجرا • شناسایی فعالیت های مشکوک • نوشتن بر روی فایل های اجرایی • نوشتن در آخر فایل های اجرایی • فرستادن ایمیل به سرورهای دیگر • حذف ناگهانی تعداد زیادی فایل • دسترسی به دفترچه آدرس ویندوز • ساختن کپی از خود • تغییرات اساسی در سیستم عامل • شناسایی فعالیت های برنامه های مجاز • ساختن و نمایش پنجره • استفاده از API های گرافیکی، صوتی و دیگر رابط هایی که معمولا در ویروس ها استفاده نمی شوند • جلوگیری از انجام فعالیت های مشکوک و صدمات • بصورت خودکار • با پرسش از کاربر
شناسایی رفتاری • شناسایی بر اساس رفتار هر برنامه ی در حال اجرا انجام می شود • مزیت ها • شناسایی عملکردهای مشکوک بدون امکان دور زدن آن توسط ویروس ها • نداشتن احتیاج به بروزرسانی • شناسایی ویروس های کاملا جدید • جلوگیری از برخی صدمات • شناسایی ویروس های رمزگذاری شده، پلیمورفیک، متامورفیک و ... • معایب • شناسایی و جلوگیری احتیاج به تصمیم گیری کاربر دارد • احتمال اشتباه در شناسایی زیاد است • تعداد زیاد پیغام های این روش در مقایسه با دیگر روش ها
(Emulator) شناسایی با شبیه ساز • کد در محیطی شبیه سازی شده اجرا میشود • بنابراین در صورت رمزگذاری شده بودن خود را رمزگشایی میکند • اسکن مبتنی بر امضا و هوش مصنوعی روی کد اجرا میشود • عملکرد کد با استفاده از روش های شناسایی رفتاری بررسی میشود • متوقف کننده ها باعث متوقف شدن اجرا میشوند • اتمام حداکثر زمان (مثلا 30 ثانیه) • اتمام تعداد دستورات اجرا شده (مثلا 5000 دستور) • نمایش یک پیغام یا پنجره
(Emulator) شناسایی با شبیه ساز • شناسایی با اجرای کد در موتور شبیه ساز و بررسی عملکرد فایل • مزیت ها • اجرای کد در محلی امن • شناسایی ویروس های ناشناخته • شناسایی ویروس های پلیمورفیک و متامورفیک • احتیاج کمتر به بروزرسانی • معایب • سرعت پایین و نیاز به منابع زیاد سیستم • ویروس ممکن است شبیه ساز را فریب دهد • ویروس ممکن است در زمانی که شبیه ساز آن را اجرا می کند عملکرد مخربی نداشته باشد • پیچیدگی بسیار زیاد طراحی شبیه ساز بدون نقص
حفظ کارایی در کنار امنیت امنیت یا کارایی؟ هردو!
روش های بهینه سازی • کاهش زمان هر اسکن • استفاده از الگوریتم های جستجوی مناسب • بهینه سازی موتور شبیه ساز • تلفیق امضاها در قالب یک امضای عمومی تر • کاهش تعداد اسکن • نگهداری حافظه ای از فایل های اجرایی • استفاده از لیست سفید • بررسی اولیه فایل ها بر اساس خطر و پسوند • مدیریت منابع مصرفی آنتی ویروس • مدیریت حافظه ی مصرفی • مدیریت پردازش مصرفی
آیندهی امنیت دیجیتال و نقش آن در امنیت و سلامت جامعه
رشد تهدیدات امنیتی • تعداد کل بدافزار های ده سال گذشته
رشد تهدیدات امنیتی • تعداد بدافزارهای جدید در ده سال گذشته
تکنولوژیهای آینده • ربات ها • نانو ربات ها در پزشکی • جراحی از طریق روبات ها و از طریق اینترنت • انواع ربات های صنعتی • انواع ربات های خانگی • هوش مصنوعی • خودروهای تمام اتوماتیک • رابط مغز و کامپیوتر (BCI)
Dummy unit illustrating the design of a BrainGate interface