Реферат: Компьютерный файлово-загрузочный полиморфный стелс-вирус ONEHALF 3544, особенности алгоритма и методы борьбы с ним

После заражения MBR вирус записывает на место оригинального MBR свой обработчик загрузки тела вируса в память, затем пишет 7 секторов кода своего тела в 7 секторов от конца 0 дорожки диска в скрытых секторах, а затем пишет оригинальный MBR в восьмой от конца 0 дорожки диска. Рассмотрим на примере диска с 17 секторами на дорожку.

0 дорожка 1 сектор 1 сторона

0 дорожка 0 сектор 1 сторона

-?????????? ???????? ???? ??-

0 дорожка 2 сектор 1 сторона

???? ? ??????.

0 дорожка 10 сектор 1 сторона

- ???????????? MBR.

0 дорожка 13 сектор 1 сторона

7 ????????, ??????????

0 дорожка 14 сектор 1 сторона

???? ??????.

Алгоритм инсталляции вируса.

При запуске зараженного файла на исполнение или загрузке с зараженного MBR вирус при помощи собственного обработчика прерывания Int12h – выдача объема памяти - оценивает количество свободной оперативной памяти и наличие своей копии в памяти и если ее менее 4 килобайт или память уже содержит тело вируса - отдает управление файлу или оригинальному загрузчику. Для поиска своей копии в памяти вирус вызывает несуществующую DOS - функцию (прерывание Int 21h, функция 54h). Если вируса нет в памяти, то в регистр АХ возвращается код ошибки выполнения функции. Если вирус уже загружен в память, то он перехватывает эту функцию и возвращает в регистр АХ некое число, отличное от кода ошибки. По наличию этого числа вирус определяет наличие своей копии в памяти и не заражает ее повторно. При наличии 4 и более килобайт свободного ОЗУ и отсутствии тела вируса в памяти вирус сначала анализирует геометрию диска при помощи собственного обработчика прерывания Int13h ( дисковые операции), ищет последний DOS диск или Extended Partition в системе, ищет признак заражения MBR (03Dh в MBR). Если MBR не заражен, то пишет 7 секторов кода своего тела в 7 секторов от конца 0 дорожки диска в скрытых секторах, а затем пишет оригинальный MBR в восьмой от конца 0 дорожки диска. После записи своего тела на диск или получив признак зараженности MBR, вирус анализирует наличие своего тела в памяти и при отсутствии переписывает 7 секторов своего тела с диска. При наличии тела в памяти вирус отдает ему управление.

Далее вирус использует свои обработчики прерываний:

Int1h – прерывание отладки и трассировки – для «завешивания» системы при попытке трассировать код вируса в память;

Int 1Ch – таймер – для перехвата DOS (прерывание Int 21h) при его загрузке;

Int13h – дисковые операции – для обслуживания чтения – записи дисков и операции шифровки-расшифровки дорожек диска. При этом вирусу приходится использовать для этого метод трассировки (пошагового исполнения) оригинального обработчика для определения точки входа данного прерывания. Это нужно для корректного возврата прерывания обратно. Вирус вынужден вызывать оригинальное прерывание отладки и выполнять перехват в пошаговом режиме;

Int24h – критическая ошибка – для перехвата сообщения о критической ошибке при неудачных попытках записи на диск.

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

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

Следующим шагом вируса является анализ совпадения трех параметров: зашифрована ли половина дорожек диска, кратен ли день в системной дате четырем и является ли четным счетчик заражения компьютеров, хранящийся в теле вируса. При совпадении трех этих параметров вирус выводит на дисплей сообщение «Dis is OneHalf! Press any key to continue…» и ожидает нажатия любой клавиши для продолжения работы. Однако совпадение всех параметров является чрезвычайно редким и не стоит рассчитывать на то, что вирус таким образом выдаст свое присутствие в системе.

Далее вирус читает оригинальный MBR и передает ему управление дальнейшей загрузкой при этом сохраняя свои обработчики прерываний Int13h (для обслуживания шифрованных дорожек) и Int1Ch (для перехвата DOS и контроля через перехваченное прерывание Int21h записи файла на дискету). Вирус корректно расшифровывает данные с зашифрованных дорожек и не затормаживает работу компьютера.

При помощи собственного обработчика прерывания Int12h вирус скрывает уменьшение размера свободной памяти на 4 килобайта для всех программ, кроме программы CHKDSK ( утилита проверки диска из комплекта DOS) и программы Norton Commander. При помощи собственного обработчика прерывания обслуживания DOS Int21h скрывает приращение длины зараженного файла. Однако следует помнить, что в зараженной системе могут отсутствовать зараженные файла, т.к. в алгоритме вируса предусмотрено их лечение при успешном заражении. При попытке трассировки вируса в памяти при помощи вызова прерывания Int1h он при помощи собственного обработчика «завешивает» систему организацией цикла без выхода. Эти действия вируса позволяют говорить о том, что он является стелс-вирусом, а возможность заражения файлов и MBR диска о том, что он является файлово-загрузочным.

Алгоритм заражения файлов для размножения.

Вирус OneHalf 3544 для своего размножения использует заражение файлов которые записываются на гибкие магнитные носители (дискеты). При обнаружении обращения DOS к дискете для записи файла вирус определяет, не превышает ли длина заражаемого .СОМ файла + длина тела вируса (3544 байт) величины 64 килобайта. Эта величина является пределом длины файлов такого типа. Если превышает, то заражение не производится, а если не превышает, то производится проверка имени файла. Если имя файла содержится в списке не подлежащих заражению (SCAN, CLEAN, FINDVIRU, GUARD, NOD, VSAFE, MSAV,CHKDSK), то заражение также не производится. Далее вирус производит поиск признака зараженности файла. Если файл уже заражен, то число секунд во времени создания файла будет равно остатку деления числа даты во времени создания файла на 30. При наличии признака заражения файл повторно не заражается.

Если файл не заражен, то в теле файла создается 10 пустых «пятен» для размещения в них расшифровщика тела вируса. Выбирается случайное число для их размещения в теле файла, проверяя при этом, чтобы расстояние между двумя ближайшими было не менее 10 байт. Здесь мы можем увидеть, что размещение «пятен» кода расшифровщика является случайным, что также мы можем отнести к проявлениям полиморфности вируса. Код расшифровщика записывается в «пятна». Таблица размещения «пятен» записывается в начале файла. При неудачной записи «пятна» удаляются и файл не заражается.

Генерируется случайное число, которое становится ключом шифрации тела вируса. Тело вируса шифруется, ключ записывается в таблице размещения «пятен» расшифровщика. Зашифрованное тело вируса записывается в конец заражаемого файла. При неудачной записи заражение отменяется и «пятна» расшифровщика удаляются. Если запись произведена успешно, то уже зараженный файл записывается на дискету. Из-за того, что для выбора ключа шифровки тела вируса используется случайное число, что исключает повторение байт в шифрованном теле вируса, можно классифицировать вирус OneHalf 3544 как вирус-мутант или полиморфный вирус.

ВЫВОДЫ.

Вирус OneHalf 3544 является тщательно разработанным файлово-загрузочным мутирующим стелс-вирусом, использующим оригинальный механизм заражения и размножения;

Однако при наличии отличного механизма полиморфности недостаточно развитый механизм стелсирования позволяет обнаруживать вирус при просмотре количества памяти в Norton Commander и просмотре MBR диска программой Diskedit из комплекта Norton Utilities (версия не ниже 6.0)т с ключом /M (запрет использования прерываний DOS).

При всей тщательности прописывания процедур заражения и шифровки - расшифровки диска при практических заражениях дисков обнаружено, как минимум, две ошибки. Одна из них состоит в том, что некоторые диски емкостью 420 мегабайт заражаются некорректно (при заражении неверно определяется количество секторов MBR и последний сектор тела вируса «отражается» на сектор, занимаемый Partition Table, что приводит диск в нерабочее состояние). Следует учесть, что в этом случае вирус успевает корректно перенести оригинальный MBR в один из скрытых секторов и можно восстановить работоспособность диска при помощи переноса MBR на свое место вручную Diskedit’ором. При этом не следует забывать, что вирус не успевает полностью отработать свой механизм инсталляции (вылечить файл-переносчик) и заражение может повториться снова при его запуске. Второй ошибкой является то, что при шифровании некоторых дисков вирус «ошибается» и шифрует последние 2 дорожки с ключом, отличным от записанного в MBR. При следующем запуске и работе с зашифрованными дорожками он корректно исправляет эту ошибку. Однако, если этот момент совпадает с расшифровкой дорожек антивирусами, то последние 2 дорожки можно считать утерянными.

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

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

1) Запись в MBR нового значения нижней границы заши-

фрованныхнных дорожек дает возможность обнаружить

К-во Просмотров: 209
Бесплатно скачать Реферат: Компьютерный файлово-загрузочный полиморфный стелс-вирус ONEHALF 3544, особенности алгоритма и методы борьбы с ним