Купить
 
 
Жанр: Учеба

Компьютерная вирусология ч. 1

страница №8

ановленной
и свободной) проще всего получить с помощью программы CHKDSK,
вxодящей в MS DOS (она также выдает очень важные сведения об объеме
памяти, занятой сбойными кластерами, и количестве скрытых файлов),
хотя имеется целый ряд других программ с аналогичными функциями
(SMAP, MEMANAL, MEMSTAT и др). В случае наличия опасности
заражения вирусом полезно включить вызов CHKDSK в файл
AUTOEXEC.BAT, а за ним поместить строку с данными, которые получены
при загрузке на незараженной системе, например:

c:\dos\chkdsk
echo ПРОВЕРЬТЕ СООТВЕТСТВИЕ ПОЛУЧЕННЫХ ЗНАЧЕНИЙ ЭТАЛОННЫМ !
echo 188416 in 8 hidden, 61440 in bad, 655360 totalmem, pause
515424 free memory

Функционирование резидентного файлового вируса можно представить
как две стадии: стадию инсталляции и стадию слежения. При запуске
зараженной программы управление получает инсталлятор, который
обеспечивает закрепление вируса в оперативной памяти, перехват
требуемых прерываний и, возможно, маскировку (с целью затруднить
свое обнаружение среди резидентных программ). Эта фаза работы резидентного
вируса получила название фазы инсталляции. В дальнейшем
каждый раз при возникновении одного из перехваченных вирусом прерываний
управление получает один из модулей обработки соответствующего
прерывания. При этом вирус может анализировать поступивший
запрос и, в зависимости от его вида, выполнять те или иные действия.
Например, загрузка программы в оперативную память и ее выполнение
в MS DOS реализованы с помощью прерывания 21-2B. Если вирус
перехватывает это прерывание, то он может определить имя файла, из
которого выполняется загрузка, и заразить программу в этом файле.
Следует также отметить, что способ поиска "жертвы" у резидентных
вирусов существенно отличается от способа, используемого нерезидентными
вирусами. Нерезидентные вирусы получают управление после
загрузки в память зараженной программы, а затем ищут файл-жертву,
используя параметры PATH, СOMSPEC или другую информацию о расположении
выполняемых программ. Если жертва найдена, то она заражается,
а затем управление возвращается зараженной программе. Резидентные
вирусы реагируют на определенные прерывания. Получив управление
после перехваченного прерывания, они выполняют соответствующие
действия. Как уже указывалось, обычно резидентные файловые вирусы
выполняют заражение запускаемых программ (по прерыванию 21-4B),
однако наиболее инфицирующие из резидентных вирусов заражают файлы
при их открытии или чтении. Например, вирус RCE-1800, кроме указанных
действий перехватывает и прерывания по чтению, заражая, в
частности, оба файла, копируемые командой COPY, если хотя бы один
из них имеет расширение ЕХЕ или СОМ.

2.4.3. Структура бутового вируса

Бутовые вирусы являются весьма специализированной разновидностью
резидентных файловых вирусов. Упрощенно бутовый вирус можно представить
себе как специализированный резидентный вирус, который заражает
единственный "файл" є загрузочный сектор гибкого или жесткого
диска. Четкой границы между резидентными файловыми вирусами и
бутовыми вирусами не существует: в последнее время появились гибриды,
сочетающие заражение файлов с заражением бутсектора винчестера.
Это подчеркивает близость основных принципов организации
этих двух типов вирусов.
Этот тип вирусов распространяется, инфицируя дискеты, причем как
загружаемые (т.е. содержащие копию MS DOS), так и незагружаемые
(т.е. содержащие любую информацию). Заражение незагружаемых дискет
связано с определенным психологическим расчетом, который, к сожалению,
слишком часто оправдывается: при перезагрузке MS DOS пользователи
обычно забывают проверить, вставлена ли дискета в дисковод
A, и часто перезагрузка выполняется с вставленной в указанный
дисковод дискетой, с которой вирус и попадает на винчестер.
Инфицированная дискета всегда содержит часть кода вируса в бутсекторе,
поэтому бутовые вирусы легко обнаружить. При просмотре
бутсектора дискеты на незараженном компьютере легко видеть изменения
загрузчика (дамп стандартного бутсектора приведен в прил.6).
Структура стандартного загрузчика лишь незначительно меняется от
версии к версии MS DOS, поэтому изменения легко выявить визуально
(особенно первых трех байтов, содержащих команду JMP на начало
загрузчика) или с помощью подходящей программы (Scan, Aidstest и
др.). Такая проверка должна обязательно проводиться для всех поступающих
дискет.

Как уже указывалось, файловые вирусы обычно состоят из одного
сегмента. Впрочем, первую команду JMP, подставляемую большинством
файловых вирусов, дописывающих свое тело в конец COM-файла, можно
рассматривать как вырожденный сегмент. Бутовый вирус всегда состоит
из нескольких сегментов. Обычно таких сегментов два и мы будем
называть их головой и хвостом.
Положение головы бутового вируса на дискете определено однозначно:
она всегда расположена в бутсекторе и занимает ровно сектор.
На винчестере ситуация немного сложнее: голова бутового вируса может
располагаться в одном из его двух бутсекторов - главном (MBR -
Master Boot Record, расположенный по абсолютному дисковому адресу
0/0/1) или бутсекторе логического диска С, обычно занимающего первый
сектор соответствующего логического диска. Для наиболее распространенных
40 M винчестеров это обычно абсолютный сектор 18
(при 17 секторах на трек его адрес равен 1/0/1).
Хвост бутового вируса может располагаться в разных местах, например:
кластерах, отмеченных на диске как сбойные и тем самым исключенных
из дальнейшего распределения (псевдосбойные кластеры);
последних физических секторах дискеты или винчестера, поскольку
они обычно всегда свободны (например, 40/39/8 для обычных 360К дискет);
в неиспользуемых блоках FAT, главного каталога или одного
из подкаталогов; дополнительных дорожках дискеты или винчестера
(41 и последующие дорожки для 360К дискет).
В любом случае хвост вируса должен содержать копию оригинального
бутсектора, и если она хранится не в закодированном виде, то положение
хвоста в большинстве случаев можно определить глобальным
контекстным поиском по дискете или винчестеру (исключением является
случай использования для хвоста дополнительных дорожек на дискете
или винчестере). В минимальном варианте хвост может состоять
только из одного сектора с оригинальным бутсектором.
Для всех бутовых вирусов механизм заражения однотипен. Когда MS
DOS загружается с зараженного диска, бутовый вирус получает управление
и сначала копирует себя в старшие адреса памяти. Затем он
уменьшает размер памяти, заменяя значение вектора прерываний A2h с
тем, чтобы защитить резидентную часть вируса, и 13h с тем, чтобы
перехватывать обращения к диску. Таким образом, при любом обращении
к диску управление получает обработчик этого прерывания, составляющий
основную часть тела вируса. После этих действий вирус
запускает стандартный системный загрузчик, который загружает
IBMBIO.COM и IBMDOS.COM (или IO.SYS и MSDOS.SYS), т.е. происходит
стандартная загрузка системы.
Получив управление по прерыванию по чтению, вирус анализирует,
относится ли оно к дискете или к винчестеру. Если это прерывание
относится к дискете, то сначала вирус проверяет, заражена уже данная
дискета или нет. Для этой цели считывается бутсектор и проверяется
его содержимое. Если дискета еще не заражена, то вирус заражает
дискету, а затем обрабатывает команду READ. В случае, если
дискета уже заражена, вирус сразу переходит к обработке команды
READ; так же он поступает в случае, если дискета защищена от записи.

Что касается места, в котором бутовый вирус прячет свой хвост,
то как было отмечено выше, оно различается от вируса к вирусу.
Наиболее часто бутовые вирусы размещают свой хвост в свободном
кластере(ах), который помечается как сбойный. Последнее необходимо
для того, чтобы занятый вирусом кластер(ы) не был использован MS
DOS при создании нового файла и вместе с тем является неплохим методом
маскировки, поскольку пользователи обычно плохо представляют
структуру диска и не следят за количеством сбойных кластеров на
нем.
Еще раз подчеркнем, что бутовые вирусы инфицируют любые дискеты,
а не только системные. Как уже указывалось, это связано с тем, что
с несистемной дискеты также может выполняться попытка загрузки MS
DOS. Чаще всего такая ситуация возникает после зависания операционной
системы. Если при перезагрузке инфицированная дискета окажется
в "готовом" дисководе А, то естественно, загрузка будет сначала
выполняться с нее. В этом случае программа начальной загрузки
считывает зараженный ВООТ и передает ему управление. Вирус загружает
себя в оперативную память и имитирует сообщение, выдаваемое в
этом случае стандартным загрузчиком:

Non system disk

При этом, если пользователь откроет дисковод с дискетой и нажмет
клавишу Enter (Ввод), то вирус останется в памяти, заразит винчестер
и в дальнейшем будет заражать все вставляемые дискеты, к которым
производится хотя бы одно обращение (достаточно команды
DIR). Все бутовые вирусы перехватывают 13 прерывание (см. прил. 8)
и поэтому обычно конфликтуют с драйверами, поддерживающими нестандартные
форматы (например, 720 K). В лучшем случае при этом происходит
зависание системы или выдача сообщения о делении на нуль. В
худшем случае операционная система остается работоспособной, на
дискету что-то пишется, но потом ничего прочитать с нее нельзя.

Особое внимание стоит обратить на тот факт, что некоторые бутовые
вирусы перехватывают прерывание с клавиатуры и могут пережить в
оперативной памяти мягкую перезагрузку (т.е. перезагрузку с помощью
нажатия клавиш Ctrl-Alt-Del). Из выявленных в CCСР вирусов к
этому типу относится вирус WM-1F (Joshy).
Как уже отмечалось, голова бутового вируса всегда находится в
бутсекторе и для контроля дискет на зараженность можно просто просмотреть
содержимое бутсектора. В целом даже это не является необходимым.
Поскольку подавляющее большинство дискет не является загружаемыми,
можно профилактически разрушать содержимое бутсектора
таких дискет. В частности, там можно хранить информацию о времени
и источнике получения дискеты или какие-то указания по ее использованию.
Достаточно разрушить первые три байта бутсектора, чтобы
нейтрализовать любой бутовый вирус. Это можно сделать с помощью
программ Norton Utilitis, PC Tools и DEBUG. Для профилактического
разрушения бутсектора можно использовать специальную утилиту, например,
DEBOOT В.Пономаренко.
Следует отметить, что число известных чисто бутовых вирусов намного
меньше, чем файловых и, кроме того, скорость их размножения
ниже (число дискет заведомо меньше, чем количество файлов на них).
В целом, заражение "чистым" бутовым вирусом является признаком
беспечности и недостаточной квалификации пользователя в значительно
большей степени, чем заражение файловым вирусом. При соблюдении
приведенных выше несложных рекомендаций его можно полностью исключить.


2.5. Панацеи не существует
(общая классификация средств защиты)

"Специалист подобен флюсу,
полнота его одностороння"
Козьма Прутков

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

Простейшим средством защиты от вируса является программа, позволяющая
составить список зараженных программ. Мы будем называть такую
программу детектором. В качестве детектора могут использоваться
и имеющиеся программы, способные выполнять поиск строки в файле
или, желательно, в файлах на заданном диске или каталоге. Детектор
может быть и резидентным. В этом случае после загрузки программы
он проверяет ее на зараженность и, только если вирус не обнаружен,
передает ей управление.
Вторым и наиболее распространенным средством защиты от вирусов
являются так называемые фаги є программы, "выкусывающие" вирус из
зараженной программы и тем самым восстанавливающие ее в виде,
близком к первоначальному. Операция выкусывания не всегда бывает
успешной. Фаги также могут быть резидентными, однако из-за значительного
объема резидентные фаги встречаются редко.
Третьим видом антивирусных программ являются резидентные программы,
контролирующие подозрительные действия запускаемых программ
и блокирующие их либо "молча", либо выдавая сообщение пользователю,
который может разрешить действие или запретить (в последнем
случае программа, предпринявшая опасное действие, может
закончиться аварийно). Будем называть такие программы сторожами.
При этом дисковые драйверы, обеспечивающие возможность сегментации
винчестера и присваивания отдельным разделам статуса READ ONLY,
можно рассматривать как специальную разновидность сторожей.
Четвертый тип є это программы-ревизоры, которые подсчитывают
контрольные суммы и другие параметры файлов и сравнивают их с эталонными.
Последние обычно хранятся в отдельном файле. Этот вид
контроля представляется наиболее надежным, т.к. при отсутствии в
оперативной памяти резидентного компьютерного вируса позволяет выявить
все измененные программы независимо от причины, вызвавшей
эти изменения. Подобно остальным типам программ ревизоры могут
быть резидентными. Последние загружают в память программу, подсчитывают
ее контрольную сумму и, если она совпадает с записанной в
специальном поле файла или элемента каталога данного файла, то передают
ей управление. В противном случае выдается предупреждающее
сообщение, и выполнение программы блокируется. Следует отметить,
что если записать зараженную программу в файловую систему, все остальные
файлы которой систематически контролируются ревизором, то
наличие вируса может быть выявлено по заражению других программ
для большинства, но не для всех типов вирусов. Поэтому очень важно,
чтобы в момент запуска программы-ревизора было достоверно известно,
что в оперативной памяти нет резидентного вируса. Этого
можно достичь, загрузившись с эталонной, защищенной от записи, дискеты
или разместив все компоненты операционной системы в разделе
винчестера, имеющего статус READ ONLY. Более подробно вопросы применения
антивирусных средств рассмотрены в главе 10.

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

Пассивная вакцина представляет собой пакетную программу, которая
за один вызов обрабатывает специальным образом файл или все файлы
на диске либо в каталоге. Обычно при такой обработке проставляется
признак, который вирус использует для того, чтобы отличить зараженные
программы от незараженных. Например, некоторые вирусы дописывают
в конец зараженных файлов определенную строку (скажем,
"MsDos"). Если искусственно дописать в конец всех программ эту
строку, то такие программы не будут заражаться вирусом, поскольку
он будет считать, что они уже заражены. Обработанная таким образом
программа является вакцинированной против данного вируса, причем
операция вакцинации является обратимой: когда опасность заражения
будет ликвидирована, строку можно из файла удалить. Другие вирусы
проставляют в поле даты заражаемых программ значение секунд, равное
62 (MS DOS допускает запись такого явно нереального значения).
Вакцина может проставить этот признак у всех выполняемых программ,
которые тем самым будут защищены от заражения данным типом вируса.
В этом случае вакцинирование является необратимым в том смысле,

что восстановить первоначальное значение секунд не удастся, хотя
они, конечно, могут быть сброшены.
Активные вакцины являются резидентными программами, действие которых
обычно основано на имитации присутствия вируса в оперативной
памяти. Поэтому они обычно применяются против резидентных вирусов.
Если такая вакцина находится в памяти, то когда при запуске зараженной
программы вирус проверяет, находится ли уже в оперативной
памяти его копия, вакцина имитирует наличие копии. В этом случае
вирус просто передает управление программе-хозяину, и его инсталляция
не происходит. Простейшие вакцины представляют собой выделенный
и слегка модифицированный (лишенный способности к размножению)
вирус. Поэтому они могут быть оперативно изготовлены, быстрее,
чем программы-фаги. Более сложные вакцины (поливакцины) имитируют
наличие в оперативной памяти нескольких вирусов.
Конечно, приведенный список не исчерпывает всего многообразия
антивирусных программ, хотя и охватывают основные их разновидности.
Каждая из антивирусных программ подобна узкому специалисту в
определенной области, поэтому оптимальной тактикой является комплексное
применение нескольких типов антивирусных средств. Более
подробно вопросы применения антивирусных средств рассмотрены в
главе 10. Список отечественных антивирусных средств, распространяемых
бесплатно и опубликованных в бюллетене СОФТПАНОРАМА, приведен
в прил. 5.

2.6. Жизненный цикл компьютерных вирусов

"Где начало того конца,
которым оканчивается начало ?"
Козьма Прутков

Следует различать два основных действия (фазы), выполняемые компьютерным
вирусом: размножение и проявление. Размножение обычно
является первым и обязательным действием вируса при получении им
управления. Фаза проявления, на которой выполняются несанкционированные
действия, может чередоваться с размножением, начинаться
через определенный (инкубационный) период или при сочетании некоторых
условий. Она может заключаться в изощренных визуальных или
звуковых эффектах, включать или исключительно состоять из нанесения
повреждений файловой системе. Повреждения могут быть массированными,
когда например, стирается FAT и другие системные блоки,
или наоборот, распределенными, когда довольно часто выполняются
небольшие, трудно обнаруживаемые повреждения. У ряда вирусов фаза
проявления отсутствует, т.е. помимо размножения они никаких несанкционированных
действий не выполняют. В то же время, любой вирус
обладает рядом побочных эффектов, которые не были предусмотрены
при создании вируса, но которые фактически относятся к его проявлениям.
Наиболее частым побочным эффектом является зависание операционной
системы или потеря работоспособности некоторых (чаще
всего резидентных) программ. Другим важным побочным эффектом является
появление некоторых "необъяснимых" сообщений операционной
системы. Например, если при попытке запуска программы с защищенной
дискеты появлется хорошо знакомое любому пользователю MS DOS сообщение
Abort, Retry..., то это должно настораживать.

Наряду с указанными действиями, вирус может обладать определенной
латентной фазой, в течение которой никаких действий по своему
размножению или проявлению не предпринимается. Латентная фаза может
быть обусловлена определенным временным периодом (например,
определенным месяцем или годом), конфигурацией (например, вирус
может активизироваться только при попадании на винчестер) или аппаратными
особенностями (например, только на клонах IBM PC).

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

2.7. Среда обитания вирусов

Как уже указывалось выше, структурно компьютерный вирус можно
представить состоящим из двух частей: головы и хвоста.
Поскольку голова вируса так или иначе должна получить управление,
"среда обитания" головы компьютерного вируса может располагаться
только в прямо или косвенно исполняемых программах. Не следует
бояться, что вирус может быть перенесен через файл данных.
Применительно к MS DOS для получения управления вирус должен
встроить свою голову в: загрузочные модули, такие как СOM-файлы,
EXE-файлы, оверлейные фазы сегментированных программ (это наиболее
распространенный случай и соответствующий тип вирусов будем называть
файловыми); бутсектор (этот случай также встречается достаточно
часто и соответствующие вирусы будем называть бутовыми);
таблицу разделов винчестера (Partition Table), в начале которой
содержится так называемый Master Boot (фактически это частный случай
предыдущего и такая стратегия заражения может использоваться
только применительно к винчестеру, т.е. комбинироваться с предыдущей);
драйвер; объектный модуль; библиотеку компилятора; BATфайл;
исходный текст программы на алгоритмическом языке (в расчете
на его компиляцию); промежуточный код некоторого достаточно распространенного
интерпретируемого языка, например dBASE или
CLIPPER. Поэтому необходим постоянный контроль за целостностью информации,
содержащейся в элементах перечисленных типов. Проще всего
этот контроль выполнять с помощью специальной программы-ревизора.

Что касается места, где вирус может расположить свою голову, то
для существующих вирусов характерны следующие: область стека некоторой
системной программы (RC-0-346); начало, конец или середина
исполняемого файла; бутсектор; MBR.
Поскольку хвост вируса не должен получать управление непосредственно,
количество мест его расположения существенно больше и здесь
многое зависит от изобретательности автора вируса. Сегментация в
настоящее время характерна только для бутовых вирусов, и применительно
к ним можно отметить следующие варианты расположения
хвоста: один или группа кластеров, помеченных как сбойные (самый
распространенный вариант); неиспользуемые блоки нулевой дорожки
винчестере после MBR; неиспользуемые блоки системных таблиц, таких
как FAT, главный каталог или один из подкаталогов и т.д.; специально
созданный файл с атрибутами HIDDEN и/или SYSTEM; "хвосты"
последних, заполненных частично, кластеров имеющихся файлов (например,
системных); "дополнительные" дорожки на дискете или винчестере
(например, 40 и более старшие дорожки дискеты).
Для файловых вирусов сегментация может использоваться для размещения
хвоста в неиспользуемых секторах последнего кластера файла,
однако такой способ в настоящее время применяется только в вирусе
RC-0-512 и, как оказалось, обладает существенными недостатками. В
частности, команда COPY MS DOS не копирует информацию из неиспользуемых
секторов последнего кластера. В результате при копировании
зараженного файла хвост вируса теряется и скопированная программа
становится неработоспособной.

2.8. Симптомы заражения

"Если на клетке слона прочтешь над-
пись"буйвол", не верь глазам своим"
Козьма Прутков

Существуют определенные признаки, указывающие на поражение программы
или диска вирусами. Помимо очевидных, связанных с демонстрационным
эффектом, характерным для данного вируса, к ним можно
отнести следующие: изменение длины командного процессора
(COMMAND.COM); выдача сообщений типа WRITE PROTECT ERROR при чтении
информации, при загрузке программ с защищенных от записи дискет;
изменение длины и/или даты создания программы (их рекомендуется
просматривать с помощью Norton Commander или другой оболочки,
непосредственно интерпретирующей содержимое каталогов); программа
выполняется медленнее, чем обычно; возрастание времени загрузки,
зацикливание при загрузке; необъяснимые обращения к дискетам или
файлам на защищенных разделах винчестра; потеря работоспособности
некоторых резидентных программ или драйверов; аварийное завершение
ранее нормально функционировавших программ; необъяснимые зависания
или перезагрузки системы; уменьшение объема системной памяти или
свободной памяти после загрузки. Резкое уменьшение доступной дисковой
памяти, хотя файлы не добавлялись и не удалялись; появление
новых сбойных кластеров, дополнительных скрытых файлов или других
изменений файловой системы (выявляются запуском CHKDSK или другой
подходящей утилиты);
Конечно, приведенные признаки носят эвристический характер и могут
наблюдаться на "здоровых" компьютерах по причинам, совершенно
не связанным с вирусами. Тем не менее, появление каких-то аномалий
должно сразу настораживать пользователя. Если после перезагрузки с
защищенной дискеты некоторые из этих признаков исчезают, то есть
смысл провести более или менее полное тестирование с помощью программы
ревизора (только не при загруженной с винчестера и возможно
зараженной операционной системе), а также визуально сравнить содержимое
бутсектора и таблицы разделов с эталонными. Полезно также

Список страниц

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +380504468872

© Ассоциация электронных библиотек Украины

☝ Все материалы сайта (включая статьи, изображения, рекламные объявления и пр.) предназначены только для предварительного ознакомления. Все права на публикации, представленные на сайте принадлежат их законным владельцам. Просим Вас не сохранять копии информации.