Реферат: Заражения вирусом программных файлов
Как уже указывалось,файловые вирусы обычно состоят из одного сегмента. Впрочем, первую команду JMP , подставляемую боль - шинством файловых вирусов, дописывающих свое тело в конец файла, можно рассматривать как вырожденный сегмент. Бутовый вирус всегда состоит из нескольких сегментов. Обычно таких сегментов два: голова и хвост. Положение головы бутового вируса на дискете определено однозначно : она всегда располо - жена в бут-секторе и занимает ровно сектор . Hа винчестере ситуация немного сложнее: голова бутового вируса может рас - полагаться в одном из его двух бут-секторов - главном (MBR - MASTER BOOT RECORD), расположенном по абсолютному дисковому адресу 0/0/1,или бут-секторе логического диска C, обычно занимающего первый сектор соответствующего логического диска.
Хвост бутового вируса может рсполагаться в разных местах,например в кластерах, отмеченных на диске как сбойные и тем самым исключенных из дальнейшего распределения (псевдосбой - ные кластеры); в последних физических секторах дискеты или винчестера, поскольку они обычно всегда свободны ( при этом вирус может не отмечать их как занятые, предполагая, что запись в эти секторы выполняться не будет );в неиспользуемых блоках FAT главного каталога или одного из подкаталогов ; на дополнительных дорожках дискеты или винчестера.
Обычно хвост вируса содержит копию оригинального бут - сектора, и если она храниться в незакодированном виде, то положение хвоста в большинстве случаях можно определить глобальным контекстным поиском по дискете или винчестеру ( ис - ключением является случай использования для хвоста дополни - тельных дорожек на дискете или винчестере ). В минимальном варианте хвост может состоять только из одного сектора с оригинальным бут-сектором.
Для всех бутовых вирусов механизм заражения однотипен. Когда MS-DOS загружается с зараженного диска , бутовый вирус получает управление и сначала копирует себя в старшие адреса памяти. Затем он уменьшает размер памяти, заменяя значение, хранящееся по адресу 0040:0013 ( слово, соответствующее вектору прерываний 12h ), с тем, чтобы защитить резидентную часть вируса, и перехватывает прерывание 13h с тем, чтобы перехватывать обращения к диску. Таким образом, при любом обращении к диску управление получает обработчик этого пре - рывания, составляющий основную часть тела вируса .После этих действий вирус запускает стандартный системный загрузчик, который загружает ibmbio.com и ibmdos.com ( или io.sys и msdos.sys), т.е. происходит стандаотная загрузка системы.
Получив управление по прерыванию по чтению, вирус анализирует, относится он к дикете или к винчестеру.Если это прерывание относится к дискете, то сначала вирус проверяет, заражена уже данная дискета или нет.Для этой цели считывается бутсектор и проверяется его содержимое. Если дискета еще не заражена, то вирус заражает дискету, а затем обрабатывает команду read. Если дискета уже заражена, вирус сразу переходит к обработке команды read; также он поступает в случае, если дискета защищена от записи .
Как было отмечено выше, хвост бутового вируса может распо - лагаться в разныйх местах. Hаиболее часто бутовые вирусы размещают свой хвост в свободном кластере (ах), помечаемом как сбойный. Последнее необходимо для того, чтобы занятый вирусом кластер (ы) не был использован MS-DOS при создании нового файла, и в то же время является неплохим методом маскировки, посколку пользователи обычно плохо представляют структуру диска и не следят за количеством сбойных кластеров на нем.
Бутовые вирусы инфицируют любые дискеты, а не только системные, поскольку с не несистемной дискеты также может выпол - няться попытка загрузки MS-DOS. Чаще всего такая ситуация возникает после зависания операционной системы. Если при перезагрузке инфицированная дискета окажется в "готовом" дис - ководе A , то естествено загрузка будет сначала выполнятся с нее.В этом случае программа начальной загрузки считывает зараженный бут-сектор и передает ему управление. Вирус загру - жает себя в оперативную память и имитирует сообщение, выда - ваемое в этом случае стандартным загрузчиком ( " Non system disk " ). При этом если пользователь откроет дисковод с дискетой и нажмет клавишу Enter (Ввод), то вирус останется в памяти, заразит винчестер и в дальнейшем будет заражать все вставляемые дискеты , к которым обращались хотя бы раз (достаточно команды DIR).Поскольку все бутовые вирусы перехватывают прерывание 13h, они обычно конфликтуют с драйверами, поддерживающими нестандартные форматы ( например, 720 К). В
лучшем случае при этом происходит зависание системы или выдача сообщения о делении на ноль.В худшем случае операционная система остается работоспособной, на дискету что-то пишется но потом ничего прочитать с нее нелзя.Особое внимание следует обратить на тот факт , что бутовые вирусы перехва - тывают преравание с клавиатуры и могут пережить в оперативной памяти мягкую перезагрузку( т.е. перезагрузку с помощью нажатия клавиш Ctrl-Alt-Del ).
Следует отметить, что число известных чисто бутовых вирусов намного меньше , чем файловых, и, кроме того, скорость их размножения ниже (число дискет заведомо меньше, чем количество файлов на них). В целом заражение "чистым" бутовым вирусом является признаком беспечности и недостаточной квалификации пользователя в большей степени ,чем заражение фай - ловым вирусом.
Поскольку резкого отличия между файловыми и бутовыми виру - сами нет, некоторые вирусы являются смешанными и заражают как файлы, так и бут-секторы.Такие "гибридные вирусы" имеют более высокую инфицирующую способность, чем "чистые" типы, однако выявляются легче,чем файловые вирусы,поскольку имеют фиксированное место заражения на винчестере, целостность которого обычно контролируется большинством ревизоров.Помимо зараженных исполняемых файлов, файловобутовые вирусы могут переноситься на дискетах, содержащих только файлы дан - ных,как обычные бутовые вирусы . Кроме того, загружаясь из MBR, легче обойти резидентные средства контроля, поскольку инсталяция вируса проходит на "чистой" машине.
АКТИВHЫЕ СТЕЛС - ВИРУСЫ
Hемного о том, что такое стелс - вирусы. Этим термином называют вирусы, в алгоритмах которых заложена возможность мас - кировать свое присутствие в зараженной машине. Первые вирусы не обладали такими возможностями и их легко было обнаружить при визуальном просмотре исполняемых файлов на зараженной машине. Применение даже простейших антивирусных средств не - медленно останавливало распространение таких вирусов, и они перестали вызывать эпидемии. Появление антивирусных программ привело к новом витку в развитии технологии написания виру - сов, и появление вирусов - невидимок стало естественным ша - гом в таком развитии. Вирусы, использующие приемы маскировки нельзя увидеть средствами операционной системы ( например, нажав в VC или NC клавишу F3 ). Это происходит потому, что вирус, активно работающий вместе с операционной системой, при открытии файла на чтение немедленно удалил свое тело из зараженного файла, а при закрытии файла заразил его опять. Это только один из возможных приемов маскировки, существуют и другие. Так же маскируются и загрузочные (бутовые) вирусы При попытке прочитать ВООТ (загрузочный) сектор они заменяют его оригинальнам, не зараженным.
Hо способность к маскировке оказалась слабым местом стелс - вирусов, позволяющим легко обнаружить их наличие на машине. Достаточно сравнить информацию о файлах, выдаваемую DOS, с фактической, содержащейся на диске, и несовпадение данных однозначно говорит о наличии вируса. То есть способность к к маскировке демаскирует эти вирусы !!!
КЛАССИФИКАЦИЯ АHТИВИРУСHЫХ ПРОГРАММ
Антивирусы можно классифицировать по пяти основным группам: фильтры, детекторы, ревизоры, доктора и вакцинаторы.
Антивирусы-фильтры ( сторожа ) - это резидентные программы, которые оповещают пользователя о всех попытках какой-либо программы записаться на диск, а уж тем более отформатировать его , а также о других подозрительных действиях (например о попытках изменить установки CMOS). При этом выводится запрос о разрешении или запрещении данного действия. Принцип работы этих программ основан на перехвате соответствующих векторов прерываний. К преимуществу программ этого класса по сравнению с программами-детекторами можно отнести универсальность по отношению как к известным,так и неизвестным вирусам,тогда как детекторы пишутся под конкретные,известные на данный момент программисту виды. Это особенно актуально сейчас,когда появилось множество вирусов-мутантов,не имеющих постоянного кода. Однако, программы-фильтры не могут отсле - живать вирусы, обращающиеся непосредственно к BIOS, а также BOOT-вирусы, активизирующиеся ещe до запуска антивируса, в начальной стадии загрузки DOS. К недостаткам также можно отнести частую выдачу запросов на осуществление какой-либо операции: ответы на вопросы отнимают у пользователя много времени и действуют ему на нервы. При установке некоторых антивирусов-фильтров могут возникать конфликты с другими резидентными программами, использующими те же прерывания, которые просто перестают работать.
Наибольшее распространение в нашей стране получили программы-детекторы,а вернее программы, объединяющие в себе детек - тор и доктор. Наиболее известные представители этого класса- -Aidstest, Doctor Web, MicroSoft AntiVirus далее будут рас - смотрены подробнее. Антивирусы-детекторы расчитаны на конк - ретные вирусы и основаны на сравнении последовательности кодов содержащихся в теле вируса с кодами проверяемых программ.
Такие программы нужно регулярно обновлять, так как они быстро устаревают и не могут обнаруживать новые виды вирусов. Ревизоры - программы, которые анализируют текущее состоя - ние файлов и системных областей диска и сравнивают его с информацией, сохранённой ранее в одном из файлов данных ре - визора. При этом проверяется состояние BOOT-сектора, таб - лицы FAT, а также длина файлов, их время создания, атри - буты, контрольная сумма. Анализируя сообщения программы-ре - визора, пользователь может решить, чем вызваны изменения: вирусом или нет. При выдаче такого рода сообщений не следует предаваться панике, так как причиной изменений, например, длины программы может быть вовсе и не вирус.Самые изощренные антивирусы - вакцинаторы. Они записывают в вакцинируемую программу признаки конкретного вируса так, что вирус считает ее уже зарaженной.Таким образом, вирус не может заразить эту программу. Вакицины могут быть пассивные и активные.
Пассивная вакцина представляет собой пакетную программу, которая за один вызов обрабатывает специальным образом файл или все файла на диске либо в каталоге .Обычно при такой обработке проставляется признак,который вирус использует для того, чтобы отличить зараженные программы от незараженных. Hапример, некоторые вирусы дописывают в конец зараженных файлов определенную строку. Если искусственно дописать в конец всех программ эту строку, то такие программы не будут заражаться вирусом, поскольку он будет считать, что они уже заражены.Обработанная таким образом программа является вак - цинированной против данного вируса, при чeм операция вакци - нации является обратимой: когда опасность заражения будет ликвидированна, строку можно из файла удалить. Другие вирусы проставляют в поле даты заражаемых программ значение секунд, равное 62(MS-DOS допускает запись такого явно нереального значения).
Вакцина может проставить этот признак у всех выполняемых программ, которые тем самым будут защищены от заражения данным типом вируса. В этом случае вакцинирование является не - обратимым в том смысле, что восстановить первоначальное значение скунд не удастся,хотя они,конечно,могут быть сброшены.
Активные вакцины являются резидентными программами, действие которых основано на имитации присутствия вируса в оператив - ной памяти.Поэтому они обычно применяются против резидентных вирусов.Если такая вакцина находится в памяти, то, когда при запуске зараженной программы вирус проверяет, находится ли уже в оперативной памяти его копия , вакцина иметирует наличие копии. В этом случае вирус просто передает управление программе - хозяину и его инсталляция не происходит. Прос - тейшие вакцины представляют собой выделенный и слегка моди - фицированный (лишенный спосбности к размножению) вирус.Поэ - тому они могут быть оперативно изготовлены - быстрей чем доктора.Боле сложные вакцины (поливакцины) имитируют наличие в оперативной памяти нескольких вирусов.
Конечно,приведенный список не исчерпывает всего многообразия антивирусных программ, хотя и охватывает основые их разно - видности. Каждая из антивирусных программ подобна узкому специалисту в определенной области, поэтому оптимальной тактикой является комплексное применение нескольких типов ан - тивирусных средств.
А теперь немного о некоторых антивирусах.
AIDSTEST
В нашей стране, как уже было сказано выше, особую популярность приобрели антивирусные программы, совмещающие в себе функции детекторов и докторов. Самой известной из них явля - ется программа AIDSTEST Д.Н.Лозинского. В России практически на каждом IBM-совместимом персональном компьютере есть одна из версий этой программы. Одна из последняя версия обнаруживает более 1100 вирусов.
Aidstest для своего нормального функционирования требует, чтобы в памяти не было резидентных антивирусов, блокирующих запись в программные файлы, поэтому их следует выгрузить, либо указав опцию выгрузки самой резидентной программе, либо воспользоваться соответствующей утилитой ( например в Волков Коммандере для этих целей есть специальный пункт в меню).
При запуске Aidstest проверяет себя оперативную память на наличие известных ему вирусов и обезвреживает их. При этом парализуются только функции вируса, связанные с размножением,
а другие побочные эффекты могут оставаться. Поэтому прог - рамма после окончания обезвреживания вируса в памяти выдает запрос о перезагрузке. Следует обязательно последовать этому совету, если оператор ПЭВМ не является системным програм - мистом, занимающимся изучением свойств вирусов. При чем следует перезагрузиться кнопкой RESET, так как при "теплой пе - резагрузке" некоторые вирусы могут сохраняться. В добавок, лучше запустить машину и Aidstest с защищенной от записи дискеты, так как при запуске с зараженного диска вирус может записаться в память резидентом и препятствовать лечению.
Aidstest тестирует свое тело на наличие известных вирусов, а также по искажениям в своем коде судит о своем заражении неизвестным вирусом. При этом возможны случаи ложной тревоги,
например при сжатии антивируса упаковщиком.
Программа не имеет графического интерфейса и режимы ее работы задаются с помощью ключей.Указав путь, можно проверить не весь диск, а отдельный подкаталог.