Життєвий цикл вірусу

Оскільки відмінною рисою вірусів у традиційному змісті є здатність до розмноження в рамках одного комп’ютера, розподіл вірусів на типи відбувається у відповідності зі способами розмноження.

Сам процес розмноження може бути умовно розділений на кілька стадій:

  1. Проникнення на комп’ютер
  2. Активація вірусу
  3. Пошук об’єктів для зараження
  4. Підготовка вірусних копій
  5. Впровадження вірусних копій

Особливості реалізації кожної стадії породжують атрибути, набір яких фактично й визначає клас вірусу.

Проникнення

Віруси проникають на комп’ютер разом із зараженими файлами або іншими об’єктами (завантажувальними секторами дискет), ніяк, на відміну від хробаків, не впливаючи на процес проникнення. Отже, можливості проникнення повністю визначаються можливостями зараження й класифікувати віруси по цих стадіях життєвого циклу окремо змісту немає.

Активація

Для активації вірусу необхідно, щоб заражений об’єкт одержав керування. На даній стадії розподіл вірусів відбувається по типах об’єктів, які можуть бути заражені:

  1. Завантажувальні віруси – віруси, що заражають завантажувальні сектори постійних і змінних носіїв.

Приклади. Шкідлива програма Virus.Boot.Snow.a записує свій код в MBR жорсткого диска або в завантажувальні сектори дискет. При цьому оригінальні завантажувальні сектори шифруються вірусом. Після одержання керування вірус залишається в пам’яті комп’ютера (резидентність) і перехоплює переривання INT 10h, 1Ch й 13h. Іноді вірус проявляє себе візуальним ефектом – на екрані комп’ютера починає падати сніг.

Інший завантажувальний вірус Virus.Boot.DiskFiller також заражає MBR вінчестера або завантажувальні сектори дискет, залишається в пам’яті й перехоплює переривання – INT 13h, 1Ch й 21h. При цьому, заражаючи дискети, вірус форматує додаткову доріжку з номером 40 або 80 (залежно від обсягу дискети він може мати 40 або 80 доріжок з номерами 0-39 або 0-79 відповідно). Саме на цю нестандартну доріжку поза полем звичайної видимості вірус записує свій код, додаючи в завантажувальний сектор лише невеликий фрагмент – головну частину вірусу.

При зараженні вінчестера Virus.Boot.DiskFiller розташовує свій код безпосередньо за MBR, а в самому MBR міняє посилання на активний завантажувальний сектор, указуючи адресу сектора де він розташований.

  1. Файлові віруси -віруси, що заражають файли. Ця група додатково ділиться на три, залежно від середовища в якій виконується код:

Властиво файлові віруси – ті, які безпосередньо працюють із ресурсами операційної системи.

Приклади. Найвідоміший файловий вірус всіх часів і народів – Virus.Win9x.CIH, відомий також як “Чорнобиль”. Маючи невеликий розмір – близько 1 кб – вірус заражає PE-файли (Portable Executable) на комп’ютерах під керуванням операційних систем Windows 95/98 таким чином, що розмір заражених файлів не міняється. Для досягнення цього ефекту вірус шукає у файлах “порожні” ділянки, що виникають через вирівнювання початки кожної секції файлу під кратні значення байт. Після одержання керування вірус перехоплює IFS API, відслідковуючи виклики функції звертання до файлів і виконують заражання файлу. 26 квітня спрацьовує деструктивна функція вірусу, що полягає в стиранні Flash BIOS і початкових секторів жорстких дисків. Результатом є нездатність комп’ютера завантажуватися взагалі (у випадку успішної спроби стерти Flash BIOS) або втрата даних на всіх жорстких дисках комп’ютера.

З останніх шкідливих програм, що володіють вірусною функціональністю, можна відзначити Email-Worm.Win32.Bagle.p (а також його модифікації .q й .r). Будучи в першу чергу хробаком з основним каналом поширення через електронну пошту, Bagle.p містить також функцію зараження EXE-файлів шляхом дописування в їхній кінець поліморфного коду вірусу

Макровіруси – віруси, написані мовою макрокоманд й, що виконують у середовищі якого-небудь додатка. У переважній більшості випадків мова йде про макроси в документах Microsoft Office.

Приклади. Одними з найбільш руйнівних макровірусів є представники сімейства Macro.Word97.Thus. Ці віруси містять три процедури Document_Open, Document_Close й Document_New, якими підмінює стандартні макроси, що виконуються при відкритті, закритті й створенні документа, тим самим забезпечуючи зараження інших документів. 13 грудня спрацьовує деструктивна функція вірусу – він видаляє всі файли на диску C:, включаючи каталоги й підкаталоги.

Модифікація Macro.Word97.Thus.aa крім зазначених дій при відкритті кожного зараженого документа вибирає на локальному диску випадковий файл і шифрує перші 32 байта цього файлу, поступово приводячи систему в непрацездатний стан.

Макровіруси здатні заражати не тільки документи Microsoft Word й Excel. Існують шкідливі програми орієнтовані й на інші типи документів: Macro.Visio.Radiant заражає файли відомої програми для побудови діаграм -Visio, Virus.Acad.Pobresito – документи AutoCAD, Macro.AmiPro.Green – документи популярного раніше текстового процесора Ami Pro.

Скріпт-віруси – віруси, що виконують у середовищі певної командної оболонки: раніше – bat-файли в командній оболонці DOS, зараз частіше VBS й JS – скріпти в командній оболонці Windows Scripting Host (WSH).

Приклади. Virus.VBS.Sling написаний мовою VBScript (Visual Basic Script). При запуску він шукає файли з розширеннями .VBS або .VBE і заражає їх. При настанні 16-го червня або липня вірус при запуску видаляє всі файли з розширеннями .VBS й .VBE, включаючи самого себе.

Virus.WinHLP.Pluma.a – вірус, що заражає файли допомоги Windows. При відкритті зараженого файлу допомоги виконується вірусний скрипт, що використовуючи нетривіальний метод (по суті, уразливість в обробці скріптів) запускає на виконання вже як звичайний файл Windows певний рядок коду, що міститься у скрипті. Запущений код робить пошук файлів довідки на диску й впроваджує в їхню область System скріпт автозапуску.

Пошук жертв

На стадії пошуку об’єктів для зараження зустрічається два способи поводження вірусів.

  1. Одержавши керування, вірус робить разовий пошук жертв, після чого передає керування асоційованому з ним об’єкту (зараженому об’єкту).

Приклад. Звичайно при освоєнні нової платформи спочатку з’являються віруси саме цього типу. Так було з появою вірусів під DOS, під Windows 9x, під Windows NT, під Linux.

Наприклад, таким вірусом є Virus.Multi.Pelf.2132 – один з деяких представників мультиплатформових вірусів. Цей вірус здатний заражати як PE-файли, так і файли у форматі ELF (формат файлів, що виконують, під Linux). При запуску вірус робить у поточному (під обома операційними системами) і вищіх каталогах (під Windows) файлів форматів, що заражають, (PE й ELF), визначаючи дійсний формат файлу по його структурі. Після зараження знайдених файлів вірус завершує роботу й повертає керування запущеному файлу.

  1. Одержавши керування, вірус так чи інакше залишається в пам’яті й робить пошук жертв безупинно, до завершення роботи середовища, у якій він виконується

Приклад. Virus.DOS.Anarchy.6093 також є мультиплатформовим у тому розумінні, що він здатний заражати DOS COM- і EXE-файли, а також документи Microsoft Word 6/7. При цьому вірус може активуватися при запуску як у середовищі DOS, так й у середовищі Windows 95. Після запуску вірус перехоплює переривання INT 21h, а в середовищі Windows додатково вносить зміни в драйвер VMM32.VXD (Virtual Memory Manager) з метою перехоплення звертань до файлів. При запуску або відкритті COM-, EXE й DOC -файлу вірус заражає його. Крім цього, у файловому варіанті вірус є поліморфним (див. нижче), і в будь-якому варіанті має stealth-функціональність (див. нижче)

Віруси другого типу в часи однозадачной DOS було прийнято називати резидентними. З переходом на Windows проблема залишитися в пам’яті перестала бути актуальної: практично всі віруси, що виконують у середовищі Windows, так само як й у середовищі додатків MS Office, є вірусами другого типу. І навпроти, скрипт-віруси є вірусами першого типу. Відповідно, атрибут резидентний застосуємо тільки до файлових DOS вірусам. Існування нерезидентних Windows вірусів можливо, але на практиці вони є рідкісним винятком.

Окремо має сенс розглянути так називані stealth-віруси – віруси, які перебуваючи постійно в пам’яті, перехоплюють звертання до зараженого файлу й на ходу видаляють із нього вірусний код, передаючи у відповідь на запит незмінену версію файлу. У такий спосіб ці віруси маскують своя присутність у системі. Для їхнього виявлення антивірусним засобам потрібна можливість прямого звертання до диска в обхід засобів операційної системи. Найбільше поширення Stealth-віруси одержали в часи DOS.

Підготовка вірусних копій

Процес підготовки копій для поширення може істотно відрізнятися від простого копіювання. Автори найбільш складних у технологічному плані вірусів намагаються зробити різні копії максимально несхожими для ускладнення їхнього виявлення антивірусними засобами. Як наслідок, складання сигнатури для такого вірусу вкрай утруднене або зовсім неможливо.

При створенні копій для маскування можуть застосовуватися наступні технології:

  • Шифрування — вірус складається із двох функціональних шматків: властиво вірус і шифратор. Кожна копія вірусу складається із шифратора, випадкового ключа й властиво вірусу, зашифрованого цим ключем.
  • Метаморфізм — створення різних копій вірусу шляхом заміни блоків команд на еквівалентні, перестановки місцями шматків коду, вставки між значущими шматками коду “сміттєвих” команд, які практично нічого не роблять.

Сполучення цих двох технологій приводить до появи наступних типів вірусів.

  • Шифрований вірус – вірус, що використає просте шифрування з випадковим ключем і незмінний шифратор. Такі віруси легко виявляються по сигнатурі шифратора.
  • Метаморфний вірус – вірус, що застосовує метаморфізм до всього свого тіла для створення нових копій.
  • Поліморфний вірус – вірус, що використає метаморфний шифратор для шифрування основного тіла вірусу з випадковим ключем. При цьому частина інформації, використовуваної для одержання нових копій шифратора також може бути зашифрована. Наприклад, вірус може реалізовувати кілька алгоритмів шифрування й при створенні нової копії міняти не тільки команди шифратора, але й сам алгоритм.

Поліморфні віруси можна ділити на класи за рівнем поліморфізму, що бажають докладніше познайомитися із цим питанням можуть знайти корисну інформацію в [1].

Пік популярності поліморфних вірусів припав на часи DOS, проте, і пізніше поліморфізм використався в безлічі вірусів, продовжує використатися поліморфізм і сьогодні.

Приклади. Згаданий вище Email-Worm.Win32.Bagle.p є поліморфним вірусом.

Одним з найбільш складних і щодо пізніх поліморфних вірусів є Virus.Win32.Etap. При зараженні файлу вірус перебудовує й шифрує власний код, записує його в одну із секцій файлу, що заражає, після чого шукає в коді файлу виклик функції ExitProcess і заміняє його на виклик вірусного коду. Таким чином, вірус одержує керування не перед виконанням вихідного коду зараженого файлу, а після нього.

Впровадження

Впровадження вірусних копій може здійснюватися двома принципово різними методами:

  • Впровадження вірусного коду безпосередньо в заражає об’єкт
  • Заміна об’єкта на вірусну копію. Об’єкт, що заміщає, як правило, перейменовується

Для вірусів характерним є переважно перший метод. Другий метод набагато частіше використається хробаками й троянами, а точніше троянськими компонентами хробаків, оскільки трояни самі по собі не поширюються.

Приклад. Один з деяких поштових хробаків, що поширюються по поштовій книзі The Bat! – Email-Worm.Win32.Stator.a, крім усього іншого заражає деякі файли Windows за принципом вірусу-компаньйона. Зокрема, до заражають файлам, що, ставляться: mplayer.exe, winhlp32.exe, notepad.exe, control.exe, scanregw.exe. При зараженні файли перейменовуються в розширення .VXD, а вірус створює свої копії під оригінальними іменами файлів, що заражають. Після одержання керування вірус запускає відповідний перейменований оригінальний файл.

Як варіант другого методу, у часи DOS застосовувався наступний прийом. При наборі імені файлу, що виконує, без вказівки розширення, DOS шукає один по одному спершу BAT, потім COM, і зрештою EXE-файл. Відповідно, вірусна копія створювалася в одному каталозі з EXE-файлом, дублюючи його ім’я й приймаючи розширення COM. Таким чином, при спробі запустити даний EXE-файл без явної вказівки розширення спочатку запускався вірус.

Аналогічний прийом може використатися й в Windows-системах, але оскільки основна маса користувачів Windows рідко користуються запуском файлів з командного рядка, ефективність цього методу буде низкою.

Попередня стаття
Наступна стаття