Windows-вирусы

Windows-вирусы

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

Самый простой способ — зарегистрировать программу как одно из приложений, работающих в данный момент. Для этого программа регистрирует свою задачу, окно которой может быть свернутым, свой обработчик системных событий и т.д. Второй способ — выделить блок системной памяти при помощи DPMI вызовов и скопировать в нем свой код (вирус Ph33r). Третий способ — остаться резидентно как VxD драйвер (Windows 3.хх и Windows 95) или как драйвер Windows NT.

Перехват обращений к файлам производится одним из двух способов: либо перехватываются вызовы INT 21 h (Hook_V86_Int_Chain, Get/Set_V86_lnt_Vector, Get/Set_PM_lnt_Vector), либо перехватывается системный вызов API. Затем резидентные Windows вирусы действуют примерно так же, как и DOS вирусы: перехватывают обращения к файлам и заражают их.

Для обнаружения уже имеющейся в памяти резидентной копии используются примерно те же способы, которые описаны выше, за исключением VxD вирусов. Известные VxD вирусы загружаются в память при загрузке Windows. Для этого они записывают команду запуска в файл конфигурации Windows system.ini. Если в этом файле уже есть команда запуска вирусного VxD файла, то вирус не производит повторной регистрации своего VxD файла.

Бутовый вирус

Бутовый вирус

Бутовый вирус. Он заражает жесткие и гибкие диски (как загрузочные, так и иные). В отличие от файлового вируса он состоит из двух раздельных секций: головы и хвоста. Положение головы вируса всегда одинаково — она расположена в Boot секторе.

На жестком диске начальные байты вируса могут располагаться в одном из его двух Boot секторов: главном (MBR по адресу 0/0/1) или Boot секторе логического диска С. Последние байты — в различных местах, а именно: в кластерах, помеченных в FAT как сбойные, последних физических секторах дискеты или диска, в используемых или неиспользуемых блоках FAT главного каталога или одного из подкаталогов, на дополнительных дорожках дискеты или винчестера. В любом случае хвост вируса должен содержать копию оригинального Boot сектора. Если она не закодирована, то положение хвоста в большинстве случаев может быть определено глобальным контекстным поиском.

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

Получив управление по прерыванию 13h, вирус анализирует, относится это к дискете или винчестеру. Если это обращение относится к дискете, вирус проверяет, заражена она уже или нет. Для этого считывается Boot сектор и проверяется его содержимое. Если дискета заражена, то вирус приступает к обработке непосредственно прерывания. Если дискета не заражена, то вирус сначала заражает ее.
Большая часть загрузочных вирусов не проверяет системную память на наличие своей уже установленной TSR копии: они либо используют СТЕЛС приемы, при которых повторный запуск кода вируса невозможен, либо ориентируются на то, что код вируса загружается однократно в момент загрузки DOS.

После первоначальной загрузки коды загрузочных секторов дисков больше не выполняются ни при каких условиях. Часть вирусов проверяет наличие своей копии. Для этого используются либо специальные вызовы INT 13h с каким-нибудь нестандартным значением, либо помечается заведомо неиспользуемый байт (или слово) в таблице векторов прерываний или в области данных BIOS (0040:00??). Существуют и другие способы обнаружения своей TSR копии.

Важно, что некоторые бутовые вирусы перехватывают прерывания от клавиатуры и поэтому могут сохраниться в памяти при быстрой перезагрузке по команде [Ctrl] + [Alt] + [Del].

Нерезидентный и резидентный файловый вирус

Нерезидентный и резидентный файловый вирус

Нерезидентный файловый вирус ищет программы обычно с помощью переменных среды DOS. Резидентный вирус при инициализации перехватывает и контролирует некоторые прерывания DOS в соответствии с механизмом поиска программ (при запуске, открытии, чтении, записи) обычно перехватываются 21h и 13h прерывания DOS. Заражение .com и .ехе файлов производится по схемам, различающимся лишь числом байт, изменяемых в начале выполняемого модуля, и связанным с различной структурой файлов данного типа. Распознавание типа модулей вирусом обычно производится по расширению файла и по идентификатору (в .ехе модуле первые 2 байта обычно mz, реже zm).

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

Процесс лечения от файловых вирусов обычно заключается в поиске в теле вируса сохраненных байтов, восстановление их в программе носителе и «вырезании» вируса из кода программы.

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

Другим примером служат так называемые link-вирусы, представителем которых является печально известный DIR II. Вирус хранит на диске только одну свою копию, а при заражении выполняемых модулей лишь прописывает в соответствующем разделе fat таблицы вместо номера начального кластера файла физический адрес начала вируса на диске.

Принципы функционирования основных разновидностей вирусов

Принципы функционирования основных разновидностей вирусов

Упрощенно процесс заражения вирусом программных файлов (exe, jcom, ovl, dll модулей) можно представить следующим образом. Код зараженной программы обычно изменяется таким образом, чтобы вирус получил управление первым, до начала работы программы-носителя. При передаче управления вирусу он находит новую программу и выполняет вставку своей копии в нее.

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

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

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

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

Безвредные и опасные вирусы

Безвредные и опасные вирусы

По отношению к информации вирусы опасны по-разному.

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

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

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

Даже сегодня бороться с такими вирусами достаточно сложно. В антивирусной базе Norton AntiVirus имеется информация о 1016 полиморфных и 942 СТЕЛС вирусах.

Семь видов вирусных программ

Семь видов вирусных программ

Традиционно вирусные программы подразделяют на семь видов:

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

2. Бутовые (загрузочные) вирусы. Заражают диски (дискеты, логические диски, жесткие диски).

3. Файловые вирусы. Они заражают выполняемые модули с расширениями .ехе, .сом .bin, .ovl, .dll.

4. Файлово-бутовые. Редкая разновидность вирусов, заражающая как диски, так и файлы.

5. Макровирусы (макрокомандные вирусы). Заражают файлы документов, содержащие в своем составе программный код макрорасширений (документы Microsoft Word, Exel).

7. Сетевые вирусы (сетевые черви). Редкие и очень сложные по структуре и принципам работы программы, использующие для своего распространения по сети ЭВМ ошибки (дыры) в коде или особенности функционирования сетевого программного обеспечения операционной системы.

Практически все виды вирусов бывают резидентными и нерезидентными. Резидентные вирусы способны оставлять свои копии в оперативной памяти, перехватывать некоторые события (например, обращения к файлам или дискам) и инициировать при этом процедуры заражения обнаруженных объектов (файлов и секторов). Поэтому резидентные вирусы опасны не только во время работы зараженной программы, но и после ее окончания. Резидентные копии таких вирусов остаются жизнеспособными вплоть до очередной перезагрузки, даже если на диске уничтожены все зараженные файлы. Часто от таких вирусов невозможно избавиться восстановлением всех копий файлов с дистрибутивных дисков или backup-копий. Резидентная копия вируса остается активной и заражает вновь создаваемые файлы. Это характерно и для загрузочных вирусов. Форматирование диска при наличии в памяти резидентного вируса не всегда вылечивает диск, поскольку многие резидентные вирусы заражают его повторно после форматирования.

Нерезидентные вирусы, напротив, активны на довольно непродолжительных интервалах времени: только в момент запуска зараженной программы.

Страница 5 из 7« Первая...34567
Яндекс.Метрика