اولين نشانهها
ديشب متوجه شدم چراغ کارت شبکه کامپيوتر يکي از بچههاي اتاق مدام در حال چشمک زدنه. اين در حالي بود که کامپيوتر فعاليت شبکهاي خاصي هم نداشت. وقتي به نشانگر شبکه (کنار ساعت) دقت کردم، متوجه شدم کامپيوتر فقط در حال ارساله و چيزي دريافت نميکنه.
مشخصه که مساله مشکوکه؛ چون ارسال حجم بالايي از اطلاعات بدون دريافت؛ اونهم زماني که کامپيوتر مشغول کار خاصي نيست عجيبه. اولين چيزي که به ذهن من رسيد اين بود که ممکنه با يه کرم کامپيوتري (Worm) مواجه باشم که در تلاشه کامپيوترهاي ديگه شبکه رو آلوده کنه...
بررسي بستهها
اما اين فعلا يک فرضيه است و بايد آزمايش بشه. قدم بعدي براي کشف موضوع اين بود که سعي کنم ببينم کامپيوتر در حال ارسال چه بستههايي است. براي اين کار ميشه از ابزارهاي ثبت ترافيک (موسوم به Packet Capture) استفاده کرد که تمام بستههاي ارسالي و دريافتي کامپيوتر رو نشون ميدن. (مثلا WireShark)
از اتفاق دوستم اين برنامه رو داشت و براي همين باهاش يه نگاهي به ترافيک انداختم. چيزي که مشخص بود تعداد زيادي اتصال TCP با پورت 445 (SMB) و ارسال ميزان زيادي بسته UDP به پورتهاي 137(NetBios) و 67 (Bootps) و 1900(UPnP) بود. خب اينها هيچکدام پورتهاي عجيبي نيستند، بلکه متداولترين پورتهاي باز روي يه کامپيوتر ويندوزي هستند. از طرفي، پراکندگي بالاي ipهايي که با آنها تماس گرفته شده بود؛ به رفتار يه کرم شبيهه.
يافتن مجرم
قدم بعدي اينه که متوجه بشيم کدام برنامه در حال ارسال بستههاست. اين کار خارج از حيطه ابزار ثبت ترافيکه. اما خوشبختانه در مورد اتصالات TCP نياز به هيچ ابزار اضافهاي نيست و ويندوز خودش دستوري داره که نشون ميده کدام برنامه اتصالي رو باز کرده، يا در حال انتظار براي اتصال است و غيره.
براي اين کار کافيه cmd را باز کنيد و دستور زير رو اجرا کنيد:
netstat -ano
بدون اينکه وارد جزئيات و گزينههاش بشم؛ اين دستور ليستي از پورتهاي باز (TCP و UDP) کامپيوتر رو همراه با اتصالات (TCP) موجود نشون ميده. در عين حال شماره پروسهي مربوطه هم نمايش داده ميشه.
در زير بخش مرتبط (فقط پورت 445) و سانسور شده (با خط تيره -) خروجي اين دستور رو ميبينين:
Proto Local Address Foreign Address State PID TCP ---.---.---.---:7704 --.---.-.---:445 SYN_SENT 1556 TCP ---.---.---.---:7705 ---.--.--.--:445 SYN_SENT 1556 TCP ---.---.---.---:7706 --.--.---.--:445 SYN_SENT 1556 TCP ---.---.---.---:7707 ---.---.--.-:445 SYN_SENT 1556
ستون PID در این جدول، شماه پروسه (Process ID) رو نشون میده. با کمک Task Manager مشخص شد که شماره پروسه مزبور به svchost.exe متعلقه. متهم رديف اول!
svchost.exe نام يک پروسه اساسي ويندوزه که سرويسهاي مختلفي ذيل اون اجرا ميشه. در واقع ميزبانيست براي انواع سرويسهايي که خودشون يه پروسه جدا ندارند. در يک ويندوز XP عادي ممکنه چندين نسخه از اين پروسه در حال اجرا باشه که هر کدام چندين سرويس متفاوت رو اجرا کنند. البته بسيار متداوله که ويروسها هم پروسهاي با همين نام يا نام مشابه (مثلا svohost.exe) اجرا کنند، ولي در اين مورد پروسه مزبور همان پروسه اصلي ويندوز بود.
نشانههاي جديد
وقتي شک خودم رو با دوستم در ميان گذاشتم، اظهار کرد که از وجود بدافزار (Malware) روي کامپيوترش مطلعه! پرسش بعدي اين بود که آيا بدافزار از طريق USB هم منتقل ميشه؟ (يعني اگه يه درايو USB به کامپيوتر بزنيم خودبخود روي اون کپي ميشه؟) و جواب خوشبختانه بلي بود.
همانطور که ايده اصلي يک کرم شبکه، يعني تلاشش براي آلودهسازي بقيه کامپيوترهاي شبکه باعث شده بود وجودش کشف بشه، ايده اصلي يک کرم USB يعني تلاشش براي آلوده کردن بقيه کامپيوترها از طريق USB رو هم ميشه برعليه خودش استفاده کرد. کافيه خيلي ساده يه حافظه USB به کامپيوتر آلوده وصل کنيم تا کرم خودش رو کپي کنه. بعد با اتصال حافظه به کامپيوتري که يه انتيويروس بروز شده روي اون وجود داره ميتونيم نوع کرم رو تشخيص بديم. با داشتن اسم کرم، ميشه اطلاعات اون رو از طريق يه جستجوي اينترنتي ساده پيدا کرد. و البته روش حذف اون و احتمالا يک برنامه که اين کار رو انجام بده.
هشدار:
در انتقال USB بايد دقت شود که مبادا همين کار موجب انتقال کرم به کامپيوتر جديد بشه.
در عمل کردن به دستورالعملهاي اينترنتي نيز بايد مراقب بود: همانطور که دارو بايد با تجويز پزشک مصرف شود، قبل از عمل به اين دستورالعملها بايد مطمئن شوید اولا دستورالعمل به مشکل شما مربوط است و دوما، اون رو از افراد مطمئني دريافت کردهايد.
بخصوص دانلود کردن برنامهها از اينترنت بايد با ملاحظه و از محلهاي معتمد صورت بگيرد، مبادا که ويروس يا بدافزار ديگري همراه برنامه دانلود شود.
شايان ذکره که دوستم روي کامپيوترش - شايد بعد از آلوده شدن به ويروس - آنتيويروس AVG نصب کرده بود، ولي آنتيويروس از تشخيص کرم ناتوان بود. (اصولا آنتيويروسها در تشخيص بدافزارها پس از آلوده شدن سيستم مشکلاتي دارند. به خصوص اگر - مثل موضوع ما - بدافزار مربوطه از نوع Rootkit نيز باشد)
اينکه بعد از اين همه تلاش، راهحل به اين سادگي جهت تشخيص مشکل پيدا شود خودش حکايتي است! شايد برخي بگويند بايد قبل از بررسيهاي مفصل خيلي زودتر از دوستم در اين باره پرسش ميکردم.البته، معما چو حل گشت آسان شود؛ ولي در هر حال اين تلاشها خودش لذت بخش و آموزنده است و دقيقا نکتهايست که از ابتدا موجب علاقمندي و پيگيري من شده بود.
نتيجه و رفع آلودگي
خب، نتيجه همين آزمايش ساده با آنتي ويروس Avast کامپيوتر ديگر، نام کرم رو مشخص کرد: Kido.IH.40
نام ديگر اين کرم Conficker است که کرم بسيار معروف و شناخته شدهايست. اين کرم از يک حفره نسبتا قديمي (سال 2008) در RPC ويندوز براي انتشار خودش در شبکه استفاده ميکنه. با اينکه اين حفره همون موقع توسط مايکروسافت برطرف شده، به علت اينکه بسياري از ويندوزها به روز نيستند کرم همچنان قرباني ميگيره.
روش رهايي از دست اين کرم را ميتوانيد به نقل از Microsoft بخوانيد.
من از روش زير استفاده کردم، ولي به خاطر داشته باشيد مسئوليت انجام هر کاري با خود شماست:
- دانلود برنامه Killer مربوطه که توسط شرکت Kaspersky تهيه شده بود: (بسياري از شرکتهاي آنتيويروس چنين برنامهاي براي اين کرم ارائه دادهاند)
دانلود از اينجا - دانلود patch از مايکروسافت، براي اينکه کرم موفق به آلوده کردن مجدد کامپيوتر نشود:
MS08-067 ،Ms08-068 ،MS09-001 - اطمينان از اينکه کلمه عبور قوياي براي کامپيوترتان انتخاب کردهايد. (لااقل 6 کاراکتر شامل حروف کوچک/بزگ، اعداد و کاراکترهاي ويژه)
- بروزکردن آنتيويروس و جستجوي سيستم براي وجود فايلهاي ويروس.
- اطمينان از اينکه سرويس بروزرساني ويندوز (Windows Update) فعال است تا ديگر کامپيوتر به چنين کرمهايي آلوده نشود.
توجه: وقتي کرم Conficker کامپيوتري را آلوده ميکند ممکن است از اتصال کامپيوتر به سايتهاي آنتيويروس و مايکروسافت جلوگيري کند. به همين علت ممکن است مجبور شويد از يک کامپيوتر ديگر براي دانلود کمک بگيريد. اما لينک برنامه Killer که در بالا ارائه دادم از يک سايت دانلود نرمافزار است که اصولا توسط ويروس بلوکه نميشود.
ضمنا برخي گونههاي Conficker بدافزارهاي ديگري را دانلود و نصب ميکنند که رهايي از آنها نياز به روش خودش را دارد.
من توصيه ميکنم autorun ويندوز را نيز از کار بيندازيد تا کرمهاي USB نتوانند از اين طريق منتقل شوند. بزودی درباره autorun نیز خواهم نوشت
بروزرسانی 1389/3/30: درباره از کارانداختن autorun این پست را بخوانید.بروزرسانی 1389/4/27: اندکی توضیح درباره Rootkitها و ارتباطشان با این پرونده را در این پست بخوانید.
کلمات کلیدی: AntiVirus, Conficker, Kido, Rootkit, Virus, Windows, WireShark, Worm, آنتی ویروس, امنیت, روت کیت, ویروس, ویندوز, پرونده, کانفیکر, کرم, کیدو
:) کامل و بدرد بخور بود. ممنون
پاسخحذفعالی بود و فوق العاده!
پاسخحذفحاجی لطفا بخش «پرونده» را در وبلاگ افزایش بدهید!
خوب بود
پاسخحذفخدا قوت
جالب بود. مرسی.
پاسخحذفتشکر
پاسخحذف