آشنايي با كار ويروس‌ها در راستاي ويروس زدايي

چكيده
امروزه با توجه به فراواني ويروس هاي كامپيوتري از يك طرف و صدمات حاصل از انتشار آنها از سويي ديگر شناخت و نحوه مبارزه با آنها بسيار حائز اهميت مي باشد . در اين مقاله آشنايي با نحوه عملكرد ويروسهاي كامپيوتري بيان شده است .
مقدمه

امروزه با توجه به تعدد ويروس هاي كامپيوتري در كشور،كه اغلب آنها نيز ايراني مي باشند، شناخت و جلوگيري از تخريب آنها مفيد ولازم به نظر مي رسد . پيش از هر گونه بحث فني لازم است توضيحي در مورد ويروس و خوب وبد بودن ويروس سازي از ديدگاه مثبت آن بررسي شود تا مبادا افراد بد گمان و احتمالا متنفر از ويروس ، سيل بدو بيراه خود را نثار ويروس نويسان! كنند بد نيست بدانيم جداي از هنر و تكنيك زيباي عملكرد ويروس هاي مختلف و شيريني جدال با ويروس يابها ، خود ويروس عاملي براي حمايت از برنامه هاي كاربردي مي توامند به شمار آيد، چرا كه اولين ويروس ها در راه جلوگيري از كپي برداريهاي غير مجاز طرح و نوشته شده و زمان فعاليت آن را موكول به وقتي كرده اند كه فرد خاطي از ” خواهش عدم كپي غير مجاز” نياز به گوش مالي دارد ! تا شايد همين فرد عادت به خريد و تهيه ي برنامه هاي مورد استفاده خود از طريق اصولي بنمايد.
واما ويروس ها برنامه هايي هستند كه به شكل پنهاني، موقع اجرا شدن برنامه آلوده خود را به برنامه هاي اجرايي نظير فايل هاي COM و EXE مي چسبانند و معمولا بدون اينكه تاثيري در كار اصلي برنامه آلوده بگذارند، منتظر زمان فعاليت نهايي يا برقراري شرط خاصي مي شوند . حال اين فعاليت مي تواند بزرگتر كردن فايلهاي مختلف DATA باشد ، يا آلوده كردن فايلهاي اجرايي و يا از بين بردن اطلاعات PARTITION TABLE، معدوم كردن اطلاعا ت با ارزش يا از كار انداختن فايل هاي اجرايي و … باشد .
ولي در هر حال يك چيز در اكثر ويروس ها مشترك مي باشد و آن انتقال ويروس از فايل هاي آلوده به فايل هاي سالم است .
ويروس ها برنامه كامپيوتري هستند و نه چيز ديگري و مي توانند با انواع زبان هاي برنامه سازي Assenbly، C++، Pascal،Basic، … طراحي شوند و ما از قويترين زبان يعني اسمبلي جهت اينكاراستفاده كرده ايم

چگونه ويروس ها كار مي كنند.
ويروس هاي كامپيوتري برنامه هاي پارازيته اي هستند كه توسط افراد به طور عمد نوشته مي شوند و راه عملكرد كامپيوتر شما را بدون دانش و اجازه شما تغيير مي دهند. ويروس كپيي از خود را به ديگر فايل ها مي دهد، وقتي ويروس فعال شد، ممكن است به فايل آسيب رسد، موجب رفتار هاي نامنظم سيستم و يا نشان دادن پيغام هايي شوند.
ويروس هاي كامپيوتري فايل هاي سيستم و سند هايي را كه شما توسط برنامه هاي مختلف به وجود آورده ايد، آلوده مي كند.
بعضي از ويروس هاي سيستم، طوري طراحي شده اند كه برنامه ها را خراب كنند، به فايل ها آسيب برسانند و اطلاعات ديسك ها را پاك كنند.

ويروس ها چگونه منتشر مي شوند

اگر كسي چيزي در مورد كامپيوتر ها نداند اين را مي داند كه ويروسها مخرب هستند و بايد كامپيوتر خود را در برابر هجوم آنها حافظت كند. كمپاني هاي ضد ويروس ( آنتي ويروس ) تعداد زيادي ويروس را ساپورت مي كنند. ولي هيچ كدام از آنها كامل نيستند. آنتي ويروسهاي امروزي بيشتر عمل حفاظت را به طور واكنشي انجام مي دهند تا به صورت كنشي. يعني براي براي اينكه آنتي ويروس شما متوجه ويروس جديد در كامپيوتر شود بايد تا آخرين بيت وارد كامپيوتر شما شود و شروع به فعاليت كند. سناريوي پخش يك ويروس جديد در اينترنت و عكس العمل شركت

هاي آنتي ويروس در برابر آن به صورت زير است:
• ابتدا يك ويروس به طور متوسط صد هزار كامپيوتر را مورد هجوم قرار مي دهد.
• سپس شركت هاي آنتي ويروس شروع به ساختن پكيج براي آنها مي كنند.
• در مرحله بعد اين پكيج در اختيار عموم قرار مي گيرد.
مشكل اين است كه ممكن است كامپيوتر شما قبل از ساختن اين پكيج مورد حمله قرار گيرد. مشكل ديگر اين است كه اكثر افراد آنتي ويروس كامپيوتر خود را « به روز » يا « up to date » نمي كنند. كمپاني هاي ضد ويروس بيشتر به صورت اكتشافي عمل مي كنند. و اين كار را بوسيله برنامه هاي آشكار سازي انجام مي دهند. اين برنامه ها كليه اعمالي را كه در كامپيوتر بوسيله برنامه هاي ديگر انجام مي شود تحت نظر مي گيرند و هر گاه اين اعمال با كارهايي كه يك ويروس در كامپيوتر انجام مي دهد مطابقت كند آن را به عنوان يك ويروس شناسايي مي كنند.سپس جلوي فعاليت آن را مي گيرند و همچنين وجود ويروس را به كاربر گوشزد مي كنند. با عمل كردن اين برنامه آشكار ساز در نرم افزار آنتي ويروس هر گاه يك برنامه فعاليت مشكوكي انجام دهد به كاربر هشدار مي دهد و احتمالاً جلوي انتشار ويروس گرفته مي شود. اين عمل باعث مي شود كامپيوتر ها كمتر آلوده شوند.
نرم افزار آنتي ويروس بايد به گونه اي تنظيم شود كه كه روزانه به طور اتوماتيك اجرا شود كه شامل به روز كردن و اسكن كردن است.
برنامه هاي اكتشافي (Heuristics ) اين فرصت را مي دهند كه زودتر جلوي انتشار ويروس ها گرفته شود. هر چند استفاده از اين برنامه ها يك راه صددرصد فراگير نيست. ولي بسيار مشكل گشا است. و حساسيت اين برنامه ها به تنظيم سطح حفاظت ( Level Setting ) در نرم افزار آنت

ي ويروس بستگي دارد. يعني آنتي ويروسي كه در كامپيوتر شما نصب شده است و تنظيمات آن به كشف ويروسها كمك مي كند.
انواع دستكاري و تخريب ويروس هاي كامپيوتري
صرف نظر از ويروس هايي كه كاربران را مورد لطف قرارداده و تنها با صدورپيامي، نمايش تصويري و يا پخش موزيكي حضور خود را اعلام مي كنند،ساير ويروس ها به گونه هاي مختلف باعث نابودي اطلاعات و در برخي موارد باعث خرابي سخت افزار كامپيوتر مي شوند. در زير نمونه هايي از خسارات ويروس ها بيان مي شود:
الف: اختلال در كار سيستم(تخريب نرم افزاري)
در اين حالت ويروس با ايجاد خطا دربرنامه موجب اختلال در اجراي آن مي شود. اين اختلال گاه همراه با تصويري بر روي صفحه نمايش و يا صداي خاصي بلندگو يا قفل شدن كامپيوتر مي باشد .
بعضي از دلايل اختلال در سيستم بدليل ويروس ها عبارتند از :
۲ – ناسازگاري ويروس با سيستم يا نرم افزارهاي نصب شده بر روي آن
۳- تخريب اطلاعات كه شامل حذف، تغيير ويا اشغال و تكثير در حافظه
۴- اختلال عمدي سيستم توسط ويروس(اهداف نويسندگان ويروس) كه به عنوان مثال مي توان به كندي سرعت سيستم اشاره كرد
ب:تخريب سخت افزراي
عده اي معتقدند كه ويروس ها نمي توانند به سخت افزار آسيب برسانند وتا به امروز، هيچ ويروسي پيدا نشده است كه كه اين كار را انجام دهد. ولي در خلاف انتظار از بين بردن سخت افزار توسط برنامه هاي نرم افزاري امكان پذير و عملي است . گرچه خسارات سخت افزاري در موارد اندكي توسط ويروسها وجود دارد ولي بايد آنها را جدي گرفت . به عنوان مثال كامپيوترهاي سري آميگا از شركت كمو دور، به خاطر نداشتن كنترل در قسمت هاي مختلف در مقابل ويروس آسيب پذيرند.
در اين كامپيوتر ها مي توان به كمك نرم افزار ،موتور ديسك گردان را از حركت باز داشت و همزمان فرمان خواندن يك تراك كه وجو ندارد ، را به هد داد به اين ترتيب هد به ديواره هاي ديسك گردان برخورد كرده و مي شكند . نمونه ديگر اين است كه CPU و Icهاي آميگا از جمله اگنس ، دنيس و پائولا از نوع CMOS بوده و در مقابل الكتريسيته حساس هستند . اگر همزمان به تمام وروديهاي بيت يك اعمال مي شود ولتاژ اضافي باعث خرابي ICها مي شود.به كمك يك برنامه كوتاه چند خطي به زبان ماشين مي توان كليه ثباتهايي كه به نام CPU مي روند را حاوي بيت يك نمود و CPU را خراب كرد
در رايانه هاي شخصي ويروس مي تواند هد خواندن و نوشتن ديسك گردان را روي يك تراك داخلي ، كه وجودندارد قرار بدهد. در بعضي از ديسك گردانها، اينكار باعث مي شود كه هد ، به بستي در داخل ديسك گردان گيركندو فقط با باز كردن ديسك گردان و جابه جا كردن هد با دست ، مشكل حل مي شود

ويروس مي تواند تراك صفر ديسك را نابود كند در اينصورت ، اين ديسك ديگر قابل استفاده نيست يا اينكه ويروس بطور مكرر هد از سيلندر بيروني به سيلندر داخلي حركت دهد اين امر سبب سايش ونهايتا خرابي ديسك خواهد شد . در اينجا ممكن است مستقيما چيزي تخريب نشود ولي باعث فرسودگي مي شود. براي مثال ويروس AMP2P كه روي فايل CAMMAND.COM ويندوز ۹۵ وجود دارد ،قادر است تنظيم اصلي كارخانه را تغيير دهد و ويروسي كه بتواند اينكار را انجام دهد قادر است به تمام اجزاي سيستم دسترسي داشته و آنها را خراب كند . اين ويروس معمولا هارد ديسك را دچار تعدادي بد سكتور مي كند ويا تراك صفر را از كار مي اندازد كه با فرمت فيزيك

ي مجدد نيز ديسك قابل اصلاح نيست .
تا چندي قبل ويروس ها فقط فايل ها را خراب مي كردند كه معمولا چاره اينكار آسان بود ولي اكنون ويروس ها به آنچنان توانايي رسيده اند كه قادرند سخت افزار سيستم را مورد هدف قرار دهند كه در اين صورت خسارات ايجاد شده شديد و جبران آن سنگين است . تازه ممكن است پس ازتعويض قسمت خراب شده ، ويروس مجددا آنرا تخريب كند

ساختار كلي فايل هاي COM وEXE تحت DOS
ساختار كلي فايل هاي اجرايي از نوع COM تحت DOS
با توجه به شكل ، مشخص مي شود كه معمولا و نه هميشه اولين دستور از فايل هاي اجرايي COM، حاوي يك آدرس پرش (Jump) مي باشد كه اجراي برنامه را به مكان ديگري از داخل حافظه انتقال مي دهد و سپس دستورات اصلي برنامهاز مكان XXXXX در شكل فوق آغاز مي گردد.اما اگر همين آدرس پرش اوليه را بتوانيم طوري تغيير دهيم كه به ابتداي برنامه خودمان منتقل شود .مي توان گفت كه نصف كار آلوده سازي را انجام داده ايم . بصورت كلي جهت انجام اين كار ابتدا آدرس پرش اوليه XXXXX را در مكاني از حافظه ذخيره كرده (براي استفاده بعدي ) و سپس آدرس شروع برنامه خود را درآن قرار مي دهيم . خوب تا اينجا توانسته ايم كنترل اجرايي فايل هاي COM را بدست گيريم . سپس كافي است در داخل ويروس عمليات مربوط به يافتن فايل هاي اجرايي غير آلوده ، درستكاري آنها و انجام يكسري تخريب ها ( چاپ يكسري مطالب جهت ترساندن كاربر معرفي خود) و نهايتا برگشت به آدرس اوليه پرش XXXXX جهت اجراي عادي فايل آلوده شده مراجعه كرده تا برنامه ازاين پس روال عادي اجرايي خود را انجام دهد.
ساختار كلي فايل هاي اجرايي از نوع EXE تحت DOS
ساختار كلي فايل هاي EXE پيچيده تر است . طبق شكل،تمام فايل هاي EXE داراي يك Header يا عنوان بوده كه شامل اطلاعات تخصصي فايل اجرايي نظير مشخصه فايل،اندازه واقعي فايل،آدرس هاي Data Segment،Code Segment و….. مي باشد. بنابراين بر خلاف فايل هاي COM كه اولين دستور از آنها حاوي آدرس شروع برنامه است ، در اين فايل ها بايت هاي ۲۰و۲۲ در داخل Header حاوي آدرس شروع برنامه است و چون فايل هاي EXE از نظر اندازه مي تو

انند خيلي بزرگتر از COM باشند، اين آدرسها شامل SEGMENT:OFFSET است
با توجه به توضيح فوق در مورد نحوه آلوده سازي فايل هاي COM كافي است آدرس هاي X1:X2 را به ابتداي برنامه خود تغيير داده وسپس در پايان كار نيز به محل اوليه X1:X2 باز گرديم . اما اين نكته قابل ذكر است كه بدليل پيچيدگي ساختار فايل هاي EXE، آلوده سازي اينگونه فايل ها از فايل هاي COM مسكلتر است .
دلايل خراب شدن فايل هاي اجرايي
همانطور كه توضيح داده شد، به هنگام آلوده سازي فايل هاي اجرايي ممكن است، در مان چنين اعمالي نيز امكان دارد سيستم روال اجرايي عادي خود را ازدست داده و داخل يك حلقه بي نهايت قرار گيرد و يا به مكاني از حافظه پرش كند كه هيچگونه دستور العملي وجودنداردو سرانجام باعث HANG كردن يا قفل كردن كامپيوتر مي شود كه گاهي اوقات بعضي از ويروس ها به هنگام آلوده سازي دچار اين مشكل شده و احتمالا با اين مسئله برخورد كرده ايد كه به هنگام آلوده بودن كامپيوترتان سيستم بدليل نامشخصي قفل مي كند
باتوجه به توضيحات داده شده،هم اكنون الگوريتم كلي يكي از انواع ويروس هاي كامپيوتري را به صورت زير مي نويسيم :
۱- اولين فايل اجرايي در مسير جاري را پيدا كنيد
۲- گر فايل پيدا شده ، آلوده است و ديگر فايل آلوده ديگري جهت جستجو وجود ندارد به مرحله ۶برويد ۳- اگر فايل پيدا شده آلوده است به مرحله ۱برويد
۴- فايل آلوده شده را پيدا كنيد و فايل را طوري تغيير بدهيد تا به صورت عادي كار كند(آسيب نبينيد)
۵- به مرحله ۷برويد
۶- عمليات مربوط به دستكاري يا تخريب را انجام دهيد
۷- برنامه اوليه را اجرا كنيد
نتيجه گيري
با توجه به اينكه اغلب ويروس ها جهت آلوده سازي كامپيوتر ، طبق توضيحات داده شده، فايل هاي اجرايي حمله ور مي شوند و آدرس هاي داخل فايل را تغيير مي دهند، پس چه بهتر است بتوانيم اين مكان ها را هر چه دقيقتر كنترل كنيم و همچنين با شناخت هر چه بيشتر كار ويروس ها، آمادگي كاملتري جهت مبارزه با آنها كسب نماييم .
مراجع
۱-مجله رايانه شماره چهل و پنجم ص ص ۹۹و۹۸
۲-كتاب راهنماي ويروس و ضد ويروس ص ص ۵۰

كرم ها ( Worms )
کرم ها برنامه هايي هستند كه بدون آنكه برنامه هاي ديگر را آلوده كنند، تكثير مي يابند. بعضي از كرم ها از طريق كپي كردن خود از دسيكي به ديسك ديگر گسترش مي يابند. آنها به دنبال نوع هاي خاصي از فايل ها در ديسك ها و سرويس دهنده ها۲ مي گردند و در صدد آسيب يا نابودي آنها بر مي آيند. مثلاً مي توان به پاك كردن Registry توسط آنها اشاره كرد. بعضي كرم ها در حافظه تكثير مي شوند و هزاران كپي از خود را به وجود مي آورد و همه آنها به طور همزمان، شروع به فعاليت مي كنند كه موجب پايين آمدن سرعت سيستم مي شوند. نوع هاي مختلفي از كرم وجود دارد كه اينجا نمي توان به همه آنها پرداخت.
كرم ها نيز مانند اسب هاي تراوا ويروس نيستند ، بنابراين بايد آنها را از كامپيوتر پاك كرد.
اسب هاي تراوا هدف اصلي خود را مخفي مي كنند.
اسب هاي تراوا برنامه هايي هستند كه خود را به منظور هدف مفيدي يا سرگرم كننده اي جا مي زنند، كه اين شجاعت و اجازه را به شما مي دهند كه آنها را اجرا كنيد. اما هدف آنها صدمه زدن به فايل ها و يا قرار دادن ويروسي در كامپيوتر شما است.
اسب هاي تراوا ويروس به شمار نمي رود ، زيرا اين ها مثل ويروس تكثير و تكرار نمي شوند. به خاطر اينكه اسب هاي تراوا ويروس نيستند، لذا فايلي كه حاوي آنها مي باشد را نمي توان تعمير كرد و بنابراين حتماً بايد اسب تراوا و فايل ، پاك شوند. براي ايمني كامپيوتر شما Norton AntiVir

us اسب هاي تراوا را تشخيص مي دهد و آن را از كامپيوتر شما پاك مي كنند.
يكي از خطرناك ترين انواع اسب هاي تراوا برنامه اي است كه ادعا مي كند مي تواند كامپيوترتان را از ويروس رهايي مي دهد، ولي در عوض ويروس ها را به كامپيوتر شما منتقل مي كند.

 

ويروسهاي بوت سكتور
با گذشت زمان همانطور كه ويروس نويسان ماهرتر و خبره تر شدند حقه هاي جديدتري ياد گرفتند يك حقه كه دانستن آن مهم است توانايي فراخواني ويروس در حافظه است به طوريكه تا زمانيكه كامپيوتر كار مي كند اين ويروس ها جولان مي دهند. كه اين خود باعث مي شود كه ويروسها خود را به بسيار راحتر تكثير كنند يك حقه ديگر آلوده ساختن Boot Sector در فلاپي ديسك و هارد ديسك است. Boot Sector يك برنامة كوچك است و اولين قسمت از سيستم عامل است كه توسط كامپيوتر فراخواني مي شود. Boot Sector شامل يك برنامه كوچك است كه براي كامپيوتر تعيين مي كند كه چگونه سيستم عامل را فراخواني كند. يك ويروس با قرار دادن كد خود در Boot Sector اجراي خود را گارانتي مي كند. بنابراين ويروس مي تواند به راحتي در كامپيوتر فراخواني شود بنابراين قادر است هر زمان كه كامپيوتر روشن مي شود شروع به كار كند. اين ويروسها به راحتي مي توانند بوت سكتور يك فلاپي ديسك را آلوده كنند و با انتقال آن بين كامپيوترهاي ديگر مانند آتش ناشي از انفجار منتشر شوند.
اما امروزه اين ويروسها مانند گذشته يك كابوس نيستند. چون امروزه گرافيك يك عنصر جدا نشدني از نرم افزارها شده است و در نتيجه حجم آنها به شدت افزايش پيدا كرده است و به ندرت مي توانيد نرم افزاري را پيدا كنيد كه روي يك يا حتي چند فلاپي ديسك جا شود. امروزه نرم افزار ها بيشتر روي CD بين كامپيوتر ها جابجا مي شوند و چون CD ها عموماً قابل رايت مجدد نيستند و اگر هم باشند بايد بوسيله نرم افزار انجام شود اين ويروسها و ديگر ويروسهاي قابل اجرا به راحتي نمي توانند بين كامپيوتر ها تكثير شوند. ولي هنوز اينترنت وجود دارد. پس هميشه خطر آلوده شدن وجود دارد.
ويروسها و مشكلات آنها در اينترنت
ويروسهاي كامپيوتري شهرت زيادي در تلوزيون و روزنامه پيدا كرده اند بخصوص اكنون كه افراد زيادي از اينترنت استفاده مي كنند حتي تصور اينكه كل كامپيوتر شما در اثر بازديد از يك صفحه وب و يا باز كردن يك email بهم ريخته و كارهايتان از بين ربته غير قابل بخشش است.

يك ويروس تكه code اي است (نوشته مي شود بوسيله يك انسان مريض كه وقت زيادي دارد ) كه خود را مي چسباند به برنامه هاي كامپيوتري و خود را منتشر مي كند. ويروسها معمولاً اعمال ناخوشايندي روي كامپيوتر و برنامه هاي آن انجام مي دهند. مشكلي كه ويروس بوجود مي آورد مي تواند يك مشكل ساده باشد ( مانند باز كردن يك پنجره با يك پيام عاشقانه كه هر روز در سر وقت مقرر انجام مي شود ) يا فوق العاده خطرناك باشد ( همه فايلهاي موجود در كامپيوترتان را

پاك كند ) معمولاً زمانيكه كامپيوتر شما به يك ويروس آلوده مي شود شما متوجه نمي شويد ( اگر آلوده شدن به ويروس آشكار بود نمي توانست به سادگي گسترش پيده كند ) احتمالاً كامپيوتر شما شروع به انجام كارهاي عجيب و غريب خواهد كرد برنامه ها اجرا نمي شوند فايلهايتان در حال از دست رفتن هستند يا صدمه به كامپيوتر شما وارد مي شود.