Жанр: Учеба
Компьютерная вирусология ч. 1
...иодичности их обновления.
Главный архив целесообразно обновлять примерно раз в месяц,
а текущие архивы є по крайней мере раз в неделю и раз в неделю.
Для создания главного архива рекомендуется использовать программу
FastBack Plus (версию 2.1 или более позднюю). Она позволяет выгрузить
20М винчестер на 35 дискет по 360K или 12 дискет по 1.2M
примерно за 20 мин. Следует отметить, что если на машине установлен
дисковод 1.2M, то использование дискет 360K для создания архива
неоправданно. Рекомендуется использовать как минимум формат
730K. Однако по возможности используйте дискеты 1.2M, поскольку в
этом случае создание архива выполняется значительно проще и быстрее,
чем на дискетах 730K. С учетом отсутствия на большинстве отечественных
машин стриммеров, рекомендуемый размер раздела винчестера
должен соответствовать определенному количеству коробок дискет
архива. Например, раздел 20M очень удобен при создании архива
на дискетах 1.2M, поскольку 12-14 дискет помещаются в одну коробку
и неудобен при создании архива на дискетах 730K (требуется примерно
18 дискет). После создания главного архива рекомендуется провести
оптимизацию винчестера, например, с помощью Norton Speed
Disk из 5 версии утилит Нортона.
Для создания недельного архива рекомендуется использовать архиватор
PKZIP. При этом каждый архив в главном каталоге диска рекомендуется
сворачивать в отдельный ZIP файл. Если размер ZIP файла
на дискете превышает размер дискеты, то его можно разбить на отдельные
фрагменты утилитами SPLITB (СП 2-6), а затем записать на
несколько дискет. При нехватке дискет в недельный архив следует
включать только каталоги, измененные за прошедшую неделю.
И, наконец, ежедневный архив включает все тексты, измененные за
рабочий день. Выключать компьютер, не сбросив измененные тексты на
дискету, не рекомендуется. Следует помнить, что винчестеры портятся
не только от вирусов. Вероятность того, что уйдя с работы сегодня,
завтра вы обнаружите, что информация на винчестере не читается,
не равна нулю даже для самых лучших винчестеров, а тем более
для наиболее дешевых моделей, попадающих в нашу страну.
Если какой-то каталог на винчестере используется лишь эпизодически
или только определенным пользователем, то после каждого использования
желательно все программы в нем сворачивать архиватором
типа PKARC, поскольку заразить программу, находящуюся в архиве,
практически невозможно.
Очень часто процесс архивирования сводят к выгрузке с винчестера
всех файлов. На самом деле архивированию подлежат и системные блоки,
в частности MBR и бутсектор. Последние следует скопировать на
дискету с помощью программы DiskTool 5 версии утилит П.Нортона.
Кроме того, следует копировать на дискету FAT и главный каталог с
помощью утилиты Mirror из PC Shell или Image из 5 версии утилит
П.Нортона. Эту операцию следует выполнять не реже одного раза в
неделю, а если предполагается использование каких-то новых программ,
то при загрузке ЭВМ. Как и архиваторы, программы резервирования
FAT и каталогов важны не только в плане защиты от вирусов,
но и как метод страховки на случай непредвиденного стечения обстоятельств
или чьих-то (в том числе, и собственных) действий. В особенности
они важны для программистов, работающих на ассемблере,
которые при отладке часто находятся буквально в шаге от разрушения
файловой системы.
Поскольку дискеты являются в наших условиях дефицитом, то при
архивировании информации ее целесообразно сжимать архиватором. Для
дискет DS/DD наиболее подходящим форматом для записи архивов повидимому
является формат 800K, который достаточно надежен и позволяет
вдвое уменьшить количество используемых дискет. Наиболее
удобными архиваторами являются FASTBACK PLUS, PKZIP и LHARC.
В условиях дефицита дискет при использовании PKZIP и LHARC возникает
дополнительная проблема оптимальной комбинации архивов на
дискетах, чтобы более полно использовать емкость каждой дискеты.
Для этой цели можно дополнительно упаковывать полученные архивы
утилитой BACKUP MS DOS или более удобной и имеющей графический интерфейс
утилитой PC-BACKUP из пакета PC SHELL (рекомендуется использовать
версии, начиная с 5.5). Если дискет не хватает для создания
полной копии винчестера, то следует исключить из архивирования
прежде всего большие пакеты (трансляторы, операционная система
и т.д.), для которых имеются дистрибутивные копии.
10.3.3. В защиту "бумажной технологии"
"То, что вы храните достаточно
долго, можно выбросить. Как
только Вы что-то выбросите,
оно Вам понадобится"
Из законов Мерфи
Наряду с архивом на дискетах, следует вести часть архива на бумаге.
Несмотря на отдельные заявления о наступлении эры "безбумажной
технологии", роль этого старого доброго способа хранения информации
сохраняется. Бумага все еще остается дешевым, надежным и
удобным методом долговременного хранения информации, существенно
превосходя по надежности магнитные носители, а по удобству анализа
некоторых видов информации (например, дампов) - просмотр файлов на
дисплее. Кроме того, наличие рабочего журнала является одним из
показателей уровня квалификации программиста. Систематическое ведение
журнала позволяет быстрее и полнее осваивать новые системы и
избегать уже допущенных ранее ошибок.
Необходимо систематически подшивать в специальную папку копии
оглавлений, последние копии AUTOEXEC.BAT, CONFIG.SYS, список сбойных
секторов винчестера (если таковые имеются), распечатки всех
оглавлений диска, дампы бутсектора и FAT, замечания по работе машины,
а также протоколы работы программы-ревизора. Кроме того,
справочник по архиву дискет также целесообразно иметь в распечатанном
виде, поскольку если с машиной что-то случится, считать его
с винчестера может оказаться достаточно трудной задачей. Полезно,
хотя и несколько трудоемко, вести отдельный архив распечаток исходных
текстов разрабатываемых программ, в который подшивать все
распечатки версий программ и другую аналогичную информацию. Наличие
такого архива создает ряд удобств и является дополнительной
гарантией сохранности информации.
10.3.4. Запомните параметры, хранящиеся в СМOS-памяти, пока еще не
поздно
"Столб дыма уносит новости богу..."
Теофиль Готье
Получив машину типа AT, сразу же запишите параметры CMOS, установленные
с помощью процедуры SETUP. Для этого достаточно нажать
комбинацию клавиш Ctrl-Alt-Esc. При этом на экран выдается таблица
параметров, записанных в CMOS-памяти, из которых наиболее важным
является тип установленного винчестера. Эта таблица невелика и ее
содержимое легко переписать на обычную самоклеящуюся этикетку для
дискеты, которую необходимо сразу же прикрепить к лицевой стороне
корпуса компьютера. После этого обязательно распечатайте содержимое
CMOS на принтере. Это проще всего сделать с помощью утилиты
SYSINFO, из версии 5 утилит П.Нортона. Один экземпляр распечатки
рекомендуется наклеить на папку с планом восстановления винчестера
(см. ниже), а другой є на последнюю страницу инструкции к данной
ЭВМ. Кроме того необходимо записать содержимое CMOS в файл с помощью
программы DiskTool из 5 версии утилит П.Нортона, СМOSER (СП
9-90) или SAVECMOS А.Водяника (СП 2-3). Для некоторых типов BIOS
содержимое отдельных байтов CMOS не выдается на экран, однако важно
для правильной работы машины.
Эти меры связаны с тем, что рано или поздно элемент, обеспечивающий
питание CMOS-памяти, выйдет из строя. Кроме того, известно
несколько троянских программ, которые при запуске портят CMOS.
Иногда содержимое CMOS уничтожается из-за ошибки в "нормальной"
программе. Хотя элемент питания рассчитан на несколько лет, опыт
показывает, что средняя продолжительность жизни CMOS обычно не
превышает нескольких месяцев. Если содержимое CMOS потеряно, то
при отсутствии точных данных о типе установленного винчестера возникает
ряд очень неприятных проблем, когда значение некоторых параметров
приходится устанавливать экспериментально. Это особенно
трудно, когда на машине установлен нестандартный (например, трехдюймовый)
винчестер.
10.3.5. Переписывая программы, различайте эталонную и рабочую
копию
Дистрибутивные эталонные версии рекомендуется хранить отдельно в
архивированном виде. Если дисковод обеспечивает формат 720К, то на
одну дискету обычно входит три архивных "образа" 360К дискет. Новая
версия архиватора PKARC (PKZIP) позволяет рекурсивно сворачивать
подкаталоги, тем самым делая рассматриваемый вид хранения более
привлекательным. При работе с Norton Commander рекомендуется
определить для файлов с расширениями ZIP, ARC, и LZH вызов архиватора
в режиме выдачи на экран справки с архива или вызов диалоговой
оболочки для соответствующего архиватора (SHEZ, NARC и др.).
Передавая программы, копируйте дистрибутивные, а не рабочие
копии. В нынешних условиях это долг вежливости по отношению к тому,
кому переписывается программное обеспечение. Храните справки с
дистрибутивной копии для сравнения.
Переписывая программы, старайтесь копировать дистрибутивные версии,
а не рабочие копии, хранящиеся на винчестере. Обязательно отпечатайте
справку с архива с контрольными суммами.
Очень полезно вести каталог используемых программ на dBase или
какой-то аналогичной системе. За счет более точной информации о
состоянии архива можно значительно уменьшить объем еженедельного
архивирования и, тем самым, сэкономить время и силы.
10.4. Методика применения средств защиты
Методика применения средств защиты предполагает их наличие и желание
ими пользоваться. К сожалению, часто можно констатировать
отсутствие как первого, так и второго из этих условий. Спектр отношения
пользователей к антивирусным программам колеблется от полного
равнодушия до страстного коллекционирования. Однако наличие
антивирусных программ является только необходимым условием. Важно
не только иметь последние версии антивирусных программ, но и систематически
ими пользоваться. К новым антивирусным средствам, полученным
"обычным" путем следует относиться с такой же осторожностью,
как и ко всем остальным программам. Антивирусные средства,
не снабженные средствами самоконтроля целостности, могут оказаться
зараженными. Кроме того, изредка встречаются троянские версии антивирусных
средств. Ранее уже упоминались троянские версии сторожа
FluShot и полифага Aidstest.
10.4.1. Типичные ошибки
Как уже указывалось, самой грубой и распространенной ошибкой при
использовании персональных компьютеров является отсутствие надлежащей
системы архивирования информации. Никакие средства защиты
не заменят надлежащей организации ведения архивов. Другой грубой
ошибкой является запуск полученной программы без ее предварительного
анализа на зараженность и без установки максимального режима
защиты винчестера с помощью ADM и запуска резидентного сторожа.
Запуск программы является в современных условиях далеко небезопасной
операцией и рисковать содержимым винчестера из-за чрезмерного
любопытства, наверное, не стоит. Следует также обратить внимание
на ситуацию, характерную для школ и вузов. Поскольку у студентов
обычно мало дискет, то им приходится запускать отдельные программы
(например, игровые) с дискет своих товарищей. Эта ситуация особенно
характерна для вузовских "залов персональных ЭВМ". При этом может
произойти заражение одной из программ или бутсектора, если соответствующий
компьютер оказался зараженным. Поэтому следует всегда
защищать дискеты от записи, если они используются для считывания
программ на нескольких компьютерах. Снимать защиту от записи
стоит только на время, необходимое для обновления содержимого дискеты.
Новые программы по возможности следует записывать на новые
дискеты, не смешивая их сразу со старыми, проверенными программами.
При неправильном или неумелом использовании антивирусные программы
могут сами в ряде случаев становиться источником проблем.
Имеется несколько типичных ошибок при применении антивирусных
средств. Наиболее распространенной из них является запуск антивирусных
программ (чаще всего, фагов) на зараженном резидентным вирусом
компьютере. Конечно, сейчас создатели большинства качественных
антивирусных средств предусматривают такую возможность и анализируют
память компьютера перед началом работы, однако такая методика
эффективна, в основном, против уже известных вирусов и может
не сработать на каком-то новом. Поэтому следует особо подчеркнуть
основной "гигиенический" принцип компьютерной вирусологии:
ВСЕ ДЕЙСТВИЯ ПО ИССЛЕДОВАНИЮ "ПОДОЗРИТЕЛЬНОГО" ИЛИ ЗАРАЖЕННОГО
КОМПЬЮТЕРА СЛЕДУЕТ ВЫПОЛНЯТЬ ТОЛЬКО НА ПРЕДВАРИТЕЛЬНО
ЗАГРУЖЕННОЙ С ЗАЩИЩЕННОЙ ОТ ЗАПИСИ ЭТАЛОННОЙ ОПЕРАЦИОННОЙ
СИСТЕМЫ И ИСПОЛЬЗУЯ ТОЛЬКО ПРОГРАММЫ, ХРАНЯЩИЕСЯ НА ЗАЩИЩЕННЫХ
ОТ ЗАПИСИ ДИСКЕТАХ.
Выполнение действий по анализу и восстановлению на зараженной
операционной системе является грубой ошибкой и может иметь катастрофические
последствия. В частности, при этом могут быть заражены
остальные, еще незараженные, программы. Например, при резидентном
вирусе RCE-1800 (Dark Avenger) запуск фага, не рассчитанного на
данный вирус, приведет к заражению всех проверявшихся фагом загрузочных
модулей, поскольку вирус RCE-1800 перехватывает прерывание
по открытию и чтению файлов и при работе фага будет заражать каждый
проверяемый фагом файл.
Второй типичной ошибкой является выполнение перезагрузки системы
при наличии "защелкнутой" дискеты в дисководе А. При этом BIOS делает
попытку загрузиться именно с этой дискеты, а не с винчестера
и, в результате, если дискета заражена бутовым вирусом, происходит
заражение винчестера.
Третьей распространенной ошибкой является запуск "батареи" фагов.
Очевидно, что прогон десяти фагов, предназначенных для вируса
С-648, не излечит ни одного файла, зараженного, скажем, вирусом
RСЕ-2890. В данном случае следует придерживаться принципа "лучше
меньше, да лучше" и запускать средства защиты, предварительно
определив, хотя бы ориентировочно, с каким типом вируса пришлось
столкнуться. Обычно для определения типа вируса достаточно запустить
батарею полидетекторов (которая может включать и фаги, настроенные
на режим детектирования), а затем просмотреть дамп (с
помощью PCTools или Norton Utilities) одной или нескольких зараженных
программ.
Четвертой типичной ошибкой является чрезмерная доверчивость к
разработчикам антивирусных средств. Хотя разработкой антивирусных
средств обычно занимаются высококвалифицированные программисты, не
следует думать, что созданные ими программы безупречны. Как и всякие
программы, они содержат ошибки, причем ситуация усугубляется
тем, что те их части, которые относятся к самым новым вирусам и
тем самым представляют наибольшую ценность, часто бывают написаны
наспех, в условиях острейшего дефицита времени. Поэтому следует
считать, что на вашей системе выполняется отладка этих новых частей,
которая как и всякая отладка, может иметь негативные последствия
как для отдельных файлов, так и для файловой системы в целом.
Если у вас нет свежего архива, то запуск любой антивирусной
программы на всю файловую систему становится потенциально опасной
операцией. Это относится прежде всего к фагам, выполняющим "хирургическое
вмешательство" в программы. Известны случаи, когда фаг
принимал один вирус за другой и все "вылеченные" программы оказывались
неработоспособными.
10.4.2. Методика применения детекторов
Детекторы, рассчитанные на конкретные вирусы, также можно рассматривать
как специализированные программы-ревизоры, однако качество
обеспечиваемого ими анализа вызывает сомнения и они должны
контролироваться другими методами, в частности, с помощью глобального
контекстного поиска. Следует отметить, что наиболее удобны
детекторы, обнаруживающие не один, а целый ряд распространенных
вирусов (полидетекторы). Имеется два основных типа полидетекторов:
с фиксированным набором сигнатур и переменным набором.
Детекторы с фиксированным набором сигнатур, в общем случае, эффективнее
полидетекторов с переменным набором. Обычно такие детекторы
являются составной частью полифага. Однако имеется и "чистый"
полидетектор є SCAN. Текущая (на момент написания данной работы)
версия полидетектора SCAN детектирует более двухсот вирусов и их
разновидностей (имеется и резидентная версия, проверяющая файлы
при загрузке - SCANRES). Качество детектирования є невысокое (имеется
много ложных срабатываний). Большинство используемых данным
полидетектором сигнатур приведено в прил.1 и 2.
Среди полидетекторов, входящих в полифаги, следует отметить детектор,
встроенный в полифаг TNTVIRUS. В отличие от полифага, являющегося
коммерческим продуктом, полидетектор входит в распространяемую
бесплатно демонстрационную версию. Эта громоздкая (более
100К) программа имеет неплохой турбоинтерфейс и детектирует, по
данным его авторов (впрочем, вызывающих сомнения) более ста вирусов.
Качество детектирования следует оценить как весьма среднее
(в большинстве случаев используется обычный контекстный поиск).
Многие из используемых сигнатур приведены в прил.1 и 2. За исключением
интерфейса и количества сигнатур данный полидетектор уступает
аналогичным отечественным программам по количеству ложных
срабатываний и качеству распознавания наиболее распространенных в
нашей стране вирусов. Из полидетекторов, встроенных в отечественные
полифаги наиболее интересен режим детектирования, обеспечиваемый
полифагом Kxx Е.Н.Сусликова и полифагом AV И.Сысоева. Последний
обнаруживает порядка 40 вирусов, являясь при этом самой маленькой
(менее 20К) и быстрой программой такого рода. Как уже
указывалось, программы этого типа представляют наибольший интерес
как средство входного контроля нового программного обеспечения, в
особенности, поступающего без контрольных сумм.
Второй тип полидетекторов более интересен, поскольку фактически
представляет собой системные программы общего применения, которые
можно использовать не только для поиска вирусов, но и во всех
случаях, когда нужно найти все файлы, содержащие хотя бы одну из
заданной группы текстовых строк (ключевых слов). Набор строк для
поиска обычно задается в виде специального файла. Этот тип полидетекторов
наиболее полезен при обнаружении какого-то нового, еще
неизвестного, вируса. Первое, что нужно сделать в этом случае -
это определить сигнатуру для поиска. Надежнее всего использовать
для этой цели трассировку зараженной программы с помощью отладчика.
Определив сигнатуру, можно быстро выявить все зараженные программы,
и тем самым, прекратить дальнейшее размножение вируса.
Имеется ряд программ этого типа (VL, VIRSCAN, NEADET). Например,
программа VL (прил.5) обеспечивает поиск в поддереве или файле до
50 строк длиной до 15 символов. Строки задаются пользователем в
текстовом или 16-ричном формате. Дамп программы, в которой найдена
строка, можно просмотреть на экране. Программа NEADET, написанная
И.В.Суворовым, позволяет использовать в качестве входных данных
приведенные в прил.1-4 таблицы и специальный алгоритм быстрого поиска
строк. Дамп программы, в которой найдена строка, можно просмотреть
на экране.
10.4.2.1. Использование Norton Utilities и PCTools
как универсальных детекторов вирусов
Как уже указывалось, обеспечиваемая PCTools и Norton Utilities
возможность выполнения контекстного поиска как по отдельным файлам,
так и по диску в целом, является полезным и надежным инструментом
выявления зараженных файлов. В особенности полезна возможность
выполнения глобального контекстного поиска по диску в целом.
При правильном выборе строки для контекстного поиска этот способ
является хотя и довольно медленным, но исключительно надежным методом
определения всех зараженных вирусом файлов. Следует отметить,
что Norton Utilities выполняет контекстный поиск примерно
вдвое быстрее, чем PCTools.
10.4.2.2. Поиск текстовых сигнатур
При поиске Т-сигнатур бывает полезна программа TS из версии 4.5
пакета утилит П.Нортона. Она позволяет искать заданный текст в
файле или по всему диску, например:
TS C:\*.COM vacsina /S /LOG
TS C:\*.EXE eddie /S /LOG
В программе можно использовать ряд ключей:
/LOG - печатать или выводить результаты в файл;
/S - просматривать также и подкаталоги;
/T - выводить только окончательные результаты;
/D - искать по всему диску (отменяет /S);
/E - искать по стертым файлам;
/CS - различать малые и большие буквы.
10.4.3. Методика применения фагов
Следует отметить, что программы-фаги, обеспечивающие возможность
восстановления исходного состояния программы, зараженной вирусом,
хотя и являются наиболее популярным типом антивирусных программ,
не являются основным средством защиты от вирусов. Наблюдаемое сейчас
повсеместная погоня за последними версиями фагов, не совсем
оправдана. Основные усилия должны быть направлены на предупреждение
заражения (грамм профилактики стоит килограмма лекарств).
Отметим, что программы, которые мы для краткости называем "фагами",
по сути представляют собой комбинацию типа "детектор + фаг".
Поэтому при их работе возможны как ошибки, связанные с несовершенством
детектора, так и ошибки при "выкусывании" вируса из программы.
Для фага неверное "выкусывание" вируса из зараженной программы
("больной умер на операционном столе") может быть обусловлено как
ложным срабатыванием детектора, так и недостаточным учетом возможных
вариантов заражения программы. При этом фаг уничтожает работоспособную
программу (хотя с этим утверждением можно не соглашаться,
но по мнению автора зараженная программа все же лучше, чем никакая).
Поэтому, при применении фагов для файловых вирусов целесообразно
разделять процесс диагностирования и процесс "лечения".
Кроме того, распространяющиеся сейчас комплексные фаги на несколько
вирусов (полифаги) являются несколько менее удачной идеей,
чем полидетекторы, поскольку жесткая привязка фага к конкретному
"встроенному" детектору делает его "заложником" качества последнего,
а отсутствие параметров настройки на вирус - чувствительным к
мутациям вируса, затрагивающим используемую сигнатуру. Единственным
фагом, где была сделана попытка преодолеть этот недостаток,
является полифаг NEATFAG В.В.Пономаренко. В нем фаг на каждый вирус
выполнен в виде отдельного загружаемого модуля, что позволяет
добавлять модули, "выкусывающие" новые вирусы отдельно, без переделки
уже имеющейся части фага. Однако возможность замены или добавления
сигнатур в существующей версии NEATFAG отсутствует.
Процесс дезактивации рекомендуется разделить на ряд этапов c
тем, чтобы не повредить файловую систему во время ее выполнения.
Можно рекомендовать следующие этапы указанного процесса:
загрузиться с защищенной от записи дискеты, используя "холодную"
(кнопкой RESET или выключением питания), а не "теплую" (нажатием
клавиш CTRL-ALT-DEL) перезагрузку;
найти хотя бы одну зараженную программу с помощью батареи детекторов;
проверить правильность идентификации типа вируса, визуально просмотрев
дамп зараженной программы;
составить список зараженных программ и распечатать этот список;
выгрузить зараженные программы на дискету и обработать их фагом;
проанализировать результаты выкусывания;
проверить работоспособность "леченных" программ и выгрузить их.
Если COMMAND.COM заражен, то используйте его размер и дамп для
определения типа вируса. Если нет, то поиск зараженной программы
можно выполнить разными способами, но обязательно перегрузившись с
защищенной дискеты. Если используется программа-ревизор и ведется
архив каталогов файловой системы, то целесообразно воспользоваться
им. Если нет, то проще всего использовать рекомендованную выше батарею
полидетекторов (только перегрузившись с защищенной дискеты
!), с помощью которой возможно удастся определить зараженные или
хотя бы "подозрительные" файлы (некоторые детекторы используют для
этой цели эвристические приемы).
Составьте список зараженных программ с помощью детектора и проверьте
его полноту глобальным контекстным поиском (см. ниже). Все
зараженные программы выгрузите на дискету, сделайте ее копию и
экспериментируйте только на ней. Если имеется возможность, то выгрузите
из архива оригинальные копии программ на другую дискету
или на винчестер. После прогона фага опять распечатайте оглавление,
сравните длины зараженного и "вылеченного" файлов и визуально
просмотрите дампы программ. Для тех программ, данные о длинах которых
сохранились (например, в базе данных ревизора) или оригинальные
копии которых имеются в архиве, проверьте, правильно ли
восстановлена длина. Если такой возможности нет, то предварительно
проверьте работоспособность "леченной" программы, а только после
этого сгрузите ее обратно на винчестер. Помните, что фаг может запортить
программу. И наконец, с помощью детектора и глобального
контекстного поиска проверьте полученные результаты: не осталось
ли на диске зараженных программ.
Следует отметить, что предложенные шаги в полном объеме необходимы
только при работе с новым, еще недостаточно изученным вирусом
или "самодельным" фагом (например, изготовленным по методике, описанной
во второй части данной работы). Для хорошо изученных вирусов,
для которых существуют достаточно надежные и проверенные фаги,
...Закладка в соц.сетях