ТЕМА НОМЕРА: Осадное положение

ТЕМА НОМЕРА: Осадное положение

Авторы: Андрей Васильков, Бойцев, Олег

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

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

1. Антивирусные (AV) сканеры в последние годы существенно расширили спектр действия, включив в него и троянов. Они являются хорошим подспорьем к основным инструментам борьбы с троянскими конями. С помощью антивирусов можно выявлять эти зловредные программы по совпадению проверяемых файлов с сигнатурами AV-баз. Прошу обратить внимание: большинство троянов, существующих в виде отдельных файлов, не определяются средствами эвристики, так как их действия не отличаются от таковых у легитимных программ: чтения с диска и записи на него, обращения к реестру, передачи данных по сети… такое поведение типично для любого софта и ни в коей мере не является специфичным для троянов. Поэтому если в базе антивируса нет подходящей сигнатуры, он будет рапортовать о чистоте системы, даже наткнувшись на авгиевы конюшни.

2. У антивирусных мониторов, осуществляющих постоянную проверку исполняемого в данный момент кода, шансов отловить троян и того меньше. Они не могут (да и не должны) вести проверку столь же тщательно, как AV-сканеры. Кроме того, антивирусный монитор (если он запускается как приложение, а не служба) трояну легко обмануть, попросту скрыв свое присутствие.

3. Специализированное ПО для поиска троянов действует схожим с AV-сканерами образом; однако оно также проверяет записи реестра (в первую очередь — все секции автозапуска), файлы настроек (boot.ini, win.ini etc.) и может быть способно определить открытые/прослушиваемые порты, что резко повышает эффективность проверки.

Мудрый пользователь имеет в своем арсенале все три вида, но вот запускать их одновременно не стоит ни в коем случае (см. врезку «много хорошо — тоже плохо»).

Автоматическое оружие

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

Здесь-то и выходят на сцену узкие специалисты, специально обученные удалять наиболее глубоко засевших коней разными (в том числе недокументированными) способами. В первую очередь, это утилита с богатейшей функциональностью производства компании Ewido; она отлавливает не только троянов, но и другое неприятное ПО вроде ad-ware и т. п. Бесплатную тридцатидневную версию можно найти по адресу www.ewido.net/en/product. Есть еще парочка неплохих утилит Trojan Hunter/Spy Hunter, лежащих на www.misec.net/trojanhunte.

Очень мощная утилита компании EMSI — a-squared. Бесплатная версия просканирует и укажет на наличие вредоносного ПО. К сожалению, полная функциональность — только за деньги.

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

Заглянув на www.izcity.com/soft/security/spy, присмотритесь к Trend Micro CWShredder. Это утилита для нахождения и удаления шпионских программ, позволяющая обнаружить следы присутствия на персональном компьютере так называемых Cool Web Search, тоже относящихся к троянам. А по адресу soft.oszone.net/subcat/1/ можно найти массу бесплатных антивирусных программ.

Ну и напоследок, одна из самых известных утилит — Trojan Remover. Ее база на данный момент насчитывает больше десяти тысяч сигнатур.

РОДЕО В домашних услових

Бывает, вы обнаружили активного трояна, а удалить его целиком не смогли. Что делать? В эпоху FAT32 и однодисковых конфигураций ответ был очевиден: загрузиться из-под DOS и удалить оставшиеся фрагменты тела вредителя (или его целиком) вручную.

Появление NTFS— и RAID-массивов заметно усложнило ситуацию. Дело в том, что NTFS является закрытой файловой системой. Ни одна сторонняя ОС и драйверы других разработчиков не поддерживают ее полностью. Если с чтением они еще худо-бедно справляются, то попытка записать/удалить что-либо на NTFS-разделе с их помощью подобна игре в русскую рулетку.

Лучше других для целей ручного удаления подходит версия WinXP PE. Однако и она пасует перед RAID уровня 0. Возможность догрузить дополнительные драйверы (например, nVidia nvRAID) при загрузке по {F6} реально не работала ни на одном из попавшихся мне дистрибутивов WinXP PE. Поэтому, если у вас задействован RAID-контроллер или другие устройства, поддержка которых не включена [Отгульный скот] по умолчанию в Windows, — соберите собственный дистрибутив WinXP PE, дополнив его всем необходимым. Уверен, он поможет вам не единожды. Начните со скачивания приличного PE-билдера.

Более безопасный (но и менее гарантированный) способ ручного удаления заключается в запуске различных «кулхацких» утилит непосредственно из-под инфицированной системы. Для минимализации риска их заражения/дезактивации можно осуществить запуск через защищенный режим AVZ [Об этом уникальном творении Олега Зайцева читайте в ближайших выпусках «Компьютерры»].

Среди таких программ отмечу три творения от компании DiamondCS:

1. Advanced Process Termination (APT). Уникальность этой бесплатной софтинки в том, что она предлагает на выбор дюжину пользовательских и два «ядерных» метода завершения активного процесса (читай — выгрузки активного трояна). Полагаю, лучше не реализовано нигде.

2. Advanced Process Manipulation (APM) родилась на свет в результате исследования троянских программ и поиска путей борьбы с ними. Она тоже бесплатна (даже для коммерческого использования). В отличие от обычных вьюеров активных процессов (заменителей Task Manager’а), APM не отсылает запросы другим процессам, а становится их частью. Фактически это означает полный контроль над процессом, так как сам себе любой процесс обычно готов разрешить любые действия.

3. DelLater позволяет указать пользователю файл, который необходимо удалить при следующем запуске ОС. Она берет на вооружение официальный метод, описанный Microsoft в Platform SDK, — Microsoft Developer Network, а значит, максимально безопасна.

Все эти симпатичные софтинки являются отличным орудием в деле удаления строптивых троянских коней.

Ручные гранаты

Но новые угрозы появляются постоянно, а старые трансформируются и делают прежние средства борьбы неэффективными. Никакие сколь угодно «продвинутые» утилиты не отменяют необходимость знать устройство используемой операционной системы и уметь очищать ее от вредоносного (в том числе троянского) кода вручную. Те, кто надеется исключительно на автоматическую, «прозрачную для пользователя» защиту, ничего не смыслят ни в защите, ни в автоматике. Рано или поздно таких людей постигнет участь жителей Трои… хорошо хоть, что только в переносном смысле.

Чаще всего в различных руководствах по борьбе с вирусами советуют начинать проверку с открытых на компьютере портов. В нормальном режиме, при установленном и адекватно настроенном Zone Alarm’е (или любом другом приличном брандмауэре) все неиспользуемые порты закрыты. Поэтому попытка отправить запрос на один из «нестандартных» портов ни к чему не приведет: компьютер прикинется калькулятором и запрос проигнорирует.

А вот если чудо-софт обнаружил что-то подозрительное, тут надо глядеть во все порты! Утилита AVZ (www.z-oleg.com/secur/avz) их отлично показывает. И она — мощнейшее оружие супротив троянов и прочих супостатов. Положительный результат (наличие непрошенных соединений) будет свидетельствовать о том, что вы на правильном пути. А вот отрицательный результат вовсе не означает отсутствия заразы в вашем ПК. Кстати, чем именно смотреть — не столь важно. Я пользуюсь AVZ, админы традиционно предпочитают X-Spider

[www.ptsecurity.ru], можно просто набрать команду netstat -an, но в этом случае велик риск получить недостоверную инфрмацию, так как некоторые трояны готовы к этому. В любом случае, самый надежный способ проверки — извне.

Если подозрительная активность обнаружена, то прежде чем готовиться к длительному отражению осады злейших кибермонстров, неплохо бы поискать примитивных троянов [А также adware/spyware, hi-jack (подменяющих адрес стартовой страницы) и прочих наград за распутный веб-серфинг] и их следы в типичных местах для размещения «подарков».

Прежде всего обратите взор на активные процессы. Можно воспользоваться и стандартным TaskManager’ом, но лучше попробовать Advanced Process Viewer. Необходимо завершить все посторонние процессы, принадлежащие зловредному коду. Во избежание недоразумений полезно «своих знать в лицо». И в здравом уме не стоит трогать хотя бы следующие процессы: Explorer, Lsass, Services, System, Winlogon, Svchost, Csrss, Smss. Естественно, список далеко не полный и несколько отличается у разных пользователей, но эти — самые главные. Особое внимание следует обратить на так называемые процессы-маскировщики, они обычно имитируют истинные названия по написанию: explore (должно быть explorer), sys (system), svshost (svchost), winlogin (winlogon), systrey (systray) и т. д., их надо удалить в первую очередь.

После того как разобрались с оперативной памятью, запускаем regedit (или любой другой, более удобный редактор реестра) и открываем ветви:

HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun;

HKCUSoftwareMicrosoftWindowsCurrentVersionRun;

HKU.DefaultSoftwareMicrosoftWindowsCurrentVersionRun;

HKLMSoftwareMicrosoftWindowsCurrentVersionRunonce;

HKCUSoftwareMicrosoftWindowsCurrentVersionRunonce;

HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunServices;

При обнаружении ключа автозапуска, принадлежащего вредоносному коду — тут же удалите его. Если не уверены во вредоносности, просто поставьте в начале строки запуска несколько символов "+", это помешает запустить программу при следующей загрузке.

Ну а утилита autoruns от Марка Руссиновича и Брюса Когсвелла покажет вам не только общеизвестные секции автозапуска в реестре, но и вообще ВСЁ, что запускается самостоятельно при каждой загрузке операционной системы. В том числе и как ее часть. Это сотни строк, будьте морально готовы. Искать по ним подозрительные вещи глазками — довольно нудное занятие, поэтому рекомендую сразу после установки «чистой» ОС экспортировать из autoruns список автозапуска в текстовый файл, а затем каждый раз при проверке создавать новый и просто сравнивать его с эталонным (например, опцией «сравнить файлы» в Total Commander).

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

Много хорошо — тоже плохо

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

Поэтому большинство инсталляторов AV-пакетов первым делом проверяют: а не стоит ли уже другой антивирус? И если таковой находят, то требуют (безапелляционно!) сначала деинсталлировать его. Антивирусы стали «стукаться лбами» не только друг с другом, но и с другими защитными программами (файрволлами, антишпионами, антитроянами, etc.). Их использование стало несовместимо практически с любыми программами, работающими на уровне ядра: отладчик SoftIce, почти все эмуляторы и в некоторых случаях даже антипиратская система проверки оптических носителей компании StarForce.

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

Недавно тестовая попытка подружить Zone Alarm Pro 6.5, Norton Antivirus 2005 и Kaspersky Antivirus 5.0 for Workstation привела к невозможности загрузить WinXP. Дело в том, что Kaspersky AntiVirus перехватывал (в режиме ядра!) функции ZwClose, ZwCreateProcess, ZwCreateSection и другие. Norton Antivirus хоть и не имел приказа проверять все «на лету», однако продолжал загружать свои сервисы и действовал аналогичным образом. В общем, говоря бытовым языком, вся эта свора сторожевых псов перегрызлась из-за виндового ядра. Усугубляло ситуацию и то, что ОС была установлена на RAID-массив, загружался модифицированный драйвер nVidia IDE_SW и драйвер a347bus.sys (установленный пакетом Alcohol 120%)…

Сегодня сложилась такая ситуация, что, усиливая malware-защиту, даже опытный пользователь рискует получить проблем больше, чем если бы допустил инфицирование своего ПК.

Неплох следующий вариант: непосредственно во время работы в основной ОС защиту ПК берет на себя либо один софтовый комплекс, либо набор гарантированно бесконфликтных программ. Дополнительные проверки выполняются программами, не стремящимися работать на уровне ядра, или же вообще из-под дополнительной ОС.