Чужаки в системных папках
Вредоносные программы любят системные папки windows. Наша задача — обнаружить и выжить их оттуда. Опять в окне task manager (Диспетчер задач) какие-то лишние процессы… Что и говорить, приятного мало. Кто их знает, что они делают, а вдруг что-то вредное? И, в любом случае, на них тратятся системные ресурсы.
К сожалению, мало кто из нас знает толком назначение всех утилит из папки windows. Все же давайте разберемся, как опознать большинство системных файлов windows (и обнаружить лишние файлы, если они есть), чтобы отличить своих от чужих. Заодно посмотрим, как проследить, какие приложения работают на компьютере, не только обычные, но и новая разновидность вредоносных программ — скрытые rootkit-файлы.
Как говорится, от вора нет запора: нам, конечно же, никогда не узнать, где и когда проявится очередная дыра в системе защиты, через которую злоумышленники будут пытаться нанести вред системе или похитить данные. Даже при установленном брандмауэре, последней версии антивируса и антишпионского сканера, и при жесткой дисциплине в отношении загрузки файлов из интернета, в компьютере все равно время от времени обнаруживается какая-нибудь свеженькая инфекция.
Антивирусы и другие средства обеспечения безопасности эффективны только при наличии хорошо продуманной стратегии регулярного и частого обновления; они не в состоянии блокировать вредоносную программу, на которую не были заранее запрограммированы. Соответственно, злоумышленники пишут и рассылают свои программы с таким расчетом, чтобы они попадали на компьютеры жертв в период их уязвимости — например, когда в интернете уже появился код очередного червя, но на сайтах антивирусов еще не размещены новые базы для блокирования или устранения этой инфекции. Такой период может длиться несколько минут или дней, и за это время вирус находит свои жертвы.
К счастью, после того как вредоносный код распознан, справиться с ним довольно легко, хотя процедура эта и скучновата.
Сохранность данных прежде всего
Главное в этом деле — помнить, что мы имеем дело с операционной системой. Поэтому лезть в системные файлы, а особенно удалять их — верный путь к проблемам. Подобные действия вполне могут привести к тому, что windows перестанет запускаться.
Затем, на каждом шаге необходимо оставлять за собой путь к отступлению. Для этого в windows xp и me удобно использовать функцию system restore, которая гарантирует возврат в состояние, предшествующее сбою. Для этого нужно щелкнуть на кнопке start — programs (в xp — all programs) — accessories — system tools — system restore — create a restore point (Пуск — Программы (в xp — Все программы) — Стандартные — Служебные — Создать точку возврата) и выполнить инструкции мастера. Такие точки возврата следует создавать перед каждым изменением.
Некоторые системные файлы являются скрытыми и при обычной настройке интерфейса windows не отображаются на экране. Для того чтобы их увидеть, откройте explorer (Проводник) или любое окно папки и выберите команду tools — folder options — view (Сервис — Свойства папки — Вид). В открывшемся окне включите режим show hidden files and folders (Показать скрытые файлы и папки) и проследите, чтобы режимы hide extensions for known file types (Не показывать расширения известных типов файлов) и hide protected operating system files (recommended) (Скрыть защищенные файлы операционной системы (Рекомендуется)) были отключены. В ответ на все последующие предупреждения windows щелкайте на кнопке yes (Да). (Мы еще поговорим об этих предупреждениях.) Затем запустите последнюю версию антивирусной программы и антишпионского сканера. Если возникнет необходимость удалить файл, делайте это только при полной уверенности, что в нем содержится злонамеренный код. Например, не удаляйте из системных папок старые библиотеки dll.
Что работает в системе?
Теперь пора выяснить, какие программы и службы действуют на компьютере прямо сейчас. В окне task manager (Диспетчер задач) отражаются не все работающие приложения. Поэтому для решения этой задачи лучше воспользоваться бесплатной утилитой sysinternals process explorer (www.sysinternals.com). Распаковав файл procexpnt.zip и запустив procexp.exe, вы поймете, что по сравнению с Диспетчером задач windows process explorer — все равно что Шерлок Холмс по сравнению с инспектором Лестрейдом: возможно, не так блестяще выглядит, но действует гораздо надежнее и эффективнее. И, кстати, в отличие от частных детективов, работает бесплатно. По умолчанию некоторые из самых полезных данных, извлекаемых process explorer из системы, скрыты. Для того чтобы их просмотреть, щелкните правой кнопкой мыши на имени столбца и воспользуйтесь командой select columns (Выбрать столбцы). В открывшемся окне будут выбраны только столбцы process name (Процесс) и description (Описание). Выберите также company name (Компания) и command line (Командная строка). Перейдите на вкладку dll, выберите столбец path (Путь) и щелкните на кнопке ok. Затем выберите команду view (Вид) и включите режим show lower pane (Отображать нижнюю панель). В завершение выберите команду view — lower pane view — dlls (Вид — Нижняя панель — dll).
Настроив process explorer таким образом, можно выделить любой активный процесс и увидеть на нижней панели список используемых им dll-библиотек. В столбце command line (Командная строка) сообщается, в какой папке находятся работающие программы, а в случае сервисов (которые иногда работают под управлением svchost.exe) — какой экземпляр svchost.exe запускает этот сервис.
В первую очередь под подозрение попадают процессы, запускаемые из папки temp. Шпионские программы любят устанавливаться в подобных укромных уголках. То же самое относится к процессам, которые ссылаются на dll-библиотеки, расположенные в папке temp. "Добропорядочные" программы запускаются из папки temp в единственном случае: при инсталляции приложения с помощью installshield или другой утилиты установки. Кроме explorer.exe, в windows xp, скорее всего, обнаружатся и другие активные процессы, в том числе smss.exe, winlogon.exe, services.exe, alg.exe и lsass.exe. Все они необходимы для работы windows. Не трогайте их.
Несколько более пристального внимания заслуживает другой "законный" windows — rundll32.exe, если он окажется среди действующих процессов. За этой программой иногда скрываются вредоносные программы, распространяемые в виде dll-файлов, — они используют ее в качестве плацдарма для загрузки. В окне task manager (Диспетчер задач) значится только rundll32, но в process explorer, в столбце command line (Командная строка), отражаются все dll-библиотеки, ассоциированные с rundll32. Все же, прежде чем удалить этот процесс, убедитесь, что это действительно необходимо: ведь rundll32 "законно" используется драйверами некоторых устройств. В принятии этого решения вам поможет путь к файлу dll.
Поиск незваных гостей
Кроме перечисленных системных файлов, вы, скорее всего, обнаружите среди активных процессов еще несколько программ windows — приложений и сервисов, работающих в фоновом режиме, а также драйверов различных устройств. Обычно эти программы запускаются одновременно с windows. Просмотрите содержимое столбцов description (Описание), company name (Компания) и command line (Командная строка) для каждого из них. По этим данным вы, скорее всего, поймете, какие процессы относятся к какой из программ, установленных на компьютере.
Если поля description (Описание) или company name (Компания) пустуют либо содержат незнакомые названия, вероятно, стоит копнуть поглубже. Щелкните правой кнопкой мыши на имени процесса в списке process explorer и выберите команду properties (Свойства). Если содержимое вкладки image (Образ) не прояснит ситуации, перейдите на вкладку services (Службы). На этой вкладке перечисляются некоторые "легальные" сервисы, которые в главном окне process explorer входят в группу services.exe (и не имеют описаний в поле description).
Предположим, например, что мы обнаружили в process explorer два процесса со свободными полями description (Описание) и company name (Компания): slee81.exe и wltrysvc.exe. При ближайшем рассмотрении на вкладке services (Службы) выясняется, что slee81.exe — это файл steganos live encryption engine. Пользователь, сам устанавливавший программы steganos на свой компьютер, не удивится, что они работают в фоновом режиме. Это не нарушение системы защиты, но повод задуматься: если вы не используете эту программу, возможно, стоит ее отключить и освободить ресурсы процессора?
Распознать второй файл, wltrysvc.exe, еще проще — по содержимому поля services (Службы). Поскольку имя процесса (wltrysvc service) мало информативно, находим файл wltrysvc, расположенный уровнем ниже, и обнаруживаем, что процесс wltrysvc запускается другим приложением — bcmwltry.exe. Этот файл идентифицируется как broadcom wireless network tray applet — еще одно приложение, установленное на компьютере.
Таким образом "прочесываем" все активные службы и фоновые приложения. Сложнее всего решить вопрос с теми из них, которые не идентифицируются и на вид не выполняют какой-либо полезной функции. Имена таких "темных лошадок" стоит поискать в интернете — возможно, их деятельность вам не понравится.
Онлайн-досье
Где искать информацию о незваных пришельцах из Сети? Подозрительные dll в первую очередь стоит проверить в базе данных microsoft dll help database, где есть возможность поиска dll по имени. При подозрении, что файл имеет отношение к шпионским программам, можно посетить сайт computer associates spyware information center (http://www3.ca.com/securityadvisor/pest/). Еще один хороший ресурс — pest encyclopedia (http://research.pestpatrol.com/), где есть информация более чем о 27000 формах вредоносных программ.
Если по поводу программы все еще остаются подозрения, ее можно поверить по списку task list programs на сайте answersthatwork.com, где есть список обычных программ, шпионских утилит и вирусов. Можно также воспользоваться постоянно действующими локальными средствами, такими как winpatrol (www.winpatrol.com) и wintasks 5 professional (www.liutilities.com/products/wintaskspro/). Обе эти программы подключаются к размещенной в интернете базе данных, где есть информация о тысячах dll-библиотек и приложений. Кроме того, wintasks ведет еще "черный список" нежелательных процессов, не допуская их повторного запуска.
Те, для кого поиск вредоносных программ — постоянное занятие, могут воспользоваться программой security task manager (www.neuber.com/taskmanager), которая проверяет все исполняемые файлы, драйверы и dll независимо от того, активны они или нет.
И последнее. Поиск информации о файле в интернете не должен быть поверхностным. Чем больше сведений вы получите, тем выше вероятность того, что вы не удалите по ошибке полезную программу или dll-библиотеку.
Внимание: rootkit
Сравнительно недавно появилась новая порода вредоносных программ — rootkit-файлы, работающие на уровне ядра операционной системы. Эти средства позволяют хакерам скрывать следы своих файлов (и сами файлы) на инфицированном компьютере. К счастью, существуют программы, позволяющие обнаружить и удалить эту инфекцию.
Хакеры используют rootkit-программы для управления и атак, а также для сбора информации с систем, на которые удалось установить rootkit — обычно вместе с вирусом или путем взлома.
Обычные rootkit-программы, как правило, после инсталляции работают незаметно, в фоновом режиме, но легко обнаруживается путем просмотра активных процессов, обмена данными с внешней средой и проверки устанавливаемых программ.
Однако rootkit-программы, действующие на уровне ядра операционной системы, изменяют само ядро или компоненты ОС. Кроме того, их гораздо труднее обнаружить.
В частности, некоторые rootkit вмешиваются в системные запросы, передаваемые ядру операционной системы, и отменяют те из них, что касаются rootkit-программ. Обычно это приводит к тому, что сведения о программе или аппаратной конфигурации становятся невидимыми для администратора или утилит поиска вредоносного ПО.
Впервые rootkit-программы появились и получили распространение в linux и unix. Как следует из их названия, они позволяют хакеру получить доступ на уровне root — высший уровень административных привилегий. Самый опасный вид rootkit — средства перехвата нажатий клавиш, позволяющие узнавать регистрационные данные и пароли пользователей.
Средства борьбы с rootkit
Большинство программных детекторов, в том числе антивирусы, антишпионы и ids (intrusion detection sensors — датчики вторжений) неспособно обнаружить rootkit-программы ядра.
Стратегий распознавания rootkit ядра на инфицированном компьютере мало, так как каждый rootkit ведет себя по-своему и по-своему заметает следы.
Иногда удается обнаружить rootkit ядра, проверяя инфицированную систему с другого компьютера по сети. Еще один метод — перезагрузить компьютер с windows pe, сокращенной версией windows xp, запускаемой с компакт-диска, и сравнить профили чистой и инфицированной операционных систем.
В windows с rootkit-файлами хорошо справляется бесплатная утилита rootkitrevealer (www.sysinternals.com), которая отыскивает файлы и ключи системного реестра, которые могут иметь отношение к rootkit. Однако программа rootkitrevealer не защищена "от дурака": далеко не все найденные ею объекты являются вредоносными. Для того чтобы эффективно использовать rootkitrevealer, необходимо правильно трактовать предоставляемую ею информацию.
rootkitrevealer не удаляет и не блокирует обнаруженные rootkit, и даже не может определенно сказать, является ли обнаруженный файл частью rootkit. Но если программа обнаружила нечто, чего на этом месте быть не должно, и антивирус не в состоянии это удалить — высока вероятность, что вы нашли то, что искали.
rootkitrevealer должна работать в полном одиночестве: пользователю рекомендуется отключить все остальные программы, в том числе фоновые и те, что включаются автоматически, такие как хранитель экрана, отложить мышку, отойти от компьютера и позволить rootkitrevealer сделать свое дело.
Если параллельно с rootkitrevealer на компьютере будет работать что-то еще, системного сбоя не произойдет, но поиск будет нарушен, и результаты могут быть неточными. Результатом работы rootkitrevealer является список файлов, в число которых попадают метаданные ntfs для каждого раздела диска. Эти файлы создаются при нормальной работе windows, и не всегда являются признаком наличия rootkit. Некоторые расхождения вполне допустимы. Например, первые 10-20 результатов могут иметь вид обычных ключей системного реестра, но напротив них должно стоять access denied. Это обычные результаты для нормальной системы, независимо от наличия в ней rootkit.
Но файлы с пометкой hidden from windows api, — это повод для беспокойства. Такие файлы могут находиться во временных папках, папке windows или еще где-нибудь на диске. Если вам встретятся такие файлы, попробуйте перейти к ним с помощью windows explorer (Проводника) и проверить: видимы ли они там? Впрочем, и это нельзя считать прямой уликой. Например, технологии скрытия файлов используют такие полезные программы, как антивирус Касперского.
Гораздо подозрительнее программы с длинными именами файлов, состоящими из произвольного набора букв и цифр. При обнаружении таких файлов рекомендуется обновить антивирус и выполнить как можно более тщательную проверку компьютера.
Менее опытные пользователи могут прибегнуть к помощи антивирусного сканера f-secure blacklight (www.f-secure.com/blacklight), который обнаруживает и обезвреживает rootkit-файлы. Несмотря на спартанский дизайн, это довольно серьезная программа.
Если же устранить rootkit ядра не удается, остается последнее средство — форматирование инфицированного диска и переустановка операционной системы.
В заключение отметим, что, хотя впервые rootkit появились в linux и unix, сегодня их самая любимая среда — windows. Такой популярности она обязана не только широкому распространению, но и наличию в ней мощных api (application programming interfaces — программных интерфейсов приложения), благодаря которым легко замаскировать истинное поведение системы. Популярный web-браузер internet explorer только упрощает задачу проникновения в систему хакеров, вирусов и электронных червей, которые часто являются носителями rootkit-кода.