Лекція 4 ВІРУСИ ЯК ШКІДЛИВЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ План лекції


НазваЛекція 4 ВІРУСИ ЯК ШКІДЛИВЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ План лекції
Сторінка2/7
Дата21.04.2013
Розмір0.77 Mb.
ТипЛекція
bibl.com.ua > Інформатика > Лекція
1   2   3   4   5   6   7

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

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

  • 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").

Алгоритм роботи файлового вірусу

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

  • резидентний вірус перевіряє оперативну пам'ять на наявність своєї копії і інфікує пам'ять комп'ютера, якщо копія вірусу не знайдена. Нерезидентный вірус шукає незаражені файли в поточному і\або кореневому каталозі, у каталогах, відзначених командою PATH, сканує дерево каталогів логічних дисків, а потім заражає виявлені файли;

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

  • повертає керування основній програмі (якщо вона є). Паразитичні віру­си при цьому або лікують файл, виконують його, а потім знову зара­жа­ють, або відновлюють програму (але не файл) у вихідному виді (на­приклад, у COM-програм відновлюються декілька перших байтів, у EXE-програми об­чис­лю­єть­ся справжня стартова адреса, у драйвера відновлюються значення адрес про­грам стратегії і переривання). Ком­пань­йони-віруси запускають на виконання свого "хазяїна", віруси-хробаки і overwriting-віруси повертають керування ОС.

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

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

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

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

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

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=
1   2   3   4   5   6   7

Схожі:

Лекція №4 Тема: Програмне забезпечення персональних комп’ютерів
Системне програмне забезпечення призначене для керування роботою складових комп’ютера та обміном даними між ними, діагностування...

Тема. Програмне забезпечення комп’ютерних систем Мета
Обладнання й матеріали: Комп’ютерний клас обладнаний в мережу, програмне забезпечення

ДНК-геномні віруси (герпес-, покс- і адено­віруси)
Тому знання теми необхідне лікарям усіх спеціальностей, в тому числі педіатрам, для правильного вибору методів діагностики, забезпечення...

18. Прикладне програмне забезпечення спеціального призначення
Прикладне програмне забезпечення спеціального призначення. Інструментальні програмні засоби для розв’язування прикладних задач з...

План Історія виникнення вірусів. Віруси “Pakistani Brain”, “Alameda...
Добра і Зла. Не обійшлися без цього протистояння і активні процеси комп’ютеризації суспільства

ЛІЦЕНЗІЙНИЙ ДОГОВІР НА ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ
БУДЬ ЛАСКА, УВАЖНО ПРОЧИТАЙТЕ ЦЕЙ ДОКУМЕНТ ПЕРЕД ВСТАНОВЛЕННЯМ АБО ВИКОРИСТАННЯМ ЦЬОГО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Конспект уроку Тема уроку:  Компютерні віруси. Антивірусні програми
Познайомити учнів з видами комп’ютерних вірусів, навчити розпізнавати ці віруси; 

План-конспект лекції Тема: Запуск та налагоджування Internet. 
Апаратне забезпечення: Пристрій за допомогою якого будемо заходити в Інтернет (ноутбуки, КПК, мобільні телефони та ін.) та модем...

Лекція з навчальної дисципліни «КОНФЛІКТОЛОГІЯ»
Мета лекції: познайомити студентів з особливостями переговорного процесу та пояснити основні принципи проведення переговорів

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

Додайте кнопку на своєму сайті:
Портал навчання


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
bibl.com.ua
Головна сторінка