Вход

Антивирусы и вирусы

Курсовая работа* по информатике и информационным технологиям
Дата добавления: 13 августа 2007
Язык курсовой: Русский
Word, rtf, 202 кб (архив zip, 33 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы

ВВЕДЕНИЕ

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

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

ПРОЦЕСС ЗАРАЖЕHИЯ

Упрощенно процесс заражения вирусом программных файлов можно представить следующим образом. Код зараженной программы обыч­но вирус получил управление первым до начала работы програм­мы - вирусоносителя.

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

СТРУКТУРА КОМПЬЮТЕРНОГО ВИРУСА

Наиболее распространенными типам компьютерных вирусов в MS DOS являются файловые нерезидентные, файловые резидентные и бутовые вирусы. Разбор анатомии компьютерных вирусов начнем с анализа структуры нерезидентного файлового вируса как простейшей разновидности этого класса системных программ.

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

реализация сегментированных файловых вирусов.

СТРУКТУРА ФАЙЛОВОГО НЕРИЗЕДЕНТHОГО ВИРУСА

Файловые вирусы являются наиболее распространенной разновидностью компьютерных вирусов. Принципиально они заражают любой вид исполняемых файлов, существующих в MS DOS:com,exe, ovl и т.д. Однако основными объектами заражения являются соm и ехе - файлы. Наиболее просто осуществляется заражение соm файлов, которые представляют собой почти точную копию участ­ка памяти с загруженной программы. Единственная требуемая настройка при загрузке com - файлов состоит в загрузке сегментных регистров значениями, соответствующими месту загруз­ки программы. Значительная часть com - файлов начинается с команды перехода, обходящей содержащиеся в начале программ данные.

При заражении com - файлов вирус запоминает в своем теле первые три (или больше) байта программы и вместо них записы­вает переход на начало собственного кода. Так поступает боль­шинство файловых вирусов, заражающих com - файлы, но не все. Дело в том, что при дописывании тела вируса в конец заражаемого файла весь код вируса должен быть написан специальным образом, обычно называемым позиционно-независимым программированием: при выполнении программы все ссылки должны адресоваться через смещения, которое обычно хранится в одном из регистров.

Некоторые вирусы используют более примитивный подход: вместо дописывания своего тела, в конец заражаемого com - файла они перемещают туда первые несколько блоков программы, а сами записываются на место освободившихся блоков. В этом случае только программа восстановления исходного состояния программы должна быть позиционно-независимой или размещаться где-то в фиксированных адресах памяти, используя какой-то неиспользу­емый ее участок.

Вставка тела вируса при заражении может выполняться не только в хвост файла. Встречаются случаи имплантации в начало или середину файла.

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

Вставка в конец файла. Это наиболее распространенный случай. При этом необходимо обеспечить передачу управления коду вируса до начала работы зараженной программы. Для файлов типа com чаще всего это реализуется заменой нескольких первых байтов программы (обычно трех на команду перехода ). При этом сами заменяемые байты обязательно должны быть

сохранены где-то в теле вируса, что обеспечивает возможность их восстановления. Когда инсталлятор вируса получает управление, то обычно в начале своей работы он восстанавливает, измененные вирусом байты в первоначальном виде.

Вставка в середину файла. Этот способ заражения встречается редко. Во-первых, этот способ используется вирусами поражаю­щими особый класс программ, особенности, структуры которого заранее известны, например, только файл command.com. Во-вторых, и это наиболее частый случай, вставка в середину возможна путем перебрасывания замещаемых блоков в конец файла. В част­ном случае, когда заражаемый файл содержит область нолей или других повторяющихся байт достаточного размера, вставка в середину происходит без увеличения длины программы, что затрудняет обнаружение зараженных файлов. Вставка в середину может произойти и случайно. Например, это происходит для обычных вирусов, цепляющихся к концу exe-файла, если в заго­ловке неправильно указана его длина т.е. часть используемая в качестве буфера или неявного оверлея. В этом случае вирус считает, что файл имеет длину, указанную в заголовке, и запи­сывает свой код в область буфера или оверлея. При этом он оказывается в середине действительно занимаемого данной программой файла. И наконец, файл может быть заражен несколь­кими вирусами, однотипно заражающими файл ( обычно дописы­вающими свой код в конец файла ). В этом случае вирус, пер­вым заразившим данный файл, оттесняется к середине файла последующими вирусами. Являясь сравнительно редкими, указан­ные случаи довольно часто не учитываются создателями антиви­русных программ, в частности детекторов и фагов, которое, увлекаясь оптимизацией времени выполнения своих программ, принимают " слишком сильные " допущения о расположении кода вируса в теле зараженной программы. В результате файл может быть не детектирован как зараженный или вылечен неправильно. Как уже указывалось, при вставке в конец или середину файла вирус должен каким-то образом обеспечить передачу себе управлению. При этом необязательно изменять именно первые байты программы. Возможно изменение других байтов. Например, если программа начинается с команды безусловного перехода, вирус может определять адрес перехода и модифицировать команды, расположенные по этому адресу. Поэтому часто выска­зываемое мнение о том, что для нейтрализации вируса в зараженном файле достаточно восстановить его первые байты, следует признать неверным.

СТРУКТУРА ФАЙЛОВОГО РЕЗИДЕНТНОГО ВИРУСА

Файловые резидентные вирусы, помимо отдельных файлов, заражают, если так можно выразится, и память компьютера. Предельно упрощая, память компьютера можно рассматривать как еще один файл, который можно заражать, дописываясь " в голову ", т.е. в область младших адресов свободного участка памяти, " в хвост ", т.е. в область старших адресов свободного участка памяти, и, наконец, " в середину ", т.е. в область адресов уже используемых операционной системой или какой­ - нибудь программой.

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

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

и, возможно, обычные файлы (чаще всего commmand.com ). В последнем случае инсталлятор фактически является доработанным для заражения оперативной памяти файловым вирусом.

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

Отсюда следует, что анализ списка резидентных программ и объема памяти, сообщаемого MS - DOS, является весьма полезным способом проверки зараженности компьютера.

Функционирование резидентного файлового вируса можно представить как две стадии: инсталляции и слежения. При запуске зараженной программы управление получает инсталлятор, ко­торый обеспечивает укрепление вируса в оперативной памяти, перехват требуемых прерываний и, возможно, маскировку(с целью затруднить свое обнаружение среди резидентных программ). Эта фаза работы называется фаза инсталляции. В дальнейшем каждый раз при возникновении одного из перехваченных вирусом преры­ваний управление получает модуль обработки соответствующего прерывания. При этом вирус может анализировать поступивший запрос и в зависимости от его вида выполнять те или иные действия. Например, в MS-DOS загрузка программы в оперативную память (с последующим выполнением и без оного) реализовано с помощью функции 4Bh прерывания 21h (Exec). Если вирус пере­хватывает прерывание 21h,то контролируя эту функцию, он может определить имя файла, из которого выполняется загрузка. Тем самым появляется возможность заразить программу в этом файле. Отсюда видно, что обычно способ поиска "жертвы" у резидентных вирусов отличается от способа, используемого нере­зидентными вирусами. Нерезидентные вирусы получают управление после загрузки в память зараженной программы, а затем ищут файл-жертву, используя параметры PATH или другую информацию о расположении выполняемых программ. Если жертва найдена, то она заражается, а затем управление возвращается зараженной программе. Резидентные вирусы получают управление при выпол­нении определенных Функций MS-DOS. Как правило, это функции обслуживания файловой системы. Получив управление при обраще­нии программы к определенной функции, они определяют контекст этого обращения (имя файла, соответствующего выполняемой про­грамме), а затем выполняют над этим файлом определенные действия (например, заражение ). Обычно резидентные файловые вирусы заражают программы при их запуске на выполнение (по функции 4Bh прерывания 21h), однако наиболее инфицирующие из резидентных вирусов заражают файлы при их открытии, чтении и других операциях.

СТРУКТУРА БУТОВОГО ВИРУСА

Бутовые вирусы являются весьма специализированными разновид­ности резидентных файловых вирусов . Упрощенно бутовый вирус можно представить себе как специализированный резидентный вирус, который заражает единственны " файл " - загрузочный сектор гибкого или жесткого диска. Четкого различия между резидентными файловыми вирусами и бутовыми вирусами не суще­ствует: в последнее время появились гибриды , сочетающие за­ражение файлов с заражением бут-сектора винчестера. Это подчеркивает близость основных принципов организации этих двух типов вирусов.

Распространяются бутовые вирусы путем инфицирования бут-сек­тора дискет, причем как загружаемых (содержащих копию MS - DOS ), так и не загружаемых (содержащих любую информацию). За­ражение не загружаемых дискет связано с определенным психологическим расчетом, который, к сожалению, слишком часто оправдывается : при перезагрузке MS-DOS пользователи обычно забывают проверить , вставлена ли дискета в дисковод A, и часто перезагрузка выполняется с вставленной в указанный ди­сковод дискетой, с которой вирус и попадает на винчестер.

Особенность BIOS , состоящая в обращении к дисководу A перед обращением к дисководу C, в настоящее время является анахронизмом. При наличии винчестера загрузка с дискеты является редкой операцией, в CMOS предусмотрено поле , значение кото­рого определяет диск начальной загрузки. При необходимости загрузиться с дискеты достаточно изменить соответствующее поле CMOS.

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

Как уже указывалось, файловые вирусы обычно состоят из одного сегмента. Впрочем, первую команду 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; также он поступает в случае, если дискета защищена от записи.

Как было отмечено выше, хвост бутового вируса может располагаться в разных местах. Наиболее часто бутовые вирусы размещают свой хвост в свободном кластере (ах), помечаемом как сбойный. Последнее необходимо для того, чтобы занятый вирусом кластер (ы) не был использован MS-DOS при создании нового файла, и в то же время является неплохим методом маскировки, поскольку пользователи обычно плохо представляют структуру диска и не следят за количеством сбойных кластеров на нем.

Бутовые вирусы инфицируют любые дискеты, а не только систем­ные, поскольку с не несистемной дискеты также может выполняться попытка загрузки MS-DOS. Чаще всего такая ситуация возникает после зависания операционной системы. Если при пе­резагрузке инфицированная дискета окажется в "готовом" дисководе A , то естественно загрузка будет сначала выполнятся с нее. В этом случае программа начальной загрузки считывает за­раженный бут-сектор и передает ему управление. Вирус загружает себя в оперативную память и имитирует сообщение, выдаваемое в этом случае стандартным загрузчиком ( " Non system disk " ). При этом если пользователь откроет дисковод с дис­кетой и нажмет клавишу Enter (Ввод), то вирус останется в памяти, заразит винчестер и в дальнейшем будет заражать все вставляемые дискеты, к которым обращались хотя бы раз (дос­таточно команды DIR).Поскольку все бутовые вирусы перехваты­вают прерывание 13h, они обычно конфликтуют с драйверами, поддерживающими нестандартные форматы (например, 720 К). В

лучшем случае при этом происходит зависание системы или вы­дача сообщения о делении на ноль. В худшем случае операцион­ная система остается работоспособной, на дискету что-то пишется, но потом ничего прочитать с нее нельзя. Особое внимание следует обратить на тот факт, что бутовые вирусы перехватывают прерывание с клавиатуры и могут пережить в оператив­ной памяти мягкую перезагрузку( т.е. перезагрузку с помощью нажатия клавиш Ctrl-Alt-Del ).

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

Поскольку резкого отличия между файловыми и бутовыми виру - сами нет, некоторые вирусы являются смешанными и заражают как файлы, так и бут-секторы. Такие "гибридные вирусы" имеют более высокую инфицирующую способность, чем "чистые" типы, однако выявляются легче, чем файловые вирусы, поскольку имеют фиксированное место заражения на винчестере, целостность которого обычно контролируется большинством ревизоров. Поми­мо зараженных исполняемых файлов, файловобутовые вирусы мо­гут переноситься на дискетах, содержащих только файлы данных, как обычные бутовые вирусы . Кроме того, загружаясь из MBR, легче обойти резидентные средства контроля, поскольку инсталляция вируса проходит на "чистой" машине.

АКТИВНЫЕ СТЕЛС - ВИРУСЫ

Немного о том, что такое стелс - вирусы. Этим термином назы­вают вирусы, в алгоритмах которых заложена возможность маскировать свое присутствие в зараженной машине. Первые вирусы не обладали такими возможностями и их легко было обнаружить при визуальном просмотре исполняемых файлов на зараженной машине. Применение даже простейших антивирусных средств не - медленно останавливало распространение таких вирусов, и они перестали вызывать эпидемии. Появление антивирусных программ привело к новом витку в развитии технологии написания виру - сов, и появление вирусов - невидимок стало естественным шагом в таком развитии. Вирусы, использующие приемы маскировки нельзя увидеть средствами операционной системы ( например, нажав в VC или NC клавишу F3 ). Это происходит потому, что вирус, активно работающий вместе с операционной системой, при открытии файла на чтение немедленно удалил свое тело из зараженного файла, а при закрытии файла заразил его опять. Это только один из возможных приемов маскировки, существуют и другие. Так же маскируются и загрузочные (бутовые) вирусы При попытке прочитать ВООТ (загрузочный) сектор они заменяют его оригинальным, не зараженным.

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

КЛАССИФИКАЦИЯ АHТИВИРУСHЫХ ПРОГРАММ

Антивирусы можно классифицировать по пяти основным группам: фильтры, детекторы, ревизоры, доктора и вакцинаторы.

Антивирусы-фильтры ( сторожа ) - это резидентные программы, которые оповещают пользователя о всех попытках какой-либо программы записаться на диск, а уж тем более отформатировать его , а также о других подозрительных действиях (например о попытках изменить установки CMOS). При этом выводится зап­рос о разрешении или запрещении данного действия. Принцип работы этих программ основан на перехвате соответствующих векторов прерываний. К преимуществу программ этого класса по сравнению с программами-детекторами можно отнести универ­сальность по отношению как к известным, так и неизвестным вирусам, тогда как детекторы пишутся под конкретные, известные на данный момент программисту виды. Это особенно актуально сейчас, когда появилось множество вирусов-мутантов, не имеющих постоянного кода. Однако, программы-фильтры не могут отслеживать вирусы, обращающиеся непосредственно к BIOS, а также BOOT-вирусы, активизирующиеся ещe до запуска антивируса, в начальной стадии загрузки DOS. К недостаткам также можно отнести частую выдачу запросов на осуществление какой-либо операции: ответы на вопросы отнимают у пользователя много времени и действуют ему на нервы. При установке некоторых антивирусов-фильтров могут возникать конфликты с другими резидентными программами, использующими те же прерывания, которые просто перестают работать.

Наибольшее распространение в нашей стране получили програм­мы-детекторы, а вернее программы, объединяющие в себе детектор и доктор. Наиболее известные представители этого класса- -Aidstest, Doctor Web, MicroSoft AntiVirus далее будут рас - смотрены подробнее. Антивирусы-детекторы рассчитаны на конкретные вирусы и основаны на сравнении последовательности ко­дов содержащихся в теле вируса с кодами проверяемых программ.

Такие программы нужно регулярно обновлять, так как они быст­ро устаревают и не могут обнаруживать новые виды вирусов. Ревизоры - программы, которые анализируют текущее состояние файлов и системных областей диска и сравнивают его с информацией, сохранённой ранее в одном из файлов данных ревизора. При этом проверяется состояние BOOT-сектора, таб - лицы FAT, а также длина файлов, их время создания, атри-буты, контрольная сумма. Анализируя сообщения программы-ревизора, пользователь может решить, чем вызваны изменения: вирусом или нет. При выдаче такого рода сообщений не следует предаваться панике, так как причиной изменений, например, длины программы может быть вовсе и не вирус. Самые изощренные антивирусы - вакцинаторы. Они записывают в вакцинируемую программу признаки конкретного вируса так, что вирус считает ее уже зараженной. Таким образом, вирус не может заразить эту программу. Вакцины могут быть пассивные и активные.

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

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

Активные вакцины являются резидентными программами, действие которых основано на имитации присутствия вируса в оперативной памяти. Поэтому они обычно применяются против резидентных вирусов. Если такая вакцина находится в памяти, то, когда при запуске зараженной программы вирус проверяет, находится ли уже в оперативной памяти его копия , вакцина имитирует нали­чие копии. В этом случае вирус просто передает управление программе - хозяину и его инсталляция не происходит. Простейшие вакцины представляют собой выделенный и слегка модифицированный (лишенный способности к размножению) вирус. Поэтому они могут быть оперативно изготовлены - быстрей, чем доктора. Боле сложные вакцины (поливакцины) имитируют наличие в оперативной памяти нескольких вирусов.

Конечно, приведенный список не исчерпывает всего многообразия антивирусных программ, хотя и охватывает основные их разновидности. Каждая из антивирусных программ подобна узкому специалисту в определенной области, поэтому оптимальной так­тикой является комплексное применение нескольких типов антивирусных средств.

А теперь немного о некоторых антивирусах.

AIDSTEST

В нашей стране, как уже было сказано выше, особую популяр­ность приобрели антивирусные программы, совмещающие в себе функции детекторов и докторов. Самой известной из них является программа AIDSTEST Д.Н.Лозинского. В России практически на каждом IBM-совместимом персональном компьютере есть одна из версий этой программы. Одна последняя версия обнаружи­вает более 1100 вирусов.

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

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

а другие побочные эффекты могут оставаться. Поэтому программа после окончания обезвреживания вируса в памяти выдает запрос о перезагрузке. Следует обязательно последовать этому совету, если оператор ПЭВМ не является системным программистом, занимающимся изучением свойств вирусов. При чем сле­дует перезагрузиться кнопкой RESET, так как при "теплой перезагрузке" некоторые вирусы могут сохраняться. Вдобавок, лучше запустить машину и Aidstest с защищенной от записи дискеты, так как при запуске с зараженного диска вирус может записаться в память резидентом и препятствовать лечению.

Aidstest тестирует свое тело на наличие известных вирусов, а также по искажениям в своем коде судит о своем заражении неизвестным вирусом. При этом возможны случаи ложной тревоги,

например, при сжатии антивируса упаковщиком.

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

Как показала практика, самый оптимальный режим для ежеднев­ной работы задается ключами /g (проверка всех файлов, а не только с расширением EXE,COM,SYS) и /s (медленная проверка). Увеличивание времени при таких опциях практически не ощутимо (полностью "забитый" жесткий диск емкостью 270 Мегобайт на машине с процессором 486DX2 тестируется меньше минуты), зато вероятность обнаружения на порядок выше.

DOCTOR WEB

В последнее время стремительно растет популярность другой антивирусной программы - Doctor Web. Dr.Web также, как и Aidstest относится к классу детекторов - докторов, но в отличие от последнего имеет так называемый "эвристический ана­лизатор" - алгоритм, позволяющий обнаруживать неизвестные вирусы. "Лечебная паутина", как переводится с английского название программы, стала ответом отечественных программистов на нашествие самомодифицирующихся вирусов-мутантов, которые при размножении модифицируют свое тело так, что не остается ни одной характерной цепочки байт, присутствовавшей в исход­ной версии вируса. Dr.Web можно назвать антивирусом нового поколения по сравнению с Aidstest и его аналогами. В пользу этой программы говорит тот факт, что крупную лицензию ( на 2000 компьютеров) приобрело Главное управление информационных ресурсов при Президенте РФ, а второй по величине покупа­тель "паутины" - "Инкомбанк".

Управление режимами также как и в Aidtest осуществляется с помощь ключей. Пользователь может указать программе тестировать как весь диск, так и отдельные подкаталоги или группы файлов, либо же отказаться от проверки дисков и тестировать только оперативную память. В свою очередь можно тестировать либо только базовую память, либо, вдобавок, ещe и расширенную (указывается с помощью ключа /H ).



AVSP

(Anti-Virus Software Protection)

Интересным программным продуктом является антивирус AVSP. Эта программа сочетает в себе и детектор,и доктор,и ревизор, и даже имеет некоторые функции резидентного фильтра( запрет записи в файлы с атрибутом READ ONLY).Антивирус может лечить как известные, так и неизвестные вирусы, при чем о способе лечения последних программе может сообщить сам пользователь. К тому же AVSP может лечить самомодифицирующиеся и стелс-ви­русы (невидимки). В состав пакета AVSP входит также резидентный драйвер AVSP.SYS, который позволяет обнаруживать большинство невидимых вирусов, дезактивировать вирусы на время своей работы, а также запрещает изменять READ ONLY файлы. ONLY будет снят. Поставить файлы под защиту можно клавишей F7. Еще одна функция AVSP.SYS - отключение на время работы AVSP.EXE резидентных вирусов, правда вместе с вирусами драйвер отключает и некоторые другие резидентные программы. Конечно, полностью все возможности программы реа­лизуются в руках человека, знакомого с ассемблером и систем­ным программированием. В AVSP имеется возможность просматривать файлы в разных форматах. При входе в режим просмотра на экран выводятся две колонки: слева содержимое

просматриваемого файла в виде шестнадцатеричных кодов, а справа - в виде ASCII-кодов. Кроме того, выводится полезная системная информация, которая поможет при написании процедуры удаления вируса. Передвигая курсор, можно перейти на любой адрес, есть также функции поиска шаблонов, сравнения файлов. Можно установить, в каком формате будет просматриваться, например, заголовок: как у EXE-файла, SYS-файла или в формате загрузочного сектора. При этом хорошо реализован сам просмотр за­головка: его системные ячейки представлены в виде таблицы: слева значение ячейки, справа - пояснение.

Еще одной полезной функцией является встроенный дизассемблер. С его помощью можно разобраться есть ли в файле вирус или при проверке диска произошло ложное срабатывание AVSP. Кроме того, можно попытаться выяснить способ заражения, прин­цип действия вируса, а также место, куда он "спрятал" замещенные байты файла (если мы имеем дело с таким типом ви­руса). Все это позволит написать процедуру удаления вируса и восстановить запорченные файлы. Для полного счастья не хватает только трассировщика, хотя в неумелых руках такая функция может привести к заражению еще большего количества данных. Еще одна полезная функция - выдача наглядной карты изменений. Особенно ясно я это понял, когда у меня возникло подозрение в отношении одного из файлов (который не должен был, вроде бы, меняться). Карта изменений позволяет оценить, соответствуют ли эти изменения вирусу или нет, а также сузить область поиска тела вируса при дизассемблировании. При ее построении красный прямоугольник используется для изображения измененного блока, синий - неизмененного, а прозрачный - нового.

Если есть подозрение, что в систему забрался Stealth-вирус, можно запустить AVSP с параметром /D с жесткого диска, а затем загрузиться с чистой системной дискеты и запустить AVSP без параметров. Если результаты проверки контрольных сумм отличаются в обоих случаях, то подозрения оправданы. В программе AVSP есть два алгоритма нейтрализации "невидимок" и оба они работают только при наличии активного вируса в памяти.

Microsoft Antivirus

В состав современных версий MS-DOS (например, 6.22) входит антивирусная программа Microsoft Antivirus (MSAV). Этот антивирус может работать в режимах детектора - доктора и ревизора. MSAV имеет дружественный интерфейс в стиле MS-Windows. При запуске проверки диска (как в режиме удаления, так и без него) программа сначала сканирует память на наличие известных ей вирусов. При этом выводится индикация проделанной работы в виде цветной полоски и процента выполненной работы. После сканирования памяти MSAV принимается за проверку непосредственно диска.

ADINF

(Advanced Diskinfoscope)

ADinf относится к классу программ-ревизоров. Антивирус имеет высокую скорость работы, способен с успехом противостоять вирусам, находящимся в памяти. Он позволяет контролировать диск, читая его по секторам через BIOS и не используя системные прерывания DOS, которые может перехватить вирус. Программа ADinf получила первый приз на Втором Всесоюзном конкурсе антивирусных программ в 1990 году, а также второй приз на конкурсе Borland Contest'93.

В отличие от AVSP, в котором пользователю приходится самому анализировать, заражена ли машина стелс-вирусом, загружаясь сначала с винчестера, а потом с эталонной дискеты, в ADinf эта операция происходит автоматически. Это происходит благо­даря оригинальному алгоритму противодействия этим вирусам- -"невидимкам", суть которого заключается в том, что сначала диск читается непосредственно через BIOS, а потом - с помощью DOS. Если информация будет отличаться, то в системе стелс-вирус. ADinf был единственным антивирусом, который летом 1991 года обнаружил вирус DIR, построенный на принципиально новом способе заражения и маскировки. Для лечения зараженных файлов применяется модуль ADinf Cure Module, не входящий в пакет ADinf и поставляющийся отдельно. Принцип работы модуля -

- сохранение небольшой базы данных, описывающей контролируе­мые файлы. Работая совместно, эти программы позволяют обнаружить и удалить около 97% файловых вирусов и 100% вирусов в загрузочном секторе.

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

позволяет пользователю создать максимально удобную для него конфигурацию системы. Можно установить, что именно нужно контролировать: файлы с заданными расширениями, загрузочные сектора, наличие сбойных кластеров, новые файлы на наличие стелс-вирусов, файлы из списка неизменяемых и т.д. По своему желанию пользователь может запретить проверять некоторые каталоги (это нужно, если каталоги являются рабочими и в них все время происходят изменения). Имеется возможность изме­нять способ доступа к диску (BIOS, Int13h или Int25h/26h), редактировать список расширений проверяемых файлов, а также назначить каждому расширению собственный вьюер, с помощью которого будут просматриваться файлы с этим расширением.

При инсталляции ADinf в систему имеется возможность изменить имя основного файла ADINF.EXE и имя таблиц, при этом пользо­ватель может задать любое имя. Это очень полезная функция, так как в последнее время появилось множество вирусов, "охотящихся" за антивирусами (например, есть вирус, который изменяет программу Aidstest так,что она вместо заставки фир­мы "Диалог Наука" пишет: "Лозинский - пень"), в том числе и за ADinf.

Полезной функцией является возможность работы с DOS не выхо­дя из программы. Это бывает полезно, когда нужно запустить внешний антивирус для лечения файла, если у пользователя нет лечащего блока ADinf Cure Module.

Еще одна интересная функция - запрещение работы с системой при обнаружении изменений на диске. Эта функция полезна, когда за терминалами работают пользователи, не имеющие еще большого опыта в общении с компьютером. Такие пользователи по незнанию или по халатности могут проигнорировать сообщение ADinf и продолжить работу как ни в чем не бывало, что может привести к тяжелым последствиям. Если же установлен ключ -Stop в строке вызова ADinf AUTOEXEC.BAT, то при обнаружении изменений на диске программа потребует позвать системного программиста, обслуживающего данный терминал, а если пользо­ватель нажмет ESC или ENTER, то система перезагрузится и все повторится снова. И все же эта функция продумана не до конца, так как продолжение работы возможно при нажатии клавиши F10. Ведь большинство пользователей, даже если они впервые сели за компьютер, даже при минимальном на то желании смогут про­должить работу, воспользовавшись "правилом научного тыка", то есть, нажав на все клавиши подряд. Для повышения надeжнос­ти защиты от таких пользователей следовало бы ввести хотя бы какой-нибудь простенький пароль.

Принцип работы ADinf основан на сохранении в таблице копии MASTER-BOOT и BOOT секторов, список номеров сбойных кластеров, схему дерева каталогов и информацию о всех контролируе­мых файлах. Кроме того, программа запоминает и при каждом запуске проверяет, не изменился ли доступный DOS объем оперативной памяти), о бывает при заражении большинством загрузочных вирусов), количество установленных винчестеров, таблицы параметров винчестера в области переменных BIOS.

При первом запуске программа запоминает объем оперативной памяти, находит и запоминает адрес обработчика прерывания Int 13h в BIOS, который будет использоваться при всех последующих проверках, и строит таблицы для проверяемых дис­ков. При этом проверяется, показывал ли вектор прерывания 13h в BIOS перед загрузкой DOS. При последующих запусках ADinf проверяет объем оперативной памяти, доступной DOS, переменные BIOS, загрузочные сектора, список номеров сбойных кластеров (так как некоторые вирусы, записавшись в кластер, помечают его, как сбойный, чтобы их не затерли другие данные, а также не обнаружили примитивные антивирусы). К тому же антивирус ищет вновь созданные и уничтоженные подкатало­ги, новые, удаленные, переименованные, перемещенные и изменившиеся файлы ( проверяется изменение длины и контрольной суммы ). Если ADinf обнаружит, что, изменился файл из списка неизменяемых, либо в файле произошли, изменился без изменения даты и времени, а также наличие у файла странной даты ( число больше 31, месяц больше 12 или год больше текущего ) или времени ( минут больше 59, часов больше 23 или секунд больше 59 ), то он выдаст предупреждение о том, что возможно заражение вирусом.

Если обнаружены изменения BOOT-секторов, то можно в режиме диалога сравнить системные таблицы, которые были до и после изменения, и по желанию восстановить прежний сектор. После восстановления измененный сектор сохраняется в файле на диске для последующего анализа. Новые сбойные кластеры (вер­нее информация о них в FAT) могут появиться после запуска какой-либо утилиты, лечащей диск (например NDD ) или благодаря действиям вируса. Если ADinf выдал сообщение,

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











СПИСОК ЛИТЕРАТУРЫ

1. В.Э.Фигурнов "IBM PC для пользователя". 2000 г.

2. Ф.Файтс, П.Джонстон, М.Кратц "Компьютерный вирус: пробле­мы и прогноз". 1999 г.

3. Н.Н.Безруков "Классификация компьютерных вирусов MS-DOS и методы защиты от них". 2004 г.

6. Документации на антивирусные программы. 2005 г.

7. Собственный опыт.

© Рефератбанк, 2002 - 2024