Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Віруси як шкідливе програмне забезпечення

Поиск

Лекція 4

ВІРУСИ ЯК ШКІДЛИВЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ

 

План лекції:

1. Класифікація комп'ютерних вірусів.

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

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

4. Завантажувальні (бутові) віруси.

5. Макро-віруси.

6. Мережеві віруси.

7. Стелс-віруси.

8. Поліморфік-віруси.

9. Способи захисту від вірусів.

 

Класифікація комп'ютерних вірусів

Віруси можна розділити на класи за такими ознаками:

- за середовище існування;

- за способом зараження;

- за особливостями використовуваних алгоритмів;

- за деструктивними можливостями.

Віруси за середовищем їх існування. За цією ознакою віруси поділяються на:

- файлові віруси;

- завантажувальні віруси;

- макро-віруси;

- мережні віруси.

Файлові віруси діють одним з таких способів:

- впроваджуються в основному у виконувані файли, тобто у файли з розширеннями СОМ та ЕХЕ. Вони можуть впроваджуватись і у файли інших ти­пів, але в такому випадку, як правило, вони ніколи не отримують управління, і, як наслідок, втрачають здатність до розмноження;

- створюють файли-двійники (компаньйон-віруси);

- використовують особливості організації файлової системи (Link-віруси).

Бутовські (завантажувальні) віруси діють такими методами:

- впроваджуються в завантажувальний сектор диска (надалі Boot-cектор або бут-сектор);

- впроваджуються в сектор, що містить програму завантаження систем­ного диска (Master Boot Record);

- змінюють покажчик на активний boot-сектор.

Існують файлово-бутівські віруси, що заражають і файли, і завантажувальні сектори дисків.

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

Мережні віруси використовують для свого розповсюдження прото­коли або команди комп’ютерних мереж та електронної пошти.

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

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

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

Стелс-віруси (або віруси-невидимки) – це віруси, які повністю або частково приховують себе в системі. Найбільш розповсюдженим стелс-алго­ритмом є перехоплення запитів ОС на читання-записування заражених об’єк­тів. Стелс-віруси при цьому або тимчасово виліковують їх, або під­став­ляють замість себе незаражені ділянки інформації. Це можуть бути і макро-віруси, які можуть забороняти виклики меню перегляду макросів. Це можуть бути і файлові (наприклад, вірус “Frodo”), і бутовські (вірус “Brain”) стелс-віруси.

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

Віруси за деструктивними можливостями. Опис деструктивних мо­жливостей вірусу можна представити у такому розрізі:

- нешкідливі віруси ніяким чином не впливають на роботу комп’ютера, крім зменшення вільної пам’яті на диску в результаті свого поширення;

- безпечні віруси вплив вірусів обмежується зменшенням вільної пам’яті на диску і графічними, звуковими та іншими ефектами;

- не­безпечні віруси можуть призводити до серйозних збійних ситуацій у роботі комп’ютера;

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

 

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

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

Впровадження файлового вірусу можливе практично в усі викону­вані файли усіх популярних операційних систем. На сьогоднішній день відомі віруси, що вражають всі типи виконуваних об'єктів: командні файли (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.

Види файлових вірусів

За способом зараження файлів віруси поділяються на:

- overwriting-віруси;

- паразитичні ("parasitic");

- компаньйони-віруси ("companion");

- link-віруси;

- віруси-хробаки;

- віруси, що заражають об'єктні модулі (OBJ), бібліотеки компі­ляторів (LIB) і вихідні тексти програм.

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

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

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

1. Впровадження вірусу в початок файла ("prepending"-віруси) може від­буватися двома способами:

- вірус переписує початок файла, що заражається, у його кінець, а сам копіюється в місце, що звільнилося;

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

Деякі віруси при цьому дописують у кі­нець файла блок додаткової інформації (наприклад, вірус "Jeru­sa­lem" по цьому блоку відрізняє заражені файли від незаражених).

Впровадження вірусу в початок файла застосовується в переважній більшості випадків при зараженні BAT- і COM-файлів MS DOS. Відо­мо кілька вірусів, що записують себе в початок EXE-файлів операційних систем DOS, Windows і навіть Linux. При цьому віруси для збереження пра­цездатності програми або лікують заражений файл, повторно запускають його, чекають закінчення його роботи і знову записуються в його початок (іноді для цього використовується тимчасовий файл, у який записується знешкоджений файл), або відновлюють код програми в пам'яті комп'ютера і надбудовують необхідні адреси в її тілі (тобто дублюють роботу ОС).

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

а) у COM-файлі в більшості випадків це досягається зміною його перших трьох (чи більш) байтів на коди інструкції JMP Loc_Virus (чи в більш загальному випадку – на коди програми, що передає керування на тіло вірусу);

б) у заголовку EXE-файла змінюються значення стартової адреси (CSIP), кількість секцій у файлі, характеристики секцій, довжина вико­ну­ваного модуля (файла), рідше – регістри-покажчики на стек (SSSP), контрольна сума файла і т.д.;

в) у виконуваних файлах Windows і OS/2 (NewEXE – NE, PE, LE, LX) змінюються поля в NewEXE-заголовку. Структура цього заголовка значно складніша за заголовок DOS EXE-файлів, тому зміні підлягає більше число полів – значення стартової адреси, кількість секцій у файлі, характеристики секцій і т.д. Додатково до цього довжини файлів перед зараженням можуть збільшуватися до значення, кратного параграфу (16 байт) в DOS або секції в Windows і OS/2 (розмір секції залежить від параметрів заголовка EXE-файла);

г) віруси, що впроваджуються у SYS-файли, приписують свої коди до тіла файла і модифікують адреси програм стратегії (Strategy) і пере­ри­вання (Interrupt) драйвера, що заражається (зустрічаються віруси, що змінюють адресу тільки однієї з цих програм). При ініціюванні зара­женого драйвера вірус перехоплює відповідний запит ОС, передає його драйверу, чекає відповіді на цей запит, коректує його і залиша­ється разом із драйвером в одному блоці оперативної пам'­яті. Такий вірус може бути надзвичайно небезпечним і живучим, він впро­вад­жу­ється в оперативну пам'ять при завантаженні ОС раніш за будь-яку антивірусну програму, якщо вона теж не є драйвером. Але іс­нують віруси, які заражають системні драйвери іншим способом: ві­рус модифікує заголовок драйвера так, що DOS розглядає інфіко­ваний файл як ланцюжок з двох (або більше) драйверів.

3. Впровадження вірусу в середину файла ("inserting"-віруси) може здій­снюватись кіль­ко­ма методами:

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

б) метод "cavity", при якому вірус записується у свідомо неви­ко­рис­товувані області файла. Вірус може бути скопійований у незадіяні області таблиці настроювання адреси EXE-файла (вірус "BootExe"), у заголовок EXE-файла, в область стека файла COMMAND.COM, в область текстових повідомлень популярних компіляторів. Існують віруси, що заражають тільки ті файли, що містять блоки, заповнені яким-небудь постійним байтом, при цьому вірус записує свій код замість такого блоку;

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

4. Віруси без точки входу. Окремо слід зазначити досить незначну групу вірусів, що не має "точки входу" (EPO-віруси - Entry Point Obscuring viruses). До них відносяться віруси, що не записують команд передачі ке­ру­вання в заголовок COM-файлів (JMP) і не змінюють адресу точки старту в заголовку EXE-файлів. Такі віруси записують команду переходу на свій код у будь-яке місце в середину файла й одержують керування не безпо­се­редньо під час запуску зараженого файла, а під час виклику процедури, що містить код передачі керування на тіло вірусу. Причому виконуватися ця процедура може вкрай рідко (наприклад, при виведенні повідомлення про якусь специфічну помилку). Тому вірус може довгі роки "спати" усе­редині файла і “вискочити на волю” тільки при деяких обмежених умовах.

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

Перший спосіб – пошук у файлі послідовності стандартного коду (ві­руси "Lucretia", "Zhengxi"). Ці віруси шукають у заражуваних файлах стандартні заголовки процедур C/Pascal і пишуть замість них свій код.

Другий спосіб – трасування чи дизасемблювання коду файла ("CNTV", "MidInfector", "NexivDer"). Такі віруси завантажують файл у пам'ять, потім трасують чи дизасемблюють його й у залежності від різних умов вибирають команду (чи команди), замість яких записується код переходу на тіло вірусу.

Третій спосіб застосовується тільки резидентними вірусами – при запуску файла вони контролюють будь-яке переривання (частіше – INT 21h). Як тільки файл, що тільки заражається, викликає це переривання, вірус записує свій код замість команди виклику переривання (віруси "Avatar.Positron", "Markiz").

Четвертий спосіб базується на так званих настроюваннях коду про­грами. Таблиця настроювань (relocation table) в EXE-файлах вказує на адре­си в тілі програми, які при завантаженні програми повинні бути приведені у відповідність до реальних адрес пам'яті. Зазвичай адреси, що надбудовуються, містять асемблерні інструкції з обмеженого набору. Вірус може легко ідентифікувати конкретну інструкцію, замінити її на виклик свого коду JMP_Virus і занулити відповідний запис у таблиці настроювань (щоб команда JMP_Virus не виявилася зіпсованою при завантаженні файла в пам'ять).

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

Найбільш поширені компаньйон-віруси, що використовують особ­ли­вість DOS першим виконувати.COM-файл, якщо в одному каталозі при­сутні два файли з тим самим ім'ям, але різними розширеннями імені –.COM і.EXE. Такі віруси створюють для EXE-файлів файли-су­пут­ни­ки, що мають те ж саме ім'я, але з розширенням.COM, наприклад, для файла XCOPY.EXE створюється файл XCOPY.COM. Вірус записується в COM-файл і ніяк не змінює EXE-файл. При запуску такого файла DOS першим знайде і виконає COM-файл, тобто вірус, який потім запустить і EXE-файл. Деякі віруси використовують не тільки варіант COM-EXE, але також і BAT-COM-EXE.

Другу групу складають віруси, що при зараженні перейменовують файл у яке-небудь інше ім'я, запам'ятовують його (для наступного запуску фай­ла-хазяїна) і записують свій код на диск під іменем файла, що за­ра­жа­ється. Наприклад, XCOPY.EXE перейменовується в XCOPY.EXD, а вірус записується під ім'ям XCOPY.EXE. При запуску керування одер­жує код вірусу, що потім запускає оригінальний XCOPY, що збері­га­єть­ся під ім'ям XCOPY.EXD. Цікавий той факт, що даний метод працює, напевно, у всіх операційних системах: в DOS, в Windows і OS/2.

У третю групу входять так називані "Path-companion" віруси, що "гра­ють" на особливостях PATH. Вони або записують свій код під іменем зараженого файла, але "вище" на один рівень PATH (ОС, таким чином, першим знайде і запустить файл-вірус), або переносять файл-жертву на один підкаталог вище і т.д.

Можливе існування й інших типи компаньйонів-вірусів, що вико­ри­стовують інші особливості інших операційних систем.

Link-віруси. Link-віруси, як і компаньйон-віруси не змінюють фізичного вмісту файлів, однак під час запуску зараженого файла "змушують" ОС виконати свій код. Цієї мети вони досягають модифікацією необхідних полів файлової системи. На сьогоднішній день відомий єдиний тип Link-вірусів – віруси сімейства "Dir_II". При зараженні системи вони записують своє тіло в останній кластер логічного диска. При зараженні файла віруси коректують лише номер першого кластера файла, розташований у відповідному секторі каталогу. Новий початковий кластер файла буде вказувати на кластер, що містить тіло вірусу. Отже, при зараженні файлів їх довжини і вміст кластерів диска, що містять ці файли, не змінюються, а на всі заражені файли на одному логічному диску буде приходитися тільки одна копія вірусу.

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

Файлові хробаки. Файлові хробаки (worms) є, у деякому сенсі, різновидом ком­пань­йо­н-вірусів, але при цьому ніяким чином не пов'язують свою присутність з якимось виконуваним файлом. При розмноженні вони лише копіюють свій код у які-небудь каталоги дисків у надії, що ці нові копії будуть колись запущені користувачем. Іноді ці віруси дають своїм копіям спеці­альні імена, щоб підштовхнути користувача на запуск своєї копії, наприклад, INSTALL.EXE чи WINSTART.BAT.

Існують віруси-хробаки, що використовують досить незвичайні при­йо­ми, наприклад, записують свої копії в архіви (ARJ, ZIP та ін.). До та­ких вірусів відносяться "ArjVirus" і "Winstart". Деякі віруси записують ко­манду запуску зараженого файла в BAT-файли (наприклад, "Worm.Info").

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

OBJ-, LIB-віруси і віруси у вихідних текстах. Віруси, що заражають бібліотеки компіляторів, об'єктні модулі і вихідні тексти програм досить екзотичні і практично не поширені. Усього їх біля десятка.

Віруси, що заражають OBJ- і LIB-файли, записують у них свій код у форматі об'­єкт­ного модуля чи бібліотеки. Заражений файл, таким чином, не є виконуваним і нездатний на подальше поширення вірусу у своєму поточному стані. Носієм же "живого" вірусу стає COM- чи EXE-файл, одержуваний у процесі лінковки зара­же­ного OBJ/LIB-файла з інши­ми об'єктними модулями і бібліотеками. Таким чином, вірус поширюється в два етапи: на першому заражаються OBJ/LIB-файли, на другому етапі (лінковка) виходить працездатний вірус.

Зараження вихідних текстів програм є логічним продовженням попе­ред­ньо­го методу розмноження. При цьому вірус додає до вихідних текстів свій вихідний код (у цьому випадку вірус повинен містити його у своєму тілі) чи свій шіст­над­цят­ковий дамп (що технічно легше). Заражений файл здатний на подальше поширення вірусу тільки після компіляції і лінковки (віруси "SrcVir", "Urphin").

Приклади файлових вірусів

Abba.9849. Безпечний резидентний вірус. Перехоплює INT 21h і записується в кінець COM- і EXE-файлів при їх запуску. Містить рядки

\COMMAND.COM

Program too big to fit in memory

\ABBAл|*.* E\ABBAл|

Створює на поточному диску файли ABBAл|nn з атрибутами HIDDEN і READONLY, 'nn' - число файлів, заражених на цьому диску. Це число збільшується при зараженні чергового файла – вірус перейменовує цей файл в ABBAл|(nn+1). Залежно від числа nn вірус проявляє себе якимсь відео-ефектом на відео карті Hercules.

Lenin 943. Безпечний нерезидентний вірус. При запуску шукає EXE-файли і записується в їх кінець. При зараженні не змінює значення регістрів в EXE-заголовку, а вставляє в точку входу у файл команду CALL FAR virus і коректує Relocation Table. Залежно від своїх лічильників виводить тексти

САМЫЙ! ЧЕЛОВЕЧНЫЙ! ЧЕЛОВЕК!

Ленин и сегодня живее всех живых держит мертвой хваткой упыря

Також містить рядки

*.EXE PATH=

Metall.557. Дуже небезпечний нерезидентний вірус. Шукає.COM-файлы окрім COMMAND.COM і записується в їх кінець. Коректно заражає тільки файли, на початку яких присутня команда JMP/CALL NEAR. Решта файлів після зараження виявляється зіпсованими. Залежно від системного таймера перемішує символи на екрані. Містить рядок: METALL\I

Scorpion.2278. Дуже небезпечний нерезидентний зашифрований вірус. При запуску заражає файл C\COMMAND.COM, потім шукає COM- і EXE-файли і записується в їх кінець. При зараженні COMMAND.COM записується в кінець файлa в область стека COMMAND.COM і, таким чином, не збільшує його довжину. Знищує файли з ім'ям CHKLIST.MS. В деяких випадках також шукає інші файли і знищує їх. Залежно від системної дати і встановленого BIOS'а форматує вінчестер, виводить текст:

DEATH ON TWO LEGS V2.8

(c) BLACK SCORPiON, 1996

Written in Moscow

потім перехоплює INT 1Ch і програє мелодію. Вірус також містить рядки:

*.* *.EXE *.COM

C\COMMAND.COM

DEATH ON TWO LEGS WAS HERE

Sisters.2221. Дуже небезпечний резидентний зашифрований вірус. Перехоплює INT 21h, 16h і записується в кінець COM- і EXE-файлів при їх запуску. Знищує антивірусні файли даних CHKLIST.MS і CHKLIST.CPS.

Залежно від значень внутрішнього лічильника і поточної дати вірус відключає драйвер миші, стирає 40 секторів на диску C, видаляє CMOS пам'ять, завішує комп'ютер, виводить повідомлення:

TEMPLE OF LOVE V1.0 MS 95.

FoUnD VIRUS SYSTERS OF MERCY iN yOuR sYsTeM!!!

Вірусний обробник INT 16h (клавіатура) стирає CMOS-пам'ять ком­п'ютера після 700 натиснень на клавіші. Вірус також містить рядки тексту:

SyStEm is now halted.

 

Сигнатура бутового вірусу

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

Для незараженого бут-сектора (наприклад, для МS-DOS версії 3.3) J-сигнатура дорівнює ЕВ3490h (об'єктний код команди JМР, який служить для обходу таблиці параметрів). Цінність цієї ета­лонної J-сигнатури в тому, що вона порів­ня­но легко за­пам'ятовується. Тому невідповідність перших трьох байтів бут-сектора, що аналізується, вказаній еталонній J-сигнатурі свідчить про зараження бут-сектора.

Макро-віруси

Багато табличних і графічних редакторів, системи проектування, текстові процесори мають свої макро-мови для автоматизації виконання повторюваних дій. Ці макро-мови часто мають складну структуру і розвинений набір команд. Макро-віруси є програмами на макро-мовах, вбудованих у системи обробки даних. Для свого розмноження віруси цього класу використовують можливості макро-мов і при їх допомозі переносять себе з одного зараженого файла (документа, таблиці) в інші.

На кінець 1999 року відомо декілька систем, у яких виявлені макро-віруси. Це основні додатки Microsoft Office:

- редактор MS Word – мова WordBasic у MS Word 6/7 і VBA (Visual Basic for Applications), почи­на­ю­чи з MS Word 8;

- редактор таблиць MS Excel – мова VBA;

- редактор баз даних MS Access – мова VBA;

- редактор презентацій MS PowerPoint – мова VBA;

- менеджер проектів MS Project – мова VBA.

Піддався зараженню макро-вірусами також редактор AmiPro – спеціальна скрипт-мова.

Найбільше поширення одержали макро-віруси для Microsoft Office (Word, Excel і PowerPoint). Віруси в інших додатках MS Office досить рідкі, а для AmiPro відомий всего один макро-вирус. Можливе також існування макро-вірусів і для інших систем, що підтримують макро-мови достатньої потужності.

Приклади макро-вірусів

Macro.Word.Box. Містить сім макросів AutoOpen, AutoClose, Box, Dead, FilePrint, FilePrintDefault, ToolsMacro. При викликах AutoOpen і AutoClose заражає глобальні макроси і документи. Макрос ToolsMacro використовується для заборони меню Tools/Macro. Решта макросів містить процедури зараження і різні ефекти. Виявляється декількома способами. При друці вставляє в документи рядки китайською мовою, виводить MessageBox, записує на диск і запускає вірус "OneHalf.3544", створює і програє WAV-файл (звуковий ефект). Викликає команди DOS:

- echo y|format с/u

- echo y|format c/u/vTwnos1

Містить рядки:

- Taiwan Super No.1 Macro Virus

- Twno1-S

- Today Is My Birthday

- Macro.Word.Catch

Містить шість макросів AutoOpen, encrypt1, FileSave, AutoClose, infectdoc, infectnorm. Зараження системної області макросів і документів відбувається при відкритті файлів. Вірус замінює в документах букви "i" на "o", "o" на "i", "a" на "e", "e" на "a". Причому підміна символів непо­міт­на. При відкритті заражених файлів вірус відновлює текст документа в первинному вигляді, а при збереженні документів на диск – знову замінює. В результаті після лікування вірусу текст документів може виявитися зіпсованим. Після кожної заміни вірус видає в StatusBat крапку. При закритті документів залежно від лічильника випадкових чисел (з віро­гід­ністю 1%) вірус видає повідомлення:

Its а Catch 22 Situation!

Macro.Excel.Soldier. Поліморфний макро-вірус, заражає електронні таблиці Excel. Міс­тить чотири функції з постійними іменами Auto_Open, Auto_Close, Delay, Poly; і декілька функцій з випадковими іменами. При відкритті зараженої таблиці видаляє рядки меню Format/Sheet/Hide і Format/Sheet/Unhide (стелс). При закритті заражає файли, що знаходяться у поточному каталозі. При зараженні залежно від системного датчика випадкових чисел вставляє в початок тексту функції з випадковими іменами і випадковими рядками. Також залежно від випадкового числа виводить в заголовок Excel рядок, що біжить: Microsoft Excel.

 

Мережеві віруси

Мережеві віруси поширюються по комп'ютерних ме­режах. Існують комбі­нації, наприклад, файлово-бутові віруси, які заражають і файли, і бут-сек­то­ри дисків. Крім того, у ком­п'ютерних мережах можуть роз­пов­сюд­жу­ватись віруси будь-яких типів. Віруси розповсюджуються від одного користувача до ін­шого внаслідок обміну програмними продуктами. Локальні ме­режі, як відомо, призначені для сумісного використання програ­мних пакетів кількома користувачами. Мережі дозволяють ши­роко обмінюватися програмами і даними. Очевидно, що при цьому створюється зручне середовище для розповсюдження віру­су. Так, якщо вірус заразив програму login.ехе, яка знаходиться на сервері і яку запускає кожен корис­тувач при вході в мережу, то дуже швидко вірус з'явиться на всіх робочих станціях. Але на практиці ситуація виглядає не дуже драматично, бо ме­реж­ні опе­раційні системи мають механізми захисту і розподілу користува­чів. При грамотному використанні цих можливостей можна об­межити область, в якій може розповсюдитись вірус, внесений з робочої станції, тільки робочою областю того користувача, який вніс його в систему.

Існують мережні віруси, які розраховані на спеціальні ме­режні диски, наприклад, на систему Netware – вони несан­кціоновано входять у систему і, використовуючи максимальні по­вноваження супервізора, по­шкоджують програми, які знахо­дяться на мережних дисках.

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

IRC-хробаки. IRC (Internet Relay Chat) – це спеціальний протокол, розроблений для кому­нікації користувачів Інтернет у реальному часі. Цей протокол надає можливість так званої Інтернет-розмови за допомогою спеціально розробленого про­грамного забез­пе­чення. IRC чимось схожий на телефонну розмову, за винятком того, що в розмові можуть брати участь більш двох спів­роз­мов­ників, що поєднуються по інтересах у різні групи IRC-конференцій. Для підтримки IRC-конференцій створені різні IRC-сервера, до яких під­клю­чаються учасники IRC-розмов. В усьому світі нараховується величезна кіль­кість IRC-серверів, об'єднаних у так звані мережі. Найбільшою є мере­жа EFnet, сервер якої щодня одночасно відвідують кілька десятків тисяч користувачів.

Для підключення до IRC-сервера і ведення IRC-розмов розроблені спе­ці­аль­ні програми – IRC-клієнти. Підключившись до IRC-сервера за до­по­могою п



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 789; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.135.226 (0.017 с.)