حذف دستی بدافزارها و اصول اولیه شناسایی آنها

دانشنامه امنیتی
پنجشنبه, ۱۱ آذر ۱۴۰۰
زمان مورد نیاز برای مطالعه: حدود 10 دقیقه

📢 شاید شما هم به مانند اکثر کاربران تصور کنید که همه تهدیدات در فضای مجازی به ویروس ها ختم میشوند. این یک اشتباه مصطلح است. امروز همه تهدیدات در زیر پرچم “بدافزارها” قرار دارند که ویروس ها یکی از آنها هستند. برای آگاهی بیشتر، این مطلب را مطالعه کنید. ویروس‌ ها و بدافزار ها چه تفاوتی با هم دارند؟

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

اگر در مراکز تعمیر کامپیوتر مشغول به کار هستید، احتمالاً با کامپیوترهای آلوده‌ی زیادی سروکار دارید. در این مواقع، نصب و اجرای آنتی ویروس برای حذف همه‌ی بدافزارهای موجود کافی نیست. پس اولین کاری که باید بکنید این است که یک اسکنر بدافزار، مانند کیت اضطراری امسی‌سافت را دانلود، اجرا و استفاده کنید. این اسکنر در حالت ایده‌آل دخل همه‌ی بدافزارها را خواهد آورد، اما ممکن است در برخی موارد به دلایل زیر حاصلی در بر نداشته باشد:

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

حذف دستی بدافزار

در صورتی که کامپیوتر شما آلوده شود و اسکنرهای موجود نیز قادر به تشخیص آن نباشد، گام بعدی حذف دستی بدافزار است. این کار می‌تواند کمی دشوار باشد، به خصوص اگر با روش‌های شناسایی بدافزار آشنا نباشید. از کجا باید جستجو را شروع کنید؟ و از آن مهم‌تر، چگونه بایستی متوجه شوید که یک فایل، پوشه یا کلید رجیستری عملکردی مخرب دارد؟ اگر فایل مشکوکی پیدا کردید، می‌توانید نام آن را در اینترنت جستجو کنید، اما فراموش نکنید که حتی برای فایل‌های واقعی خود سیستم‌عاملِ ویندوز هم، نتایجی به دست می‌آید که اعلام می‌کند این فایل‌ها مخرب هستند!
خوشبختانه برای این که متوجه شوید در کامپیوتر شما چه می‌گذرد، ابزارهای زیادی وجود دارد. یکی از ابزارهای معروف برای انجام این کار Autoruns است که توسط Microsoft SysInternals طراحی شده و به صورت رایگان در دسترس همگان قرار دارد.

اما سوال این‌جاست که چه تفاوتی بین یک اسکنر خودکار مانند کیت اضطراری امسی‌سافت و یک اپلیکیشن ثبت لاگ، مانند Autoruns وجود دارد؟

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

شناسایی بدافزار

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

❗ نکته: آشنایی با رجیستری ویندوز در این مرحله شدیداً توصیه می‌شود. اگر آشنایی کافی ندارید ابتدا اطلاعات خود را در این حوزه افزایش دهید.

وقتی یک بدافزار وارد سیستم می‌شود، ابتدا می‌خواهد اطمینان یابد که هر بار با روشن شدن کامپیوتر، اجرا خواهد شد. این یعنی وقتی به دنبال بدافزارها می‌گردید، اولین نکته‌ی مهم، چیزی موسوم به نقطه‌ی بارگذاری (Load point) است. اگر آن را پیدا کنید، معمولاً می‌توانید متوجه شوید که بدافزار در کجای سیستم قرار گرفته است. Autoruns به راحتی این امکان را برای ما فراهم می‌کند تا اکثر این نقاط بارگذاری را بشناسیم.
اما برای شناسایی یک مدخل مخرب باید یک مهارت دیگر را نیز فرا گرفته باشید: شناسایی ورودی ها و فایل های قانونی. به همین دلیل، پیش از بررسی آلودگی‌های ساده‌ی سیستمی، بگذارید نگاهی داشته باشیم به یک نمونه از ورودی هایی که در ویندوز ۱۰ قرار گرفته است. تصویر زیر اسکن نرم‌افزار Autoruns را نشان می‌دهد.

اولین فایلی که در این پنجره می‌بینیم، cmd.exe است که در یک کلید رجیستری تحت عنوان AlternateShell قرار گرفته است. برای این که ببینیم این برنامه قانونی است یا نه، باید به دو نکته توجه داشته باشیم:

  1. آیا این فایل همان فایل اصلی cmd.exe مربوط به ویندوز است یا برنامه‌ای است که برای فریب کاربر اسم خودش را به cmd.exe تغییر داده است؟
  2. آیا نقطه‌ی بارگذاری این فایل طبیعی است؟

در اینترنت هم می‌توانیم به دنبال اسم cmd.exe بگردیم. در اولین صفحه از نتایج جستجو، می‌توانید توضیحات مربوط به فایل قانونی cmd.exe را به همراه نمونه‌های مربوط به بدافزارهایی که از این اسم برای برنامه‌های خودشان استفاده می‌کنند، ببینید. بنابراین از روی این نتایج نمی‌توان به یک نتیجه‌ی قطعی رسید. برای این که از قانونی بودن این فایل مطمئن شوید، می‌توانیم محل ذخیره‌سازی آن را بررسی کنیم و بعد آن را با ابزار VirusTotal اسکن نماییم. (محل پیش‌فرض این فایل در پوشه‌ی system32 است.)
جستجو به دنبال AlternateShell هم میتواند بسیار مفید باشد. در نتایج جستجو Microsoft Technet، گفته شده وقتی Safe Mode از طریق گزینه‌ Command Prompt انتخاب می‌شود، این فایل نام محیط‌های جایگزین را لیست می‌کند.
علاوه بر این می‌بینیم که cmd.exe مقدار پیش‌فرض است، یعنی cmd.exe یا AlternateShell در گزارش Autoruns کاملا قانونی است و می‌توانید آن را نادیده بگیرید. (نکته: این قضیه در اکثر موارد صدق می‌کند. اما در برخی موارد کاشف به عمل می آید که یک بدافزار خود را جایگزین یک فایل سالم در مسیری کاملا قانونی کرده است!)
حالا بگذارید به سراغ یک آلودگی ساده‌ی بدافزاری برویم. نمونه تروجانی که در این‌جا استفاده کردیم از این لینک قابل دریافت است. وقتی این بدافزار روی سیستم نصب شود، خروجی Autoruns شبیه تصویر زیر خواهد بود:

این تصویر در نگاه اول شاید خیلی گیج‌کننده به نظر برسد، اما خوشبختانه Autoruns اطلاعات گردآوری شده را بر اساس نقطه‌ی بارگذاری آن مرتب می‌کند. علاوه بر این، این برنامه محل همه‌ی نقطه‌های بارگذاری را که می‌توانند در رجیستری یا سیستم فایل باشند، نشان می‌دهد. با تحلیل اطلاعات این گزارش، دو خط قابل توجه است. این دو خط حاوی رشته‌ای از حروف و اعداد مبهم هستند در حالی که اطلاعات سایر گزینه‌ها برای کاربر قابل فهم است. بر اساس گزارش Autoruns، این فایل ها در محل‌های زیر قرار گرفته‌اند:

  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

همان‌طور که می‌بینید اولین ورودی سوال‌برانگیز، یک کلید رجیستری و دومی یک پوشه است. این دو از نقاط بارگذاری هستند که به دفعات توسط نرم‌افزارهای مخرب و قانونی استفاده می‌شوند. اگر می‌خواهید مطمئن شوید که نرم‌افزار به هنگام بالا آمدن ویندوز اجرا می‌شود یا نه؟ می‌توانید از یکی از این دو محل استفاده کنید

بگذارید ابتدا به سراغ نقطه‌ی بارگذاری ساده‌تر یعنی پوشه‌ی Startup برویم. بر اساس گزارش Autoruns ، فایلی به نام edf6e17148b3b3408342ac7be2e79536.exe در آن پوشه قرار دارد. پیش از این که جلوتر برویم، باید توجه داشته باشیم که همین مسئله دو چراغ قرمز را به ما نشان می‌دهد:

  1. در پوشه‌ی Startup معمولاً انتظار دارید فایل‌های میانبر با پسوند .lnk ببینید، نه فایل‌های اجرایی با پسوند .exe
  2. نام این فایل شبیه رشته‌ای تصادفی از کاراکترهاست که از هیچ کجای آن مشخص نمی‌شود که چه چیزی قرار است بارگذاری شود. در فایل‌های معمولی، انتظار می‌رود نام فایل علاوه بر این که حضور آن برنامه را در کامپیوتر نشان می‌دهد، نشانگر این باشد که اپلیکیشن می‌خواهد چه چیزی را بارگذاری کند؟

برای بررسی بیشتر می‌توانیم در Autoruns روی این ورودی کلیک راست کرده و گزینه‌ی Check VirusTotal را انتخاب کنیم. با این کار لینکی از نتیجه‌ی اسکن VirtusTotal برای شما نشان داده می‌شود که با کمک آن می‌توانید ببینید که فایل مخرب است یاخیر.
حالا بگذارید به سراغ بخش بعدی نقطه‌ی بارگذاری یعنی مقدار اجرایی (Run value) برویم. اگر با کلیک راست بر روی این گزینه و انتخابJump to Entry ، فایل مذکور را با استفاده از Regedit باز کنیم، با چیزی مشابه تصویر زیر روبرو می‌شویم:

مجدداً باید بگوییم که حتی بدون بررسی جزئیات فایل، چندین چراغ قرمز وجود دارد که باید به آن‌ها توجه کنیم:

  1. نام این مقدار شبیه یک رشته‌ی تصادفی است که نشان نمی‌دهد چه برنامه‌ای اجرا شده است.
  2. اطلاعات این مقدار به فایلی به نام svhost.exe در پوشه‌ی Temp اشاره می‌کند. دقت کنید که این فایل با svchost.exe که یکی از فایل‌های قانونی ویندوز است و معمولاً در مسیر Windows\system32 قرار دارد، کاملا متفاوت است.

در مرحله‌ی بعد می‌بینیم که Autoruns اطلاعات بیشتری درباره‌ی فایل ارائه داده و فراداده‌ی (Metadata) آن را استخراج کرده است. برای تأیید این اطلاعات می‌توانیم Properties را (با کلیک راست بر روی فایل) باز کنیم.

نام فایل ظاهراً Windows Serivce است که کاملاً معقولانه و قانونی به نظر می‌رسد، هرچند هیچ فایلی در ویندوز وجود ندارد که این نام را داشته باشد و البته اگر دقت کنید در اسم Serivce هم یک غلط املایی وجود دارد (شکل صحیح: Service). اسم فایل اصلی game.exe است که در حالت عادی نباید ارتباطی به svchost.exe یا سایر سرویس‌های ویندوز داشته باشد. با انجام اسکن VirusTotal می‌توانید مطمئن شوید که این فایل بدافزار است یا خیر؟ بله، بدافزار است. گزارش را از طریق این لینک بررسی کنید.
برای حصول اطمینان از این که هر دو فایل مربوط به یک آلودگی بوده یا نه؟، می‌توانید گزارش‌های VirusTotal را با هم مقایسه کنید. برای انجام این کار از بخش نتایج VirusTotal به زبانه‌ی Details بروید و بررسی کنید که آیا کد هَش فایل‌ها یکسان است یا خیر؟

حذف بدافزار

اکنون که فهمیدیم دو فایل و یک کلید رجیستری باید حذف شوند، بالاخره به مرحله‌ی اقدام عملی رسیدیم. برنامه‌ی Autoruns گزینه‌ای تحت عنوان delete دارد، ولی شاید بدافزار ما همین الان هم در حال اجرا باشد. همان‌طور که قبلاً گفتیم، بدافزارها می‌توانند در صورت حذف شدن، به طور خودکار دوباره خود را اضافه کرده یا حتی تلاش شما برای حذف را، خنثی کنند. در این شرایط Autoruns قادر به حذف بدافزارها نیست. برای متوقف کردن بدافزارها می‌توانیم از Task Manager ویندوز استفاده کنیم، ولی این گزینه هم محدودیت‌های خودش را دارد. گزینه‌ی بهتر، به خصوص برای حذف بدافزارها، Process Explorer است. این برنامه از آن جهت خوب است که برخلاف Task Manager اطلاعات زیادی درباره‌ی فرآیندهای موجود فراهم می‌کند.
بنابراین اکنون که بدافزار را شناسایی کردیم، آخرین کاری که باید بکنیم این است که فرآیندهای مخرب را پیدا کنیم.

همان‌طور که در تصویر بالا می‌بینید، فقط یک مورد با همه‌ی خصوصیات یک ورودی مخرب تطابق دارد: نام فرآیند svhost.exe به همراه توضیح Windows Serivce و محل ذخیره‌سازی در پوشه‌ی Temp (اگر نشانگر موس را روی این گزینه ببرید، می‌توانید این اطلاعات را مشاهده کنید.) علاوه بر این، وجود یک فایل مشابه با نام svchost.exe که یک فایل کاملا قانونی است هم از اهمیت زیادی برخوردار است.
حال کافیست این فرآیند را با کلیک راست و انتخاب گزینه‌ی Kill process متوقف کنید. سپس همه‌ی ورودی های موجود در Autoruns بدون مشکل، قابل حذف خواهند بود. لطفاً به یاد داشته باشید که اگر Autoruns یک نقطه‌ی بارگذاری رجیستری را حذف کند، فایل مربوطه همچنان باید به صورت دستی پاک شود.
روش دیگر انجام این کار این است که کامپیوتر را ریستارت کرده و وارد Safe Mode شوید. در این حالت مقادیر Run و فایل‌های پوشه‌ی Startup دیگر اجرا نمی‌شوند. با این روش نیازی به استفاده از Process Explorer هم نخواهید داشت.

امیدواریم از این مقاله لذت برده باشید! در آینده‌ای نزدیک با مقاله‌ های دیگری درباره‌ی نحوه‌ی مقابله با آلودگی‌های مختلف مثل باج‌افزارها، PUPها و غیره باز خواهیم گشت.

✅ لطفا به یاد داشته باشید که همواره پیشگیری بهتر از درمان است. پس، از یک آنتی ویروس‌ معتبر، مانند امسی سافت استفاده کنید و برای خودتان دردسر اضافی ایجاد نکنید.

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

این مطلب ترجمه ای آزاد از مطلب زیر است:

The Basics of Manual Malware Identification and Removal

آیا این مطلب برای شما مفید بود؟

این مطلب را با دوستان و آشنایان خود به اشتراک بگذارید.

مشاهده همه مطالب مشابه

نظر مخاطبان

بدون نظر

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *