Использование СТЕЛС технологии в вирусных программах

Использование СТЕЛС технологии в вирусных программах

СТЕЛС вирусы обладают способностью скрывать свое присутствие в системе. Известны СТЕЛС вирусы всех типов за исключением Windows вирусов: загрузочные вирусы, файловые DOS вирусы и даже макровирусы.

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

Второй способ направлен против антивирусов, поддерживающих команды прямого чтения секторов через порты контроллера диска. Такие вирусы при запуске любой программы (включая антивирус) восстанавливают зараженные сектора, а после окончания ее работы снова заражают диск. Поскольку для этого вирусу приходится перехватывать запуск и окончание работы программ, то он должен перехватывать также DOS прерывание INT 21h.

С некоторыми оговорками СТЕЛС вирусами можно назвать вирусы, которые вносят минимальные изменения в заражаемый сектор (например, при заражении MBR правят только активный адрес загрузочного сектора — изменению подлежат только 3 байт) либо маскируются под код стандартного загрузчика.

Большинство файловых СТЕЛС вирусов либо перехватывают DOS вызовы обращения к файлам (INT 2lh), либо временно лечат файл при его открытии и заражают при закрытии. Существуют файловые вирусы, использующие для своих СТЕЛС функций перехват прерываний более низкого уровня — вызовы драйверов DOS, INT 25h и даже INT 13h.

Некоторые вирусы используют часть функции полноценного СТЕЛС вируса. Чаще всего они перехватывают функции DOS FindFirst и FindNext (INT 21h, AH llh, 12h, 4Eh, 4Fh) и уменьшают размер зараженных файлов. Такой вирус невозможно идентифицировать по изменению размеров файлов, если, конечно, он резидентно находится в памяти. Программы, которые не обращаются к увязанным функциям DOS (например, утилиты Norton), а напрямую используют содержимое секторов, хранящих каталог, показывают правильную длину зараженных файлов.

Реализация СТЕЛС алгоритмов в макровирусах является, наверное, наиболее простой задачей — достаточно всего лишь запретить вызов меню File/Templates или Tools/NMacro. Достигается это либо удалением этих пунктов меню из списка, либо их заменой на макросы FileTemplates и ToolsMacro.

Частично СТЕЛС вирусами можно назвать небольшую группу макровирусов, которые хранят свой основной код не в самом макросе, а в других областях документа: в его переменных или в Autotext.

Полиморфные вирусы

Полиморфные вирусы

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

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

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

Макровирусы

Макровирусы

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

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

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

По данным Международной ассоциации компьютерной безопасности (w. icsa.net), доля представителей этого класса в общем числе вирусов, циркулирующих по вычислительным системам и сетям, составляет 2/3, а по данным лаборатории Касперского, эта величина составляет порядка 55 %. Причин тому несколько.

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

Будучи самым простым и доступным среди всех остальных языков, он предоставляет создателям вирусов все необходимые возможности для того, чтобы уничтожить важную информацию и надолго вывести компьютер из строя. В-четвертых, наиболее популярные офисные приложения (в первую очередь из пакета MS Office), как правило, интегрированы с почтовыми программами (например MS Outlook).

Это обстоятельство определяет доступ макровирусов к электронной почте — наиболее удобному и быстрому способу распространения. Поэтому макровирусы имеют неограниченные возможности для молниеносного поражения миллионов компьютеров по всему миру.

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 таблицы вместо номера начального кластера файла физический адрес начала вируса на диске.

Страница 1 из 3123
Яндекс.Метрика