Малая Академия наук
школьников Крыма «Искатель»
Секция информатики
КОМПЬЮТЕРНЫЙ ФАЙЛОВО-ЗАГРУЗОЧНЫЙ
ПОЛИМОРФНЫЙ СТЕЛС-ВИРУС ONEHALF 3544,
ОСОБЕННОСТИ АЛГОРИТМА И МЕТОДЫ БОРЬБЫ С НИМ.
Действительный член МАН «Искатель»
Ученик 10 – го класса
Форосской общеобразовательной школы I – III ступени
КОРАБЛЕВ Андрей
Руководитель: КОРАБЛЕВ А. Б. - системотехник
ВВЕДЕНИЕ
Мы живем на стыке двух тысячелетий, когда человечество вступило в эпоху новой научно-технической революции.
К концу двадцатого века люди овладели многими тайнами превращения вещества и энергии и сумели использовать эти знания для улучшения своей жизни. Но кроме вещества и энергии в жизни человека огромную роль играет еще одна составляющая - информация. Это самые разнообразные сведения, сообщения, известия, знания, умения.
В середине нашего столетия появились специальные устройства - компьютеры, ориентированные на хранение и преобразование информации и произошла компьютерная революция.
Сегодня массовое применение персональных компьютеров, к сожалению, оказалось связанным с появлением самовоспроизводящихся программ-вирусов, препятствующих нормальной работе компьютера, разрушающих файловую структуру дисков и наносящих ущерб хранимой в компьютере информации.
Несмотря на принятые во многих странах законы о борьбе с компьютерными преступлениями и разработку специальных программных средств защиты от вирусов, количество новых программных вирусов постоянно растет. Это требует от пользователя персонального компьютера знаний о природе вирусов, способах заражения вирусами и защиты от них. Это и послужило стимулом для выбора темы моей работы.
Я хочу показать на основе вируса Onehalf 3544, наделавшего много шума в 1994-95 годах, возможные пути заражения, распространения, разрушительные способности вирусов и рекомендовать способы обнаружения и защиты от них.
Работа выполнена на основе анализа листинга кода тела вируса, полученного при помощи дизассемблера Sourcer версии 7.0 и экспериментального заражения - лечения нескольких компьютеров с разными типами жестких дисков, и использовании различных антивирусных и прикладных программ. Особую благодарность за предоставление материалов для подготовки моей работы хочу выразить системному программисту Александру Крыжановскому из Ялты и моему руководителю системотехнику Алексею Кораблеву.
КЛАССИФИКАЦИЯ ВИРУСОВ.
В настоящее время известно более 35000 программных вирусов, их можно классифицировать по следующим признакам:
¨ среде обитания
¨ способу заражения среды обитания
¨ воздействию
¨ особенностям алгоритма
В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные, файлово-загрузочные и макро-вирусы, распространяющиеся вместе с документами и электронными таблицами. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. В файлы, имеющие расширения COM и EXE. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.
По способу заражения вирусы делятся на резидентные и нерезидентные. Резидентный вирус при заражении (инфицировании) компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам дисков и т. п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время.
По степени воздействия вирусы можно разделить на следующие виды:
¨ неопасные, не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах
¨ опасные вирусы, которые могут привести к различным нарушениям в работе компьютера
¨ очень опасные, воздействие которых может привести к потере программ, уничтожению данных, стиранию информации в системных областях диска.
По особенностям алгоритма вирусы трудно классифицировать из-за большого разнообразия. Известны вирусы-невидимки, называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего тела незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты (полиморфные), содержащие алгоритмы шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов.
Рассматриваемый мной вирус Onehalf 3544 примечателен не только тем, что его появление вызвало большой резонанс в компьютерном мире, но и тем, что он одновременно объединяет в себе множество свойств являясь очень опасным резидентным файлово-загрузочным полиморфным стелс-вирусом. В моей работе я покажу каждое из его свойств, его сильные и слабые стороны.
АНАЛИЗ АЛГОРИТМА ВИРУСА.
Размещение вируса в зараженном файле.
Зашифрованное тело вируса длиной 3544 байта в зараженном файле находится после конца файла, при этом зараженный файл содержит в себе 10 «пятен»-фрагментов кода расшифровщика и таблицу размещения «пятен», размещающуюся в начале файла и содержащую также информацию о смещении начала тела вируса от начала файла.
-
Таблица размещения «пятен» кода расшифровщика-
«Пятна», в которых содержится расшифровщик тела вируса-
Тело зараженного файла- Зашифрованное тело вируса
Размещение вируса в зараженном MBR.
После заражения MBR вирус записывает на место оригинального MBR свой обработчик загрузки тела вируса в память, затем пишет 7 секторов кода своего тела в 7 секторов от конца 0 дорожки диска в скрытых секторах, а затем пишет оригинальный MBR в восьмой от конца 0 дорожки диска. Рассмотрим на примере диска с 17 секторами на дорожку.
Алгоритм инсталляции вируса.
При запуске зараженного файла на исполнение или загрузке с зараженного MBR вирус при помощи собственного обработчика прерывания Int12h – выдача объема памяти - оценивает количество свободной оперативной памяти и наличие своей копии в памяти и если ее менее 4 килобайт или память уже содержит тело вируса - отдает управление файлу или оригинальному загрузчику. Для поиска своей копии в памяти вирус вызывает несуществующую DOS - функцию (прерывание Int 21h, функция 54h). Если вируса нет в памяти, то в регистр АХ возвращается код ошибки выполнения функции. Если вирус уже загружен в память, то он перехватывает эту функцию и возвращает в регистр АХ некое число, отличное от кода ошибки. По наличию этого числа вирус определяет наличие своей копии в памяти и не заражает ее повторно. При наличии 4 и более килобайт свободного ОЗУ и отсутствии тела вируса в памяти вирус сначала анализирует геометрию диска при помощи собственного обработчика прерывания Int13h ( дисковые операции), ищет последний DOS диск или Extended Partition в системе, ищет признак заражения MBR (03Dh в MBR). Если MBR не заражен, то пишет 7 секторов кода своего тела в 7 секторов от конца 0 дорожки диска в скрытых секторах, а затем пишет оригинальный MBR в восьмой от конца 0 дорожки диска. После записи своего тела на диск или получив признак зараженности MBR, вирус анализирует наличие своего тела в памяти и при отсутствии переписывает 7 секторов своего тела с диска. При наличии тела в памяти вирус отдает ему управление.
Далее вирус использует свои обработчики прерываний:
Int1h – прерывание отладки и трассировки – для «завешивания» системы при попытке трассировать код вируса в память;