ADInf32: ревизор по вызову. Часть 1Автор: Игорь Савчук Опубликовано: 03.08.2011 Источник: SoftKey.info Чтобы быть до конца понятым, и сегодняшней теме антивирусных ревизоров полноценно раскрытой, пожалуй, правильней всего следует начать изложение о природе ADInf с отвлеченной классификации ныне существующих антивирусных решений вообще, изложив её хотя бы на каком-то базовом, прикладном уровне. Без понимания этого самого базового устройства и принципов работы различных видов антивирусов просто невозможно понять преимущества и недостатки разных подходов, сложившиеся в антивирусной индустрии в наше время. Не претендуя на полноту классификации и широту охвата всех без исключения видов и подвидов антивирусных решений, остановимся лишь на главных действующих лицах - тех, кого можно по праву считать диалектической противоположностью нашему сегодняшнему герою, классу антивирусных ревизоров - полифагам. Тем самым, которые сейчас, похоже, захватили если и не монопольное право на оборону и врачевание здоровья компьютеров у широчайших масс пользователей, то, как минимум, доминируют на современном антивирусном рынке вне всяких сомнений.
Поэтому это длинное введение к теме ревизора ADInf (более полное, официальное название которого Advanced Diskinfoscope) мы начнем с определения полифагов, или, как их ещё порой называют, антивирусных сканеров, чтобы, показав основы и принципы их устройства, на контрасте, наглядно показать принципиально иной, отчасти незаслуженно малоизвестный ныне подход, реализуемый классом программ, называемый антивирусными ревизорами, очень ярким и качественным представителем которого и является отечественная разработка ADInf.
Полифаги и их устройство
Начнем с определения, что же такое фаги (полифаги, сканеры). Фаг
- Это специализированная программа, способная уничтожить (вылечить) вирус, другая её разновидность - полифаг - способна корректно пролечить множество вирусов. Здесь я вынужден привести также и альтернативные определения этих разновидностей антивирусных программ, поскольку в разных источниках сложилась некая терминологическая неразбериха в этом плане.
Итак, по второй версии фаг - это антивирус первого поколения, как некогда известный Aidstest Лозинского, который мог вполне успешно лечить обычные вирусы, но с приходом эры сложно-полиморфных вирусов, т.е. вирусов, код которых постоянно мутирует и видоизменяется, благодаря особым сложным алгоритмам размножения не содержит в себе постоянной сигнатуры - на сцену вынужденно вышли антивирусы второго поколения - полифаги, способные трассировать код вирусов, глубоко погружаясь в их код, использовать виртуальные машины для преодоления их шифрующих защитных пластов и прочие сложные программные решения (так, если придерживаться нашего примера, вместо Aidstest был создан DrWeb).
 | | Один из первых отечественных антивирусов-фагов - знаменитый в прошлом Aidstest |
В данном случае важно понять лишь следующее, что для полифагов главной их особенностью является как раз работа на основании уже готовой антивирусной базы, куда помещаются все ранее найденные и проанализированные вирусы. Таким образом, чтобы полифаги работали вообще - им нужна готовая база данных по сигнатурам известных вирусов и их методам лечения, которую кропотливо собирают по всему миру разработчики этих самых антивирусов, тщательно анализируя их и добавляя противоядия к ним в свою базу.
Каждый раз, когда мы "обновляем антивирусную базу", мы, по сути, догружаем в нашу локальную антивирусную базу новые сведения о последних обнаруженных вирусах. Общий рассказ об устройстве полифагов нужен здесь для того, чтобы ясно и четко проступил их главный минус, логично и неизбежно вытекающий из самого коренного принципа их работы - они способны уверенно детектировать только заранее известные им и изученные людьми вирусы. Если такой полифаг натыкается на совершенно новый вирус - с большой степенью вероятности, - он не будет обнаружен и, соответственно, продолжит свою зловредную деятельность в вашей системе. В таком случае остается уповать лишь на эвристический анализатор, встроенный в любой современный полифаг именно для прикрытия этой их очевидной слабости, но, повторюсь, количество коммерческих предложений немедленно предоставить очередной вирус-троян на так называемом черном рынке, для всяческих сомнительных, а то и откровенно преступных целей просто огромно. При этом чаще всего таким продавцом-программистом даются даже гарантии, что подобные поделки не будут обнаружены эвристикой ведущих антивирусных полифагов. В самом деле, простейшие модификации и некоторые нехитрые дополнительные меры позволяют скрыть даже уже известный антивирусам вирусный код от вялого искусственного интеллекта эвристических анализаторов современных антивирусов-полифагов.
И тут закономерно возникает очень актуальный в наше время вопрос: все мы работаем с онлайн-банкингом, у многих на компьютере хранятся различные конфиденциальные сведения и электронные деньги, так как же в принципе можно гарантированно обезопасить себя от пока неизвестных зловредов? И если, как мы видим, антивирусный полифаг таких гарантий даже теоретически не дает, то где искать решение этой реальной проблемы?
И тут мы вынужденно приходим к принципиально иному классу антивирусных программ, базирующихся на совершенно других принципах и идеях, - отчасти противоположных идеям, лежащим в основании полифагов, эту нашу проблему успешно решающих.
Дисковые ревизоры
А что, если гоняться по файлам в поисках не конкретных сигнатур конкретных вирусов, а просто делать слепки всех потенциально уязвимых файлов - контрольные суммы - и хранить их в специальных таблицах для сличения при каждом последующем проходе-проверке файлов? Вот, собственно, такая простая идея и лежит в основании антивирусных ревизоров - альтернативного класса антивирусных программ, которые в своем подходе логически противоположны уже рассмотренным выше традиционным полифагам.
Итак, как же это работает в общем случае?
Вирус, заражая файл, дописывается к нему и неизбежно изменяет его контрольную сумму, зафиксированную ревизором ранее. Контрольная сумма - это некое, как сказали бы программисты, магическое число, своего рода индивидуальные числовые "отпечатки пальцев" каждого конкретного файла, которые могут быть рассчитаны и сохранены. Поэтому, каждый раз проверяя файлы на вирусы, в отличие от полифага, который ищет строго заданный набор сигнатур уже известных вирусов, ревизор фактически просто сличает каждый файл на наличие изменений в нем по сравнению с прошлой его проверкой (технически делая это просто - сравнивая контрольные суммы: текущую и снятую с оригинального файла).
И если изменение файла-документа, текстового файла или файла базы данных можно как-то объяснить, то изменение исполняемого файла (.exe) должно однозначно настораживать. Таким образом, посредством контрольной суммы ревизор выявляет все изменившиеся исполняемые файлы на компьютере, позволяя вам принять необходимые меры в данной ситуации.
 | | Одна из первых версий ADinf - версия под MS DOS |
Повторюсь, самопроизвольное изменение исполняемого файла - это уже сам по себе повод для того, чтобы очень серьёзно подозревать наличие вируса в вашем компьютере. Методы самостоятельной борьбы с такого рода неизвестными угрозами мы обсудим чуть позже, но пока нам важно главное выявленное нами свойство ревизоров - способность гарантированно находить и устанавливать факт наличия на компьютере любых вирусов: известных или даже неизвестных. И опять же хочется ещё раз добавить концовку - в противоположность к полифагам, которые могут найти только заведомо известные им вирусных особей.
Никому не доверяй, всё что можешь - проверяй
Вторая важная особенность ревизоров вообще, характерная особенно для ADInf, - это использование режима низкоуровневого доступа к диску, в этом плане полностью не доверяя аналогичным данным со стороны операционной системы, что позволяет очень эффективно бороться даже с самыми мощными stealth-вирусами и руткитами, тщательно скрывающими своё нахождение в системе, и на пользовательском уровне которые обнаружить почти никак невозможно. В связи с этим сразу невольно вспоминается ранее очень известная история с пришествием и массовой эпидемией вируса Dir-II, которая приключилась ещё в сравнительно далеком 1991 году, который творил с файловой системой просто запредельные вещи, агрессивно маскируясь на уровне драйвера I/O-диска в операционной системе, благодаря чему оставаясь надежно невидимым практически всем антивирусным полифагам того времени. ADInf первым обнаружил этот чрезвычайно продвинутый по тем временам stealth-вирус, причем сделал это в полностью автоматическом режиме.
Из-за техники низкоуровневого доступа к дискам, в отличие от других антивирусов, ADInf не требует загрузки с эталонной, защищённой от записи дискеты - даже при загрузке с винчестера, с заведомо зараженной операционной системой, надежность его работы не уменьшается.
Следует также упомянуть другой интересный эффект-следствие его алгоритма: выполняя проход по файловой системе на максимально низком уровне доступа, параллельно, многопоточный сканер ADInf выполняет проход, используя традиционные способы получения данных о файлах (листинга) на уровне операционной системы. При этом получается, что если в системе присутствует вирус, выполненный по технологии stealth, то он автоматически обнаруживает себя сам, т.к. данные контрольных сумм из "официальных" источников информации от операционной системы попросту не совпадут с фактическими данными по файлам, полученным напрямик на уровне драйвера дисков BIOS. Невероятно, но факт: в данном случае stealth-технология становится активным демаскирующим элементом, которая приводит к тому, что подобные "продвинутые" руткиты и трояны, как сейчас принято выражаться, "палятся" на ровном месте.
Столь подробное введение, мне кажется, было оправданно и является достаточным для того, чтобы, наконец, подробно представить наше сегодняшнее главное действующее лицо - антивирусный ревизор ADInf, которому, собственно, по большей части и посвящена эта обзорная статья. И так уж получилось, что в силу его специфичности мы "обозреваем" сегодня больше не сам конечный программный продукт, а скорее технологии, которые стоят за ним и его конкурентами, - его целевой контекст. Познакомившись с теми важными идеями и мотивациями, которые привели к его созданию, теперь самое время изменить акценты и перейти к более пристальному рассмотрению нашего героя.
 | | Современная версия ADinf32 - нативное приложение под Windows |
Что собой представляет ADInf сегодня
Несмотря на богатую историю этой программы, начиная с далеких DOS'овских времен, этот проект не был заброшен и прошел весь длинный путь совершенствования и адаптации к жестким современным требованиям времени. На данный момент имеется его Windows-версия, которая регулярно обновляется и дорабатывается, вот её главные характеристики и возможности, изложенные сухим техническим языком.
- Истинная 32-разрядность, многопоточная архитектура.
- Современный удобный оконный интерфейс.
- Асинхронное фоновое сканирование дисков. Это означает, что, пока вы заняты изучением изменений на одном диске, происходит фоновое сканирование других дисков, что позволяет сэкономить общее время проверки.
- Разбор внутреннего формата и контроль за состоянием документов MS Word и Excel с сохранением полной информации по содержащимся в них макрокомандам для эффективного обнаружения макровирусов.
- Разбор файлов формата PE (исполняемые файлы Windows 95/98/NT), NE (исполняемые файлы Windows 3.xx) и LE (VxD) в режиме быстрых контрольных сумм.
- Анализ двойных изменений на диске. Например, правильно разбираются ситуации, когда файл переименован и изменен или файл перемещен в другой каталог и уже там был изменен.
- Обнаружение заражения вирусами-спутниками.
- Гибкое управление уровнем проверок. Если вы уже использовали ADInf, то знаете, что каталоги, об изменениях в которых вам знать неинтересно, можно пометить как "рабочие". Уровень проверок также можно задавать не только каталогам, но и каждому файлу индивидуально.
- Динамическое управление уровнем выдачи сообщений. Управлять составом изменений, которые должны отображаться, и составом изменений, о которых знать неинтересно, можно непосредственно в процессе просмотра изменений с динамическим пересчетом результатов проверки.
- Фиксация и корректная обработка изменений в файловой системе, которые происходят в течение сканирования диска из-за многозадачной операционной среды.
- Ведение глобальной истории изменений на диске.
В следующей нашей части статьи, уже завтра, мы пройдемся по всем особенностям и полезным возможностям самой последней, четвертой, версии этого знаменитого антивирусного ревизора, честно рассмотрев все его плюсы и минусы, акцентировав внимание уже на практической плоскости работы с ним. |