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

2. Систематизація комп’ютерних вірусів

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

Відомим дослідником комп’ютерних вірусів М.М. Безрукавим було вироблено і запропоновано схему класифікації, яка включає три основні елементи:

  • класифікаційний код вірусу;

  • дескриптор вірусу (формалізований список основних власти­вос­тей);

  • сигнатура вірусу (рядок для контекстного пошуку даного вірусу в зараженій програмі).

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

Наприклад, в коді RСЕ-1813с є такі складові: RСЕ - префікс, 1813 - корінь (харак­те­рис­тика), а с - суфікс. Крім того, фа­культативне роз­ширення, що записується в кінці коду через крапку, характеризує групу, до якої належить даний вірус. На­приклад, RСЕ-1813.ІЕR означає, що даний вірус належить до єрусалимської групи.

Головною вимогою до класифікаційного коду вірусу є мож­ливість визначення більшості вхідних його властивостей на незараженому ком­п'ю­тері. Виконання будь-яких дій з дослідження вірусу на зараженому ком­п'ю­те­рі є найбільшою й найбільш роз­повсюдженою помилкою, якої припускаються недосвідчені користувачі. Необхідно підкреслити, що будь-які дії на комп'ютері, зараже­ному невідомим вірусом, пов'язані з певним ризиком виклика­ти спрацьовування троянської компоненти вірусу. Крім того, резидентний вірус з метою маскування може перехоплювати запити і перекручувати інформацію, яка видається. Нині відомі віруси, що мають таку властивість. Наприклад, група файлових вірусів, відома під назвою ТР-вірусів, починаючи з вірусу ТР-34 (члени цієї групи мають номери, які зберігаються в передостанньому байті вірусу в шістнадцятковому вигляді), має властивість "самовикусування" при спробі трасувати заражену програму – резидентний вірус виконує "викусування" вірусу з програми, "підсову­ючи" налагоджувачу вже вилікувану програму. Так само бутові віру­си, які входять у пакистанську групу (віруси “Вгаіn”, “Аshar”), при спробі переглянути бут-сектор на зараженому комп'ютері "підсовують" користувачу оригінальний бут-сектор, який зберігається вірусом в одному із секторів, позначеному як дефектний (і, тим самим, вилученому з розподілу у файли).

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

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

  • бутові – коли голова вірусу розміщується в бут-секторі або блоці МВR (символи В, R або М у префіксі);

  • пакетні – коли голова вірусу розміщена в пакетному файлі, тобто являє собою фрагмент або програму на будь-якій мові програмування (префікс J).

Поряд із "чистими" вірусами, які вико­ристовують лише одне сере­довище, нині з'явились "гібридні" – ком­бінація файлових і бутових вірусів. У таких вірусах замість пер­шої літери R використовують відповідну літеру префікса бутового вірусу, наприклад ВСЕ або МСЕ (як і бутові, змішані віруси не можуть бути нерезидентними).

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

Суфікс використовується, коли два різних віруси або два шта­ми од­но­го і того самого вірусу мають однаковий префікс і харак­теристику. У цьо­му випадку, для отримання унікального коду використовується як суфікс латинська літера. Наприклад, в коді RС-1704f літера f означає "штам-f”.

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

Дескриптор є систематизацією основних характеристик ві­русу в за­кодованому вигляді. Кодування складається з груп сим­волів, що почина­ються з великої латинської літери, за якою йдуть маленькі латинські літери або цифри. При цьому велика латинська літера визначає вид харак­те­рис­ти­ки, а наступні за нею малі літери або цифри – значення характеристики для конкрет­ного вірусу. Наприклад, в дескрипторі "Хаb Yc Zdmt" є три вла­стивості: X – зі значенням "аb", Y – зі значенням "с" і Z – зі значенням "dmt".

Сигнатура вірусу. Оскільки більшість відомих нині вірусів до­пускають детектування за допомогою контекстного пошуку, то однією з важливих задач класи­фікації є складання сигнатур. Сигнатура – це список рядків для контекстного пошуку. Знання сигнатур дозволяє перевіряти нове програмне забез­пе­чення на їх наявність вірусів, тим са­мим суттєво підвищуючи ступінь захищеності ЕОМ. Стандарти­зація сигнатур особливо важлива, коли вірус має багато штамів, оскільки формальні схеми, подібні описаним вище класифіка­ційному коду і дескриптору, мають той недолік, що деякі штами не будуть розрізнятися в заданому просторі ознак. Водночас по­рівняно легко забезпечується унікальність сигнатури, у крайньо­му разі для більшості відомих вірусів, хоч існують віру­си, які не вміщують жодної постійної сигнатури, тобто які не можна знайти за допомогою контекстного пошуку.

Сигнатури вірусів можуть бути представлені як текстовими рядками або регулярними виразами, так і ділянками програмного коду.

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

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

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

На сьогоднішній день є програми, які забезпечують детектування вірусів шля­хом пошуку в файлах відповідних рядків, і використані в них сигнатури природно "прийняти за основу". Найбільшу цінність становлять рядки, які використовуються у відомому закордон­ному детекторі Scan, оскільки нові версії цього детектора з'явля­ються регулярно і охоплюють практично всі віруси, які з'яв­ляються за кордоном. З інших закордонних детекторів необхід­но відзначити Virscan фірми IВМ і ТNTVirus фірми Саrnel (Із­раїль). Для визначеності називатимемо рядок, який використовуєть­ся детектором Scan, М-сигнатурою, рядок, який використовується Virscan, – І-сигнатурою, а рядок, який використовується TNTVirus, – С-сигнатурою.

Водночас відзначимо, що сигнатур для ряду вірусів, розроблених у нашій країні, в існуючих версіях цих програм не­має, а сигнатури для болгарських вірусів часто невдалі. У таких випадках використовуються сигнатури, які позна­чені буквою В (В-сигнатури), або так звані J-сигнатури. Останні являють собою початкові байти коду вірусу, тобто перші виконувані команди тіла вірусу. Досвід показує, що вони досить специфічні і в більшості випадків дозволяють відрізнити один вірус від іншого. При цьо­му для файлових вірусів, які дописують своє тіло в кінець файла, вважають, що J-сигнатура починається з байта, на який пе­редає керування команда JМР. Крім того, в тілі деяких вірусів зустрічаються характерні текстові рядки. Такі рядки називатимемо Т-сигнатурами і використовуватимемо як допоміжні.

Необхідно відзначити, що контекстний пошук може вико­ристову­ватися не тільки для пошуку заражених вірусом про­грам, але й для пошуку програм і файлів, які знищені або по­шкоджені вірусом. Наприклад, вірус С-648.VEN при певних зна­ченнях таймера замість зараження програми знищує її, запи­суючи в перші п'ять байтів рядок, який відповідає переходу на підпрограму перезавантаження ВІОS. Для пошуку знищених ві­русом програм можна використовувати рядок "ЕАFОFFООFО". Аналогічно вірус RСЕ-1800.DAV знищує сектори на вінчестері, записуючи перші байти повідомлення "Еddie lives … somewhere in time". За цим повідомленням за допомогою Norton Utilites або інших програм можна виявити пошкоджені сектори і визначити, до яких файлів вони належать.

За наявності сигнатури перевірку зараженості файлів вірусом даного типу зручно виконувати, використовуючи спеціальні програми. Наприк­лад, вдалою є програма TBScan, яка здійснює пошук у каталогах або заданих його гілках. У випадку виявлення заражених програм доцільно додатково проконтролювати результати за допомогою, наприклад, Norton Utilites, оскільки для перегляду всіх файлів можна використовувати режим глобального пошуку на диску.

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