Вход

Компьютерный файлово-загрузочный полиморфныф стелс-вирус 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 - 2024