
- •Лекція 4 віруси як шкідливе програмне забезпечення План лекції:
- •1. Класифікація комп'ютерних вірусів
- •2. Систематизація комп’ютерних вірусів
- •3. Файлові віруси
- •Види файлових вірусів
- •Алгоритм роботи файлового вірусу
- •Приклади файлових вірусів
- •4. Завантажувальні (бутові) віруси
- •Класифікаційний код завантажувального вірусу
- •Дескриптор завантажувального вірусу
- •Сигнатура бутового вірусу
- •Принцип дії завантажувальних вірусів
- •Розташування завантажувального вірусу
- •Алгоритм роботи завантажувального вірусу
- •Приклади завантажувальних вірусів
- •5. Макро-віруси
- •Причини зараження макро-вірусами
- •Загальні відомості про віруси в ms Office
- •Принципи роботи Word/Excel/Office-вірусів
- •Алгоритм роботи Word макро-вірусів
- •Алгоритм роботи Excel макро-вірусів
- •Алгоритм роботи вірусів для Access
- •Приклади макро-вірусів
- •6. Мережеві віруси
- •Приклади мережевих вірусів
- •7. Стелс-віруси
- •Приклади стелс-вірусів
- •8. Поліморфік-віруси
- •Поліморфні розшифровувачі
- •Рівні поліморфізму
- •Зміна виконуваного коду
- •9. Способи захисту від вірусів
- •Систематичне архівування важливої інформації
- •Обмеження ненадійних контактів
- •Використання антивірусних програм
- •Види антивірусних програм
- •Контрольні питання до Лекції 4
8. Поліморфік-віруси
Не так давно виявлення вірусів було простою справою: кожен вірус створював точну копію самого себе при тиражуванні і інфікуванні нових файлів і завантажувальних секторів, тому антивірусним програмам необхідно було тільки знати послідовність байтів, що становлять вірус. Для кожного вірусу фахівці виявляли унікальну послідовність байтів – його сигнатуру. Наявність такої сигнатури служила високонадійним індикатором присутності небажаного коду, що і примусило авторів вірусів спробувати приховувати будь-яку послідовність байтів, здатну видати присутність їх творінь. Вони стали робити це шляхом шифрування вірусів.
Віруси, що шифрують свій код, відомі досить давно. Проте самі процедури розшифрування досить легко виявити, зокрема, тому, що далеко не всі автори вірусів мають досить знань для написання власних процедур шифрування і розшифрування, тому багато вірусів використовують для цього один і той самий код. Тепер сканери вірусів шукають певні процедури розшифрування. Хоча виявлення такої процедури ще нічого не говорить про те, який саме вірус присутній у зашифрованому вигляді, але це вже сигнал про наявність вірусу. Тому останнім прийомом зловмисників стає поліморфізм.
Перші поліморфні віруси Tequila і Maltese Amoeba з'явилися в 1991 році. Все б нічого, але в 1992 році автор, відомий під псевдонімом Dark Avenger, написав свого роду комплект «Зроби сам» для мутаційного механізму, який він зробив частиною вірусу Maltese Amoeba. До 1992 року розробники вірусів працювали насправді дарма. Абсолютно ясно, що кваліфікація професіоналів у сфері антивірусної безпеки ніяк не нижча, і тому багатомісячні зусилля “вірусописьменників” коштували в крайньому випадку зайвих годин роботи для фахівців. Адже всі зашифровані віруси обов'язково містили якийсь незашифрований фрагмент: сам розшифровувач або деяку його частину, по яких можна було б побудувати сигнатуру даного вірусу і потім вже боротися з ним звичними способами.
Ситуація змінилася, коли були придумані алгоритми, що дозволяють не тільки шифрувати код вірусу, але і міняти розшифровувач. Сама постановка такої задачі питань не викликає: ясно, що можна побудувати різні розшифровувачі. Суть у тому, що цей процес автоматизований, і кожна нова копія вірусу містить новий розшифровувач, кожен біт якого може відрізнятися від бітів розшифровувача копії, що породила її.
Отже, до поліморфік-вірусів відносяться ті з них, які неможливо (чи вкрай важко) знайти за допомогою так званих вірусних масок – ділянок постійного коду, специфічних для конкретного вірусу. Досягається це двома основними способами:
шифруванням основного коду вірусу з непостійним ключем і випадковим набором команд розшифровувача;
зміною самого виконуваного коду вірусу.
Існують також інші, досить екзотичні приклади поліморфізму: DOS-вірус "Bomber", наприклад, не зашифрований, однак послідовність команд, що передає керування коду вірусу, є цілком поліморфною. Поліморфізм різного ступеня складності зустрічається у вірусах усіх типів – завантажувальних, файлових і навіть у макро-вірусах.