Смекни!
smekni.com

Заражения вирусом программных файлов (стр. 2 из 5)

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

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

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

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

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

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

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