Програмні віруси та методи захисту від них
Програмний вірус, означення.
Під програмним вірусом розуміють автономно функціонуючу програму, яка володіє властивістю до самовключення в тіла інших програм з наступним самовідтворенням і саморозповсюдженням в інформаційно-обчислювальних мережах і окремих ЕОМ. Програмні віруси є дуже ефективним засобом реалізації практично всіх загроз безпеці локальної обчислювальної мережі. Тому питання аналізу можливостей програмного вірусу і розробка способів протидії вірусам в наш час набули значної актуальності і утворили один з найпріоритетніших напрямків робіт по забезпеченню безпеки локальної обчислювальної мережі.
Предками програмних вірусів прийнято вважати, так звані “троянські програми”, тіла яких містять приховані послідовності команд, які виконують дії, що наносять шкоду користувачам. Найпоширенішою різновидністю “троянських програм” є широко відомі програми масового використання (редактори, ігри, транслятори і т.п.), в які вбудовані, так звані “логічні бомби”, що спрацьовують у випадку виникнення деякої події. В той же час різновидністю “логічної бомби” є “бомба з годинниковим механізмом”, яка запускається у визначенні моменти часу. Потрібно зазначити, що “троянські програми” не можуть самостійно розмножуватися і розповсюджуватися по локальній обчислювальній мережі самими користувачами, зокрема, через загальнодоступні банки даних і програм.
Принципова відмінність вірусів від “троянських програм” полягає в тому, що вірус після запуску його в локальній обчислювальній мережі існує автономно і в процесі свого функціонування інфікує програми шляхом імплантації в них своє тіло. Таким чином, вірус представляє собою своєрідний “генератор троянських програм”. Програми, інфіковані вірусом, називають також, вірусоносіями.
Інфікація програми, як правило, відбувається таким чином, щоб вірус отримував управління раніше самої програми. Для цього він або вбудовується на початку програми, або імплантується в її тіло так, щоб першою командою інфікованої програми був безумовний перехід на вірус, текст якого закінчується аналогічною командою безумовного переходу на команду вірусоносія, що була першою до інфікації. Отримавши управління, вірус вибирає наступний файл, заражає його, можливо виконує інші дії, після чого віддає управління вірусоносію.
“Первинна” інфікація проходить в процесі поступлення інфікованих програм з пам’яті одної машини в пам’ять іншої, як через магнітні носії, так і через канали локальної мережі. Віруси, які використовують для розмноження канали локальної обчислювальної мережі, прийнято називати мережними.
Звичайно, цикл життя вірусу складається з таких періодів: впровадження, інкубації, реплікації (саморозмноження) і проявлення. На протязі інкубаційного періоду вірус пасивний, що ускладнює задачу його пошуку і нейтралізації. На етапі проявлення вірус виконує властиві йому цільові функції, наприклад, незворотну корекцію інформації на магнітних носіях.
Фізична структура вірусу достатньо проста. Він складається із “голови” і, можливо, “хвоста”. Голова вірусу - це та його компонента, яка отримує управління першою. Хвіст — частина вірусу, розміщеного в тексті інфікованої програми окремо від голови. Віруси, що містять лише голову, називають несегментованими, інші — сегментовані.
Класифікація “шкідливих програм”.
До “шкідливих програм“, крім вірусів, відносяться також троянські коні (логічні бомби), intended-віруси, конструктори вірусів і поліморфік - генератори.
До троянських коней відносяться програми, що завдають будь-яку руйнівну дію, тобто в залежності від яких-небудь умов або при кожному запуску знищують інформацію на дисках, зупиняють роботу операційної системи і т.д. Більшість відомих троянських коней є програмами, що маскуються під які-небудь корисні програми або доповнення до них. Дуже часто вони розсилаються по BBS-станціях або електронних конференціях. У порівнянні з вірусами “троянські коні“ не одержали широкого поширення по достатньо простих причинах - вони або знищують себе разом з іншими даними на диску або демаскують свою присутність і знищуються постраждалим користувачем. Слід відмітити також “люті жарти“ (hoax). До них відносяться програми, що не заподіюють комп'ютеру якоїсь прямої шкоди, проте виводять повідомлення про те, що така шкода вже заподіяна, або буде заподіяний при яких-небудь умовах, або попереджують користувача про неіснуючу небезпеку. До “лютих жартів“ відносяться, наприклад, програми, що “лякають“ користувача повідомленнями про форматування диску (хоча ніякого форматування насправді не відбувається), “виявляють“ віруси в неінфікованих файлах, виводять дивні вірусоподобні повідомлення у залежності від почуття гумору автора такої програми. До такого ж категорії “лютих жартів“ можна віднести також явно помилкові повідомлення про нові супер - віруси. Такі повідомлення періодично з'являються в електронних конференціях і звичайно викликають паніку серед користувачів.
До іntended-вірусів відносяться програми, що на перший погляд є стовідсотковими вірусами, але не спроможні розмножуватися через помилки. Наприклад, вірус, що при інфікації “забуває“ передбачити активізацію вірусу. і т.д. До категорії “intended“ також відносяться віруси, що з наведених вище причин розмножуються тільки один раз - із “авторської“ копії. Інфікувавши якийсь файл, вони втрачають спроможність до подальшого розмноження. Частіше всього intended-віруси з'являються при неякісній перекомпіляції якогось вже існуючого вірусу, або через недостатнє знання мови програмування, або через незнання технічних тонкощів операційної системи.
Конструктор вірусів - це програма, що призначена для виготовлення нових комп'ютерних вірусів. Відомі конструктори вірусів для DOS, Windows і макро-вірусів. Вони дозволяють генерувати вихідні тексти вірусів (ASM-файли), об'єктні модулі, і (або) безпосередньо інфіковати файли.
Поліморфік - генератори, як і конструктори вірусів, не є вірусами в буквальному значенні цього слова, оскільки в їхній алгоритм не закладаються функції розмноження, тобто відкриття, закриття і запису у файли, читання і запису секторів і т.д. Головною функцією подібного роду програм є шифрування тіла вірусу і генерація відповідного розшифровувача. Звичайні поліморфні генератори поширюються їхніми авторами без обмежень у вигляді файла-архіву. Основним файлом в архіві будь-якого генератора є об'єктний модуль, що