- •6.1. Класифікація шкідливого програмного забезпечення
- •6.2. Програмні закладки
- •6.2.1. Функції програмних закладок
- •6.2.2. Шпигунські програми
- •6.2.3. «Логічні бомби»
- •6.2.4. Люки — утиліти віддаленого адміністрування
- •6.2.5. Несанкціонована робота з мережею
- •6.2.6. Інші програмні закладки
- •6.3. Комп'ютерні віруси
- •6.3.1. Файлові віруси
- •6.3.2. Завантажувальні віруси
- •6.3.3. Макровіруси
- •6.3.4. Скриптові віруси
- •6.3.5. Захист від комп'ютерних вірусів
- •6.4. Мережні хробаки
- •6.4.1. Класифікація мережних хробаків
- •6.4.2. Хробак Морріса
- •6.4.3. Сучасні мережні хробаки
- •6.5. «Троянські коні»
- •6.5.1. Соціальна інженерія
- •3DNow!(tm) mobile emulator for *games* .
- •Internet Accelerator
- •Internet accelerator, ssl security update #7. Internet Cracker
- •Virtual sex mobile engine from Russian hackers!
- •6.5.2. Класифікація «троянських коней»
- •6.5.3. Шпигунські троянські програми
- •6.5.4. Троянські інсталятори
- •6.5.5. «Троянські бомби»
- •6.6. Спеціальні хакерські утиліти
- •6.6.1. Засоби здійснення віддалених атак
- •6.6.2. Засоби створення шкідливого програмного забезпечення
- •6.6.3. Створення засобів атак
6.3. Комп'ютерні віруси
Свого часу серед руйнівних програмних засобів саме комп'ютерні віруси набули найбільшого розповсюдження, тому вірусами називають будь-яке шкідливе програмне забезпечення, несанкціоновано впроваджене в систему. Так само і від ан-тивірусних засобів часто очікують захисту не лише від вірусів, а й від руйнівних програмних засобів інших видів; інколи такі сподівання виправдовуються, а інколи — ні. Насправді, часто мова йде не про вірус, а про «троянського коня», хробака чи навіть експлойт, який хтось впровадив у систему.
Є різні підходи до визначення комп'ютерних вірусів. Ми зазначимо дві головні властивості, характерні саме для вірусів. Перша — це їх здатність самостійно відтворюватися, тобто розмножуватися. У програмний код вірусу закладено функції копіювання самого себе. Друга — це спосіб, у який вірус потрапляє до системи і примушує користувача запустити його. Вірус використовує як носій інший програмний код, який він модифікує таким чином, щоб впровадити в нього свою копію (подібно звичайним вірусам, які нездатні існувати самостійно тривалий час — їм потрібні клітини іншого живого організму). У результаті замість необхідного користувачу програмного коду виконується код вірусу.
Фактично, користувач непомітно для себе запускає на виконання програмний код вірусу. Отже, вірус діє в системі з повноваженнями того процесу, в програмний код якого його впроваджено, і з повноваженнями того користувача, що цей процес запустив. Якщо система є багатокористувацькою і підтримує розмежування доступу, то наслідки дії вірусу будуть різними залежно від того, хто саме його запустив. Більш руйнівних наслідків слід очікувати, якщо вірус було запущено адміністратором. Це, до речі, є аргументом на користь того, що навіть на комп'ютері, де працює лише один користувач, не слід виконувати повсякденні дії, користуючись обліковим записом адміністратора. На жаль, у деяких ОС, орієнтованих на персональне використання (наприклад, Windows ХР Home Edition), без прав адміністратора працювати іноді дуже складно, що можна вважати помилкою розробників у реалізації політики безпеки системи.
Комп'ютерні віруси розрізняють за такими ознаками.
♦ За середовищем існування (системні області комп'ютера, ОС, прикладні програми, до певних компонентів яких впроваджують код вірусу):
файлові віруси;
завантажувальні віруси;
макровіруси;
скриптові віруси.
♦ За способом зараження (різні методи впровадження вірусного коду в об'єкти, які він заражає; залежно від середовища існування віруси використовують різні способи зараження, тому універсальної класифікації за цією ознакою немає).
Віруси також класифікують (або надають їм додаткових ознак) за тими технологіями, які вони використовують для ускладнення їх виявлення і ліквідацій
6.3.1. Файлові віруси
Файлові віруси для свого розповсюдження використовують файлову систему. Найчастіше віруси цього типу як носій застосовують виконувані файли. За способом зараження їх поділяють на віруси, що перезаписують (Overwriting), і паразитичні віруси (Parasitic). Оскільки перші замінюють собою оригінальний файл, знищуючи його, то в результаті їхньої діяльності прикладні програми й операційна система дуже швидко перестають функціонувати. Другі модифікують оригінале ний файл, зберігаючи його функціональність. Файлові віруси цього типу найпоширеніші, тому їх згодом буде розглянуто детальніше. Є також компаньйон-віруси, які створюють файли-двійники, а також link-віруси, що використовують особливості організації файлової системи.
Крім виконуваних файлів віруси заражають об'єктні модулі (OBJ), бібліотеки компіляторів (LIB), інсталяційні пакети і вихідні тексти програм. Є віруси, які записують свої копії в архіви (ARJ, ZIP, RAR), а є такі, що для розповсюдження копіюють свій код у певні каталоги на дисках, сподіваючись на те, що користувач колись запустить їх (для цього файлам дають спеціальні імена, на кшталт іп-stall.exe чи winstart.bat), що є типовим прийомом «троянських коней».
Варто окремо згадати один із прийомів, який використовують деякі віруси-компаньйони. Вони розміщують свої копії з іменами, тотожними іменам файлів, що часто використовують, у каталозі, який є першим у списку змінної оточення PATH. Якщо користувач спробує запустити програму, викликавши її з командного рядка, то буде запущено ту програму, яку операційна система знайде першою у списку PATH. Наприклад, у системі Windows із файлів, що мають однакові імена, першим (це залежить від настроювань конкретної системи) буде знайдено файл в основному каталозі (зазвичай C:\Windows). Слід зазначити, що таким способом самозапуску користуються також численні мережні хробаки і «троянські коні». Ось чому в разі використання командного рядка краще задавати повний іплях до бажаної програми, а під час настроювання посилань, ярликів на робочому столі, створення командних файлів це є обов'язковою умовою.
Методи зараження файлів паразитичними вірусами
Тепер детальніше розглянемо, як діють паразитичні віруси. їхньою типовою ознакою є те, що вони обов'язково змінюють уміст файлів, залишаючи останні повністю або частково роботоздатними.
Свого часу їх поділяли на ехе- та сот-віруси, відповідно до двох форматів виконуваних файлів, що були в MS-DOS. Тепер такий розподіл неактуальний. Зараз характерною ознакою паразитичних вірусів є те, під керуванням якої операційної системи вони можуть функціонувати.
Переважна більшість сучасних вірусів функціонують на найпоширенішій платформі — Microsoft Windows. Деякі можуть розповсюджуватися лише на окремих версіях цієї системи, інші — на різних версіях Windows. Але це не є ознакою «беззахисності» цієї ОС перед вірусами. Щойно будь-яка «альтернативна* ОС (наприклад, Linux) набувала помітного поширення, для неї теж з'являлися свої віруси, причому в наш час кількість вірусних інцидентів приблизно пропорційна складовій ринку, яку займає та чи інша ОС. Крім поширеності ОС, на створення вірусів впливає наявність документації та інструментів розроблення системних програм, а на розповсюдження вірусів і наслідки від їх атак — ще й кваліфікація користувачі» відповідної ОС.
Сучасні ОС підтримують кілька альтернативних форматів виконуваних файлів. Ці доволі складні формати надають широкі можливості для вірусів, які впроваджують свій код без порушення функціональності програми. Є віруси, що записують себе на початку файлів (Prepending), у їх кінець (Appending) і в середину (Inserting). Впровадження вірусів у середину файлів також відбувається у різні способи — перенесенням частини файлу в його кінець або копіюванням свого коду в ті частини файлу, що не використовуються (Cavity-віруси). Основні способи зараження файлів вірусами показано на рис. 6.1. Докладніше про це можна прочитати у Вірусній енциклопедії «Лабораторії Касперського>> [61].

Рис. 6.1. Основні способи зараження файлу вірусом: a — нормальне виконання незараженого файлу; б — програмний код вірусу розташовано на початку файлу, сам файл дописано в кінець вірусу (операційна система передає керування безпосередньо вірусу, а той після виконання своїх функцій передає керування файлу); в — програмний код вірусу дописано в кінець файлу (вірус коригує точку входження програми в заголовку оригінального файлу, щоб першим отримати керування); г — програмний код вірусу розташовано всередині оригінального файлу (вірус коригує точку входження програми, щоб першим отримати керування, або (на рисунку не показано) розміщує перехід на свій код будь-де у програмі, щоб отримати керування в певний момент)
Після того як вірус отримує керування, він виконує певні дії та передає керування програмі-носію. На цьому етапі вірус звичайно не здійснює руйнівних дій, а лише вживає заходів для свого розповсюдження (наприклад, «заражає» інші файли, тобто вбудовує в них свій код) і для отримання керування в подальшому (для чого впроваджує програмну закладку, за старою термінологією MS-DOS -резидентну частину). Часто вірус діє так швидко, що на тлі звичайної процедури запуску програми жоден користувач не зможе його помітити, навіть якщо контролюватиме час запуску із секундоміром.
