Комп’ютерні віруси як загроза інформаційним системам

 

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

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

Отже, вірусів з кожним днем з'являється все більше. Наприклад, днями на сайті «Ла­бораторії Касперського» з'яви­лася інформація про 50 най­поширеніших сьогодні вірусів (до речі, перелік «найсвіжіших» з них наведений наприкінці статті). Але так було не завжди.

Гортаючи фахову літературу двадцятиріч­ної давності, присвячену темам програмування та кібернетики (тоді інфор­матику називали так), не зустрінеш жодної згадки про явище, яке згодом стали називати «комп'ю­терним вірусом». Нау­кові дискусії про це то­чилися аж до початку 90‒х років. Тому навіть сам термін «комп'ютер­ний вірус» з'явився у другій половині 80‒х років, але не всі фахівці зрозуміли його сутність. Наприклад, ще у 1988 p. деякі відомі спеціа­лісти не вірили в існування комп'ютерних вірусів. Ось як згадує про це Евген Касперський: «1988 року вірус Ієрусалим поширився на ти­сячі комп'ютерів, але зали­шався непоміченим, адже антивірусні програми ще не за­стосовували так широко, як нині, а професіонали ще не вірили в існування комп'ю­терних вірусів. Показовим є той факт, що саме тоді ком­п'ютерний гуру, людина‒ле­генда Пітер Нортон (Peter Norton), висловився проти того, що комп'ютерні віруси існують: він оголосив їх міфом та «казками про кроко­дилів», що нібито з'явилися в каналізації Нью‒Йорка. Од­нак цей казус не завадив фірмі Symantec розпочати згодом власний антивірусний проект — Norton Anti‒Virus».

Отже, точну дату створен­ня першого комп'ютерного вірусу нині достеменно не знає ніхто. Деякі джерела повідом­ляють, що це сталося десь на початку 80‒х років XX ст. Де­які вказують на 70‒ті роки і навіть на кінець 60‒х. І це можна пояснити: згадайте, що перший персональний ком­п'ютер фірма IBM створила у 1985 p., а до того часу роботу виконували на великих ЕОМ, мейнфреймах та мінікомп'ю‒терах. Це були комп'ютери колективного користування, які знаходилися у великих на­укових та дослідницьких цен­трах. Вони ще не набули тако­го масового поширення, як нині, і більшість із цих машин не були підключені до гло­бальних мереж. Тому якісь місцеві «жарти» та «помилки» програмістів існували, але вони носили локальний харак­тер. До того ж, тоді комп'ю­терною технікою користували­ся висококваліфіковані про­грамісти, які аналізували та швидко усували на­слідки дії таких про­грам. А якщо зважати на той факт, що комп'ютери Радянського Союзу не були підклю­чені до мереж Заходу, то можна констатувати, що до кінця 80‒х років СРСР був «терра інкогніта» для всесвітніх комп'ютерних вірусів. Та навіть тоді, коли з'явилися комп'ютерні віруси (переважно це були віруси, які ми нині нази­ваємо файловими), програміс­там було не складно дослідити та знищити їх, адже майже всі вони знали кілька мов програ­мування високого рівня, але вважали гарною манерою про­грамувати не лише в асембле­рах, а навіть (і переважно) у двійкових кодах. Тому порада типу: «Якщо знайшов вірус, то напиши антивірусну програ­му та знищ його» сприймала­ся цілком нормально.

Крім того, семінари, де об­говорювали комп'ютерні про­блеми, тоді проводили такі фахівці, яких нині ми нази­ваємо фундаторами. Наприк­лад, у Києві семінари прово­див один із засновників ук­раїнської вірусології Микола Безруков. У деяких вдома й досі зберігається його книга «Вірусологія». Думаю, що сучасним інформатикам цікаво буде дізнатися про те, як у 1990 p. сам Микола Безруков аналізував явище «комп'ютер­ний вірус». Ви зрозумієте, чому дата створення першого вірусу така неточна, адже де­які програми, які тоді вважа­лися комп 'ютерними іграми (наприклад програму «Animal» («Тварина»)), нині сміливо можна класіфікувати як вірус. Отже, проведемо екскурс у минуле.

Комп'ютерні віруси — це спеціально створені і, як пра­вило, невеличкі програми, здатні заражати інші програ­ми включенням до них своєї, можливо модифікованої, копії (яка зберігає здатність до по­дальшого розмноження). Програма, заражена комп'ю­терним вірусом, може бути автоматично створеною «тро­янською» програмою, прихо­ваним модулем якої є тіло комп'ютерного вірусу. Крім зараження, вірус може вико­нувати й інші несанкціоновані дії, від цілком безпечних до вкрай руйнівних (наприклад, знищення даних на заражено­му диску). У цьому разі вірус можна розглядати як логічну міну. Несанкціоновані дії мо­жуть бути зумовлені або на­станням певної дати (такі «троянські» програми ана­логічні до мін з годиннико­вим механізмом), або певною кількістю розмножень, або збігом певних умов, наприк­лад, записом зараженої про­грами на вінчестер. Такі про­грами аналогічні до безкон­тактних мін. При цьому ком­бінація умов може бути досить складною, як наприк­лад, у віруса, відомого за наз­вою «Пінг‒понг».

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

Іноді вірус вбудовує себе кудись усередину програми, наприклад, в область стека. Заражені програми (або їхні копії) можуть передаватися через дискети або мережею на інші комп'ютери. Оскільки користувачі персональних електронних обчислювальних машин (ПЕОМ) широко об­мінюються інформацією на дискетах, кількість заражених програм може бути значною, призводячи до епідемій. Цьо­му також сприяє розповсю­джена в нашій країні практи­ка використання одного персонального комп’ютера кіль­кома користувачами. Небез­пека істотно зростає за наяв­ності вінчестера. У цьому разі один некваліфікований ко­ристувач може завдати знач­них збитків усім іншим. Особливу небезпеку станов­лять прихильники комп'ю­терних ігор, які зазвичай по­гано знають операційну сис­тему (ОС) і не завжди усві­домлюють зміст виконуваних ними дій.

Перші програми, схожі на комп'ютерні віруси, було ство­рено в 1972 p. (гра «Дарвін») і в 1976 p. (системна програма WORM («Хробак»)). У 1984 p. було поширено гру ANIMAL («Тварина»), яка мала майже всі риси сучасного комп'ютер­ного вірусу. Програма, реалізо­вана як гра, пропонувала грав­цю задумати якусь тварину і за певний час намагалася за допо­могою уточнювальних запи­тань (чи має шерсть, чи живе у воді тощо) відгадати задумане. Якщо програма не встигала відгадати назву задуманої тва­рини, то просила гравця по­відомити, яке запитання по­трібно поставити, щоб відгада­ти. Програма запам'ятовувала це запитання й у такий спосіб «самонавчалася». Але розроб­ник такої програми використо­вував, імовірно, той факт, що на його комп'ютері будь‒якому користувачу виділявся власний каталог для роботи, але не було механізму захисту каталогу від інших користувачів (або про­грам). Програміст змінив гру так, що після кожного «навчан­ня» програма копіювала себе в каталог іншого користувача. Гра була популярною, і незаба­ром усі комп'ютери фірми вже мали програму, яка повільно розмножувалася. Ситуація не була небезпечною, але чис­ленні копії гри дуже засмічува­ли дисковий простір. Знищен­ня копій не дало потрібного ефекту: достатньо було зали­шити одну копію — і незаба­ром розмноження повторюва­лося знову. Проблему було ви­рішено за допомогою засобу, який за сучасною термінологією мож­на назвати антивірусом.

У 1985 p. було опубліковано гру «Core War» («Війна в пам'яті»). У ній два гравці пишуть по одній програмі мовою низького рівня. Програми вмішуються у велику циклічно замк­нуту ділянку пам'яті. Кожна команда займає одну комірку пам'яті ЕОМ. Керуюча програма по черзі виконує по одній команді з кожної програми, як це робить найпростіша система ре­ального часу. Програми гравців атаку­ють одна одну, намагаючись уникну­ти ушкоджень і відновлюючи ушко­джені ділянки. Найпростіша атака — це використання команди MOV (запи­сати в пам'ять). Наприклад, MOV 1000 може «вбити наповал» ворожу програ­му, якщо потрапить у наступну ко­манду (тобто якщо наступна викону­вана команда «ворога» знаходиться за адресою 1000), або «поранити», якщо за адресою 1000 у «ворога» записані дані або команди, чи «не влучити», якщо комірка за адресою 1000 «воро­гом» не використовується.

«Справжні» віруси, тобто програ­ми, орієнтовані на те, щоб завдати збитків, з'явилися на початку 80‒х pp. XX ст. Це пов'язано з появою ПЕОМ і має характер протистояння користувачів групі безвідповідальних або кримінальних елементів. Перші випадки масового зараження ком­п'ютерів було зафіксовано 1987 p. Так, лехайський вірус, що з'явився в однойменному університеті США, впродовж кількох днів знищив вміст кількох сотень дискет як з публічної бібліотеки університету, так і особис­тих дискет студентів. У грудні 1987 p. було виявлено вірус у Ієрусалимському університеті (Ізраїль). Хоча істот­ної шкоди цей вірус не завдав, він швидко поширився по всьому світу і, вочевидь, є першим вірусом, поши­рення якого набуло характеру пан­демії. 1988 p. ця проблема в країнах США і Західної Європи стала пріо­ритетною. Особливу увагу громадсь­кості привернув так званий вірус Морріса. Другого листопада 1988 p. Роберт Морріс‒молодший, аспірант факультету інформатики Корнелльського університету, інфікував за допомогою написаного ним вірусу ве­лику кількість комп'ютерів (орієн­товно 6000), підключених до амери­канської національної мережі Інтернет. Хоча ніякої втрати або зміни даних не відбулося, корис­тувачі Інтернету втратили багато тисяч годин робочого часу. До кінця 1989 p. у деяких країнах (США, Великобританія, ФРН) розглядали закони щодо кримі­нальної відповідальності розроб­ників і розповсюджувачів ком­п'ютерних вірусів (у США — до 15 років позбавлення волі). Це дає змогу, окрім програмних і організаційних заходів для бо­ротьби з вірусами, застосувати й правові методи. Тому важливим аспектом боротьби з комп'ютер­ними вірусами стає виявлення злочинця або злочинної групи, відповідальної за створення або поширення відповідного вірусу.

Для більшості комп'ютерних вірусів, так само, як для біо­логічних, характерний певний інкубаційний період, упродовж якого виконувані вірусом несанкціоновані дії обмежуються зараженням інших програм. Інфікуючи програми або носії, віруси можуть поширюватися від однієї програми до іншої, що робить комп'ютерні віруси не­безпечнішими порівняно з ін­шими методами комп'ютерного вандалізму. Операційна система типу MS‒DOS, що відрізняється практично повною відсутністю захисту від несанкціонованих дій, полегшує розробку вірусів. Однак комп'ютерні віруси не є програмами, що використовують помилки або недоліки конкрет­ної ОС. Для забезпечення їхньо­го функціонування цілком дос­татньо звичайних операцій, ви­користовуваних більшістю «нормальних» програм. Тому прин­ципово не може існувати універ­сального методу, що захищає ОС від поширення будь‒якого віру­су. Проте можна значно усклад­нити завдання створення і по­ширення комп'ютерних вірусів, застосовуючи спеціальні методи в ОС та використовуючи додат­кові резидентні і нерезидентні програмні засоби захисту.

Наслідки дії комп'ютерних вірусів:

1) відмова системи у вико­нанні певної функції (наприклад, блокування вірусом RC‒1701 за­вантаження програми з захищеної від запису дискети), виконання дій, не передбачених програмою (наприклад, зміна даних у будь‒якому файлі);

2) руйнування окремих файлів, керуючих блоків або усієї файлової системи (фор­матування диска, видалення файла тощо);

3) видача помилкових, дратівливих повідомлень (на­приклад: «Скажи «бебе»);

4) створення звукових або візуальних ефектів (наприклад, падіння літер у вірусі RC‒1701, уповільнене виконання про­грами у вірусі RCE‒1913, про­гравання мелодії в RCE‒1805 або поява на екрані рухомого ромбика у ВхІ‒ІС тощо);

5) ініціювання помилок або збоїв у програмі чи ОС (наприклад, переповнення стека);

6) перезавантаження або «за­висання» операційної системи;

7) блокування доступу до системних ресурсів (розрос­тання заражених файлів за ра­хунок їх багаторазового пов­торного зараження;

8) неможливість переда­вання зараженій програмі па­раметрів, уповільнення робо­ти комп'ютера шляхом вико­нання пустого циклу з кіль­кох команд після кожного переривання таймера);

9) імітація збоїв апаратури (перетворення частини клас­терів на псевдозбійні на дис­кеті або вінчестері, «зависання» комп'ютера через якийсь час після перезавантаження ОС);

10) прискорення зношу­вання обладнання або спроби його псування.

 

Збитки, яких завдають віруси, можуть мати катастро­фічний характер (знищення вінчестера), якщо в них три­валий «інкубаційний період». Або навпаки: вірус може спричиняти незначні ушко­дження даних, які набагато складніше виявити. Через це дії таких вірусів набагато небезпечніші, ніж масове руй­нування даних.

Найбільш незахищена час­тина файлової системи типу MS‒DOS — таблиця розмі­щення файлів. Якщо вона зруйнована, то ОС не може визначити місцезнаходження файла, хоча самі файли не ушкоджено. Вірус може також виконувати формалізацію де­яких ділянок диска, які містять системні дані. Тому необхідно часто дублювати керуючі дані файлової систе­ми на іншу, заздалегідь відо­му ділянку диска або на дис­кету. Для цього можна вико­ристовувати, наприклад, ути­літи Нортон. На комп'ютерах типу AT дані про конфігура­цію системи (тип установле­ного вінчестера тощо) зберіга­ються в невеличкій енергонезалежній пам'яті (CMOS). Знищення вмісту CMOS‒па­м'яті унеможливлює заванта­ження з вінчестера. Віднов­лення CMOS‒пам'яті потре­бує знання всіх технічних да­них про вінчестер. Тому цей тип пам'яті також є потенцій­ним об'єктом атаки вірусу.

Комп'ютерні віруси «без­смертні» і можуть необмеже­ний час зберігатися в різних архівах. Навіть цілком «зни­щені» віруси можуть зберег­тися в будь‒якому архівному файлі й випадково або нав­мисно «реанімуватися» через багато місяців або навіть років після їхнього першого вияв­лення і знищення. Отже, піс­ля появи певного вірусу не­обхідно вжити спеціальних заходів для запобігання пов­торним зараженням. Тут мож­на діяти в двох напрямках:

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

Далеко не всі ушкодження файлової системи, несправ­ність вінчестера або обладнан­ня спричинені вірусами. На­приклад, деякі типи вінчес­терів мають низьку надійність і псуються без втручання віру­сів. Є комп'ютери, які можна завантажити тільки після про­грівання, через деякий час. Існують дисководи, що не тільки фрезерують дискети, а й під час запису іноді стира­ють таблицю розміщення файлів, причому відновити її за допомогою утиліт Нортон не вдається. Багато комп'ю­терів і без вірусів регулярно «зависають». Однак є тенденція атрибутувати будь‒яке уш­кодження даних у присутності комп'ютерних вірусів.

Ходять чутки, що віруси ушкоджують обладнання. Справді, такі ушкодження мож­ливі. Наприклад, можна ушко­дити ділянку люмінофора («випалити пляму») на монохрома­тичному моніторі, використову­ючи особливості схеми керування. Однак для кольоро­вого монітора це зробити не­можливо.

Кажуть також, існують що якісь підступні віруси, що нібито вводять у резонанс го­лівку вінчестера. Це схоже на міф, але проблема «вірус — засіб захисту» аналогічна до проблеми «зброя нападу — зброя захисту». Тому слід очікувати, що тривалий час віруси становитимуть актуальну проблему, причому вдосконалювання засобів за­хисту буде супроводжуватися вдоско­наленням самих вірусів.

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

 

 

У 1990 p. існувало чотири основ­них типи комп'ютерних вірусів:

1) ті, що розміщуються в бут‒секторі і збійних секторах на диску (тип В, бутові віруси);

2) у файлах типу .com (тип С, файлові віруси);

3) у файлах типу .ехе (тип Е, фай­лові віруси);

4) ті, що передаються по мережі (тип N, чи так звані мережеві віруси).

 

Цифровий корінь характеризує довжину вірусу. Для комп'ютерних вірусів типу С, Е і СЕ (файлових вірусів) він відповідає збільшенню довжини файла під час зараження. Це збільшення для низки файлових вірусів є нестабільним і залежить як від типу файла (.com або .ехе), так і від довжини файла, що заражається (наприклад, після дописування свого тіла в кінець файла, що заражається, деякі віруси вирівнюють початок свого тіла на початок параграфа, тоб­то на зсув, кратний 16). У цьому разі за цифровий корінь беруть мінімаль­ну довжину збільшення. Для вірусів типу В як апроксимацію довжини бе­руть кількість використовуваних сек­торів, помножену на 512 (довжину сектора).

Комп'ютерні віруси також поділяють­ся на резиденті й нерезидентні. Нерезидентні віруси отримують керування після завантаження в пам'ять зараженої програми, а потім шукають файл‒жерт­ву, використовуючи PATH чи іншу інформацію, і заражають цей файл. Потім керування повертається зара­женій програмі, і після закінчення її ро­боти пам'ять комп'ютера звільняється від вірусу. На відміну від них, резидентні віруси після завантаження в пам'ять і передачі керування зара­женій програмі перехоплюють низ­ку переривань і залишаються в пам­'яті резидентними. Отримавши ке­рування після переривання, вони виконують певні дії (наприклад, за­ражають кожну програму, що запус­кається, заражають .ехе і .com фай­ли тощо). Для класифікації таких вірусів використовують суфікс R.

Структурно віруси можна пода­ти у вигляді двох частин: голови і хвоста. Головою називається час­тина вірусу, яка першою отримує керування, хвостом — його части­на, розміщена окремо від голови.

Часто вірус складається з однієї голови (більшість файлових вірусів). Такі віруси називаються несегментованими. На відміну від них, сегментовані віруси мають хвіст і якоюсь мірою аналогічні до оверлейних файлів. Прикладом сегментованих вірусів є бутові віруси, хоча можлива й реалізація сегментованих файлових вірусів.

В операційній системі MS‒DOS найпоширенішими є файлові нере­зидентні, файлові резидентні та бутові віруси. Нині для цієї ОС існує кілька сотень комп'ютерних вірусів.








Дата добавления: 2016-03-04; просмотров: 1736;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.