Віруси на ПК.
Введення.
20-е сторіччя, безсумнівно, є одним з поворотних етапів у житті
людства. Як сказав один з письменників-фантастів, "людство понеслося
вперед, як стимульована кінь ", і, визначивши себе як технократичну
цивілізацію, всі свої сили наші діди, батьки і ми самі кинули на розвиток техніки
в самих різних її обличчях - від медичних приладів до космічних апаратів,
від сільськогосподарських комбайнів до атомних електростанцій, від транспорту до
систем зв'язку, - список нескінченний, оскільки вкрай складно привести область
діяльності людства, не торкнулись розвитком техніки. Що було
причиною такого широкомасштабного і стрімкого розвитку - військове
протистояння політичних систем, еволюційне "поумненіе" людини або його
патологічна лінь (винайти колесо, щоб не тягати мамонта на плечах) - поки
неясно. Залишимо цю загадку для істориків наступних століть.
Людство захоплено технікою і вже навряд чи відмовиться від зручностей,
наданих нею (мало хто захоче поміняти сучасний автомобіль на гужову
тягу). Вже дуже багатьма геть забута звичайна пошта з її конвертами і
листоношами - замість неї прийшла електронна пошта з її приголомшливою швидкістю
доставки (до декількох хвилин незалежно від відстані) і дуже високою
надійністю. Не уявляю собі існування сучасного суспільства без
комп'ютера, здатного багаторазово підвищити продуктивність праці і доставити
мислиму будь-яку інформацію (щось на зразок принципу "піди туди, не знаю куди,
знайди те, не знаю що "). Вже не дивуємося мобільному телефону на вулиці - я і
сам до нього звик всього за один день.
20-е сторіччя також є одним з найбільш суперечливих, що принесли історії
людства чимало парадоксів, основною з яких, як мені здається, є
ставлення людини до природи. Переставши жити в дружбі з природою, перемігши її і
довівши собі, що легко може її знищити, людина раптом зрозумів, що загине і
сам, - і помінялися ролі в драмі "Людина-Природа". Раніше людина захищав себе
від природи, тепер же він все більше і більше захищає природу від самого себе.
Іншим феноменом 20-го століття є ставлення людини до релігії. Ставши
технократів, людина не перестав вірити в Бога (або його аналогів). Більш того,
з'явилися й зміцніли інші релігії.
До основних технічних феноменів 20-го століття відносяться, на мій погляд, поява
людини в космосі, утилізація атомної енергії речовини, грандіозний прогрес
систем зв'язку і передачі інформації і, звичайно ж, приголомшливе розвиток мікро-і
макро-комп'ютерів. І як тільки з'являється згадка про феномен комп'ютерів, так
тут же виникає ще один феномен кінця нашого століття - феномен комп'ютерних
вірусів.
Бути може, багатьом видасться смішним чи легковажним те, що факт
виникнення комп'ютерних вірусів поставлений в один ряд з дослідженнями
космосу, атомного ядра і розвитком електроніки. Можливо, що я не правий у своїх
міркуваннях, однак дайте можливість порозумітися.
По-перше, комп'ютерні віруси - це серйозна і досить помітна проблема,
виникнення якої ніхто не чекав. Навіть всевидющі фантасти-футурологи
минулого не говорять про це нічого (наскільки це мені відомо). У їх
численних творах з тією або іншою точністю передбачені практично
всі технічні досягнення сьогодення (згадаємо, наприклад, Уеллса з його ідеєю
польоту з гармати на Місяць і марсіан, озброєних якоюсь подобою лазера). Якщо ж
говорити про обчислювальних машинах, то тема ця вилизане до краю - однак немає ні
одного пророцтва, присвяченого комп'ютерним вірусам. Тема вірусу в
творах письменників з'явилася вже після того, як перший реальний вірус
побив свій перший комп'ютер.
По-друге, комп'ютерні віруси - це перша цілком вдала спроба створити
життя. Спроба вдала, але не можна сказати, що корисна - сучасні
комп'ютерні "мікроорганізми" найбільше нагадують комах-шкідників,
приносять тільки проблеми та неприємності.
Але все таки - життя, оскільки комп'ютерним вірусам властиві всі атрибути живого
- Здатність до розмноження, пристосування до середовища, руху і т.д.
(природно, тільки в межах комп'ютерів - так само як все вищесказане вірно
для біологічних вірусів в межах клітин організму). Більше того, існують
"Двостатеві" віруси (див. вірус RMNS), а прикладом "багатоклітинного" можуть служити,
наприклад, макро-віруси, що складаються з декількох незалежних макросів.
І, по-третє, тема вірусів стоїть дещо окремо від усіх інших завдань,
розв'язуваних за допомогою комп'ютера (забудемо про таких специфічних завданнях, як злом
захисту від копіювання і криптографію). Практично всі проблеми, які вирішуються при
допомоги обчислювальної техніки, є продовженням цілеспрямованої боротьби
людини з навколишнім його природою. Природа ставить людині довге нелінійне
диференціальне рівняння у тривимірному просторі - людина набиває
комп'ютер процесорами, пам'яттю, обважує курними проводами, багато палить і в
підсумку вирішує це рівняння (або перебуває в стані упевненості, що вирішив).
Природа дає людині шматок дроту з цілком певними характеристиками -
людина придумує алгоритми передачі якомога більшого обсягу інформації з
цього проводу, мучить його модуляціями, стискає байти в біти і терпляче чекає
надпровідності при кімнатній температурі. Природа (в особі фірми IBM) дає
людині чергове обмеження у вигляді чергової версії IBM PC - і людина не
спить ночами, знову багато палить, оптимізуючи коди черговий бази даних, щоб
вмістити її у надані йому ресурси оперативної і дискової пам'яті. І так
далі.
А от боротьба з комп'ютерними вірусами є боротьбою людини з людським
ж розумом (в певному сенсі теж проявом природних сил, хоча на цей рахунок
є більше однієї думки). Ця боротьба є боротьбою умов, оскільки
завдання, що стоять перед вірусологами, ставлять такі ж люди. Вони придумують новий
вірус - а вірусологам з ним розбиратися. Потім вони придумують вірус, в якому
розібратися дуже важко - але і з ним розбираються. І зараз напевно десь
сидить за комп'ютером хлопець, що страждає над черговим монстром, в якому
вірусологам доведеться розбиратися цілий тиждень, а потім ще один тиждень
налагоджувати алгоритм антивіруса. До речі, чим не еволюція живих організмів?
Отже, поява комп'ютерних вірусів - одна з найбільш цікавих моментів в
історії технічного прогресу 20-го століття, і настав момент закінчити з
околофілософскімі міркуваннями і перейти до конкретних питань. І питання про
визначенні поняття "комп'ютерний вірус" буде стояти на першому місці.
Так що-ж таке комп'ютерні віруси і як з ними боротися?
На цю тему написано десятки книг і сотні статей, боротьбою з комп'ютерними
вірусами професійно займаються сотні (або тисячі) фахівців в десятках
(а може бути, сотнях) компаній. Здавалося б, ця тема не настільки складна і
актуальна, щоб бути об'єктом такої пильної уваги. Однак це не так.
Комп'ютерні віруси були і залишаються однією з найбільш поширених причин
втрати інформації. Відомі випадки, коли віруси блокували роботу організацій
і підприємств. Більше того, кілька років тому був зафіксований випадок, коли
комп'ютерний вірус став причиною загибелі людини - в одному з госпіталів
Нідерландів пацієнт отримав летальну дозу морфію з тієї причини, що комп'ютер
був заражений вірусом і видавав невірну інформацію.
Незважаючи на величезні зусилля конкуруючих між собою антивірусних фірм, збитки,
принесені комп'ютерними вірусами, не падають і сягають астрономічних величин
в сотні мільйонів доларів щорічно. Ці оцінки явно занижені, оскільки
стає відомо лише про частину подібних інцидентів.
При цьому слід мати на увазі, що антивірусні програми і "залізо" не дають
повної гарантії захисту від вірусів. Приблизно так само погано йдуть справи на інший
стороні тандему "людина-комп'ютер". Як користувачі, так і
професіонали-програмісти часто не мають навіть навиків "самооборони", а їх
уявлення про вірус інколи є настільки поверхневими, що краще б їх
(подань) і не було.
Трохи краще йдуть справи на Заході, де і літератури побільше (видається аж
три щомісячних журналу, присвячених вірусам і захисту від них), і вірусів
трохи менше (оскільки "ліві" китайські компакт-диски особливо на ринок не
надходять), і антивірусні компанії ведуть себе активніше (проводячи, наприклад,
спеціальні конференції і семінари для фахівців і користувачів).
У нас же, на жаль, все це не зовсім так. І одним з найменш
"Опрацьованих" пунктів є література, присвячена проблемам боротьби з
вірусами. На сьогоднішній день наявна на прилавках магазинів друкована
продукція антивірусного толку або давно застаріла, або написана
непрофесіоналами, або авторами типу Хижняка, що набагато гірше.
Досить неприємним моментом є також випереджає робота Російського
комп'ютерного "андеграунду": тільки за два роки було випущено більше десятка
електронних номерів журналу вірусописьменників "Infected Voice", з'явилося
кілька станцій BBS і WWW-сторінок, орієнтовані на поширення вірусів
та супутньої інформації.
1. Історія виникнення та розвитку комп'ютерних вірусів.
Вважають, що ідея створення комп'ютерних вірусів була придумана
письменником-фантастом Т. Дж. Райн, який в одній зі своїх книг, опублікованій в
США в 1977 р., описав епідемію, за короткий час вразила більше 7000
комп'ютерів. Причиною епідемії став комп'ютерний вірус, який, передаючись від
одного комп'ютера до іншого, впроваджувався в їх операційні системи і виводив їх
з-під контролю людини.
Збиток, що наноситься комп'ютерними вірусами, швидко зростає, а їх небезпека для
таких життєво важливих систем, як оборона, транспорт, зв'язок, поставила проблему
комп'ютерних вірусів в ряд тих, які зазвичай знаходяться під пильною
увагою органів державної безпеки.
Вважається визнаним, що в останні роки найбільше вірусів створювалося в
СРСР, а потім в Росії та інших країнах СНД. Але і в інших країнах, у тому числі
в США, значний шкоди, що завдається вірусами. У США боротьба з вірусами ведеться на
найвищому рівні.
У Кримінальному Кодексі Росії позначена стаття 273 за "Створення, використання і
поширення шкідливих програм для ЕОМ ", що говорить:
1. Створення програм для ЕОМ або внесення змін в існуючі програми,
свідомо призводять до несанкціонованого знищення, блокування,
модифікації або копіювання інформації, порушення роботи ЕОМ, системи ЕОМ чи
їх мережі а так само використання або розповсюдження таких програм або машинних
носіїв з такими програмами - караються позбавленням волі на строк до 3 років
зі штрафом у розмірі від двохсот до п'ятисот мінімальних розмірів оплати праці або
у розмірі заробітної плати або іншого доходу засудженого за період від двох до
п'яти місяців.
2. Ті самі дії, що спричинили з необережності тяжкі наслідки, - караються
позбавленням волі на строк від трьох до семи років.
У США, незабаром після оголошення в 1993 році Білим домом про підключення президента
Білла Клінтона і віце-президента Альберта Гора до мережі Internet, адміністрація
підтримала ідею проведення Національного дня боротьби з комп'ютерними вірусами.
Такий день відзначається тепер щороку. Національною асоціацією з комп'ютерної
захисту США (NCSA) і компанією Dataquest опубліковані наступні дані по
результатами досліджень вірусної проблеми:
- 63% опитаних постраждали від комп'ютерних вірусів;
- Передбачувані втрати американського бізнесу від комп'ютерних вірусів в 1999
році складуть близько 3 млрд. доларів;
- Ідентифіковано понад 23000 комп'ютерних вірусів;
- Щомісяця з'являється понад 50 нових вірусів;
- В середньому від кожної вірусної атаки страждає 142 персональних комп'ютера: на її
відображення в середньому йде 2,4 дня;
- Для компенсації збитків у 114 випадків було потрібно більше 5 днів.
Починаючи з кінця 1990 р., з'явилася нова тенденція, що одержала назву
"експонентний вірусний вибух". Кількість нових вірусів, що виявляють у
місяць, стало обчислюватися десятками, а згодом і сотнями. Спочатку
епіцентром цього вибуху була Болгарія, потім він перемістився в Росію. Після
1994 темп зростання вірусів пішов на спад, хоча їх загальна кількість продовжує
збільшуватися. Це пов'язано з тим, що ОС MS D0S, яка і дає 99% існуючих
комп'ютерних вірусів, поступово здає свої лідируючі позиції як операційна
система для персональних комп'ютерів, поступаючись Windows, 0S2, UNIX і т.п.
Крім того, віруси постійно розширюють свою "середовище існування" і реалізують
принципово нові алгоритми впровадження та поведінки. Так, у 1995 році з'явилися
представники, які спростовують ключові принципи антивірусного захисту - те, що
комп'ютер, завантажений зі свідомо чистої системної дискети, не може містити
вірус, і те, що віруси не заражають файли з даними.
Першим з'явився вірус, який таким чином коригує конфігурацію
комп'ютера, що при спробі завантаження з дискети він все одно завантажується з
зараженого жорсткого диска, і вірус активізується в системі.
Інший вірус, що з'явився в середині серпня 1995 р. у США і ряді країн Західної
Європи, використовує можливість представлення інформації у вигляді конгломерату
даних і програм. Він заражає документи, підготовлені в системі MS Word for
Windows - файли типу. DOC. Так як такі файли щодня десятками тисяч
циркулюють в локальних і глобальних мережах, ця здатність вірусу забезпечила
його миттєве розповсюдження по всьому світу протягом декількох днів і 25
серпня він був виявлений в Москві. Вірус написаний на макромови пакету Word. Він
переносить себе в область глобальних макросів, перевизначають макрос FileSaveAs і
копіює себе в кожен файл, зберігається за допомогою команди Save As. При цьому він
переводить файл з категорії "документ" в категорію "шаблон", що робить,
неможливим його подальше редагування. Виявити наявність цього вірусу можна
по появі у файлі winword6.ini рядка ww6i = 1.
Новим словом у вірусології став вірус під назвою "Чорнобиль" або WIN95.CIH.
Даний вірус на відміну від своїх побратимів в залежності від модифікації міг
знищувати MBR жорсткого диска, таблицю розміщення даних і не захищену від
перезапису Flash-пам'ять. Хвиля епідемії цього вірусу прокотилася по усьому світі.
Величезний матеріальний збиток був нанесений в Швеції. 26 квітня 1999
постраждала велика кількість користувачів і в Росії.
Найбільш відомий викликав всесвітню сенсацію і привернув увагу до вірусної
проблеми інцидент з вірусом-хробаком в глобальній мережі Internet. Другого листопада
1988 студент Корнелловского університету Роберт Морріс запустив на
комп'ютері Массачусетського технологічного інституту програму-черв'як, яка
передавала свій код з машини на машину, скориставшись помилками в системі UNIX на
комп'ютерах VAX і Sun. Протягом 6 годин були вражені 6000 комп'ютерів, в тому
числі Стенфордського університету, Массачусетського технологічного інституту,
університету Берклі та багатьох інших. Крім того, були вражені комп'ютери
Дослідницького інституту НАСА і Національної лабораторії Лоуренса в
Ліверморі - об'єкти, на яких проводяться найпотаємніші стратегічні
дослідження і розробки. Черв'як являв собою програму з 4000 рядків на
мовою "С" і вхідному мові командного інтерпретатора системи UNIX. Слід
зазначити, що вірус тільки розповсюджувався по мережі і не здійснював будь-яких
руйнівних дій. Однак це стало ясно тільки на етапі аналізу його коду, а
поки вірус розповсюджувався, в обчислювальних центрах панувала справжня паніка.
Тисячі комп'ютерів бЧи зупинені, збиток склав багато мільйонів доларів.
2. Класифікація вірусів
Відомі програмні віруси можна класифікувати за такими ознаками:
середовищі перебування;
способом зараження середовища проживання;
впливу;
особливостями алгоритму.
Залежно від середовища перебування віруси можна розділити на:
мережеві;
файлові;
завантажувальні;
файлово-завантажувальні.
Мережні віруси поширюються по різних комп'ютерних мереж. До мережевим
відносяться віруси, які для свого поширення активно використовують
протоколи і можливості локальних і глобальних мереж. Основним принципом роботи
мережного вірусу є можливість самостійно передати свій код на
віддалений сервер або робочу станцію. "Повноцінні" мережні віруси при цьому
володіють ще і можливістю запустити на виконання свій код на віддаленому
комп'ютері або, принаймні, "підштовхнути" користувача до запуску
зараженого файлу.
Побутує помилкова думка, що мережним є будь-який вірус, що поширюється в
комп'ютерної мережі. Але в такому випадку практично всі віруси були б мережевими,
навіть найбільш примітивні з них: адже самий звичайний нерезидентних вірус при
зараженні файлів не розбирається - мережевий (віддалений) це диск або локальний. В
результаті такої вірус здатний заражати файли в межах мережі, але віднести його до
мережевим вірусам ніяк не можна.
Найбільшу популярність набули мережні віруси кінця 1980-х, їх також називають
мережними хробаками (worms). До них відносяться вірус Морріса, віруси "Cristmas Tree"
і "Wank Worm &". Для свого поширення вони використовували помилки і
недокументовані функції глобальних мереж того часу - віруси передавали
свої копії з сервера на сервер і запускали їх на виконання. У випадку з вірусів
Моріса епідемія захопила аж кілька глобальних мереж у США.
Мережеві віруси минулого поширювалися в комп'ютерній мережі і, як правило, так
само як і компаньйон-віруси, не змінювали файли або сектора на дисках. Вони
проникали в пам'ять комп'ютера з комп'ютерної мережі, обчислювали мережеві адреси
інших комп'ютерів і розсилали за цими адресами свої копії. Етівіруси іноді
також створювали робочі файли на дисках системи, але могли взагалі не звертатися до
ресурсів комп'ютера (за винятком оперативної пам'яті).
Після декількох епідемій мережних вірусів помилки в мережних протоколах і
програмному забезпеченні були виправлені, а "задні двері" закриті. У результаті
за песледніе десять років не було зафіксовано жодного випадку зараження мережним
вірусом, як, втім, не з'явилося і жодного нового мережного вірусу.
Знову проблема мережних вірусів виникла лише на початку 1997-го року з появою
вірусів "Macro.Word.ShareFun" і "Win.Homer". Перший з них використовує
можливості електронної пошти Microsoft Mail - він створює новий лист,
що містить заражений файл-документ ( "ShareFun" є макро-вірусом), потім
вибирає зі списку адрес MS-Mail три випадкових адреси і розсилає по них
заражене лист. Оскільки багато користувачів встановлюють параметри MS-Mail
таким чином, що при одержанні листа автоматично запускається MS Word, то
вірус "автоматично" впроваджується в комп'ютер адресата зараженого листа.
Цей вірус ілюструє перший тип сучасного мережного вірусу, які
об'єднують можливості вбудованого в Word/Excel мови Basic, протоколи та
особливості електронної пошти і функції авто-запуску, необхідні для
розповсюдження вірусу.
Другий вірус ( "Homer") використовує для свого поширення протокол FTP (File
Trabsfer Protocol) і передає свою копію на віддалений ftp-сервер у каталог
Incoming. Оскільки мережний протокол FTP виключає можливість запуску файла на
віддаленому сервері, цей вірус можна охарактеризувати як "напів-мережний", проте
це реальний приклад можливостей вірусів по використанню сучасних мережних
протоколів і поразки глобальних мереж.
Файлові віруси впроваджуються головним чином у виконувані модулі, тобто у файли,
мають розширення COM та EXE. Вони можуть впроваджуватися і в інші типи файлів, але,
як правило, записані в таких файлах, вони ніколи не отримують управління і,
отже, втрачають здатність до розмноження. На відміну від завантажувальних
вірусів, які практично завжди резидентних, файлові віруси не обов'язково
резидентних. Областю існування файлових вірусів є файли. Якщо файловий
вірус не резидентний, то при запуску інфікованого файлу, що виконується вірус
записує свій код в тіло програмного файла таким чином, що при запуску
програми вірус отримує перше управління. Зробивши деякі дії, вірус
передає управління зараженій програмі. При запуску вірус сканує локальні
диски комп'ютера і мережеві теки у пошуках нового об'єкта для зараження.
Після того як відповідний програмний файл буде знайдений, вірус записує в нього
свій код, щоб отримати управління при запуску цього файлу.
Якщо файловий вірус резидентний, то він встановиться в пам'ять і отримає
можливість заражати файли і виявляти інші здібності не тільки під час
роботи зараженого файлу.
Щодо нової різновидом файлового вірусу є макрокомандний
вірус, що поширюється з документами офісних додатків, таких як Microsoft
Word for Windows або Microsoft Excel for Windows.
Документи офісних додатків містять в собі не тільки текст та графічні
зображення, але і дії, які являють собою ніщо інше, як
програми. Ці програми складаються на мові, що нагадує Бейсік. Вірус може
змінювати існуючі дії і додавати нові, впроваджуючи своє тіло в файл
документа.
Механізм розповсюдження макрокомандних вірусів заснований на тому, що існують
дії, які запускаються при відкритті документа для редагування
або при виконанні інших операцій. Розробник макрокомандного вірусу бере
файл з ім'ям, наприклад, readme.doc, і записує в нього одну або кілька
вірусних макрокоманд, наприклад, вірусну дії з ім'ям AutoExec. Коли
користувач відкриває такий файл за допомогою текстового процесора Microsoft
Word for Windows, ця Макрокоманда буде автоматично запущена на виконання.
При цьому вірус отримає управління і може заразити інші документи, що зберігаються
на дисках. Якщо вірусна Макрокоманда має ім'я FileSaveAs, то поширення
вірусу буде відбуватися при збереженні документа.
Для запобігання зараження вірусами макрокоманднимі необхідно перед
переглядом або редагуванням перевіряти нові файли документів за допомогою
антивірусних програм, здатних шукати такі віруси.
Завантажувальні віруси.
Друга велика група вірусів - це так звані завантажувальні віруси.
Розповсюдження і активізація цих вірусів відбувається в момент завантаження
операційної системи, ще до того, як користувач встиг запустити яку-небудь
антивірусну програму.
Відразу після включення електроживлення комп'ютера починає працювати програма
ініціалізації, записана в ПЗП базової системи введення/виводу BIOS. Ця програма
перевіряє оперативну пам'ять та інші пристрої комп'ютера, а потім передає
керування програмі початкового завантаження, яка також знаходиться в BIOS.
Програма початкового завантаження намагається прочитати в оперативну пам'ять вміст
самого першого сектора нульової доріжки жорсткого диска, в якому знаходиться
головна запис завантаження Master Boot Record (MBR), або вміст самого
першого сектора нульової доріжки дискети, вставлена у пристрій A:. Цей
сектор містить завантажувальний запис Boot Record (BR).
Існує дві можливості завантажити операційну систему - з жорсткого диска або
з дискети.
При завантаженні з жорсткого диска в пам'ять за фіксованим адресою читається
зміст головної завантажувального запису. Цей запис є програмою,
завданням якої є завантаження операційної системи з логічного диска.
Завантажувач, розташований в головний запис завантаження MBR переглядає таблицю
розділів диска Partition Table, яка знаходиться в тому ж секторі диска, що і
сам запис MBR. Після того як у цій таблиці буде знайдений розділ, зазначений
як активний, виконується читання самого першого сектора цього розділу в
оперативну пам'ять, - сектора завантажувального запису BR. У цьому секторі знаходиться
ще один завантажувач.
Завданням завантажувача BR є зчитування в оперативну пам'ять стартових модулів
операційної системи та передача їм управління. Спосіб завантаження залежить від
операційної системи, тому кожна операційна система має свій власний
завантажувач BR.
Завантаження з дискети відбувається простіше, тому що формат дискети в точності
відповідає формату логічного диска. Найперший сектор нульової доріжки
дискети містить завантажувальний запис BR, яка читається на згадку. Після читання
їй передається керування.
Дискети можуть бути системними і несистемними.
Системну дискету MS-DOS можна підготувати за допомогою команди format, вказавши їй
параметр/s, або за допомогою команди sys. І в тому, і в іншому випадку в першу
сектор нульової доріжки дискети записується програма початкового завантаження MS-DOS.
Якщо ж дискета була відформатована командою format без параметра/s, вона буде
несистемної. Тим не менш, у першому сектор нульової доріжки дискети все одно
записується програма, єдиним призначенням якої є висновок
повідомлення про необхідність вставити в НГМД системну дискету.
Дана обставина - присутність завантажувального запису на несистемної дискеті -
відіграє важливу роль при розповсюдженні завантажувальних вірусів.
Завантаження операційної системи є багатоступінчастим процесом, хід якого
залежить від різних обставин. У цьому процесі задіяно три програми,
які служать об'єктом нападу завантажувальних вірусів:
головна запис завантаження;
завантажувальний запис на логічному диску;
завантажувальний запис на дискеті.
Віруси можуть заміняти деякі або всі перераховані вище об'єкти, вставляють в
них своє тіло і зберігаючи вміст оригінальному завантажувального сектора в
якому-небудь більш-менш відповідному для цього місці на диску комп'ютера. В
результаті при включенні комп'ютера програма завантаження, розташована в BIOS,
завантажує в пам'ять вірусний код і передає йому керування. Подальша завантаження
операційної системи відбувається під контролем вірусу, що ускладнює, а в
деяких випадках і виключає його виявлення антивірусними програмами.
Завантажувальні віруси заражають завантажувальний (boot) сектор флоппі-диска і boot-сектор
або Master Boot Record (MBR) вінчестера. Принцип дії завантажувальних вірусів
заснований на алгоритмах запуску операційної системи при включенні або
перезавантаження комп'ютера - після необхідних тестів встановленого обладнання
(пам'яті, дисків і т.д.) програма системної завантаження зчитує перший фізичний
сектор завантажувального диска (A:, C: або CD-ROM в залежності від параметрів,
встановлених в BIOS Setup) і передає на нього управління.
Файлово-завантажувальні віруси. Існує велика кількість сполучень - наприклад,
файлово-завантажувальні віруси, що заражають як файли, так і завантажувальні сектори
дисків. Такі віруси, як правило, мають досить складний алгоритм роботи, часто
застосовують оригінальні методи проникнення в систему, використовують стелс і
поліморфік-технології.
За способом зараження середовища мешкання віруси поділяються на дві групи:
резидентні
нерезидентні.
Під терміном "резидентність" (DOS'овскій термін TSR - Terminate and Stay
Resident) розуміється спроможність вірусів залишати свої копії в системній
пам'яті, перехоплювати деякі події (наприклад, звернення до файлів або
дисків) і викликати при цьому процедури зараження виявлених об'єктів (файлів і
секторів). Таким чином, резидентні віруси активні не тільки в момент роботи
інфікованої програми, але й після того, як програма закінчила свою роботу.
Резидентні копії таких вірусів залишаються життєздатними аж до чергової
перезавантаження, навіть якщо на диску знищені всі заражені файли. Часто від таких
вірусів неможливо позбутися відновленням всеки копій файлів з дистрибутивних
дисків або backup-копій. Резидентна копія вірусу залишається активною і заражає
новостворювані файли. Те ж вірно і для завантажувальних вірусів - форматування
диска при наявності в пам'яті резидентного вірусу не завжди виліковує диск,
оскільки багато резидентні віруси заражає диск повторно після того, як він
відформатована.
Нерезидентні віруси, навпаки, активні досить нетривалий час -
тільки в момент запуску інфікованої програми. Для свого поширення вони
шукають на диску незаражені файли і записуються в них. Після того, як код
вірусу передає керування програмі-носію, вплив вірусу на роботу
операційної системи зводиться до нуля аж до чергового запуску якої-небудь
зараженої програми. Тому файли, заражені вірусами нерезидентними
значно простіше видалити з диску і при цьому не дозволити вірусу заразити їх
повторно.
За ступенем впливу віруси можна розділити на наступні види: безпечні, не
заважають роботі комп'ютера, але зменшують обсяг вільної оперативної пам'яті і
пам'яті на дисках, дії таких вірусів проявляються в будь-яких графічних
або звукових еффектахопасние віруси, які можуть привести до різних
порушень в роботі комп'ютера дуже небезпечні, вплив яких може призвести
до втрати програм, знищення даних, стирання інформації в системних областях
диска.
За особливостями алгоритму віруси важко класифікувати через велику
різноманітності. Найпростіші віруси - паразитичні, вони змінюють вміст файлів
і секторів диска і можуть бути досить легко виявлені і знищені.
Віруси-станції, звані хробаками, які поширюються з комп'ютерних
мережах, обчислюють адреси мережних комп'ютерів і записують за цими адресами свої
копії. Віруси-невидимки, звані стелс-вірусами, які дуже важко
виявити та знешкодити, так як вони перехоплюють звертання операційної
системи до уражених файлів і секторів дисків та підставляють замість свого тіла
незаражені ділянки диска. Найбільш важко виявити віруси-мутанти
(поліморфні віруси), що містять алгоритми шифрування-розшифровки, завдяки
яким копії одного і того ж вірусу не мають ні одного повторюється ланцюжка
байтів. Є і так звані квазівірусние або "троянські" програми,
які хоч і не здатні до самопоширення, але дуже небезпечні, тому що,
маскуючись під корисну програму, руйнують завантажувальний сектор та файлову
систему дисків.
Макровіруси.
Досить оригінальний клас вірусів (хоча вірусами в повному розумінні цього слова їх
навіть не можна назвати), що заражає документи, в яких передбачено виконання
макрокоманд. При відкритті таких документів спочатку виконуються дії
(спеціальні програми високого рівня), що містяться в цьому документі, -
макровіруси якраз і являє собою таку дії. Таким чином, як
тільки буде відкритий заражений документ, вірус отримає управління і зробить все
шкідливі дії (зокрема, знайде і заразить ще не заражені документи).
Поліморфних вірусів.
Цей вид комп'ютерних вірусів представляється на сьогоднішній день найбільш
небезпечним.
Поліморфних вірусів - віруси, що модифікують свій код в заражених програмах
таким чином, що два примірники одного і того самого вірусу можуть не збігатися ні
в одному бите.
Такі віруси не тільки шифрують свій код, використовуючи різні шляхи шифрування, але
і містять код генерації шіфровщіка і розшифровувача, що відрізняє їх від звичайних
шифрувальних вірусів, які також можуть шифрувати ділянки свого коду, але
мають при цьому постійний код шифрувальника і розшифровувача.
Поліморфні віруси - це віруси з самомодіфіцірующіміся розшифровувача. Мета
такого шифрування: зробити невозможним проаналізувати код вірусу за допомогою
звичайного дізассемблірованія, навіть маючи заражений і оригінальний файли. Цей код
зашифрований і є безглуздий набір команд. Розшифровка
виробляється самим вірусом вже безпосередньо під час виконання. При цьому
можливі варіанти: він може розшифрувати себе все відразу, а може виконати
таку розшифровку в ході роботи, може знову шифрувати вже відпрацьовані ділянки.
Все це робиться заради ускладнення аналізу коду вірусу.
Стелс-віруси.
У ході перевірки комп'ютера антивірусні програми зчитують дані - файли і
системні області з жорстких дисків та дискет, користуючись засобами операційної
системи і базової системи введення/виводу BIOS. Ряд вірусів, після запуску
залишають в оперативній пам'яті комп'ютера спеціальні модулі, що перехоплюють
звернення програм до дискової підсистеми комп'ютера. Якщо такий модуль
виявляє, що програма намагається прочитати заражений файл або системну
область диска, він на ходу підмінює читаються дані, як ніби вірусу на диску
немає.
Стелс-віруси обманюють антивірусні програми і в результаті залишаються
непоміченими. Тим не менш, існує простий спосіб відключити механізм
маскування стелс-вірусів. Досить завантажити комп'ютер з не зараженої
системної дискети і відразу, не запускаючи інших програм з диска комп'ютера
(які також можуть виявитися зараженими), перевірити комп'ютер антивірусної
програмою.
При завантаженні з системної дискети вірус не може отримати управління і встановити
в оперативній пам'яті резидентний модуль, що реалізує стелс-механізм.
Антивірусна програма зможе прочитати інформацію, що дійсно записану на
диску, і легко виявить вірус.
Системна дискета для антивірусного контролю повинна бути підготовлена заздалегідь.
Крім системних файлів, на неї слід записати антивірусні програми.
Віруси-примари маскуються за допомогою іншого механізму. Ці віруси постійно
модифікують себе таким чином, що не містять однакових фрагментів. Такі
віруси зберігають своє тіло у закодованому вигляді та постійно змінюють параметри цієї
кодування. Стартова ж частина, що займається декодуванням безпосередньо
самого тіла, може генеруватися досить складним способом. При перенесенні вірусу
даного типу з комп'ютера на комп'ютер код вірусу змінюється таким чином, що
вже не має нічого спільного зі своїм попереднім варіантом. А частина вірусів може
самомодіфіціроваться і в межах одного комп'ютера. Виявлення таких вірусів
дуже складно, хоча частина антивірусних програм намагається знаходити їх за
ділянкам коду, характерним для стартової частини.
Компаньон - віруси.
Компаньон - віруси (companion) - це віруси, що не змінюють файли. Алгоритм
роботи цих вірусів полягає в тому, що вони створюють для EXE-файлів
файли-супутники, що мають те ж саме ім'я, але з розширенням