ADinf32: ревизор по вызову

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

Чтобы быть до конца понятым, а тема антивирусных ревизоров была полноценно раскрыта, пожалуй, следует начать изложение о природе ADinf с отвлеченной классификации ныне существующих антивирусных решений вообще, изложив ее хотя бы на каком-то базовом, прикладном уровне. Без понимания этого самого базового устройства и принципов работы различных видов антивирусов просто невозможно понять преимущества и недостатки разных подходов, сложившиеся в антивирусной индустрии в наше время. Не претендуя на полноту классификации и широту охвата всех без исключения видов и подвидов антивирусных решений, остановимся лишь на главных действующих лицах – тех, кого можно по праву считать диалектической противоположностью нашему сегодняшнему герою (классу антивирусных ревизоров) – полифагах. Тех самых, которые сейчас, похоже, захватили если и не монопольное право на оборону и врачевание здоровья компьютеров у широчайших масс пользователей, то, как минимум, доминируют на современном антивирусном рынке вне всяких сомнений.
Поэтому это длинное введение к теме ревизора ADinf (www.adinf.com/ru/) мы начнем с определения полифагов, или, как их еще порой называют, антивирусных сканеров, чтобы, показав основы и принципы их устройства, на контрасте наглядно вывести принципиально иной, отчасти незаслуженно непопулярный ныне подход, реализуемый классом программ, называемый антивирусными ревизорами, очень ярким и качественным представителем которого и является ADinf.

Полифаги и их устройство

Фаги (полифаги, сканеры). Фаг - это специализированная программа, способная уничтожить (вылечить) вирус; другая ее разновидность – полифаг - способна корректно пролечить множество вирусов. Здесь я вынужден привести также и альтернативные определения этих разновидностей антивирусных программ, поскольку в разных источниках сложилась некая терминологическая неразбериха в этом плане.

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

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

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

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

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

Прозорливые ревизоры

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

Итак, как же это работает в общем случае?

Вирус, заражая файл, дописывается к нему и неизбежно изменяет его контрольную сумму, зафиксированную ревизором ранее. Контрольная сумма – это некое, как сказали бы программисты, магическое число, своего рода индивидуальные числовые “отпечатки пальцев” каждого конкретного файла, которые могут быть рассчитаны и сохранены. Поэтому, каждый раз, проверяя файлы на вирусы, ревизор фактически просто сличает каждый файл на наличие изменений в нем по сравнению с прошлой его проверкой (технически - просто сравнивая контрольные суммы: текущую и снятую с оригинального файла). И если изменение файла-документа, текстового файла или файла базы данных можно как-то объяснить, то изменение исполняемого файла (.exe или, например, .drv) – должно однозначно настораживать. Таким образом, посредством контрольной суммы ревизор выявляет все изменившиеся исполняемые файлы на компьютере, позволяя вам принять необходимые меры в данной ситуации.
Возможные методы самостоятельной борьбы с такого рода неизвестными угрозами мы обсудим чуть позже, но на данном этапе нам важно лишь закрепить главное выявленное нами свойство ревизоров - способность гарантированно находить и устанавливать факт наличия на компьютере любых вирусов: известных или даже ныне не известных. И опять же, хочется еще раз добавить принципиальную концовку: в противоположность полифагам, которые могут найти только заведомо известных им вирусных особей.

Никому не доверяй, все что можешь - проверяй

Вторая важная особенность, характерная для ADinf, это использование режима низкоуровневого доступа к диску, что позволяет очень эффективно бороться даже с самыми мощными stealth-вирусами и руткитами, тщательно скрывающими свое нахождение в системе, и которые на пользовательском уровне обнаружить почти никак невозможно. В связи с этим сразу невольно вспоминается ранее очень известная история, случившаяся еще в далеком 1991 году, с пришествием и массовой эпидемией вируса Dir-II, который творил с файловой системой просто запредельные вещи, агрессивно маскируясь на уровне драйвера I/O диска в операционной системе, благодаря чему оставаясь надежно невидимым практически всем антивирусным полифагам того времени. ADinf первым обнаружил этот чрезвычайно продвинутый по тем временам stealth-вирус, причем сделал это в полностью автоматическом режиме.

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

Следует также упомянуть другой интересный эффект-следствие его алгоритма: выполняя проход по файловой системе на максимально низком уровне доступа, параллельно многопоточный сканер ADinf выполняет проход, используя традиционные способы получения данных о файлах (листинга) на уровне операционной системы. При этом получается, что если в системе присутствует вирус, выполненный по технологии stealth, то он автоматически обнаруживает себя сам, так как данные контрольных сумм из “официальных” источников информации от операционной системы попросту не совпадут с фактическими данными по файлам, полученным напрямик на уровне драйвера дисков BIOS. Невероятно, но факт: в данном случае защитная stealth- технология становится активным демаскирующим элементом, который приводит к тому, что подобные “продвинутые” руткиты и трояны, как сейчас принято выражаться, “палятся” на ровном месте.

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

Что из себя представляет ADinf сегодня?

Несмотря на богатую историю этой программы, начиная с далеких DOS’овских времен, этот проект не был заброшен и прошел весь длинный путь совершенствования и адаптации к жестким современным требованиям. На данный момент имеется его Windows-версия, которая регулярно обновляется и дорабатывается. Вот ее главные характеристики и возможности, изложенные сухим техническим языком:
. Истинная 32-разрядность, многопоточная архитектура.
. Современный удобный оконный интерфейс.
. Асинхронное фоновое сканирование дисков. Это означает, что пока вы заняты изучением изменений на одном диске, происходит фоновое
сканирование других дисков, что позволяет сэкономить общее время проверки.
. Разбор внутреннего формата и контроль за состоянием документов MS Word и Excel с сохранением полной информации по содержащимся в них макрокомандам для эффективного обнаружения макро-вирусов.
. Разбор файлов формата PE (исполняемые файлы Windows 95/98/NT), NE (исполняемые файлы Windows 3.xx) и LE (VxD) в режиме быстрых контрольных сумм.
. Анализ двойных изменений на диске. Например, правильно разбираются ситуации, когда файл переименован и изменен, или файл перемещен в другой каталог и уже там был изменен.
. Обнаружение заражения вирусами-спутниками.
. Гибкое управление уровнем проверок. Если вы уже использовали ADinf, то знаете, что каталоги, об изменениях в которых вам знать не интересно, можно пометить как “рабочие”. Уровень проверок также можно задавать не только каталогам, но и каждому файлу индивидуально. . Динамическое управление уровнем выдачи сообщений. Управлять составом изменений, которые должны отображаться, и составом изменений, о которых знать не интересно, можно непосредственно в процессе просмотра изменений с динамическим пересчетом результатов проверки.
. Фиксация и корректная обработка изменений в файловой системе, которые происходят в течение сканирования диска из-за многозадачной операционной среды.
. Ведение глобальной истории изменений на диске.

Преимущества и недостатки ревизоров

У ADinf, как и у любой другой технологии, конечно же, есть недостатки, поэтому давайте кратко перечислим основные из них:

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

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

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

. Важно сразу запомнить, что, поскольку ADinf читает диски на низком уровне посекторно, он не может контролировать сетевые диски. Если нескoлькo машин объединены сетью, то ADinf32 должен быть установлен на каждой машине. ADinf32 предназначен для работы только с локальными дисками компьютера.

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

ADinf использует некоторые недокументированные прерывания и вызовы, чтобы получить гарантированный привилегированный и прямой доступ к содержимому вашего винчестера (по понятным причинам, описанным выше), что иногда может приводить к зависаниям системы. Например, недокументированное прерывание 76h - это аппаратное прерывание, которое генерируется IDE-контроллером при завершении любой операции с диском. Существуют вирусы, которые используют это прерывание для маскировки своего присутствия на машине (создания очень мощной stealth-функции). Фактически, эти вирусы маскируются на аппаратном уровне, используя аппаратные возможности IDE-контроллера. Для успешного обнаружения вирусов подобного класса ADinf перехватывает и пытается самостоятельно обрабатывать прерывание 76h. Однако такая самостоятельная обработка может быть несовместима с некоторыми нестандартными BIOS'ами или специфическими драйверами для 32-битного доступа к IDE-дискам. В случае такой ситуации программа зависает, выдав сообщение “Открытие диска…”. В данном конкретном случае нужно просто перезагрузиться и повторно запустить ADinf, в командной строке указав ключ “-76” для отключения подобной экстремальной техники доступа к винчестеру.

И теперь кратко перечислим его главные преимущества:

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

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

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

Варианты лечения обнаруженного ревизором вируса

1. Сделать все самому

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

2. Немедленно проверить весь компьютер традиционным установленным у вас антивирусом.
Проверить все жесткие диски подозрительного компьютера антивирусным полифагом, если он установлен у вас на компьютере. При этом, конечно, очень желательно, чтобы у вас были самые свежие антивирусные базы к нему, поэтому, по возможности, перед началом проверки обновитесь. Как вариант. можно использовать аварийные спасательные загрузочные диски с заранее записанной туда портабельной версией антивируса – и сразу загрузиться с такого диска. Хочу обратить внимание, что почти все ведущие антивирусные производители выпускают собственные загрузочные бесплатные диски со своим антивирусом, поэтому стоит запастись подобным диском заранее (опять же, стоит следить за актуальностью таких баз, тем более в таком типе решения их обновление более чем затруднительно).

3. Обратиться по Интернету в службу поддержки антивирусной компании
Выслать подобный подозрительный файл в службу поддержки антивирусной компании, которой вы доверяете. Как правило, на сайте всех антивирусных компаний есть специальный раздел, где указан адрес или способ, по которому можно выслать подобный зараженный файл для его исследования и включения по факту обнаружения нового вируса в базу данных этого антивируса. Мой опыт говорит о том, что в случае обнаружения действительно нового вируса производитель включает его в базу очень оперативно – от нескольких часов до 2-3 дней. Как правило, подобные услуги бесплатны, так как антивирусный производитель сам заинтересован в том, чтобы его база вирусов была как можно более полной и актуальной.

4. Попробовать детектировать вирус на VirusTotal
Проверить на интернет-сервисе VirusTotal (www.virustotal.com/), который позволяет загрузить по Интернету подозрительный файл и бесплатно проверить его на вирусы сразу на десятке ведущих антивирусов мира – если вирус в вашем файле уверенно детектируется каким-то другим антивирусом, то, наверное, есть смысл сделать выводы насчет вашего текущего антивируса и попробовать установить вместо него более удачную программу – уже для лечения своего компьютера. В любом случае, имея название вируса на руках, вы можете посмотреть в Интернете, чем он опасен и что следует от него ожидать.

5. Воспользоваться собственным модулем лечения от ADinf
Для лечения зараженных файлов можно применять лечащий модуль ADinf Cure Module, не входящий в пакет ADinf и поставляющийся отдельно (его разработка заброшена). Принцип работы модуля - сохранение небольшой базы данных, описывающей контролируемые файлы. Работая совместно, эти программы позволяют автоматически вылечить около 70% файловых вирусов и 100% вирусов в загрузочном секторе. Но все же не стоит сильно обнадеживаться ADinf Cure Module, так как его возможности во многом ограничены – я рекомендую вместо него выбрать качественный полифаг.

Общие антивирусные советы

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

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

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

Игорь Савчук Softkey.info


Компьютерная газета. Статья была опубликована в номере 40 за 2011 год в рубрике безопасность

©1997-2024 Компьютерная газета