Вход

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

Реферат по программированию
Дата добавления: 18 декабря 2002
Язык реферата: Русский
Word, rtf, 304 кб (архив zip, 32 кб)
Реферат можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
17 Малая Академия наук школьников Крыма «Искатель» Секция информатики КОМПЬЮТЕРНЫЙ ФАЙЛОВО-ЗАГРУЗОЧНЫЙ ПОЛИМОРФНЫЙ СТЕЛС-ВИРУС ONEHALF 3544, ОСОБЕННОСТИ АЛГОРИТМА И МЕТОДЫ Б ОРЬБЫ С НИМ. Действительный член МАН «Ис катель» Ученик 10 – го класса Форосской общеобразовательной школы I – III ступени КОРАБЛЕВ Андрей Руководитель : КОРАБЛЕВ А . Б . - системотехник ВВЕДЕНИЕ Мы живем на стыке двух тысячелетий , когда человечест во вступило в эпоху новой научно-технической революции. К концу двадцатого века люди овладели многими тайнами превращения вещества и э нерг ии и сумели использовать эти знан ия для улучшения своей жизни . Но кроме вещества и энергии в жизни человека ог ромную роль играет еще одна составляющая - информация . Это самые разнообразные сведения , сообщения , известия , знания , умения. В середине нашего ст олетия появил ись специальные устройства - компьютеры , ориентиров анные на хранение и преобразование информации и произошла компьютерная революция. Сегодня массовое применение персональных компьютеров , к сожалению , оказалось связанным с появлением самовоспро изводящихся программ-в ирусов , препятствующих нормальной работе компьюте ра , разрушающих файловую структуру дисков и наносящих ущерб хранимой в компьютере инфо рмации. Несмотря на принятые во многих страна х законы о борьбе с компьютерными преступ лениями и раз работку специальных программ ных средств защиты от вирусов , количество новых программных вирусов постоянно растет . Э то требует от пользователя персонального комп ьютера знаний о природе вирусов , способах заражения вирусами и защиты от них . Это и послужило с т имулом для выбор а темы моей работы. Я хочу показать на основе вируса Onehalf 3544, надел авшего много шума в 1994-95 годах , возможные пут и заражения , распространения , разрушительные спосо бности вирусов и рекомендовать способы обнару жения и защиты от них . Работа выполнена на основе анализа ли стинга кода тела вируса , полученного при п омощи дизассемблера Sourcer версии 7.0 и экспериментального зара жения - лечения нескольких компьютеров с разны ми типами жестких дисков , и использовании различных антивирусных и прикладных програм м . Особую благодарность за предоставление мат ериалов для подготовки моей работы хочу в ыразить системному программисту Александру Крыжа новскому из Ялты и моему руководителю сис темотехнику Алексею Кораблеву. КЛАССИФИКАЦИЯ ВИРУСОВ. В наст оящее время изве стно более 35000 программных вирусов , их можно классифицировать по следующим признакам : Ё среде обитания Ё способу заражения с реды обитания Ё воздействию Ё особенностям алгоритма В зависимости от среды обитания вирусы мож но разделить на сетевые , файловые , загруз очные , файлово-загрузочные и макро-вирусы , распрост раняющиеся вместе с документами и электронным и таблицами . Файловые вирусы внедряются главным образом в исполняемые модули , т . е . В файлы , имеющи е расширения COM и EXE . Загруз очные ви русы внедряются в загрузочный сектор диска ( Boot -сектор ) или в сектор , содержащий программу загрузки системного диска ( Master Boot Record ). Файлово-загрузочные вирусы за ражают как файлы , так и загрузочные сектор а дисков. По способу заражения вирусы делятся на резидентные и нерезидентные . Резидентный вирус при заражении (инфицировании ) компьютера оставляет в оперативной памяти свою резидентную част ь , которая потом перехватывает обращение опер ационной системы к объектам заражения (файлам , загрузочным секторам дисков и т . п .) и внедряется в них . Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки комп ьютера . Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время. По степени воздействия вирусы можно разделить на следующие виды : Ё неопасные , не мешающие работе компьютера , но у меньшающие объем свободной оперативной памяти и памяти на дисках , действия таких виру сов проявляются в каких-либо графических или звуковых эффектах Ё опасные вирусы , которые могут привести к ра зличным нарушениям в работе компьютера Ё очень опасные , воздействие которых может привести к потере программ , уничтожению данных , стира нию информации в системных областях диска. По особенн остям алгоритма вирусы т рудно классифицир овать из-за большого разнообразия . Известны вирусы-невидимки , назы ваемые стелс-вирусами , которые очень трудно обнаружить и обезвредить , так как они перехватывают обраще ния операционной системы к пораженным файлам и секторам дисков и подста вляют вместо своего тела незараженные участки диска . Наиболее трудно обнаружить вирусы-мутанты (полиморфные ) , содержащие алгоритмы шифровки-расшифровки , благодар я которым копии одного и того же виру са не имеют ни одной повторяющейся цепочк и байтов . Рассма триваемый мной вирус Onehalf 3544 примечателен не только тем , что его появление вызвал о большой резонанс в компьютерном мире , но и тем , что он одновременно объединяет в себе множество свойств являясь очень опасным резиден тным файлово-загрузочным полиморфны м стелс-вир усом . В моей работе я покажу каждое из его свойств , его сильные и слабые сто роны. АНАЛИЗ АЛГОРИТМА ВИРУСА. Размещение вируса в зараженно м файле. Зашифрованное тело вируса длиной 3544 байта в зараженном файле находится посл е конца файла , при этом зараженный ф айл содержит в себе 10 «пятен»-фрагментов кода расшифровщика и таблицу размещения «пятен» , размещающуюся в начале файла и содержащу ю также информацию о смещении начала тела вируса от начала файла. Зараж енный файл ( приращение длины 3544 байт ). - Таблица размещения «пятен» кода расшифров щика - «Пятна» , в которых содержится расшифровщи к тела вируса - Тело зараженного файла - Зашифрованное тело в ируса Размещение вируса в зараженном MBR . После зара жения MBR вирус запи сывает на место оригинальног о MBR св ой обработчик загрузки тела вируса в памя ть , затем пишет 7 секторов кода своего тела в 7 секторов от конца 0 дорожки диска в скрытых секторах , а затем пишет оригиналь ный MBR в восьмой от конца 0 дорожки диска . Рассмот рим на примере диска с 17 секторами на дорожку. -Обработчик загрузки тела ви- руса в память. - Оригинальный MBR . 7 секторов , содержащие тело вируса. Алгоритм и нсталляции вируса. При запуске зараженного файла на исполнение или загрузке с зараженного MBR вирус пр и помощи собственного обработчика прерывания Int 12 h – выдач а объема памяти - оценивает количество свободн ой оперативной памяти и наличие своей коп ии в памяти и если ее менее 4 кил обайт или память уже содержит тело вируса - отдает управление файлу или оригинальному загрузчику . Для поиска своей копии в па мяти вирус вызывает несуществующую DOS - функцию (пр ерывание Int 21 h , функция 54 h ). Если вируса нет в памяти , то в регистр АХ возвращается код ошибки выполнения функции . Если вирус уже загружен в память , то он перехватывает эту фун кцию и возвращает в регистр АХ некое число , отличное от кода ошибки . По наличию этого числа вирус определяет наличие сво ей ко п ии в памяти и не за ражает ее повторно . При наличии 4 и более килобайт свободного ОЗУ и отсутствии тела вируса в памяти вирус сначала анализируе т геометрию диска при помощи собственного обработчика прерывания Int 13 h ( дисковые операции ), ищет последни й DOS ди ск или Extended Partition в системе , ищет признак заражения MBR (03 Dh в MBR ). Если MBR не зараж ен , то пишет 7 секторов кода своего тела в 7 секторов от конца 0 дорожки диска в скрытых секторах , а затем пишет оригинальны й MBR в восьмой от конца 0 дорожк и диска . После записи своего тела на диск или получив признак зараженности MBR , вирус анализирует нал ичие своего тела в памяти и при отсут ствии переписывает 7 секторов своего тела с диска . При наличии тела в памяти вирус отдает ему управление . Далее вирус использует свои обработчики прерываний : Int 1 h – прерывание отладки и трассировки – для «завешивания» системы при попытке трассировать код вируса в память ; Int 1 Ch – таймер – для перехвата DOS (прерывание Int 21 h ) при его загрузке ; Int 13 h – дисковые операц ии – для обслуживания чтения – записи дисков и операции шифровки-расшиф ровки дорожек диска . При этом вирусу прихо дится использовать для этого метод трассировк и (пошагового исполнения ) оригинального обработчик а для определения точки входа данного пре рывани я . Это нужно для корректного возврата прерывания обратно . Вирус вынужден вызывать оригинальное прерывание отладки и выполнять перехват в пошаговом режиме ; Int 24 h – критическа я ошибка – для перехвата сообщения о критической ошибке при неудачных попытках запи си на диск. В случае старта с зараженного файла вирус лечит его в памяти и записывает на диск у же не зараженным. Далее вирус считывает из MBR нижнюю границ у зашифрованной дорожки и анализирует , не дошла ли граница до седьмой дорожки от начала диска . Если ш ифрование дошло до этого значения , то шифрация запрещается для того , чтобы не повредить системные области диска . Если не дошло , то вирус шифрует две дорожки вверх от нижней гр аницы шифрованных дорожек используя ключ , хра нящийся в MBR . Следует учитывать , чт о ключ ген ерируется из случайного числа при заражении диска и на каждом диске является уни кальным . Это является одним из признаков п олиморфизма . При удачной шифровке в MBR записывается новое значение нижней границы зашифрованной д орожки. Следующим шагом ви руса является а нализ совпадения трех параметров : зашифрована ли половина дорожек диска , кратен ли день в системной дате четырем и является ли четным счетчик заражения компьютеров , хран ящийся в теле вируса . При совпадении трех этих параметров вирус выводит на дисплей сообщение « Dis is OneHalf ! Press any key to continue …» и ожида ет нажатия любой клавиши для продолжения работы . Однако совпадение всех параметров явл яется чрезвычайно редким и не стоит рассч итывать на то , что вирус таким образом выдаст свое прису тствие в системе. Далее вирус читает оригинальный MBR и передает ему управление дальнейшей загрузкой при эт ом сохраняя свои обработчики прерываний Int 13 h (для обслужива ния шифрованных дорожек ) и Int 1 Ch (для перехвата DOS и контроля через перехваченное прер ывание Int 21 h записи файла на дискету ). Вирус корректно расшифровывает данные с зашифрованных дорожек и не за тормаживает работу компьютера. При помощи собственного обработчика преры вания Int 12 h вирус скрывает уменьшение размера свободной памяти на 4 килоба йта для всех программ , кро ме программы CHKDSK ( утилита проверки диска из компле кта DOS ) и программы Norton Commander . При помощи собственного обработчика прерывания обслуживания DOS Int 21 h скрывает приращение длины зараженного файла . Однако следует помнит ь , что в зараженн ой системе могут отсутствовать зараженные фай ла , т.к . в алгоритме вируса предусмотрено и х лечение при успешном заражении . При попы тке трассировки вируса в памяти при помощ и вызова прерывания Int 1 h он при помощи собственного обрабо тчика «за вешивает» систему организацией ц икла без выхода . Эти действия вируса позв оляют говорить о том , что он является стелс-вирусом , а возможность заражения файлов и 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 нового значения нижне й границы заши- фрованныхнных дорожек дает возможность обнаружить вирус по изменению MBR встроенными возможностями BIOS (прове рка на вирусы ) и ревизором Adinf . 2) Проверка заражаемого фай ла на зараженность , выпол- няемая сравнением количества секунд времени созда - ния файла с остатком деления даты времени создания файла на 30, дает возможность примен ить метод вакци - нирования файлов с целью предотвратить распростра - нение вируса с компьютера даже при наличии зараже - ния . При изменении количества секу нд во времени соз- дания файла вирус буд ет с читать такой файл уже зара - женным , а т.к . он вылечивает фай л-носитель при первом заражении мы не будем иметь в системе и файлах , пе- реписываемых на дискету , тела виру са. 3) Хранение в MBR ключа шифро вания дорожек диска и последне го значения границы дорожек дает возмож - ность в большинстве случаев корре ктно расшифровать дорожки . Хранение в файле таблицы размещения «пя - тен» расшифровщика позволяет корректн о удалить «пят - на» и само тело вируса из файла. 4) Проверку наличия своего тела в памяти вирус произво - дит вы зовом несуществующей функции DOS и анализом кода возврата . Это дает возмо жность написать резидент - ную вакцину , которая бы перехватывала вызов этой функции , выводила аварийное сообщение и запрещала дальнейшее выполнение операций . Этот способ приме ни л Александр Крыжановский в своей вакцине VS_ONE_H. 5) Запрет заражения файлов с опр еделенными именами да ет возм ожность «обмануть» вирус для получения истин ного значения объема ОЗУ . Достаточно назвать нашу про гр амму с запросом размера память как CHKDSK , и мы получим истинное значение количества памяти . По раз - нице мы можем судить о заражен ии нашей системы. 6) Многие вирусы трассируют int13 h до BIOS , чтобы обойти антивирусные ревизоры . Так же поступае т и O ne H alf, если увидит , что машина не заражена , и ее нуж - но заразить - тогда он прописывает себя в MBR, но де лает это после того , как оттрассир ует int13 h . Вакцина А.Крыжановского также перехватывает int13 h , и использует антитрассировочный алгори тм , называю - щийся в программистком мире "поплав ок ". Как только кто-л ибо в системе совершал попытку оттрассировать прерывание 13 h , вакцина выдает предупреж дение и останавливает систему. Метод «поплавка» основан на том , что трассировка делае тся пошагово – процессор переключается в режим отладки , и после выполнения каждой команды вызывает debug-прерывание , используемое , обычно отлад чиками для пошаговой отладки программы , чт обы п роанализиро вать результаты выполнения команды . Вызов отладочно го прерывания подразумевает , что ис пользуется стек процессора , в котором сохраняется а дрес возврата . Это и используется для того , чтобы определить трассировку : Мы запрещаем прерывания , затем поме щаем в первую свободную ячейку стека код 0000 или FFFF (оба адреса не могут быть адресом возврата ), зате м считываем из первой свободной ячейки стека значе ние , разрешаем пре рывания и сравниваем считанное зна чение с тем , что мы туда помещали. Смысл метода в том , что когда программа выполняется нормально , после запрета прерываний , никто не сможет прервать выполнение нашей программы , и поэтому поместив в первую свободную ячейку стека какое-либо значение , мы затем сможем ег о же оттуда и прочитать , потому что стек использовать неком у . Если же програм ма выполняется пошагово , то несмотр я на запрет преры - ваний , процессор все равн о в ызовет debug-прерывание после команды , которой мы помещали в стек число . Это debug -прерывание поместит в использова нную нами ячей - ку стека адрес возврата , после чего этот адрес мы и про - читаем следующей командой чтения и з стека . Получив несовпадение записанного и считанного чисел мы смо - жем убедиться в том , что включе н режим пошагового выполнения команд процессора и мы можем утверждать , что подверглись заражению вирусом. Для предотвраще ния заражения компьютера вирусом OneHalf 3544 рекомендую использовать резидентную вакцину VS _ ONE _ H , написанную ял тинским программистом Александром Крыжанов ск им . Так же можно использовать AVP монитор Евген ия Касперского . Можно использовать для обнару жения заражения ревизор ADINF Дмитрия Мостового , но необх одимо помнить , что его лечащий блок не умеет расшифровывать дорожки , а простое вос становление MBR приведе т к потере зашифрованных данных ! Для обнаружения и лечения вируса и устранения его последствий рекомендую исполь зовать полифаг DoctorWeb Игоря Данилова (версия не ниже 1.7, версия 1.6 просто удаляет тело вируса из системы , а это недопустимо ), AVP 3.0 Pro Евгения Касперского , а так же можно использовать словацкий фаг ONEHALF (специально написан для данного в ируса ) , полифаги TBAV , F - PROT , Norton Antivirus . Источники информации. 1. Информатика : Учебник / под ред . Проф . Н.В . Макаровой . - М .: Ф инансы и статистика , 1997. 2. П . Абель . Язык асс емблера для IBM PC и программирования . Мо сква , 1992. 3. Листинг вируса Onehalf 3544, полученный при помощи диз- ас семблера Sourcer v. 7.0 4. Вакцина против вируса OneHalf 3544 (VS_ONE_H.COM), напи - са нная Александром Крыжановским , 1995. 5. Антивирусные программы DrWeb 1.6; 1.7; 4.15; 4.16; AVP 3.0 Pro build 1.32, Adinf 12.0, TBAV, F-PROT, NAV. 6. Хижняк П.Л . Пишем вирус и антивирус для IBM – совместимых компьютеров . Инто . Москва 1991 7. Касперский Е . Компьют ерные вирусы в MS - DOS . Эдель . Моск - ва . 1992 г. 8. Интернет : сайты www . avp . ru ; www . virus . com ; www . virus . perm . ru 8. Электронный журнал « Infected voice » № 5/1995. Содержание. 1. Ведение ……………………………………………………… 2 2. Классификация вирусов …………………………………… 3 3. Анализ алгоритма вир уса ………………………………… .5 4. Размещение вируса в зараженно м файле ………………… .5 5. Размещение вируса в зараженном MBR ………………… ..6 6. Алгоритм инсталляции вируса …………………………… .7 7. Алгоритм заражения ф айлов для размножения………… ...9 8. Выводы …………………………………………… ………… 11 9. Источники информации …………………………………… .1 7
© Рефератбанк, 2002 - 2017