Одним из наиболее популярных в нашей стране транзитных ревизоров для сред MS-DOS/Windows является ревизор Adinf, разработанный Дмитрием Мостовым. К достоинствам ревизора Adinf (Advanced Diskinfoscope) можно отнести то, что он позволяет реализовать контроль целостности не только программ, но и информационных файлов и работает с диском непосредственно по секторам путем прямого обращения к функциям BIOS без использования функций DOS. Такой способ проверок полностью исключает маскировку Stealth-вирусов и обеспечивает весьма высокую скорость проверок.
Перед инсталляцией и первым запуском ревизора следует с помощью имеющихся сканеров, например DrWeb или AidsTest, осуществить тщательный поиск и обезвреживание вирусов в оперативной памяти и на всех логических дисках компьютера. Кроме того, нужно не забыть проанализировать файлы конфигурирования и настройки на предмет отсутствия вызовов несанкционированных программ. При обнаружении такие вызовы следует удалить, а также установить и устранить причину их появления.
В процессе инсталляции ревизора Adinf осуществляется добавление строки его вызова в файл AUTOEXEC.BAT и при первом запуске ревизора формируются следующие эталонные характеристики компьютерной системы:
• объем занимаемой оперативной памяти;
• адрес обработчика прерывания 13h, используемого операционной системой и программами для низкоуровневого доступа к дискам;
• код внесистемного загрузчика, таблица разделов и вторичные загрузочные записи жестких дисков;
• количество и адреса расположения сбойных кластеров логических дисков;
• структура системных областей логических дисков каждого винчестера;
• контрольные суммы содержимого файлов с программами, а также их системные характеристики: путь, дата и время создания, длина, значения атрибутов, адреса физического расположения.
При следующих запусках Adinf выполняет проверки на соответствие эталонным характеристикам в следующей последовательности:
• проверяется объем занятой оперативной памяти и адрес обработчика прерывания 13h;
• анализируются главная и вторичные загрузочные записи жестких дисков;
• проверяются загрузочные сектора логических дисков каждого винчестера;
• анализируется количество и адреса сбойных кластеров логических дисков;
• сверяются характеристики и контрольные суммы файлов. Обнаруженные изменения анализируются и если они безобидны, например изменения даты и времени создания, то Adinf помещает информацию об изменениях в список, который можно просмотреть и принять. Если же происходят подозрительные изменения, то ревизор предупреждает об этом пользователя.
К подозрительным изменениям относятся следующие;
• изменение объема доступной оперативной памяти или адреса обработчика прерывания 13h;
• изменения в системных областях жестких дисков;
• появление новых сбойных кластеров;
• изменение контрольных сумм заданных файлов;
• изменение длины файлов без изменения даты и времени модификации;
• изменение файлов с появлением странных даты и времени модификации, например 35 марта.
Новые сбойные кластеры на винчестере могут появиться после использования таких утилит проверки и восстановления дисковой памяти, как NDD, ScanDisk, Calibrat и других, которые могли сами пометить неустойчивые или дефектные кластеры как сбойные.
При обнаружении изменений в загрузочных записях жестких дисков Adinf автоматически восстанавливает их исходное содержимое по эталонной информации с выдачей сообщения пользователю.
При обнаружении этих и других изменений следует установить их причину.
Если несвоевременно была обновлена системная информация, ее следует обновить.
Наиболее вероятной причиной изменения загрузчиков и программных файлов является заражение компьютерным вирусом. Следует также учитывать, что некоторые программы могут сами изменять файлы своего хранения, модифицируя в них какие-либо параметры настройки.
В любом случае при обнаружении изменений загрузчиков и программных файлов необходимо приступить к поиску и обезвреживанию вирусов, для чего можно использовать любые транзитные
сканеры, например DrWeb и AidsTest, или воспользоваться функциями программы-сканера ADinf Cure Module, которая за отдельную плату поставляется вместе с ревизором Adinf.
Программа ADinf Cure Module является универсальным дезинфектором (полифагом), предназначенным для удаления вирусов и восстановления зараженных файлов. Восстановление зараженных программ выполняется на основе эталонной информации об этих программах, созданной ревизором Adinf, а не на основе данных о принципах действия известных вирусов. Эта особенность ADinf Cure Module дает возможность полного восстановления программ, зараженных не только известным, что характерно для сканеров, но и неизвестным вирусом.
Наиболее вероятными причинами изменений файлов данных являются несвоевременное обновление их эталонных характеристик после санкционированных модификаций или несанкционированные изменения, выполненные злоумышленником.
По своим функциональным возможностям обе программы ADinf — ADinf и ADinf для Windows практически идентичны. Вся информация, приведенная в разделе Антивирус-ревизор диска ADinf, верна для обоих вариантов программы.
ADinf для Windows позволяет проверять целостность информации, записанной на дисках компьютера, не завершая Windows и не переключаясь в режим операционной системы DOS. Можно одновременно использовать программы ADinf и ADinf для Windows. ADinf рекомендуется вызывать каждый день до загрузки Windows (например, из файла AUTOEXEC.BAT). Когда Windows уже загружен, можно воспользоваться для проверки компьютера программой ADinf для Windows, имеющей более удобный интерфейс.
Одновременно с ADinf для Windows существует также ADinf Cure Module для Windows, функции которого аналогичны функциям ADinf Cure Module, но который является Windows-приложением.
Обе программы ADinf для Windows и ADinf Cure Module для Windows являются 16-битными Windows-приложениями и одинаково успешно работают как в среде Windows 3.хх, так и в среде Windows 95/98, включая поддержку длинных имен файлов и файловых систем FAT, VFAT и FAT32. Однако пользователям, работающим в операционных системах Windows 95/98/NT, лучше использовать ревизор нового поколения ADinf32, разработанный специально для этих систем и обладающий большими возможностями.
Принципы работы программы ADinf32. Принцип работы ADinf32 основан на сохранении в специальной базе (таблицах) основных данных о каждом логическом диске в системе. При первом запуске
в таблицах запоминаются объем оперативной памяти, образы главного загрузочного сектора, загрузочных секторов, список сбойных кластеров, структура дерева каталогов, длины и контрольные суммы файлов.
Когда вирус заражает компьютер, он изменяет объект, в который внедряется, — исполняемый файл, главный загрузочный сектор или загрузочный сектор. Ревизор ADinf32 позволяет периодически проверять целостность всех объектов, в которые может внедриться вирус. Если при этом будут обнаружены изменения, значит, возможно, в компьютере появился вирус. Если ревизор ADinf32 обнаруживает на диске изменения, характерные для действий вируса, он предупреждает об этом пользователя. В этом случае рекомендуется сразу проверить компьютер полифагом Doctor Web.
Метод обнаружения изменений позволяет ревизору ADinf32 находить новые вирусы, неизвестные ранее. Например, вирус Dir-II, вызвавший массовую эпидемию летом 1991 года, был немедленно обнаружен программой ADinf.
Важным отличием ADinf и ADinf32 от других существующих программ-ревизоров является доступ к накопителям на жестких дисках по секторам без использования функций операционной системы. Такой метод доступа к жестким дискам позволяет обнаруживать стелс-вирусы. Одной из наиболее важных функций ADinf32 является поиск активных стелс-вирусов. ADinf32 проверяет размер и различные характеристики исполняемых файлов двумя методами — пользуясь для доступа к диску функциями операционной системы и чтением диска по секторам. В случае если в информации, полученной об одном и том же файле, обнаруживаются расхождения, значит, скорее всего, он заражен вирусом и этот вирус в данный момент времени находится в оперативной памяти.
Кроме борьбы с вирусами ADinf32 следит за целостностью и сохранностью информации на жестком диске, позволяя выявить все происходящие на диске изменения. Такая возможность особенно полезна на компьютерах, с которыми работает несколько пользователей.
Программа ADinf32 работает на компьютерах, полностью совместимых с IBM PC/AT или PS/2 с одним или двумя дисководами для гибких дисков и 1—4 жесткими дисками, под управлением Windows 95/98, OSR2, NT 4.xx. Поддерживаются файловые системы FAT12, FAT16, VFAT, FAT32, NTFS.
Главное окно. Управление программой осуществляется с помощью кнопок на главном окне или с помощью контекстных меню, вызываемых по нажатию правой кнопки мыши.
Главное окно может находиться в четырех состояниях. Вид и назначение управляющих элементов (кнопок) в этих состояниях могут изменяться.
Для получения справки об элементах главного окна необходимо подвести к ним указатель мышки и нажать на левую кнопку.
Программа может находиться в следующих состояниях:
1. Исходное состояние.
2. Состояние сканирования.
3. Сканирование завершено.
4. Ожидание начала сканирования при автозапуске.
В последнем режиме программа находится, если установлена задержка начала сканирования при автоматической проверке дисков при загрузке Windows.
В режиме ожидания главная управляющая кнопка позволяет прервать ожидание и начать сканирование, кнопка Выход позволяет завершить ADinf32. Также возможно изменить установки сканирования безCRC и режима обновления таблиц. Другие управляющие элементы недоступны.
По истечении заданного времени задержки ADinf32 автоматически переходит в режим сканирования. Задержка бывает полезна, чтобы не замедлять запуск других приложений, стартующих при загрузке Windows.
ADinf32 может работать в четырех режимах:
• режим проверки дисков;
• построения таблиц — рис. 5.7;
• поиска стелс-вирусов;
• просмотр истории изменений.
Режим построения таблиц запускается для всех отмеченных в главном окне дисков, для которых не существуют таблицы ADinf32, если нажать кнопкуСтарт или выбрать пунктОбработать отмеченные диски в общем контекстном меню.
В режиме построения таблиц сначала производится сканирование диска, в процессе которого считывается загрузочный сектор, формируется список сбойных кластеров, проходится дерево каталогов, вычисляются контрольные суммы файлов. Сканирование диска производится без участия операционной системы. ADinf32 самостоятельно разбирает структуру файловых систем, читая диск по секторам.
Когда сканирование завершено, собранная информация для каждого диска записывается в таблицах ADinf32.
Если для диска уже существуют таблицы ADinf32, то для запуска режима построения таблиц необходимо предварительно удалить
существующие таблицы. Удалить таблицы для всех отмеченных дисков можно через общее контекстное меню главного окна. Для одного диска таблицы можно удалить через контекстное меню диска.
Режим проверки дисков. Режим проверки запускается для всех отмеченных в главном окне дисков, для которых существуют таблицы ADinf32, если нажать кнопкуСтарт или выбрать пунктОбработать отмеченные диски в общем контекстном меню — рис. 5.8.
Режим проверки для одного диска, для которого существуют таблицы ADinf, можно запустить двойным щелчком мыши на значке этого диска или через контекстное меню диска.
В режиме проверки дисков сначала производится сканирование диска, в процессе которого считывается загрузочный сектор, формируется список сбойных кластеров, проходится дерево каталогов, вычисляются контрольные суммы файлов. Сканирование диска производится без участия операционной системы. ADinf32 самостоятельно разбирает структуру файловых систем, читая диск по секторам.
Когда сканирование завершено, производится сравнение собранной информации с информацией, сохраненной в таблицах ADinD2. В процессе сравнения анализируются изменения загрузочного сектора, появление новых сбойных кластеров, появление но
вых или удаление каталогов. Также фиксируются новые, стертые, переименованные, перемещенные из каталога в каталог и измененные файлы.
Изменения файлов определяются по изменению длины или контрольной суммы (CRC). Исключением являются файлы формата OLE2 (документы MS Word .DOC и .DOT, таблицы Excel .XLS). Если для таких файлов установлен тип контрольных сумм «Макро», то измененными считаются только те файлы, в которых поменялись макрокоманды. Обычные изменения файлов, происходящие при ежедневной работе с документами, игнорируются. Таким образом, заражение макровирусами будет немедленно замечено и не потеряется за текущими изменениями документов или таблиц.
Обнаруженные изменения анализируются. Если обнаружены подозрительные изменения, похожие на проявления вируса, выдаётся предупреждение. Изменения отображаются в окне просмотра результатов. Если обрабатывается несколько дисков, то результаты отображаются и могут анализироваться по мере готовности, поскольку сканирование дисков происходит в асинхронном фоновом режиме. Порядок обработки дисков выбирается так, чтобы можно было начать анализировать информацию об изменениях за минимальное время.
Режим поиска стелс-вирусов. Режим поиска стелс-вирусов запускается для всех отмеченных в главном окне дисков, если выбрать пункт Поиск стелс-вирусов на отмеченных дисках в общем контекстном меню. Режим поиска стелс-вирусов для одного диска можно запустить через контекстное меню диска. В режиме проверки дисков поиск стелс-вирусов автоматически производится для всех новых файлов.
Стелс-вирусами называют компьютерные вирусы, в алгоритмах которых заложена возможность маскировать свое присутствие в зараженном компьютере. Первые вирусы не обладали такими возможностями и их легко было обнаружить при визуальном просмотре исполняемых файлов, загрузочных секторов или главного загрузочного сектора. Применение даже простейших антивирусных средств немедленно останавливало распространение таких вирусов.
Появление антивирусных программ привело к новому витку в развитии вирусов. Возникновение стелс-вирусов стало естественным шагом в таком развитии. Вирусы, использующие приемы маскировки, нельзя увидеть средствами операционной системы.
Если просмотреть зараженный файл средствами операционной системы, например, нажав клавишу <F3> в программе Norton Commander, то на экране будет показан файл, не содержащий вируса. Это происходит потому, что вирус, активно работающий вместе с операционной системой, при открытии файла на чтение немедленно удалил свое тело из зараженного файла, а при закрытии файла заразил его опять. Это только один из возможных приемов маскировки, существуют и другие. Также маскируются и загрузочные вирусы. При попытке прочитать зараженный загрузочный сектор они заменяют его оригинальным, не зараженным.
Способность к маскировке оказалась слабым местом стелс-вирусов, позволяющим легко обнаружить их наличие на компьютере. Достаточно сравнить информацию о файлах (длину и контрольную сумму), выдаваемую операционной системой с фактической, содержащейся на диске, и несовпадение данных будет означать наличие вируса. Таким образом, способность к маскировке демаскирует эти вирусы. Именно такое сравнение производится в режиме поиска стелс-вирусов.
Сканируя диск, ADinf проверяет загрузочные сектора жестких дисков, а также сравнивает длины и контрольные суммы файлов, определяемые средствами DOS, с фактическими, получаемыми путем непосредственного чтения секторов диска прямым обращением в BIOS. Если ревизор обнаруживает несовпадение, то немедленно
прекращает сканирование диска, чтобы не распространить вирус по еще не зараженным каталогам, и выдает сообщение пользователю о заражении стелс-вирусом. В этом случае следует выключить компьютер, спустя 20—30 секунд загрузиться с системной дискеты из состава средств восстановления и приступить к восстановлению нормальной работоспособности компьютера и обезвреживанию вирусов с помощью транзитного сканера.
Сообщение ADinf32 о возможности заражения стелс-вирусом может возникнуть не только в результате реального заражения, но и в ряде других случаев. Например, поскольку операционная система кэширует запись на диск, в некоторый момент времени после записи данных в файл информация, физически существующая на диске, может отличаться от той информации, которую сообщает о файле операционная система. Если в этот момент файл будет проверен ADinf32 в режиме поиска стелс-вирусов, то появится сообщение о подозрении на стелс-вирус. К сожалению, программно отличить такую ситуацию от заражения реальным стелс-вирусом невозможно.
Просмотр истории изменений. Режим просмотра истории изменений запускается для всех отмеченных в главном окне дисков, если выбрать пункт История изменений для отмеченных дисков в общем контекстном меню. Режим просмотра истории изменений для одного диска можно запустить через контекстное меню диска.
История изменений позволяет анализировать списки новых, измененных, переименованных и перемещенных файлов за заданный интервал времени. Это может быть полезно, например, для обнаружения файла, с которым был занесен в систему вирус.
Просмотр результатов
Результаты проверки дисков отображаются в окнах просмотра результатов — рис. 5.9. Окна просмотра результатов открываются нажатием кнопки Результат в главном окне программы. Если на главном окне программы стоит отметка на переключателе Авто-откр., то первое окно просмотра результатов автоматически открывается в начале сканирования дисков. Одновременно можно открыть произвольное количество окон просмотра результатов, в каждом из которых можно выбрать свой состав отображаемой информации. Все окна синхронизированы между собой и изменения, производимые в одном окне, автоматически отображаются в других окнах, если они затрагивают отображаемую в них информацию. После окончания анализа изменений закрывать все окна просмотра результатов не обязательно. После нажа
тия кнопкиЗакрыть главное окно программы все окна автоматически закроются.
Сканирование дисков осуществляется в асинхронном режиме и по мере готовности информация в окнах просмотра результатов пополняется.
Структура представления результатов. Окно просмотра результатов состоит из двух частей. В левом окне отображается дерево проверяемых объектов, в правом — информация о выбранном в дереве объекте или список файлов в поддереве, начиная с выбранного слева объекта. В верхней части окна расположены кнопки панели инструментов. В нижней части окна расположена информационная панель, в которой выдается полное название и краткая информация о выбранном объекте. Подробную информацию о каждом объекте, о его изменениях и истории можно получить через контекстное меню, разделСвойства.
Левая часть окна просмотра результатов может находиться в двух режимах. В этом поле всегда показано дерево проверенных
объектов. В одном режиме среди них отмечены каталоги, содержащие изменения в файлах, в другом — новые и стертые каталоги. Переключение режимов осуществляется с помощью кнопок на панели инструментов в верхней части окна.
Правая часть окна просмотра результатов также может находиться в двух состояниях. В одном режиме в правом окне отображается подробная информация о проверенном объекте, в другом — список измененных файлов во всем поддереве ниже выбранного в левом окне объекта.
Управление просмотром. Управление составом информации, отображаемой в окне просмотра результатов, может осуществляться двумя способами. Первый способ заключается в использовании кнопок, расположенных на сводной панели изменений, отображаемой в правом окне в начале просмотра результатов. После нажатия нужной кнопки окно автоматически конфигурируется для просмотра конкретного набора изменений или открывается еще одно окно просмотра результатов.
Второй способ позволяет настроить желаемый состав просматриваемой информации в текущем окне просмотра результатов с помощью кнопок, расположенных на панели инструментов в верхней части окна. Назначение этих кнопок:
Кнопки 1: Позволяют перемещаться вперед-назад между состояниями просмотра результатов.
Кнопки 2: Эти кнопки позволяют переходить в дереве к следующему или предыдущему каталогу с изменениями.
Кнопки 3: Эти две кнопки переключают режим левого окна. Если нажата левая кнопка, то в дереве отмечены новые и стертые каталоги. Если нажата правая кнопка, то отметки стоят на каталогах, содержащих изменения в файлах, выбранных кнопками 5.
Кнопки 4: Эти кнопки переключают режим правого окна. Если нажата левая кнопка, то в правом окне отображается подробная информация об объекте, выбранном в дереве слева. Если нажата правая кнопка, то в правом окне отображается список файлов, выбранных кнопками 5, во всех каталогах ниже объекта, выбранного в дереве слева. В дереве слева названия объектов, файлы из которых попали в список, выделяются жирным шрифтом.
Кнопки 5: Эти кнопки предназначены для выбора состава файлов, отображаемых в правом окне. При нажатии кнопок в список, соответственно, включаются: стертые файлы, новые файлы, измененные файлы, переименованные и перемещенные из каталога в каталог файлы. Если нажата последняя кнопка из группы 5, то в режиме просмотра подробной информации для каталога в список включаются все файлы, а файлы, выбранные остальными кнопками группы 5, выделяются среди них яркими значками.
Кнопка 6: Если нажата эта кнопка, то в список включаются только файлы с подозрительными изменениями.
Кнопка 7: Нажав эту кнопку, можно запустить сканер для проверки файлов, выделенных в правом окне, или каталогов, выделенных в левом окне. Программа-сканер должна быть предварительно сконфигурирована в панели настроек.
Кнопка 8: Открывает еще одно окно просмотра результатов. Закрыть окно можно, нажав кнопкуЗакрыть в нижней части окна.
Список файлов в правом окне может быть отсортирован. Для сортировки списка необходимо нажать мышкой на заголовок соответствующей колонки (в режиме подробного отображения) или воспользоваться контекстным меню. Сортировка возможна по именам, по типам изменений (в этом случае внутри одного типа файлы сортируются по расширениям), по расположению файлов (по каталогам) или по изменению длины.
Профили настроек. ADinf32 позволяет создать множество вариантов настроек и выбирать необходимый вариант при запуске или менять вариант настроек в процессе работы — рис. 5.10. При этом можно настроить ADinf32 для быстрого контроля при загрузке компьютера, можно создать конфигурацию для ручного ежедневного контроля, создать конфигурации для еженедельных или ежемесячных проверок.
Каждому профилю настроек можно присвоить произвольное имя. Во время работы программы имя текущего профиля показывается в заголовке главного окна.
Профили настроек могут быть двух типов. Первый тип — профиль настроек ADinf32. Второй тип — профиль настроек, совместимый с 16-битными версиями ADinf. При передвижении по списку профилей тип профиля показывается картинкой в верхней части окна.
Замечание. В режиме совместимости ADinf32 может работать совместно с 16-битным вариантом ADinf версий 12.00 или старше. Однако для наиболее полной совместимости рекомендуется использовать 16-битный вариант ADinf версий 12.12 или старше. При использовании версий до 12.12 необходимо, очистить список неизменяемых файлов в настройках ADinf 16, поскольку ADinf32 и ADinf 16 версий 12.12 (и старше) контролируют неизменяемые файлы с использованием контрольной суммы LAN64, а предыдущие версии использовали контрольную сумму CRC48.
По умолчанию в настройках создаются два профиля, с именами Default profile и Default boot-time profile. Они имеют тип профилей ADinf32. Для того чтобы создать новый профиль ADinf32, можно воспользоваться кнопкойКопия илиДобавить. Чтобы создать новый профиль, совместимый с ADinfl6, следует пользоваться кнопкой Добавить. Если ADinf32 работает в ознакомительном режиме (при отсутствии ключевого регистрационного файла пользователя), данные функции недоступны и возможности создания конфигураций ограничены двумя существующими профилями настроек.
Выбор типов контрольных сумм. В этой диалоговой панели (рис. 5.11) можно установить состав информации, включаемой в таблицы ревизора ADinf32, и типы контрольных сумм для контроля целостности файлов. Контрольные суммы, поддерживаемые ADinf32, можно условно разделить на две группы. Первая группа включает специализированные контрольные суммы, а вторая — стандартные. Специализированные контрольные суммы используют знание внутренней структуры файлов и не рассчитываются по всему файлу. Такие типы контрольных сумм можно использовать только для обнаружения вирусов и только для определенных типов файлов.
Контрольные суммыБыстрые Win32 можно использовать для обнаружения вирусов в исполняемых файлах типа СОМ, EXE, DLL, VxD. Контрольные суммыМакро предназначены для обнаружения макровирусов в файлах-документах DOC, DOT, XLS.
Стандартные контрольные суммы реализуют алгоритмы CRC16 и CRC32, рассчитываемые по всему файлу. Их необходимо использовать для обнаружения вирусов, поражающих ВАТ-файлы, и для контроля за целостностью файлов, которая может быть нарушена из-за случайных сбоев. Чем выше размерность контрольной суммы, тем выше надежность обнаружения случайного сбоя. Наибольшую надежность обеспечивают контрольные суммы типа CRC48, реализованные как одновременный расчет алгоритмов CRC16 и CRC32 по всему файлу.
Отдельно надо сказать про тип контрольных сумм LAN64. Эти контрольные суммы доступны только в модификации ADinf32 Pro. Использование данного типа контрольных сумм гарантирует обнаружение не только случайных сбоев, но делает невозможной незаметную преднамеренную модификацию данных злоумышленником. Этот тип контрольных сумм предназначен для контролязасохранностью особо ценных файлов, например баз данных или документов.
Маски неизменяемых файлов (рис. 5.12).
В этой диалоговой панели можно определить маски имен файлов, любое изменение которых относится к подозрительным.