"Помоги себе сам" или обзор Anti-Spy

Автор: (c)Крис Касперски ака мыщъх

"...весь рынок антивирусов - это
огромный мыльный пузырь, который
держится на страхе пользователей"
Игорь Данилов

Альтернативу антивирусам, брандмауэрам и прочим автоматизированным сторожам представляют программы, позволяющую заглянуть под "капот" системы и самостоятельно разобраться в ситуации. С одной из такой программ - Anti-Spy.Info - мы сегодня познакомимся поближе.

Введение

Сеть буквально кишит вирусами, червями и шпионскими программами, приходящими из ниоткуда и уходящими в никуда вместе с гигабайтами разрушенной информации или украденными электронными деньгами. Причем, качество антивирусного детектирования оставляет желать лучшего. Старые вирусы упаковываются (переупаковываются) новыми версиями упаковщиков/протекторов, слегка модифицируются или оборачиваются во "врапперы" (от англ. wrapper - обертка) и... антивирусы перестают их распознавать. То, что сейчас происходит на рынке, по словам Игоря Данилова вообще не поддается никакому описанию. "Здесь сегодня присутствуют программные продукты, которые просто технологически не могут находиться в стане антивирусов, потому что по своему уровню, если говорить утрировано, это продукция хорошего ученика 11-ого класса. Причем все они называют себя лидерами. Порог вступления в антивирусный клуб сильно снизился и на первый план вышли борцы с примитивными скриптовыми вирусами... Пользователь привык к постоянным страшилкам: везде вирусы, опасность, все просто кишит троянцами, червями, которые так и норовят украсть у тебя что-нибудь. Подобная атмосфера создается прежде всего некоторыми вендорами. Похоже на ситуацию с птичьим гриппом: грядет пандемия, все умрем. Страшно. Кто-то бьет тревогу, а кто-то считает, что ужаса нет. Это же очень выгодно - постоянно держать в страхе пользователя и внушать ему, что только твое решение защитит от всех бед. Человек сразу покупает антивирус, а существует вероятность, что он даже никогда не получит вирус, а соответственно, и не узнает, как работает приобретенный продукт ...при этом система мифов и слухов работает безотказно. Кто-то сказал, что такой-то антивирус "ловит не все". И пошло, поехало. И это понятно. Например, я выбираю дверной замок. Купил самый дорогой, самый тяжелый, вообще самый-самый. А потом увидел по TV, что он элементарно вскрывается шпилькой за 10 минут. А значит, он ничем не лучше замка за 100 рублей. Так что, главный критерий только один - качество. Но его, к сожалению, можно проверить только на собственном опыте" (см: http://company.drweb.com/press/igor+daniloff+cnews+interview+may+2006).

В процессе написания этой статьи, мыщъх выкачивал из Осла множество crack'ов (большая часть из которых оказывалась вирусами) и "скармливал" их on-line сканерам различных антивирусных компаний. Результат вполне оправдал ожидания: значительная часть вирусов осталась нераспознанной и только после ручной распаковки (снятия враппера) сканеры признали в них хорошо знакомые Win32.HLLM.Beagle, Packed.Win32.Klone.g и т.д. (кстати, локальные сканеры тех же самых компаний справились со своей задачей намного лучше, лишний раз подтверждая известный тезис о бесплатном сыре).

AVP не смог распознать новую модификацию Trojan-Downloader.Win32.Bagle

Рисунок 1. AVP не смог распознать новую модификацию Trojan-Downloader.Win32.Bagle.

По словам разработчиков, антивирусные базы обновляются каждые несколько часов (на самом деле, это неправда), но и за это время от "свежего" вируса успевают пострадать десятки, если не сотни тысяч пользователей. Из личного опыта: служба поддержки "Лаборатории Касперского" обрабатывает присланные вирусы моментально, отвечая буквально через несколько часов, даже если на дворе глубокая ночь, и обещая включить детектирование в следующее обновление. Причем ответ приходит на языке оригинала. Хотите общаться на английском - пишите по-английски и все будет ок. Ну, или не совсем ок. Во-первых, в моем случае, ни через несколько часов, ни даже через день on-line сканер так и не научился распознавать заразу (научился через полтора дня, как раз к моменту завершения статьи). Во-вторых, Packed.Win32.Klone.g, обернутый в новый враппер, получил название Trojan-Dropper.Win32.Agent.arz, несмотря на то, что в письме был явно указан механизм его действия. Все это косвенным образом подтверждает догадку, что уже никто не исследует вирусы, а просто добавляет в базу новую сигнатуру.

AVP Online Scanner

Рисунок 2. AVP Online Scanner за работой.

Компания Dr.Web ответила лишь на следующий день, сообщив, что эти вирусы ей уже известны, и никак не прокомментировала тот факт, что их не берет on-line сканер. Причем, на английское письмо пришел русский ответ. Несолидно, однако! Ладно, воспользуемся локальными антивирусами. AVP ActiveX сканер нашел 8 вирусов в 26 пораженных объектах (хотя их там было намного больше), а CureIt! от Dr.Web - только один, да и то (наверное) с перепугу или по ошибке.

Преамбула

Доверять антивирусам или нет - пусть каждый решает сам. Никто не спорит, что это хорошее (если не сказать - единственное) средство против глобальных вирусных эпидемий, но проверка программ, полученных из Сети (особенно из ненадежных источников типа Осла), создает лишь иллюзию безопасности. Со специально подготовленными файлами антивирусы не справляются в принципе! Эвристический анализ отдыхает и в идеале перед запуском всякой неизвестной программы ее должен вручную проанализировать высококвалифицированный специалист, умеющий держать soft-ice в руках и не шарахающийся в сторону от дизассемблера. Но специалистов мало, да и у тех времени на подобную ерунду не хватает.

Можно, конечно, запустить "Диспетчер Задач", пройтись по ветвям реестра, ответственным за автозагрузку, попытавшись обнаружить подозрительные файлы, но... черт возьми! Откуда простому пользователю знать, какой из них легальный, а какой нет?! Windows содержит тысячи файлов и еще большее количество добавляют устанавливаемые приложения. Редкий специалист сможет сказать, какая DLL за что отвечает!

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

В далеком прошлом мыщъх написал несложную утилиту, трассирующую вектора прерываний и показывающую всех, кто на них сидит с указанием способов внедрения (честный резидент или нет). Большой распространенности (по причинам неумелого маркетинга) она так и не получила, а с наступлением эры Windows, оказалась и вовсе ненужной, поскольку работала в реальном режиме MS-DOS, но сама идея не умерла и нашла себе применение в новых, современных утилитах, например, в той же Anti-Spy.Info.

Антивирус X-Safe IV

Рисунок 3. Антивирус X-Safe IV от мыщъх'а - древний как мамонт и ныне работающий только под эмулятором.

Амбула

Программу Anti-Spy.Info можно бесплатно скачать с одноименного сайта (www.Anti-Spy.Info), однако без регистрации (стоимость которой равняется $29) она проработает всего лишь 30 дней, при этом часть возможностей будет заблокирована.

Официальный сайт программы Anti-Spy.Info

Рисунок 4. Официальный сайт программы Anti-Spy.Info.

Текущая версия имеет номер 1.6.5, но мыщъх не рекомендовал бы ей пользоваться, поскольку она упакована ASProtect'ом и при активном soft-ice просто не запустится! (Кстати говоря, точно так же ведут себя вирусы/черви/шпионы, обработанные ASProtect'ом, так что soft-ice служит своеобразным средством защиты).

Сообщение, выдаваемое Anti-Spy.Info, при активном soft-ice

Рисунок 5. Сообщение, выдаваемое Anti-Spy.Info, при активном soft-ice.

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

Награды, которыми была удостоена Anti-Spy.Info

Рисунок 6. Награды, которыми была удостоена Anti-Spy.Info - почетный легион.

Мыщъх использует версию 1.1, которая практически ничем не уступает в плане функциональности и нормально уживается вместе с soft-ice. Для получения наиболее полной информации о состоянии системы, Anti-Spy.Info рекомендуется запускать с правами администратора, хотя большинство вирусов ловятся и без них.

После запуска мы увидим развернутый на весь рабочий стол экран с именами процессов, служб, драйверов и компонентов IE, отсортированный по степени их опасности, вычисленной на основе некоторых не до конца понятных критериев, в результате чего безобидным программам сплошь и рядом присваивается рейтинг potentially dangerous (потенциально опасная), в то время как далеко не каждому вирусу "удается" преодолеть барьер harmless (безвредный). Но не в рейтингах дело! Главное, что Anti-Spy.Info отображает все процессы/библиотеки/компоненты, которые ей только удалось найти вместе с информацией, которую ей удалось добыть. Проанализировать ее вручную - наша задача!

Внешний вид программы Anti-Spy.Info

Рисунок 7. Внешний вид программы Anti-Spy.Info.

Работа с Anti-Spy.Info

В первую очередь следует обращать внимание на появление новых процессов, стартующих вместе с системой (Anti-Spy.Info в большинстве случаев корректно определяет тип запуска), которых не было ранее. Anti-Spy.Info умеет сохранять отчет в html- и txt-форматах, но, к сожалению, не умеет сравнивать их (во всяком случае, пока), что есть большой минус. Приходится сравнивать отчеты вручную или писать свою собственную утилиту. Это - самый эффективный способ выявления заразы, однако на практике большинство пользователей начинают рвать волосы только когда работа системы становится тормозной или нестабильной, а огонек модема - оживленно мигает даже в отсутствии явной сетевой активности. Но как отличить заразу от жизненно-важных системных файлов, после удаления которых некоторые приложения (а то и всю Windows целиком!) придется переустанавливать заново? Сейчас мыщъх проведет короткий тренинг, показывая, как это делается.

Самой опасной программой (по мнению Anti-Spy.Info) на моем мыщъх'ом компьютере оказалась динамическая библиотека wmfhotfix.dll (см. рис. 7), которой был присвоен рекордно высокий рейтинг опасности (целых 82%) на основании следующих критериев: а) может управлять другими программами (и ведь действительно может); б) окно невидимо (а вот ни фига подобного! wmfhotfix.dll не имеет "своего" окна, но отображается на все GUI-приложения, так что окон у нее предостаточно); в) нет описания программы, то есть не заполнен соответствующий раздел ресурсов, что совсем нехарактерно для коммерческих продуктов, но часто случается с вирусами и программами, написанными на скорую руку; г) это не системный файл Windows (коню ясно, что...); д) отсутствует детальное описание (что еще за детальное описание?!). В общем, как бы сказали в суде, мотивы неубедительны и за отсутствием явных доказательств, подсудимый отправляется на свободу, ну или дело направляется на доследование.

В небольшом окне, расположенном в правом нижнем углу, Anti-Spy.Info показывает все текстовые строки (в формате ASCII), найденные в программе, среди которых присутствует: "Copyright 2006 by Ilfak Guilfanov, ighexblog.com" и "http//ww.hexblog.com", по которым нетрудно догадаться, что это заплатка от дыры в обработчике wmf-файлов, выпущенная легендарным создателем IDA Pro - Ильфаков Гильфановым. Те же, кому это имя ни о чем не говорит, могут воспользоваться следующей уникальной возможностью - поиском в базе описаний файлов. Просто щелкаем по строке "Google it" в контекстом меню и программа перебрасывает нас на форум поддержки http://www.neuber.com/antispy/file, где пользователи могут оставлять свои комментарии относительно той или иной программы.

Комментарии встречаются самые разные. От технически обоснованных до откровенно пионерских, тем не менее, некоторое представление о ситуации они все-таки дают, особенно, если пользователи оставляют ссылки на авторитетные источники. В нашем случае, данным файлом заинтересовались 193 пользователя, 4 из которых оценили его как безвредный, 2 - неопасный, и еще 2 предпочли сохранить нейтралитет. 7 оставленных комментариев в полной солидарности свидетельствуют, что никакой это не вирус, а независимая заплатка для Windows.

Комментарии, оставленные пользователями Anti-Spy.Info к файлу wmfhotfix.dll

Рисунок 8. Комментарии, оставленные пользователями Anti-Spy.Info к файлу wmfhotfix.dll.

А теперь разберемся с динамической библиотекой SSSensor.dll, взявшейся непонятно откуда, не имеющей описания, записывающей клавиатурный ввод ("function: record input" в окне "Properties", расположенным внизу посередине) и не включающей в себя никаких осмысленных текстовых строк, но зато импортирующей "интересную" API-функцию UnhookWindowsHookExgSetWindowsHookExA, позволяющую внедряться в чужие программы и следить за ними, в результате чего Anti-Spy.Info оценила рейтинг опасности в 82% (то есть, потенциально опасная). Щелкаем по "Google it", идем на форум и видим, что 678 пользователей, обнаружившее у себя этот файл, придерживаются совершенно различных точек зрения на предмет его происхождения. Кто-то утверждает, что он входит в состав антивируса Panda, кто-то - в антивирус Bullguard, еще встречаются упоминания персональных брандмауэров VCOM и SyGate Personal Firewall. Зная, что у меня установлен последний, я заглянул в его дистрибутив, увидел там SSSensor.dll и успокоился.

SSSenros.dll

Рисунок 9. SSSenros.dll - компонент многих антивирусов и брандмауэров.

Судя по всему, этот модуль, выпущенный независимой компаний, позволяет отслеживать появление Хранителя Экрана, и широко используется остальными компаниями в своих продуктах. Не исключено, что он "позаимствован" из какого-нибудь rootkit'а (на эту мысль наводит стиль его написания), но как бы там ни было, он совершенно безопасен и мы можем смело щелкнуть по пункту "Comment" контекстного меню, и добавить свой собственный комментарий, чтобы нам не приходилось держать всю информацию в голове (при большом количестве подозрительных объектов это весьма проблематично). Вместе с комментарием, мы также можем указать и рейтинг безопасности (в данном случае "harmless" - безвредная).

Добавление комментариев

Рисунок 10. Добавление комментариев к процессам.

После этого SSSensor.dll перескочит в самый низ списка и не будет нас отвлекать (строго говоря, перескочит он только после перезапуска программы или нажатии на колонку Rating для пересортировки таблицы по степени опасности, но это уже детали).

База "честных" программ - вот главное преимущество Anti-Spy.Info перед конкурентами. С вирусами и червями, произвольным образом меняющими свои имена, дела обстоят значительно сложнее. Продемонстрируем это на примере широко известного вируса Win32.HLLM.Beagle, занимающего первую позицию в хит-параде у Данилова.

Вирус Win32.HLLM.Beagle

Рисунок 11. Вирус Win32.HLLM.Beagle опережает свою популярность.

Anti-Spy.Info определила, что процесс Beagle.exe с иконкой, маскирующийся под самораспаковывающийся RAR-архив, не имеет ни окна, ни описания, однако присвоила ей довольно низкий рейтинг опасности - всего 57%, а вот файл hldrrr.exe, автоматически создаваемый вирусом при первом запуске в каталоге WINNT\System32 и прописанный в ветвях реестра, ответственных за автоматическую загрузку: HKCU\Software\Microsoft\Windows\CurrentVersion\Run и HKLM\Software\Microsoft\Windows\CurrentVersion\Run, получил всего 47% ("seems harmless" - похожа на безвредную).

Реакция Anti-Spy.Info

Рисунок 12. Реакция Anti-Spy.Info на встречу с настоящим вирусом.

Ладно, задвинем в сторону искусственный интеллект со всеми его "рейтингами" и пойдем на форум, где мы быстро обнаружим, что... файлом с таким именем не интересовался ни один пользователь! Вот так номер! И что же нам теперь делать? Практика показывает, что практически любой "честный" программный пакет (даже малораспространенный) быстро попадает в базу Anti-Spy.Info, а если там его нет, то с определенной степенью вероятностью можно утверждать, что это вирус или что-то очень нехорошее, поэтому его лучше удалить.

Освобождая пользователя от ручной работы, Anti-Spy.Info поддерживает своеобразный "карантин". При нажатии на кнопку "удалить" выдается запрос: то ли просто завершить данный процесс без каких бы то ни было дополнительных действий или переместить его в отдельную папку, попутно дезактивируя ключи автозагрузки (если, конечно, Anti-Spy.Info сумела определить, каким путем грузиться программа, что на фоне ее полной неосведомленности о ключе HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs это ей удается далеко не всегда, к тому же следует помнить, что Windows блокирует удаление активных процессов, но допускает их переименование в пределах одного диска, просто переименуйте hldrrr.exe в hldrrr.ex_ и (независимо от способа запуска!) он уже никогда не получит управления! Исключение составляют вирусы, следящие за своим файлом-носителем и автоматически восстанавливающих его в случае удаления.

Помещение файла/процесса в карантин

Рисунок 13. Помещение файла/процесса в карантин.

Для извлечения файла из карантина (например, если по ошибке был удален компонент честного приложения, что нарушило его работу), достаточно нажать на кнопку "Quarantine", выбрать объект для восстановления и сказать "Restore", а для окончательного удаления из карантина - "Delete".

Извлечение файла

Рисунок 14. Извлечение файла из карантина или окончательное его удаление.

К своему стыду, всю информацию о состоянии карантина, Anti-Spy.Info хранит в реестре. То есть, если поместить в карантин какой-нибудь жизненно важный системный компонент, без которого Windows не сможет загрузиться, мы уже не сможем запустить и Anti-Spy.Info, чтобы вернуть все обратно. Правильным решением было бы хранить информацию в обыкновенном дисковом файле, тогда, загрузившись с Windows PE, Barn PE или любого другого Live CD, мы смогли бы запустить Anti-Spy.Info, указать ей на карантинный файл и произвести откат, а так... "карантин" превращается в разрушительное оружие, которое можно доверять только умелым рукам (и хвосту!) морских пехотинцев, бобров, хакеров и прочих сурков.

Управление IE-модулями

Рисунок 15. Управление IE-модулями при помощи Anti-Spy.Info.

Другой уникальной особенностью Anti-Spy.Info является умение отслеживать компоненты, загружающиеся вместе с IE, которые непосредственно не отображаются в Диспетчере Задач и многие черви распространяются именно так! Всем нестандартным IE-компонентам Anti-Spy.Info присваивает довольно высокий уровень опасности (порядка 70%), даже если они представляют хорошо известные: Fresh Download Catcher Module, ReGetApi Module, Adobe Acrobat IE Helper Version X for ActiveX и т.д.

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

Вполне типичная ситуация - после установки менеджера закачек Fresh Download под 4-м IE все работало нормально, вплоть до перехода на 5-ю версию, которая сразу же начала падать при запуске без вопросов и объяснений. При отключении всех модулей падения прекращались, но... зачем мне IE без модулей?! Возвращаем модули обратно, берем в лапы Antu-Spy.Info, и методом поочередного отключения за несколько минут находим, кто виноват. Удаляем его и наслаждаемся Web-серфингом со всеми удобствами, на которые только IE способен (по правде говоря, Рысь в этом плане намного лучше, но не будем о вкусах, а то, еще чего доброго, скатимся в священные войны).

Заключение

Anti-Spy.Info - прекрасная утилита, позволяющая быстро находить зловредные (или некорректно работающие) программы с возможностью временного или постоянного удаления их из системы. Конечно, в отличии от антивирусов, работающих в полностью автоматическом режиме, она требует от пользователя достаточно высокой квалификации и потому не может быть рекомендована, например, секретарше.

К тому же, она не заменяет, а дополняет антивирусы, поскольку следит лишь за активными (т.е. уже запущенными программами), но ничего не может сказать о файле, только что полученном из сети. Еще она не способна обнаруживать скрытые файлы и процессы, маскирующиеся на уровне ядра операционной системы, то есть rootkit'ы, число которых неуклонно растет, однако не будем требовать от маленькой утилиты решения всех своих задач. К защите от вирусов необходимо подходить комплексно, используя широкий спектр инструментов - и Anti-Spy.Info, в том числе.