Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Поліморфні віруси

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Введення ЄІАС у поліморфізм Як відомо, перші віруси з’явилися давно. Вони заражали древні комп’ютери, і ніщо були їх зупинити, крім пильного користувача машини. Потім придумані антивіруси, що визначають їх за характерним симптомів. Але через час вірус перестав бути тупий мішенню для антивірусу. Тепер вірус наділили спеціальними можливостями, що дозволяло б йому бути непоміченим у системі. Однією… Читати ще >

Поліморфні віруси (реферат, курсова, диплом, контрольна)

Введення ЄІАС у поліморфізм Як відомо, перші віруси з’явилися давно. Вони заражали древні комп’ютери, і ніщо були їх зупинити, крім пильного користувача машини. Потім придумані антивіруси, що визначають їх за характерним симптомів. Але через час вірус перестав бути тупий мішенню для антивірусу. Тепер вірус наділили спеціальними можливостями, що дозволяло б йому бути непоміченим у системі. Однією з варіантів захисту від визначення є поліморфізм. Далекого 1990 року та було знищив всю антивірусну індустрію. Тільки завдяки професіоналізму працівників лабораторії було запроваджено складні методи, створені задля знищення поліморфних вірусів… Які ж вони працюють? Взагалі, поліморфізм — висококласна техніка, яка дозволить вірусу бути непоміченим по стандартної сигнатуре (чи, просто, масці). Зазвичай детектори визначають вірус за характерними шматках його коду. Що стосується полиморфным вірусом таке не пройде. Два файла, заражені у тому ж вірусом, завжди матимуть різний розмір. Засікти такий вірус дуже складно. Усі полиморфные віруси обов’язково забезпечуються расшифровщиком коду, який за певним принципу перетворює переданий йому код, викликаючи у своїй стандартні функції і складні процедури ОС. Самі методи шифрування можуть бути різними, але, зазвичай, кожна операція має власну дзеркальну пару. У ассемблері це реалізується досить легко, і такі пар можна знайти багато — ADD/SUB, XOR/XOR, ROL/ROR тощо. Такі операції проводяться для розшифровки осередків пам’яті. Досить важливою особливістю полиморфного вірусу і те, що вірус містить сміття, тобто операнды, функції і складні процедури, які є лише для заплутування коду. У цьому реалізуються мету: 1. Складність вивчення коду при трассировке файла. Ця мета актуальна лише для новачка, професіонал, який вивченням вірусів займався багато роки, одразу в усьому розбереться. 2. Збільшення елемента випадковості в расшифровщике. Місце їхньої вставки має значний вплив на розмір коду. З сміттям ж з’являються нові варіанти компонування коду. Розмір при кожному з них різним. Асемблер дає безмежні спроби з уставці сміття, тому вставки можуть бути різними. Ось лише деякі їх види: 1. Реєстрові операції. Зазвичай, арифметичні і логічні. Прикладом можуть бути такі команди: inc ax; mov ax,[si+bx-04]; add ax, 1234h і ін. 2. Дзеркальні команди. Такі, як add/sub, inc/dec й інші. 3. Хибні переходи, і навіть виклик підпрограм, містять сміття (jmp $+10h; call XXXXh). 4. Простий сміття із одиночних операндов (daa; nop; cld тощо.). Вирізняють кілька рівнів поліморфізму, які у вірус. Кожен із них по-різному реалізує різний розмір файлів, хто був заражені. Рівень 1. Найбільш прості олигоморфные віруси. Просто вони використовують постійні значення на свої расшифровщиков, тому легко визначаються антивирусами. З за цього такі віруси прозвали «невідь що полиморфными ». Приклади таких вірусів: Cheeba, December3, Slovakia, V-Sign, Whale. Рівень 2. Віруси, мають одну чи дві постійні інструкції, які використовують у расшифровщике. Також визначаються по сигнатуре, але мають складніше будова, ніж представники першого рівня. Приклади: ABC, DM, Flip, Jerusalem, Ontario, PC-Flu, Phoenix, Seat, Stasi, Suomi. Рівень 3. Віруси, які у своєму коді команды-мусор. Це своєму роді, пастка від детектування, допомагає заплутати власний код. Але такий вірус то, можливо засічений з допомогою попереднього відсівання сміття антивирусом. Віруси Tequila, StarShip, V2Px, DrWhite належать до третьої рівню поліморфізму. Рівень 4. Використання взаємозамінних інструкцій з перемішуванням в коді, без додаткового зміни алгоритму розшифровки, допомагає повністю заплутати антивірус. У цьому неможливо «впіймати «вірус по стандартної масці. Доводиться виконувати перебір, після якого потрібна сигнатура буде знайдено. То існували написані віруси Uruguay, CLME, APE. Рівень 5. Реалізація всіх вищевикладених рівнів із підтримкою різних алгоритмів в расшифровщике допомагає досягти високого рівня поліморфізму. У цьому може існувати кілька паралельних процесів розшифровки, коли той буде перетворювати код іншого навпаки. Розпізнавання таких вірусів — дуже складного процесу. І тому необхідно зробити ретельний аналіз коду самого расшифровщика. З лікуванням складніше — доводиться трасувати як генератор, а й тіло самого вірусу для виявлення повної інформації про зараженому файлі. Цю процедуру займає досить тривалий час і може призвести до невдало. Лікувати віруси цього рівня може лише DrWeb, у решті програмахце просто ні реалізовано. До представникам рівня ставляться DAME та інших. Рівень 6 (невиліковний). І, нарешті, існують віруси, які з програмних единиц-частей. Вони постійно змінюються у тілі й переміщають свої підпрограми. Лікування таких вірусів доки виробляється, але й написання треба дуже добре розумітися на ассемблері. Характерною особливістю такий зарази є плями. Причому у різні місця файла записується кілька блоків коду, що зумовлює назва методу. Такі плями загалом утворюють поліморфний расшифровщик, який працює із кодом наприкінці файла. Задля реалізації методу навіть потрібно використовувати команды-мусор — підібрати сигнатуру буде неможливо. Такий алгоритм використовують віруси BadBoy, CommanderBomber, Leech тощо. Поліморфізм стало дуже поширеним тільки завдяки расшифровщику. Зручно те, що один файл може працювати з багатьма вірусами. Цим і користуються вирусописатели, використовуючи чужій модуль. Підводним каменем при цьому може бути ситуація, як у базі антивірусу зберігається використовуваний расшифровщик. Якщо це сталося, все віруси, підключені нього, будуть детектироваться.

Любой може написати хороший поліморфний вірус. Необхідно тільки трохи розумітися на ассемблері. До створення середнього полиморфного вірусу витрачається трохи більше шостої години. Дуже проста реалізація пошуку дзеркальних команд. І тому необхідно створити зведену таблицю з операндами. До неї повинна додаватися додаткову інформацію: наявність дзеркала, необхідність заміни команди, і інше. Якщо людина трохи розуміється на вірусології і ассемблері, то скласти таку таблицю йому буде неважко. З командами-мусором можна вступити аналогічно, як і з дзеркалами. До речі про смітті. До таких інструкціям додається низку обмежень, які повинен виконувати кожен вирусописатель, що його творіння працювало як слід. Отже, команда має: 1. Передавати управління за зовнішню програму. Тобто управляти кодом може лише расшифровщик і ніхто інший. Якщо порушити цю правило — вірус буде помічений. 2. Змінювати регістри, що використовують робочі команди. Сміття є сміття і він у разі ні перетинатися із правильною кодом. 3. Викликати фатальні помилки, і навіть генерувати винятку, оскільки це зупинить роботу расшифровщика, або зробить її зрадливої. Сенс всіх правил зводиться одного — сміття ні заважати процесу розшифровки коду, а лише милувати око антивірусу і недосвідченого користувача, трассирующего заражений файл. Ще треба робити неробочу команду після циклу, але перед шифрованим кодом — це позбавить деяких проблеми з конвеєром у процесорів Pentium. У поліморфи нерідко убудовують код, виконуваному залежно від певної ситуації. Наприклад, при детектировании вірусу він може викликати процедуру самознищення. Як себе (часткова чи повна безповоротна модифікація коду), і системи (масове зараження системних файлів без можливості відновлення). Це дуже ускладнює пошук антивірусу від полиморфного вірусу — до антивірусної лабораторії вірус доходить вже у неробочому стані. Також було випадки виклику виключає коду під час спроби лікування вируса (на рівні поліморфізму). Вирусописатели передусім акцентують увагу до трьох головних речах в своєму витворі: 1. Маскування. Мета кожного полиморфного вірусу — якомога довше протриматися у системі до детектировании антивирусом. 2. Захист. Після виявлення зарази відбувається виклик виключає коду. 3. Складність. Код вірусу мусить бути дуже заплутаним, утримувати у собі инструкции-зеркала, команды-мусор та інші. Це зазвичай працює проти новачка, але професіонал протягом кількох годин вивчення коду при трассировке, простежить за алгоритмом вірусу. Перший поліморфний вірус виник 1990 року і називався Chameleon. Він вписував свій код насамкінець COM-файлов, і навіть використовував два алгоритму шифрування. Перший шифрує тіло по таймеру залежно від значення заданого ключа. Другий використовує динамічний шифрування і навіть активно заважає трассировке вірусу. Існувала й модифікація Chameleon. Друга версія 1 квітня форматировала диск A: (враховуючи обсяги на той час, це було дуже неприємно). Після цього еволюція полиморфов завершилася. Тільки після 3 роки вийшов вірус Phantom1, який добрався і по російських комп’ютерів. Він був небезпечний, хоча містив в коді ряд помилок, від яких генератор було розшифрувати тіло вірусу. У цьому виконуваний файл переставав функціонувати. Після тривалої простою системи фантом виводив на екран відеозображення з написом. Там було зазначено, що перебуває під наглядом небезпечного вірусу. Паралельно вірусам з’являлися і полиморфик-генераторы, однією з яким був MtE, відкрив ціле вірусне сімейство. Вона використовував дзеркальні функції, ніж утрудняв своє детекторування. Тепер вирусологу непотрібно писати свій дешифратор, а лише скористатися MtE, у результаті світ знав про новому сімействі вірусів. Цікаво, перший MtE-вирус був перехоплений антивірусної лабораторією, тому швидкий вихід захисту від першого серйозного полиморфного вірусу захистив безліч робочих станцій від зарази. На 1993 рік було дуже багато поліморфних вірусів. У цьому програмісти, певне, змагалися між собою і злочини вирішували, чий вірус виявиться крутіше від усіх. З’являлися дедалі нові дешифраторы, які використовувалися іншими вирусописателями на свої брудних цілей. Однією з таких небезпечних вірусів був Predator, який перехоплював переривання 13h і 21h і записував себе у кінець всіх COM-файлов. Використовуючи int 13h, вирь перевіряв сектора, зчитувальні з дисків, і зраджував у яких один біт в певний час. Інше сімейство вірусів Daemaen записує себе у COM, EXE і SYS-файлы. У цьому бинарники, що розпочинаються на SC, VF і F-, не заражаються. На вигляд ці віруси виглядають ті цілком безпечно, але насправді відбувається запис в MBR вінчестера й у boot-сектора дискет, а тіло зарази зберігається на минулих секторах. Вирь містить у собі ряд помилок, які можуть зруйнувати FAT. Вирусописатели зазвичай залишають разом із вірусом певну інформацію. Приміром, поліморфний вірус Invisible записується насамкінець виконуваних файлів. Залежно від часу зараза заміняє файл інший програмою, під час запуску якої юзер чує музику і на бачить собі текст пісні I «m the invisible man (хіт того часу). Ще одна приклад — вірус Seat. Після зараження вірус перехоплює 21h, записує себе у виконувані файли. Раз у раз на екрані комп’ютера з’являється визульные ефекти, а при натисканні клавіші лунають звуки ;). У цей час група програмістів з болгарської школи створює поліморфний вірус Todor. Він використовував висококласних алгоритмів. Його вишуканості в тому, чтоон розроблявся за технологією. Вага вірусу становив рівно 1993 байта, що відповідало року випуску. Після запуску Тодор відбувається розшифровка його тіла. І тому використовується досить простий алгоритм, заснований на XOR. Із кожним кроком слово вірусу XOR’ится з непостійним ключем. Після активації перехоплюється адресу 24h і відбувається зараження файла command.com. До того ж вірус вражає 5 файлів з розширенням COM чи EXE. Особливістю вірусу і те, що він перевіряє носій до можливості записи. Перед зараженням кожного бинарника створюється тимчасовий файл (потім видаляється). Коли це пояснити неможливо (адресу 24h потрібен для повернення саме таких помилок), зараза припиняє своєї діяльності, вважаючи, що носій захищений від записи. Атрибути й час файла після зараження стають колишніми. Лише значення секунд стає рівним 22. Це у тому, ніж інфікувати бинарник повторно (вірус перевіряє дату під час пошуку). До до того ж, 15 числа кожного місяці, вірус випадково шифрує сектор жорсткого диска. Це полиморфного вірусу досить небезпечною, оскільки сектором може бути і Root Directory. Не вдалось уникнути і помилок. Todor некоректно перевіряє довжину файла. Точніше, якщо вона більш 64 Кб, заразити файл вдасться, а комп’ютер зависне. Друга помилка у тому, що у тілі расшифровщика міститься зайва команда POP. Файл, у який вона потрапить, неминуче повисне після запуску. І насамкінець, заражаючи бинарник, вірус спочатку змінює заголовок файла, а потім записує себе у його кінець. При помилці записи або переповненні носія виконуваний файл буде зіпсований, й відновити його не вдасться. Після виходу Тодор світ знає про новий полиморфикгенераторі TPE (Trident Polymorphic Engine), який поширювався в архівах BBS з докладним кодом і документацією з використання. Завдяки цьому, почали з’являтися віруси (сімейство TPE), использующие цей модуль. Наприкінці 1993 року генераторів стало випускатися дуже багато. Антивіруси не справлялися із таким потоком, це теж зумовлювався поліпшенням технології поліморфізму. Розглянемо приклади. Дешифратор SPE дозволяв записувати код вірусу в виконувані файли і організовував спеціальний лічильник. У його певних значеннях, вірус прав вміст MBR вінчестера і перезагружал комп’ютер. Деякі генератори реагували на команди, запроваджені користувачем. Наприклад, VICE заражав файли в каталозі буде лише тоді, коли користувач в нього входив. Також дешифратор вмів видаляти бази антивірусу. Генератор SMEG було дуже небезпечний. Цей расшифровщик вмів вписувати свій код в виконувані файли, і навіть прати CMOS й інформаційного секторів дисків. Процес відбувався щопонеділка. Після екзекуції вірус показував напис, сообщающую, що жорсткий диск був ушкоджений. Нині багато віруси використовують поліморфізм високих рівнів у алгоритми. Але розвитку технології практично немає, можна сказати, що вже зжила себе. Крім поліморфізму є й інші методи маскування, наприклад, стелс-технологии. Можливо, скоро вирусописатели придумають потужний алгоритм у своїх творінь, який зможе розгадати жоден просунутий антивирус…

Показати весь текст
Заповнити форму поточною роботою