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


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


Виды проявлений вредоносных программ
Явные проявления – нескрываемые действия вредоносных программ на компьютере, т.е. вывод на экран сообщений, открытие страниц веб-сайтов и т.д.

Другие вредоносные программы могут провоцировать разного рода сбои в работе компьютера или прикладных программ. Например: червь Sasser является появление на экране сообщения о сбое в процессе lsass.exe, в результате чего система будет перезагружена.

Priznaki zarajeniya chervem Sasser
Рис. 1. Признак заражения червем Sasser


Многие вредоносные программы пытаются отключить или полностью удалить антивирус, другие блокируют доступ к веб-серверам антивирусных компаний, чтобы сделать невозможным обновление антивирусных баз. Такие проявления будут называться косвенными.
Скрытые проявления состоят в наличии дополнительных процессов в памяти, в сетевой активности, в характерных изменениях системного реестра Windows.

Таким образом, мы имеем три вида проявления вредоносных программ:

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


Рассмотрим подробнее и на конкретных примерах.


Явные проявления
Характерны для троянских и в особенности для рекламных программ. Т.к. если сетевой червь при проникновении на компьютер сразу же себя обнаружит, пользователь сможет отключить компьютер от сети, воспрепятствовав дальнейшему распространению вредоносной программы.
В зависимости от типа троянских программ, они пишутся для выполнения какой-то конкретной вредоносной функции и скрытность им нужна в большей степени на этапе проникновения. Цель рекламных модулей – привлечение внимания к объекту рекламы (веб-сайту, программе и др.), а привлечь внимание, значит обнаружить свое присутствие.

- Изменение настроек браузера
Изменение стартовой страницы браузера, изменение стандартной страницы поиска, несанкционированное открытие новых окон, ведущих на определенные сайты – все это может быть следствием присутствия в системе вредоносной программы.
Если происходит выполнение вредоносного скрипта на одном из посещенных сайтов, то программы на компьютер не проникают, а настройки браузера можно восстановить и полностью решить проблему.
Если восстановленные настройки снова меняются после перезагрузки компьютера, значит причина изменений – наличие на компьютере вредоносной программы.
Подобное поведение характерно для рекламных модулей, принудительно завлекающих пользователей на сайт, рекламирующий какую-либо продукцию. А также для троянских программ, которые направляют пользователя на сайты, содержащие другие вредоносные программы.

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

- Несанкционированный дозвон в Интернет
Утилиты дозвона – эти утилиты, которые без санкции пользователя и игнорируя настройки, пытаются установить модемное соединение с Интернетом через дорогую телефонную линию или дорогого провайдера. В результате владелец компьютера получает счет на внушительную сумму.


Косвенные проявления
Косвенные проявления отнюдь не всегда являются преднамеренными и нередко вызваны ошибками, допущенными автором вредоносной программы.

- Блокирование антивируса
Вредоносная программа может проникнуть на защищенный антивирусом компьютер либо если антивирус был отключен, либо отсутствует запись для данной программы в антивирусной базе. Чтобы работа антивируса не возобновилась, многие вредоносные программы небезуспешно пытаются выгрузить антивирус из памяти или даже удалить файлы антивируса с дисков компьютера.
- Блокирование антивирусных сайтов
Некоторые вредоносные программы нейтрализуют только возможность обновления антивирусных средств. Если антивирусная база не будет обновляться, антивирус не сможет обнаруживать новые вирусы и станет неэффективным.
При этом вредоносные программы не блокируют доступ в Интернет целиком – это было бы слишком заметно, а только доступ к сайтам и серверам обновлений наиболее известных компаний – производителей антивирусов. Сообщения антивируса о невозможности обновиться, пользователи могут списывать на проблемы у провайдера или на самих серверах обновления. Таким образом, вирус может длительное время оставаться незамеченным. Поэтому внезапное завершение работы антивируса вполне может являться поводом для беспокойства.

- Сбои в системе или в работе других программ
Кроме уже рассмотренного примера с червем Sasser, можно еще упомянуть червь MyDoom, вызывавший похожее сообщение об ошибке, но не в службе LSASS, а в службе DCOM/RPC. Другой пример, троянская программа Backdoor. NTHack, результатом присутствия, которой на компьютере может быть сообщение об ошибке, возникающее при загрузке компьютера:

STOP 0×0000001e KMODE_EXCEPTION_NOT_HANDLED in win32k.sys
или
STOP 0xC000021A {Fatal System Error} The Windows Logon Process terminated unexpectedly.

- Почтовые уведомления
Если компьютер заражен и рассылает инфицированные почтовые сообщения, они могут быть обнаружены на одном из серверов в Интернете и антивирус на сервере может отправить, а может, и нет, уведомление отправителю зараженного сообщения.


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


Где искать

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

Скрытые проявления включают:

  • наличие в памяти подозрительных процессов;
  • наличие на компьютере подозрительных файлов;
  • наличие подозрительных ключей в системном реестре Windows;
  • подозрительная сетевая активность.


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


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

Диспетчер задач – стандартное средство Windows для управления процессами. В операционных системах Windows NT/2000/XP/2003 для вызова диспетчера задач нужно нажать комбинацию клавиш Ctrl + Shift + Esc (Ctrl + Alt + Del) или вызвать контекстное меню в системной панели (внизу экрана) и выбрать пункт Диспетчер задач.

Dispetcher zadach
Рис. 2. Диспетчер задач


Процессы, которые видны на рисунке являются стандартными для свежеустановленной Windows 2000 Professional, ХР.
Найти информацию о неизвестном процессе можно в сети Интернет.


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

- Автозагрузка в меню Пуск
Наиболее известный источник находится в меню «Пуск» – «Программы» – «Автозагрузка». Ярлыки, находящиеся в этой папке соответствуют запускаемым программам. Вредоносные программы редко используют ее для автозапуска, предпочитая менее заметные способы.

- Системный реестр Windows
Системный реестр Windows – это основное хранилище большинства настроек операционной системы и многих приложений. Для доступа к системному реестру используется системная утилита regedit.exe, расположенная в папке операционной системы.

Sistemnii reestr Windows
Рис. 3. Системный реестр Windows


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

Реестр делится на несколько веток (пять или шесть, в зависимости от версии Windows). C точки зрения автозапуска наиболее важны две ветки:

  • HKEY_CURRENT_USER – ветка ключей, относящихся к текущему пользователю, часто сокращенно обозначается как HKCU;
  • HKEY_LOCAL_MACHINE – ветка ключей, относящихся к компьютеру в целом, сокращается до HKLM;


Для настройки автозапуска в реестре Windows предназначено несколько ключей:

  1. Первая группа находится в ключе HKCU\Software\Microsoft\Windows\CurrentVersion, все ключи, относящиеся к автозагрузке, начинаются с Run. Эти программы запускаются только при входе в систему текущего пользователя. В зависимости от операционной системы это могут быть ключи:
    • Run – основной ключ автозапуска;
    • RunOnce – служебный ключ для программ, которым требуется запуститься только один раз;
    • RunServices – ключ для запуска служб в Windows 98/Me;

  2. Другая группа находится в ключе HKLM\Software\Microsoft\Windows\CurrentVersion, т. е. в аналогичном ключе, но в настройках, относящихся к компьютеру в целом, а значит, ко всем пользователям. Имена ключей такие же:
    • RunServicesOnce;
    • служебный ключ для служб, которым требуется однократный запуск;
    • Run;
    • RunOnce;
    • RunServices;
    • RunServicesOnce.


Каждая запись в ключе автозапуска соответствует одной запускаемой программе. Запись состоит из имени записи, типа записи (для параметров автозапуска тип записи – строковый, обозначается как REG_SZ) и значения, которое и является строкой запуска, т. е. включает имя исполняемого файла и параметры командной строки (рис. 3. «internat.exe).

Стандартными для Windows являются следующие строки запуска:

Имя Значение
KernelFaultCheck %systemroot%\system32\dumprep 0 -k
Synchronization Manager mobsync.exe /logon
LoadPowerProfile Rundll32.exe powrprof.dll,LoadCurrentPwrScheme
ScanRegistry C:\WINDOWS\scanregw.exe /autorun
SystemTray SysTray.Exe
TaskMonitor C:\WINDOWS\taskmon.exe
CTFMON.EXE C:\WINDOWS\system32\ctfmon.exe


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

- Конфигурационные файлы win.ini и system.ini
Настроить автозапуск программ можно и в системных файлах Windows – system.ini и win.ini. Эти файлы используются (преимущественно, использовались) в Windows 3.x, 9x, Me для хранения системных настроек. В Windows NT, 2000, XP аналогичные настройки перенесены в системный реестр, но старые конфигурационные файлы сохранены в целях обеспечения совместимости со старыми же программами.
Конфигурационные файлы win.ini и system.ini разбиты на секции. Название каждой секции заключено в квадратные скобки, например, [boot] или [windows].

В файле win.ini строки запуска программ выглядят так:

  • Load=<строка запуска>
  • Run=<строка запуска>


Анализируя такие строки можно понять, какие файлы запускаются при старте компьютера.

В файле system.ini есть ровно одна строка, через которую чаще всего запускаются вирусы, расположена в секции [boot]:

* shell=<имя программной оболочки Windows>

Во всех версиях Windows стандартной программной оболочкой является explorer.exe. Если в строке shell= указано что-то отличное от explorer.exe, это с большой вероятностью вредоносная программа. Справедливости ради, нужно отметить, что существуют легальные программы, являющиеся альтернативными программными оболочками Windows. Такие программы могут изменять значение параметра shell в файле system.ini.
В Windows NT, 2000, XP и 2003 параметры стандартной оболочки задаются в реестре, в ключе HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon в параметре Shell. Значение этого параметра также в подавляющем большинстве случаев должно быть Explorer.exe.

- Другие источники
Вместо того, чтобы собирать информацию об автоматически запускаемых приложениях из разных источников, можно воспользоваться системной утилитой msconfig.exe. Эта утилита входит в состав Windows 98, Me, XP и 2003 и предоставляет сводную информацию обо всех источниках объектов автозапуска.

Utilita msconfig_exe
Рис. 4. Утилита msconfig.exe


На закладке Автозагрузка собраны данные о запускаемых программах из реестра и меню Пуск. В колонке Элемент автозагрузки приводится имя записи в реестре или имя ярлыка в меню Пуск. В колонке Команда – строка запуска программы, в колонке Расположение – ключ реестра, в котором расположена соответствующая запись, или Common Startup – для ярлыков меню Пуск.
Данные о настройках файлов system.ini и win.ini расположены на одноименных закладках. Кроме этого имеется закладка Службы, содержащая информацию о запускаемых службах в Windows XP.

Службы – это служебные компоненты Windows или прикладных программ, которые запускаются при старте компьютера, еще до того, как пользователь вошел в систему. Они отвечают за вывод на печать, за обнаружение новых устройств, за обеспечение сетевого взаимодействия компьютеров и т. п. Но в качестве служб могут регистрироваться и некоторые вредоносные программы.
В то же время, обращаться со службами нужно не менее осторожно, чем с настройками реестра. Отключение важных служб может привести к тому, что компьютер вообще не загрузится.


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

Как известно, каждый компьютер обладает IP-адресом, на который этому компьютеру можно передавать данные. Но если на компьютере имеется несколько программ, работающих с сетью, например, почтовый сервер и веб-сервер, как определить, какие данные какой программе предназначены? Для этого и используются порты. За каждой программой, ожидающей данные из сети, закрепляется определенное число – номер порта, а данные, пересылаемые на компьютер, кроме адреса компьютера содержат также и номер порта, чтобы было понятно, какая программа должна получить эти данные.
Почтовый сервер использует порт 25 для приема исходящих писем от почтовых клиентов. Веб-сервер использует порт 80 для приема соединений от браузеров. Однако, две программы не могут использовать один и тот же порт.

Вредоносные программы для приема команд или данных от злоумышленника используют определенный порт, постоянно ожидая сигналов на этот порт (программа слушает порт). Определить, какие порты слушаются на компьютере можно при помощи команды netstat -n. Для ее выполнения сперва нужно запустить командную оболочку (cmd.exe). Для запуска используются команды «Выполнить» в меню «Пуск».

Komanda netstat -a
Рис. 5. Команда netstat -a


Что делать с результатами поиска

По результатам анализа процессов, параметров автозагрузки и соединений получен список подозрительных с точки зрения пользователя процессов (имен файлов). Выделяем наиболее подозрительные из них – те, которые были обнаружены в двух и более источниках. Например, файлы, которые присутствуют в списке процессов и в списке автозагрузки. Еще более подозрительными являются процессы, обнаруженные в автозагрузке и слушающие порты.
Для выяснения природы подозрительных процессов проще всего использовать Интернет. Данных по всем процессам вредоносных программ можно найти на сайтах, если их не будет, то, во всяком случае, на сайтах есть информация о большом количестве неопасных процессов и таким образом можно будет исключить из списка те процессы, которые относятся к операционной системе или известным не вредоносным программам. Одним из таких сайтов является http://www.processlibrary.com. Сузив круг подозрительных процессов, и выделив для себя процессы, не внушающие доверия, остается последний шаг, найти эти файлы на диске и отправить на исследование в одну из антивирусных компаний для анализа.