Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsiya_Virusi.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
329.22 Кб
Скачать

3. Файлові віруси

До даної групи відносяться віруси, що при своєму розмноженні тим чи іншим способом використовують файлову систему якої-небудь ОС.

Впровадження файлового вірусу можливе практично в усі викону­вані файли усіх популярних операційних систем. На сьогоднішній день відомі віруси, що вражають всі типи виконуваних об'єктів: командні файли (BAT), драйвери (SYS, у тому числі спеціальні файли IO.SYS і MSDOS.SYS) і виконувані двійкові файли (EXE, COM). Існують віруси, що вражають файли інших операційних систем - Windows, OS/2, Macintosh, UNIX, включаючи VxD-драйвери Windows.

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

Файлові віруси є найпоширенішим типом комп'ютерних вірусів. Вони становлять близько 80% загальної кількості вірусів, відомих для комп'ютерів, які сумісні з ІВМ РС. Цей клас комп'ютерних вірусів має дуже високу інфікуючу спро­можність. За відсутності протидії вони викликають справжні епі­демії. Так, наприклад, відбулося з вірусом RСЕ-1813.ІЕR, відо­мого також під назвами Jerusalim (Єрусалим), Black Friday (Чор­на п'ятниця).

Більшість розповсюджених файлових вірусів мають штами, які не дуже відрізняються від базової версії. Тому можна гово­рити про групи файлових вірусів і, відповідно, групові дескриптори і групові сигнатури. Нині кількість ви­яв­ле­них у країнах СНД файлових вірусів перевищує кілька сотень, тому запам'я­то­ву­вання їх класифікаційних кодів суттєво полегшується, якщо вони викори­стовуються з розширенням, яке показує, до якої групи належить даний вірус.

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

Класифікаційний код файлових резидентних вірусів почи­нається з префікса R, наприклад R-1701.САS.

Префікс файлового віруса. Крім символу R, класифікаційний код файлового вірусу може включати символи С і Е або їх комбінацію. Як уже зазначалося, символи С і Е визначають типи файлів, заражених даним вірусом. Наприклад, якщо резидентний вірус заражає СОМ- і ЕХЕ-файли, то його класифікаційний код матиме пре­фікс RСЕ.

Кількісна характеристика. У якості кількісної характеристики можна використовувати:

  • нормований приріст або інфек­тивну довжину (infective length);

  • довжину коду вірусу;

  • приріст довжини будь-якого зараженого файла.

До об'єктивних властивостей фай­ло­вих вірусів, що безпосередньо спостерігаються, можна віднести насам­перед приріст довжини файлів при зараженні. Цей приріст, який зумовлює наявність вірусу, можна використати для визна­чення його типу. Тут є дві основні проблеми. По-перше, вели­чина приросту може варіюватися за­леж­но від довжини зараже­ного файла (багато вірусів при дописуванні свого коду в кінець зараженого файла вирівнює своє тіло на найближчу адресу, кра­тну 16, тобто на межу параграфа). По-друге, величина приросту може не збігатися для СОМ- і ЕХЕ-файлів. Тому як кількісну харак­те­ристику частіше використовують нормований приріст – інфек­тивну довжину, яку ви­значається за такими правилами:

  • для вірусів з префіксом С і СЕ (RС, RКСЕ) характеристика класи­фіка­цій­ного коду має дорівнювати мінімальному приросту довжини СОМ-файла (для вірусів типу С і СЕ) або ЕХЕ-файла (для вірусів типу Е);

  • для вірусів, які не змінюють довжину файла, вказується нуль, а через де­фіс дійсна довжина тіла вірусу, наприклад RС-О-346.LЕН;

  • для вірусів, які маскують збільшення довжини файла на зараженій про­грамі, до характеристики, визначеної за першим правилом, зліва додається незначущий нуль (наприклад, RСЕ-02000. DAV).

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

Для визначення інфективної довжини не треба буде про­водити спе­ціальні експерименти із зараження файлів. Здебіль­шого її можна досить просто визначити, порівнявши прирости довжин двох або більше заражених файлів типу СОМ. Найчас­тіше файлові віруси заражають командний процесор МS-DОS (файл СОММАND.СОМ) і програми, назви яких знаходяться у файлі АUТОЕХЕС.ВАТ. При аналізі кількох заражених файлів можливі два найтиповіші (хоч і не єдино можливі) випадки.

Якщо прирости довжин двох або більше заражених файлів збіга­ють­ся, а залишки від ділення довжин початкових файлів на 16 від­різняються один від одного, то, ймовірно, вірус не виконує вирівнювання свого коду на межу параграфа й інфективну дов­жину L даного вірусу можна дістати за формулою:

L=D- 16-mod (LEN, 16)), тобто відніманням із отриманого приросту D доповнення 16 залишку від ділення початкової довжини LEN файла на 16. Наприк­лад, файл СОММАND.СОМ, який файлові віруси здебільшого пошкоджують в числі перших, у найпоширеніших нині версіях М8-DOS має довжину 25307. При цьому залишок від ділення 25307 на 16 дорівнює 11 (mod(25307,16)=11). Очевидно, що доповнення до 16 дорівнює 5, і для вирівнювання на межу па­раграфа необхідна вставка п'яти додаткових байтів. У цьому ви­падку інфективна довжина буде на 5 менша, ніж приріст довжи­ни файла СОММАND.СОМ. Перевагою прийнятого підходу є те, що, за окремим винятком (наприклад, вірус RСЕ-1813.ІЕR), визначена таким чином інфективна довжина збігається з довжи­ною коду вірусу.

Як кількісна характеристика класифікаційного коду можуть засто­со­вуватися й інші параметри. Найпоширенішими вважають такі два підходи.

Використання як кількісної характеристики довжини коду вірусу, ви­зна­ченої за константою, яка вміщується у фрагменті, що забезпечує допи­сування коду вірусу в заражений файл (цю константу можна порівняно легко визначити, аналізуючи дизасембльований код вірусу). Така характеристика є об'єктивною, тому її часто використовують розроб­ни­ки антивірусних про­грам, які досить добре володіють мовою асемблера. Але визна­чена так характеристика в ряді випадків не збігається зі значен­ням приросту довжин файлів, який спостерігається. Це знижує її цінність з погляду використання при спробі класифікації ко­ристувачем, який не володіє мовою асемблера, нового, ще не­відомого йому вірусу. Наприклад, для згаданого вище єруса­лимського вірусу довжина коду вірусу становить 1808 байтів, а приріст довжини при зараженні файлів типу СОМ - 1813 бай­тів, що пояснюється додатковим записуванням в кінець зараже­ного файла типу СОМ п'ятибайтної константи "Мs-Dos" (вико­ристовується як ознака зараженості файла).

Використання як кількісної характеристики приросту дов­жини якого-небудь конкретного файла, отриманого в результаті його зара­ження. Цей дійсно зручний підхід втратив свою при­вабливість з появою ряду вірусів, які не заражають командний процесор, з розповсюдженням МS-DOS версій 4.0 і ви­ще, в якій довжина файла СОММAND.СОМ становить 37637, з появою нових сучасних операційних систем.

Дескриптор файлового вірусу. Для зручності сприйняття де­скриптор вірусу розбивається на декілька складових, для яких ви­користовуються такі позначення:

DМ – головний дескриптор;

DР – предикат зараження (для зручності сприйняття запи­саний в близькій до алгебраїчної нотації);

DR (тільки для резидентних вірусів) – положення в опера­тивній пам'яті, реакція на "тепле" перезавантаження і розмір зайнятої пам'яті;

DH – перехоплювані переривання (в шістнадцятковій сис­темі числення).

Сигнатура файлового вірусу. Як уже відзначалося, для сиг­натур доцільно використовувати рядки в шістнадцятковій системі числення, які відповідають характерним послі­довностям команд у тілі вірусу. Розміщення сигнатур підпорядковується такому правилу: як­що М-сигнатура входить у V-сигнатуру, то вона дода­ється після V-сиг­на­ту­ри. Як уже відзначалося раніше, Т-сигнатури існують не для всіх файлових вірусів. Однією із найзручніших сигнатур для файлових вірусів є J-сиг­на­ту­ра. Їх можна дуже швидко визначи­ти за допомогою будь-якого налагоджувача (Debug, Turbo Debugger, АFD і т.д.). Корис­ту­ва­чі, які не вміють пра­цю­вати з налагоджувачами, можуть використо­вувати для визначення J-сиг­натур програ­му "маскошукач", яка входить в пакет VL (непоганий детектор, заснований на контекстному пошуку заданих рядків).

Необхідно відзначити, що контекстний пошук можна вико­ристо­ву­вати не тільки для пошуку заражених вірусом програм, але й для пошуку програм і файлів, які знищені або пошкод­жені вірусом. Наприклад, вірус С-648.VЕN при певних значен­нях таймера замість зараження програми знищує її, записуючи в перші 5 байтів рядок, який відповідає переходу на підпрограму перезавантаження ВІОS.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]