Выслеживайте и уничтожайте вредоносные программы с помощью инструментов Sysinternals (часть 1)

Опубликовано: 8 Апреля, 2023

Введение

В течение последних нескольких лет каждый раз, когда я посещал ежегодный саммит MVP в Редмонде, кульминацией конференции была презентация Марка Руссиновича. В марте этого года его доклад был посвящен особенно увлекательной теме: как использовать некоторые из популярных инструментов Sysinternals, которые он создал для поиска вредоносных программ в вашей системе. Инструменты Sysinternals можно бесплатно загрузить со страницы Windows Sysinternals на веб-сайте TechNet. В этой статье, состоящей из двух частей, я подытожу то, что узнал на этом сеансе, и покажу вам, как использовать некоторые популярные утилиты Sysinternals для помощи в поиске вредоносного ПО.

Автоматическая и ручная очистка от вредоносных программ

Существует множество различных приложений для обнаружения и очистки вредоносных программ, в том числе собственный инструмент Microsoft для удаления вредоносных программ (MSRT), который можно бесплатно загрузить здесь. Проблема с большинством средств защиты от вредоносных программ заключается в том, что они полагаются на сигнатуры для обнаружения вредоносного кода. Всякий раз, когда обнаруживается новый вирус, программа-шпион или другое вредоносное ПО, поставщик должен обновить базу данных, которую средство защиты от вредоносных программ использует для распознавания нового вредоносного ПО. Однако авторы вредоносных программ многочисленны, и новые вредоносные программы обнаруживаются ежедневно, поэтому поставщики антивирусных программ всегда на шаг позади.

Это означает, что пользователи остаются незащищенными от новых угроз в течение некоторого времени, в зависимости от того, насколько быстро поставщик может создавать, тестировать и развертывать обновления. По этой причине многие пользователи компьютеров считают, что средства защиты от вредоносных программ работают не очень хорошо. Часто один инструмент находит вредоносное ПО, которое не замечает другой, а когда угроза совершенно новая, ни один из инструментов не может ее найти. Это основа концепции «Нулевого дня» — угроза, которая настолько нова, что от нее еще не существует средств защиты.

Таким образом, необходимость ручных методов очистки вредоносных программ. Хотя гораздо удобнее просто запустить приложение для защиты от вредоносных программ и надеяться на лучшее, если вы заметили подозрительное поведение в вашей системе, и эти программы не могут найти ничего плохого, вы можете копнуть глубже, чтобы найти это самостоятельно, вместо того, чтобы ждать поставщиков, чтобы обновить инструменты. Вы можете сделать это с помощью утилит Sysinternals, таких как Process Monitor и Autoruns.

Ручная идентификация и очистка вредоносных программ

В своем выступлении Марк сначала описал шаги, связанные с ручным обнаружением и очисткой вредоносных программ, а именно:

  1. Отключите машину от сети.
  2. Определите вредоносные процессы и драйверы.
  3. Приостановить и завершить указанные процессы.
  4. Определите и удалите все автозапуски вредоносных программ.
  5. Удалите файлы вредоносных программ.
  6. Перезагрузитесь и повторите.

Это может быть многоэтапный процесс, поскольку авторы вредоносных программ часто создают очень надежное программное обеспечение. Он спроектирован таким образом, чтобы противостоять вашим усилиям по его уничтожению, поэтому предостережение «перезагрузите и повторите», которое действует до тех пор, пока вы не справитесь со всем этим.

Шаг первый – предупредительный. Отключение от сети предотвращает заражение вашей зараженной машиной других в сети, а также предотвращает немедленное повторное заражение машины, «звонок домой» при срабатывании ваших действий по обнаружению и очистке и т. д. Однако отключение от сети также мешают вам полностью наблюдать за нормальными действиями вредоносного ПО и полностью понимать, как оно работает и что оно делает.

Как определить подозрительные процессы? Марк сказал нам искать те процессы, у которых нет значка, описательного названия или названия компании, или которые являются неподписанными образами Microsoft. Также сосредоточьтесь на тех процессах, которые находятся в каталоге Windows, содержат странные URL-адреса в своих строках, имеют открытые конечные точки TCP/IP или размещают подозрительные DLL или службы (скрываясь как DLL, а не как процесс). Многие из них упакованы — сжаты или зашифрованы — и многие авторы вредоносных программ пишут свои собственные упаковщики, поэтому вы не найдете общих сигнатур упаковщиков. Большинство вредоносных программ обладают некоторыми или всеми из этих характеристик.

Итак, как вы собираетесь исследовать процессы в первую очередь? Многие ИТ-специалисты начали бы с очевидного: вкладка «Процессы» диспетчера задач. Диспетчер задач был улучшен в Vista и Windows 7 по сравнению с Windows XP. Столбец «Описание», в котором содержится информация о том, какое приложение использует каждый процесс, является полезной функцией, показанной на рис. 1.

Изображение 23297
фигура 1

Вы можете получить дополнительную информацию в диспетчере задач, перейдя в меню «Вид» и нажав «Выбрать столбцы», а затем отметив нужные поля, как показано на рисунке 2.

Изображение 23298
фигура 2

Например, вы можете отобразить имя пути к изображению, чтобы показать полный путь к файлу, который подключен к процессу. Или вы можете установить флажок «Командная строка», чтобы отобразить команду с любыми параметрами или переключателями, которая использовалась для запуска процесса (вредоносное ПО часто имеет странные командные строки). Вы можете увидеть эту дополнительную информацию на рисунке 3.

Изображение 23299
Рисунок 3

Еще один способ получить дополнительную информацию о процессе в диспетчере задач — щелкнуть его правой кнопкой мыши и выбрать «Свойства», после чего откроется диалоговое окно «Свойства». Здесь вы можете увидеть информацию о типе файла, расположении и размере, цифровой подписи, информации об авторских правах, версии (большинство вредоносных программ не имеют информации о версии), разрешениях и т. д. Все это хорошее начало, но диспетчер задач по-прежнему не Это дает вам довольно глубокий взгляд на процесс, который вы можете получить с помощью такого инструмента, как Sysinternals Process Explorer.

Использование Process Explorer для выявления вредоносных программ

Process Explorer — это бесплатная загрузка размером 1,47 МБ с веб-страницы Windows Sysinternals на сайте TechNet. Работает на Windows XP и выше. Текущая версия 14.1, и вы можете получить ее здесь. Вы также можете запустить его по этой ссылке

Как вы можете видеть на рисунке 4, это дает вам представление о ваших процессах, отличное от того, что вы получаете с помощью диспетчера задач.

Изображение 23300
Рисунок 4

Вы заметите, что в Process Explorer дерево процессов в левом столбце показывает отношения родитель-потомок. Если один процесс выглядит подозрительным, связанные процессы также могут быть подозрительными. Чрезвычайно удобной функцией является возможность щелкнуть процесс правой кнопкой мыши и выбрать «Поиск в Интернете», чтобы выполнить поиск информации о процессе в Интернете, как показано на рисунке 5.

Изображение 23301
Рисунок 5

Однако следует иметь в виду, что некоторые вредоносные программы будут использовать псевдослучайные имена процессов, чтобы вы не могли найти какую-либо информацию при поиске.

Ранее мы отмечали, что вредоносное ПО часто упаковано, а фиолетовый цвет в Process Explorer указывает на то, что файлы могут быть упакованы; Process Explorer ищет сигнатуры упаковщиков, а также использует эвристику (например, небольшой код плюс большие данные), чтобы пометить эти процессы. Обратите внимание, что процессы, созданные в отлаженных версиях Visual Studio, также выглядят как упакованные процессы.

Некоторые из процессов, которые вы увидите, будут вам очень знакомы, так что вы можете даже не подумать о них — такие процессы, как svchost.exe, rundll32, taskhost.exe и так далее. Однако об этом знают и авторы вредоносного ПО, поэтому вредоносное ПО часто прячется за этими процессами, создавая свой собственный узел службы, чтобы прятаться и запускаться как системные процессы.

Нижняя панель Process Explorer открывается из меню «Вид» («Показать нижнюю панель»). Затем вы можете указать, будет ли он отображать дескрипторы или библиотеки DLL. В представлении DLL вы можете увидеть, что находится внутри процессов, будь то данные или изображение. Это представление показывает загруженные драйверы и может проверять строки и подписи.

Если вы обнаружите процессы, выдающие себя за Microsoft, которые не имеют цифровой подписи, это подозрительно, потому что практически весь код Microsoft подписан. Вы можете выборочно проверить наличие подписей с помощью кнопки «Проверить» на вкладке образа процесса в поле «Свойства» для процесса, доступ к которому вы получаете, дважды щелкнув имя процесса. Вы можете увидеть диалоговое окно «Свойства» с кнопкой «Проверить» на рис. 6.

Изображение 23302
Рисунок 6

Когда вы проверяете процесс, инструмент подключается к Интернету для проверки списка отзыва сертификатов (CRL). Вы можете добавить столбец «Подтвержденные подписывающие лица» на экран Process Explorer, выбрав View | Выберите «Столбцы» и установите флажок «Подтвержденный подписывающий», как показано на рисунке 7.

Изображение 23303
Рисунок 7

На рисунке 8 вы можете увидеть новый столбец и подписи, которые были проверены по отдельности.

Изображение 23304
Рисунок 8

Если вы хотите проверить все подписи, вы можете щелкнуть меню «Параметры» и выбрать «Проверить подписи изображений», как показано на рисунке 9.

Изображение 23305
Рисунок 9

Еще один инструмент Sysinternals, который вы можете использовать для проверки цифровых подписей, — это Sigcheck, который работает в Windows XP и более поздних версиях. Текущая версия 1.71 доступна для скачивания здесь.

Sigcheck — это исполняемый инструмент командной строки, который можно использовать для сканирования системы на наличие подозрительных исполняемых образов. Он включает в себя ряд параметров. Используя ключ -u, вы можете получить список всех неподписанных файлов. Вы также можете узнать хеш-значения (которые можно использовать для проверки вредоносных файлов) и проверить, соответствует ли указанное имя файла внутреннему имени файла.

Помните, однако, что авторы вредоносных программ также могут получать цифровые сертификаты для своего программного обеспечения, поэтому наличие действительного сертификата не гарантирует, что процесс не является вредоносным.

Резюме

Эта статья является первой из двух частей, посвященных использованию инструментов Sysinternals для ручного обнаружения и удаления вредоносных программ из системы Windows. Мы показали вам, как использовать Process Explorer для поиска подозрительных процессов, которые могут указывать на вредоносное ПО. Во второй части мы обсудим, как использовать Autoruns для поиска вредоносных программ, загружающихся при запуске, как использовать Process Monitor для отслеживания активности вредоносных программ и способы удаления вредоносных программ из системы.