Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3204

.pdf
Скачиваний:
9
Добавлен:
15.11.2022
Размер:
3.44 Mб
Скачать

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

основной исполняемый файл процесса имеет имя, похожее на имена системных файлов Windows, но не совпадающее ни с одним из них, например windows.exe, ntdll.exe, svshost.exe. Иногда подобные файлы имеют расширения, отличные от ЕХЕ, например windll.dll;

основной исполняемый файл процесса имеет имя, совпадающее с именем одного из системных файлов Windows, но расположен не в той директории, в которой он должен находиться, например c:\windows\svchost.exe или c:\windows\system32\explorer.exe;

основной исполняемый файл процесса имеет имя, совпадающее с именем одного из системных файлов Windows, но выполняется процесс от имени не того пользователя, от имени которого он должен выполняться, например процесс svchost.exe выполняется от имени локального пользователя;

директория, в которой размещается основной исполняемый файл процесса, не соответствует предполагаемому назначению процесса, например файл adober.exe размещается не в директории с:\program\files\adobe,

а в директории c:\windows;

информация о разработчике программного продукта не заверена цифровой подписью либо вообще отсутствует в исполняемых файлах процесса;

система защиты от исполнения кода в области данных (DEP), включенная в других процессах, в данном процессе отключена;

потребление процессом процессорного времени или оперативной памяти не соответствует предполагаемому назначению процесса;

231

интенсивность и характер выполнения процессом операций ввода-вывода не соответствует предполагаемому назначению процесса, например интенсивность ввода-вывода, выполняемого видеоплеером, не уменьшается после установки фильма на паузу;

в списке программных модулей, загруженных в адресное пространство процесса, присутствуют модули, не соответствующие предполагаемому назначению процесса, например игра Tetris загружает библиотеку samlib.dll, предназначенную для работы с паролями пользователей;

в списке объектов операционной системы, открытых процессом, присутствуют объекты, не соответствующие предполагаемому назначению процесса, например игра Tetris открывает нестандартное логическое устройство, драйвер которого имеет неизвестное происхождение;

сетевая активность процесса не соответствует его предполагаемому назначению, например программакалькулятор держит открытым слушающий сокет с нестандартным номером порта. Для ускорения поиска подозрительных процессов в списке, выдаваемом утилитой Process Explorer, можно воспользоваться пунктами меню этой утилиты Find DLL или Find Handle. Например, чтобы узнать, какие процессы работают с интерфейсом Windows Sockets, можно ввести строку ws2_32.dll в окно Find DLL, а чтобы узнать, какие процессы работают с протоколом TCP – строку

YDeviceYTcp в окне Find Handle.

В отличие от случая, когда для поиска закладки применяются специализированные антивирусные средства, ручной поиск вредоносных программ является скорее искусством, чем наукой. Характер и последовательность действий администратора могут сильно варьироваться в зависимости от особенности закладки, проникшей в систему. Для примера рассмотрим систему, зараженную восемью случайно выбранными вредоносными программами: пятью файловыми вирусами, двумя сетевыми червями и одной

232

программой, несанкционированно показывающей пользователю рекламу из Интернета.

Итак, начнем поиск присутствующих в системе закладок. Прежде всего откроем окно утилиты Task Manager и перейдем на вкладку Processes (рис. 2.6). Сразу обращает на себя внимание строка, выделенная курсором. Процесс svchost.exe может выполняться от имени псевдопользователей

SYSTEM, LOCAL SERVICE или NETWORK SERVICE, но никак не от имени локального пользователя. Судя по всему, обнаруженный процесс – это тело программной закладки, неудачно маскирующееся под системный процесс.

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

Проще всего сделать это с помощью утилиты Process Explorer (рис. 2.7). В главном окне программы сразу видно, что тело программной закладки размещается в директории C:\WINDOWS. Если столбец Command Line не выводится программой, надо войти в пункт меню View / Select Columns и установить соответствующую опцию.

233

Рис. 2.6. Программная закладка в окне программы

Task Manager

234

Рис. 2.7. Программная закладка в окне программы

Process Explorer

Обнаруженный вредоносный файл можно удалить, но

235

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

Более эффективно не удалять вредоносный файл, а запретить к нему доступ, причем сразу тремя способами:

установив в политике ограничения запуска программ правило «запрет запуска программного файла, имеющего заданную хеш-функцию»;

установив в политике ограничения запуска программ правило «запрет запуска программного файла, имеющего заданное имя и расположенного в заданной директории»;

присвоив файлу атрибуты защиты «никому никакого доступа». Если политика ограничения запуска программ пока не определе на, ее следует определить. Для этого следует открыть оснастку Local Security Policy консоли администрирования Windows и выбрать в ней элемент Software Restrictions Policies (рис. 2.8).

Рис. 2.8. Доступ к политикам ограничения запуска программ в консоли администрирования Windows

236

После того как будут созданы правила запуска программ по умолчанию, их надо внимательно просмотреть и, возможно, удалить некоторые их них. В нашем случае необходимо удалить правило, разрешающее запуск программных файлов, расположенных в директории C:\WINDOWS.

Для того чтобы установить правило «запрет запуска программного файла, имеющего заданную хеш-функцию», необходимо предъявить файл системе ограничения запуска программ. Для этого, возможно, придется включить опцию Explorer «показывать скрытые файлы и директории». Либо можно не пользоваться кнопкой Browse, а просто вписать полное имя файла в поле File Hash окна New Hash Rule

(рис. 2.9).

Рис. 2.9. Добавление в политику ограничения запуска программ правила, запрещающего запуск программной закладки

Присвоение файлу атрибутов защиты «никому никакого доступа», как правило, выполняется встроенными средствами Windows Explorer. Некоторые программные закладки

237

отслеживают изменение пользователем настроек Explorer и при включении опции «показывать скрытые файлы и директории» немедленно отключают ее. В этом случае можно воспользоваться утилитой командной строки cacls (рис. 2.10).

Рис. 2.10. Запрет доступа к файлу из командной строки Windows

Теперь к файлу C:\WINDOWS\SVCHOST.EXE запрещен любой доступ, и вредоносный процесс можно смело завершить, например, нажав кнопку End Process в окне Task Manager.

В списке процессов ничего подозрительного больше не видно. Просмотрим теперь список сервисов, открыв соответствующую оснастку консоли администрирования ММС. Ничего подозрительного также не видно, как и в меню Start / Programs / Startup. Теперь посмотрим в реестр, прежде всего в ключ

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.

Этот ключ наиболее часто используется примитивными программными закладками для организации автозапуска после перезагрузки операционной системы. Содержимое данного ключа приведено на рис. 2.11.

238

Рис. 2.11. Список автоматически запускаемых программ в реестре Windows, в котором присутствуют программные закладки

Значение checkrun, присутствующее в данном списке на первой позиции, указывает на несуществующую программу. В данном случае это «посмертные останки» одной из восьми вредоносных программ, не сумевшей инициализироваться в данной системе, судя по всему, из-за программной ошибки. Удалим значение checkrun.

Следующие пять значений соответствуют программам, легально установленным в системе. Чтобы убедиться в этом, достаточно просмотреть программные файлы, на которые указывают эти значения. Все пять программных файлов содержат информацию о производителе (JMicron и NVIDIA), содержимое таблиц импорта и текстовых строк в секции инициализированных данных соответствует предполагаемому предназначению программного файла. Вряд ли это программные закладки.

Седьмое значение RavAV вызывает некоторые подозрения. Имя исполняемого файла ассоциируется с программой Adobe Reader, но эта программа не должна размещаться в системной директории. Кроме того, сомнительно, что программисты Adobe использовали бы для значения автозапуска имя RavAV, не имеющее никакого отношения к назначению программы. Файл AdobeR.ехе очень велик (3,5 Мбайт), что нетипично для вредоносных программ,

239

но, с другой стороны:

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

LoadLibrary, GetProcAddress и GetModuleHandle;

в середине и конце файла присутствуют структуры данных, подо зрительно напоминающие таблицы импортов, причем с совсем другими функциями, чем в истинной таблице импортов;

по виртуальному адресу 0x401630 внутри файла лежит DOS-заголовок РЕ-файла, за которым следуют сигнатура РЕ, основной и дополнительный заголовок файла и заголовки секций. Похоже, внутри файла AdobeR.exe лежит образ какогото другого исполняемого файла. Еще один вложенный образ РЕ-файла обнаруживается в середине файла. Интересно, что оба этих образа хранятся в таблице ресурсов файла

AdobeR.exe;

процесс AdobeR.exe, выполняющийся в данный момент, постоянно выполняет операции управления каким-то устройством (столбец I/O Other программы Process Explorer), причем длина буфера, передаваемого в каждом запросе, составляет 32 байт (столбец I/O Other Bytes программы Process Explorer). Открыв в программе Process Explorer панель Handles,

обнаруживаем, что процесс AdobeR.exe открыл только два устройства: \Device\Tcp и \Device\AfdVEndpoint. Это сетевые устройства;

как легко видеть на вкладке TCP/IP окна Process / Properties про граммы Process Explorer, процесс AdobeR.exe

открыл на прослушивание ТСР-порт 17339. Похоже, процесс ждет, когда операционная система подключится к Интернету.

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

240

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]