Комп'ютерні
віруси p>
Вступ h2>
Комп'ютерні
віруси. Що це таке і як з цим боротися? На цю тему написано десятки книг
і сотні статей, боротьбою з комп'ютерними вірусами професійно займаються сотні
(або тисячі) фахівців в десятках (а можливо, сотні) компаній. Здавалося
б, ця тема не настільки складна і актуальна, щоб бути об'єктом такого
пильної уваги. Однак це не так. Комп'ютерні віруси були і залишаються
однією з найпоширеніших причин втрати інформації. Відомі випадки,
коли віруси блокували роботу організацій і підприємств. Більш того,
кілька років тому був зафіксований випадок, коли комп'ютерний вірус став
причиною загибелі людини - в одному з госпіталів Нідерландів пацієнт отримав
летальну дозу морфію з тієї причини, що комп'ютер був заражений вірусом і
видавав невірну інформацію. p>
Незважаючи на
величезні зусилля конкуруючих між собою антивірусних фірм, збитки, принесені
комп'ютерними вірусами, не падають і сягають астрономічних величин в сотні
мільйонів доларів щорічно. Ці оцінки явно занижені, оскільки відомо
стає лише про частину подібних інцидентів. p>
При цьому
слід мати на увазі, що антивірусні програми і "залізо" не дають повної
гарантії захисту від вірусів. Приблизно так само погано йдуть справи на інший
стороні тандему "людина-комп'ютер". Як користувачі, так і
професіонали-програмісти часто не мають навіть навиків "самооборони", а їх
уявлення про вірус інколи є настільки поверхневими, що краще б їх
(подань) і не було. p>
Трохи краще
йдуть справи на Заході, де і літератури побільше (видається аж три щомісячних
журналу, присвячених вірусам і захисту від них), і вірусів трохи менше (оскільки
"Ліві" китайські компакт-диски особливо на ринок не надходять), і антивірусні
компанії ведуть себе активніше (проводячи, наприклад, спеціальні конференції та
семінари для фахівців і користувачів). p>
У нас же, на
жаль, все це не зовсім так. І одним з найменш "опрацьованих" пунктів
є література, присвячена проблемам боротьби з вірусами. На сьогоднішній
день наявна на прилавках магазинів друкована продукція антивірусного толку
або давно застаріла, або написана непрофесіоналами, або авторами типу
Хижняка, що набагато гірше. P>
Досить
неприємним моментом є також випереджає робота Російського комп'ютерного
"Андеграунду": тільки за два роки було випущено більше десятка електронних
номерів журналу вірусописьменників "Infected Voice", з'явилося кілька станцій
BBS і WWW-сторінок, орієнтовані на поширення вірусів і супутньої
інформації. p>
Все це і
послужило поштовхом до того, щоб зібрати воєдино весь матеріал, який накопичився
у мене за вісім років професійної роботи з комп'ютерними вірусами, їх
аналізу та розробки методів виявлення і лікування. p>
Варто мені
що-небудь проковтнути, як тут же відбувається що-небудь цікаве. Подивимося,
що буде на цей раз! p>
Льюїс Керрол.
"Аліса в країні чудес" p>
1. Феномен
комп'ютерних вірусів h2>
20-е сторіччя
безсумнівно є одним з поворотних етапів у житті людства. Як сказав
один з письменників-фантастів, "людство понеслося вперед, як стимульована
кінь ", і, визначивши себе як технократичну цивілізацію, всі свої сили наші
діди, батьки і ми самі кинули на розвиток техніки у найрізноманітніших її обличчях --
від медичних приладів до космічних апаратів, від сільськогосподарських
комбайнів до атомних електростанцій, від транспорту до систем зв'язку, - список
нескінченний, оскільки вкрай складно привести область діяльності людства,
не торкнутися розвитком техніки.// Що було причиною настільки
широкомасштабного і стрімкого розвитку - військове протистояння
політичних систем, еволюційне "поумненіе" людини або його патологічна
лінь (винайти колесо, щоб не тягати мамонта на плечах) - поки неясно.
Залишимо цю загадку для істориків наступних століть. P>
Людство
захоплено технікою і вже навряд чи відмовиться від зручностей, що надаються нею (мало
хто захоче поміняти сучасний автомобіль на гужову тягу). Вже дуже багатьма
геть забута звичайна пошта з її конвертами і листоношами - замість неї прийшла
електронна пошта з її приголомшливою швидкістю доставки (до декількох хвилин поза
залежно від відстані) і дуже високою надійністю. Не уявляю собі
існування сучасного суспільства без комп'ютера, здатного багаторазово
підвищити продуктивність праці та доставити будь-яку мислиму інформацію (щось
на зразок принципу "піди туди, не знаю куди, знайди те, не знаю що"). Вже не
дивуємося мобільному телефону на вулиці - я й сам до нього звик всього за один
день. p>
20-е сторіччя
також є одним з найбільш суперечливих, що принесли історії людства
чимало парадоксів, основною з яких, як мені здається, є ставлення
людини до природи. Переставши жити в дружбі з природою, перемігши її і довівши
собі, що легко може її знищити, людина раптом зрозумів, що загине й сам, --
і помінялися ролі в драмі "Людина-Природа". Раніше людина захищав себе від
природи, тепер же він все більше і більше захищає природу від самого себе.
Іншим феноменом 20-го століття є ставлення людини до релігії. Ставши
технократів, людина не перестав вірити в Бога (або його аналогів). Більш того,
з'явилися й зміцніли інші релігії. p>
До основних
технічним феноменам 20-го століття відносяться, на мій погляд, поява людини в
космосі, утилізація атомної енергії речовини, грандіозний прогрес систем зв'язку
і передачі інформації і, звичайно ж, приголомшливе розвиток мікро-і
макро-комп'ютерів. І як тільки з'являється згадка про феномен комп'ютерів,
так тут же виникає ще один феномен кінця нашого століття - феномен
комп'ютерних вірусів. p>
Бути може,
багатьом здасться смішним чи легковажним те, що факт виникнення
комп'ютерних вірусів поставлений в один ряд з дослідженнями космосу, атомного
ядра і розвитком електроніки. Можливо, що я неправий у своїх міркуваннях,
однак дайте можливість порозумітися. p>
По-перше,
комп'ютерні віруси - це серйозна і досить помітна проблема, виникнення
якої ніхто не чекав. Навіть всевидющі фантасти-футурологи минулого не
говорять про це нічого (наскільки це мені відомо). У їхніх численних
творах з тією або іншою точністю передбачені практично всі технічні
досягнення сьогодення (згадаємо, наприклад, Уеллса з його ідеєю польоту з гармати
на Місяць і марсіан, озброєних якоюсь подобою лазера). Якщо ж говорити про
обчислювальних машинах, то тема ця вилизане до краю - однак немає жодного
пророцтва, присвяченого комп'ютерним вірусам. Тема вірусу в творах
письменників з'явилася вже після того, як перший реальний вірус уразив свій
перший комп'ютер. p>
По-друге,
комп'ютерні віруси - це перша цілком вдала спроба створити життя. Спроба
вдала, але не можна сказати, що корисна - сучасні комп'ютерні
"Мікроорганізми" найбільше нагадують комах-шкідників, що приносять тільки
проблеми та неприємності. p>
Але все таки --
життя, оскільки комп'ютерним вірусам властиві всі атрибути живого - здатність
до розмноження, пристосування до середовища, руху і т.д. (природно, тільки
в межах комп'ютерів - так само як все вищесказане вірно для біологічних
вірусів в межах клітин організму). Більше того, існують "двостатеві" віруси
(див. вірус RMNS), а прикладом "багатоклітинного" можуть служити, наприклад,
макро-віруси, що складаються з декількох незалежних макросів. p>
І по-третє,
тема вірусів стоїть дещо окремо від усіх інших завдань, що вирішуються при
допомогою комп'ютера (забудемо про таких специфічних завданнях, як злом захисту від
копіювання та криптографію). Практично всі проблеми, які вирішуються за допомогою
обчислювальної техніки, є продовженням цілеспрямованої боротьби людини
з навколишнього його природою. Природа ставить людині довге нелінійне
диференціальне рівняння у тривимірному просторі - людина набиває
комп'ютер процесорами, пам'яттю, обважує курними проводами, багато палить і в
підсумку вирішує це рівняння (або перебуває в стані упевненості, що вирішив).
Природа дає людині шматок дроту з цілком певними характеристиками --
людина придумує алгоритми передачі якомога більшого обсягу інформації з
цього проводу, мучить його модуляціями, стискає байти в біти і терпляче чекає
надпровідності при кімнатній температурі. Природа (в особі фірми IBM) дає
людині чергове обмеження у вигляді чергової версії IBM PC - і людина не
спить ночами, знову багато палить, оптимізуючи коди черговий бази даних, щоб
вмістити її у надані йому ресурси оперативної і дискової пам'яті. І так
далі. p>
А от боротьба з
комп'ютерними вірусами є боротьбою людини з людським ж розумом (в
певному сенсі теж проявом природних сил, хоча з цього приводу є
більше однієї думки). Ця боротьба є боротьбою умов, оскільки завдання,
що стоять перед вірусологами, ставлять такі ж люди. Вони придумують новий вірус --
а нам з ним розбиратися. Потім вони придумують вірус, на якому розібратися
дуже важко - але ми з ним розбираємося. І зараз напевно десь сидить за
комп'ютером хлопець, який не дурніші за мене, що страждає над черговим монстром,
в якому мені доведеться розбиратися цілий тиждень, а потім ще один тиждень
налагоджувати алгоритм антивіруса. До речі, чим не еволюція живих організмів? P>
Отже, поява
комп'ютерних вірусів - одна з найбільш цікавих моментів в історії
технічного прогресу 20-го століття, і настав момент закінчити з
околофілософскімі міркуваннями і перейти до конкретних питань. І питання про
визначенні поняття "комп'ютерний вірус" буде стояти на першому місці. p>
Так що ж
таке комп'ютерний вірус? p>
На горі лежить
дискета p>
У неї запорчен
пляшок p>
Через дірочку в
конверті p>
Її віруси
гризуть p>
(Народний
фольклор) p>
2. Що таке
комп'ютерний вірус h2>
Пояснень, що
таке комп'ютерний вірус, можна навести кілька. Найпростіше - побутове
пояснення для домогосподарки, яка жодного разу в житті комп'ютера не бачила, але
знає, що Він є, і що в Ньому водяться Віруси. Таке пояснення дається
досить легко, чого не можна сказати про другу поясненні, розрахованому на
фахівця в області програм. Мені поки не представляється можливим дати
точне визначення комп'ютерного вірусу і провести чітку межу між програмами
за принципом "вірус - невірус". p>
2.1.
Пояснення для домогосподарки h2>
Пояснення
буде дано на прикладі клерка, що працює виключно з паперами. Ідея такого
пояснення належить Д. Н. Лозинському, одному з найвідоміших "докторів". p>
Уявімо собі
акуратного клерка, який приходить на роботу до себе в контору і кожен день
виявляє в себе на столі стопку аркушів паперу зі списком завдань, які
він повинен виконати за робочий день. Клерк бере верхній лист, читає вказівки
начальства, пунктуально їх виконує, викидає "відпрацьований" лист в
відро для сміття і переходить до наступного листа. Припустимо, що якийсь
зловмисник потайки прокрадається в контору і підкладає в стос паперів
лист, на якому написано наступне: p>
"Переписати
цей лист два рази і покласти копії в стопку завдань сусідів " p>
Що зробить
клерк? Двічі перепише лист, покладе його сусідам на стіл, знищить оригінал і
перейде до виконання другого листа з стопки, тобто продовжить виконувати свою
справжню роботу. Що зроблять сусіди, будучи такими ж акуратними клерками,
виявивши нове завдання? Те ж, що й перший: перепишуть його по два рази і
роздадуть іншим клеркам. Разом, в конторі бродять вже чотири копії
первинного документа, які й далі будуть копіюватися і лунати на
інші столи. p>
Приблизно так само
працює і комп'ютерний вірус, тільки стопками паперів-вказівок є
програми, а клерком - комп'ютер. Так само як і клерк, комп'ютер акуратно
виконує всі команди програми (листи завдань), починаючи з першої. Якщо ж
перша команда звучить як "скопируй мене в дві інші програми", то комп'ютер
так і зробить, - і команда-вірус потрапляє в дві інші програми. Коли
комп'ютер перейде до виконання інших "заражених" програм, вірус тим же
способом буде розходитись все далі і далі по всьому комп'ютеру. p>
У наведеному
вище прикладі про клерка і його контору лист-вірус не перевіряє, заражена
чергова папка завдань чи ні. У цьому випадку до кінця робочого дня контора
буде завалена такими копіями, а клерки тільки і будуть що переписувати один і
той же текст і роздавати його сусідів - адже перші клерк зробить дві копії,
чергові жертви вірусу - уже чотири, потім 8, 16, 32, 64 і т.д., тобто
кількість копій кожного разу буде збільшуватися в два рази. p>
Якщо клерк на
переписування одного листа витрачає 30 секунд і ще 30 секунд на роздачу копій,
то через годину по конторі буде "бродити" більш 1.000.000.000.000.000.000 копій
вірусу! Швидше за все, звичайно ж, не вистачить паперу, і поширення вірусу
буде зупинено по настільки банальну причину. p>
Як це не
смішно (хоча учасникам цього інциденту було зовсім не смішно), саме такий
випадок стався в 1988 році в Америці - кілька глобальних мереж передачі
інформації виявилися переповненими копіями мережевого вірусу (вірус Морріса),
який розсилав себе від комп'ютера до комп'ютера. Тому "правильні" віруси
роблять так: p>
"Переписати
цей лист два рази і покласти копії в стопку завдань сусідів, якщо у них ще
немає цього листа ". p>
Проблема вирішена
- "Перенаселення" немає, але кожна стопка містить по копії вірусу, при цьому
клерки ще встигають справлятися і з звичайною роботою. p>
"А як же
знищення даних? "- запитає добре ерудована домогосподарка. Все дуже
просто - достатньо дописати на лист приблизно наступне: p>
"1. Переписати
цей лист два рази і покласти копії в стопку завдань сусідів, якщо у них ще
немає цього листа. p>
2. Переглянути
на календар - якщо сьогодні п'ятниця, яка потрапила на 13-те число, викинути все
документи в кошик для сміття " p>
Приблизно це і
виконує добре відомий вірус "Jerusalem" (інша назва - "Time "). p>
До речі, на
прикладі клерка дуже добре видно, чому в більшості випадків не можна точно
визначити, звідки в комп'ютері з'явився вірус. Всі клерки мають однакові (з
точністю до почерку) КОПІЇ, але оригінал-то з почерком зловмисника вже давно
у кошику! p>
Ось таке
просте пояснення роботи вірусу. Плюс до нього хотілося б навести дві аксіоми,
які, як це не дивно, не для всіх є очевидними: p>
По-перше,
віруси не виникають самі собою - їх створюють дуже злі і недобрі програмісти-хакери
і розсилають потім по мережі передачі даних або підкидають на комп'ютери
знайомих. Вірус не може сам собою з'явитися на Вашому комп'ютері - або його
підсунули на дискетах або навіть на компакт-диску, або Ви його випадково скачали
з комп'ютерної мережі передачі даних, або вірус жив у Вас в комп'ютері з
самого початку, або (що найжахливіше) програміст-хакер живе у Вас в будинку. p>
По-друге:
комп'ютерні віруси заражають тільки комп'ютер і нічого більше, тому не треба
боятися - через клавіатуру і мишу вони не передаються. p>
2.2. Спроба
дати "нормальний" визначення h2>
Перші
дослідження саморозмножуються штучних конструкцій проводилися в
середини нинішнього століття. У роботах фон Неймана, Вінера та інших авторів
дано визначення і проведене математичний аналіз кінцевих автоматів, у тому
числі й самовідтворюються. Термін "комп'ютерний вірус" з'явився пізніше --
офіційно вважається, що його вперше ужив співробітник Лехайского
університету (США) Ф. Коен у 1984 р. на 7-й конференції з безпеки
інформації, яка проводилася в США. З тих пір пройшло чимало часу, гострота
проблеми вірусів багаторазово зросла, однак строгого визначення, що ж
таке комп'ютерний вірус, так і не дано, не дивлячись на те, що спроби дати таке
визначення починалися неодноразово. p>
Основна
складність, яка виникає при спробах дати строге визначення вірусу,
полягає в тому, що практично усі відмітні риси вірусу (впровадження в
інші об'єкти, скритність, потенційна небезпека і ін.) або властиві
інших програм, які жодним чином вірусами не є, або існують
віруси, які не містять зазначених вище відмітних рис (за винятком
можливості поширення). p>
Наприклад, якщо
як відмінною характеристикивірусу приймається скритність, то лекго
привести приклад вірусу, що не приховує свого поширення. Такий вірус
перед зараженням будь-якого файлу виводить повідомлення, з якого випливає, що в комп'ютері
знаходиться вірус і цей вірус готовий вразити черговий файл, потім виводить ім'я
цього файлу і запитує дозвіл користувача на упровадження вірусу у файл. p>
Якщо як
відмінною риси вірусу приводиться можливість знищення їм програм і
даних на дисках, то як контрприклади до даної відмінною межах можна
привести десятки зовсім нешкідливих вірусів, що крім свого
поширення нічим більше не відрізняються. p>
Основна ж
особливість комп'ютерних вірусів - можливість їхнього мимовільного впровадження в
різні об'єкти операційної системи - властива багатьом програмам, які не
є вірусами. Наприклад, найпоширеніша операційна система MS-DOS
має в собі все необхідне, щоб мимовільно встановлюватися на
не-DOS'овскіе диски. Для цього досить на завантажувальний флоппі-диск,
що містить DOS, записати файл AUTOEXEC.BAT такого змісту: p>
SYS A: p>
COPY *.* A: p>
SYS B: p>
COPY *.* B: p>
SYS C: p>
COPY *.* C: p>
... p>
Модифікована
в такий спосіб DOS сама стане самим дійсним вірусом з точки зору
практично будь-якого існуючого визначення комп'ютерного вірусу. p>
Таким чином,
перша з причин, що не дозволяють дати точне визначення вірусу, є
неможливість однозначно виділити відмітні ознаки, які
відповідали б тільки вірусам. p>
Другий же
труднощами, що виникає при формулюванні визначення комп'ютерного вірусу
є те, що дане визначення повинне бути прив'язане до конкретної
операційній системі, у якій цей вірус поширюється. Наприклад,
теоретично можуть існувати операційні системи, у яких наявність вірусу
просто неможливо. Таким прикладом може служити система, де заборонено
створювати і змінювати області виконуваного коду, тобто заборонено змінювати
об'єкти, які або вже виконуються, або можуть виконуватися системою при
будь-яких умовах. p>
Тому
представляється можливим сформулювати тільки обов'язкова умова для того,
щоб деяка послідовність виконуваного коду була вірусом. p>
ОБОВ'ЯЗКОВОЮ
(Необхідно) ВЛАСТИВОСТІ КОМП'ЮТЕРНОГО ВІРУСУ є можливість створювати
свої дублікати (не обов'язково збігаються з оригіналом) і впроваджувати їх у
обчислювальні мережі і/або файли, системні області комп'ютера та інші
виконувані об'єкти. При цьому дублікати зберігають здатність до подальшого
розповсюдженню. p>
Слід
відзначити, що ця умова не є достатньою (тобто остаточним),
оскільки випливаючи вищенаведеному прикладу операційна система MS-DOS
задовольняє даній властивості, але вірусом, швидше за все, не є. p>
Ось чому
точного визначення вірусу немає дотепер, і навряд чи воно з'явиться в доступному для огляду
майбутньому. Отже немає точно визначеного закону, по якому "хороші"
файли можна відрізнити від "вірусів". Більш того, іноді навіть для конкретного
файлу досить складно визначити, чи є він вірусом чи ні. p>
Ось два
приклади: вірус KOH і програма ALREADY.COM. p>
Приклад 1.
Є ... вірус? утиліта? з назвою KOH. Ця програма шифрує/розшифровує
диски тільки на запит користувача. Виконана вона у вигляді завантажувальної дискети
- Boot-Cектор містить bootstrap loader KOH, а десь в інших секторах лежить
основний код KOH. При завантаженні з дискети KOH задає користувачеві питання типу:
"А можна, я сам себе встановлю на вінчестер?" (Якщо він вже на вінчестері, то
запитує те ж саме про дискету). При позитивному відповіді KOH переносить
себе з диска на диск. p>
У результаті
KOH переносить (копіює) сам себе з дискети на вінчестер, а з вінчестера на
дискети, але тільки з дозволу власника комп'ютера. p>
Потім KOH
виводить текст про свої hot-keys ( "гарячі" клавіші), за якими він
шифрує/розшифровує диски - запитує пароль, читає сектора, шифрує їх і
робить недоступними, якщо не знати пароль. Є в нього, до речі, ключ
деінсталяції, по Якому він сам себе з диска прибирає (розшифрувавши, природно,
все, що було зашифровано). p>
Разом, KOH --
це якась утиліта захисту інформації від несанкціонованого доступу. Додана
до неї, правда, одна особливість: Ця утиліта сама себе може копіювати з диска
на диск (з дозволу користувача). Вірус це? .. Так чи ні? Швидше за все --
немає ... p>
І все б було
нічого, і ніхто б цю утиліту на ім'я KOH вірусом не обізвав, але тільки
bootstrap loader у цього KOH практично на 100% співпадає з досить
"Популярним" вірусом "Havoc
"
( "StealthBoot ")... "І все - і кришка свята". Вірус! І офіційна назва
є - "StealthBoot.KOH". p>
Якби,
звичайно, автором KOH був би добре відомий програміст, а, скажімо, Сімантек,
або Sierra, або навіть Сам Microsoft, то ніхто б і не наважився назвати це
вірусом ... p>
Приклад 2. Є
якась програма ALREADY.COM, яка сама себе копіює в різні підкаталоги на
диску в залежності від системної дати. Вірус? Звичайно так - типовий
вірус-хробак, сам себе розповзаються по дисках (включаючи мережеві). Так? .. Так! P>
"Ви грали - але
не вгадали жодної літери! "Hе вірус це, як виявилося, а компонента від
якогось софтвера. Однак якщо це фото висмикнути з цього софтвера, то веде
він себе як типовий вірус. p>
Разом були
наведено дві живих прикладу: p>
1. не-вірус --
вірус p>
2. вірус --
не-вірус p>
Уважний
читач, який не проти посперечатися, може заперечити: p>
Стоп. Назву
"Віруси" по відношенню до програм прийшло з біології саме по ознаці
саморозмноження. КОH цій умові відповідає, отже це є вірус
(або комплекс, що включає вірусний компонент )... p>
У такому випадку
DOS є вірусом (чи комплексом, що включає вірусний компонент), оскільки
в ньому є команда SYS і COPY. А якщо на диску присутній файл AUTOEXEC.BAT,
приведений декількома абзацами вище, те для розмноження не буде потрібно навіть
втручання користувача. Плюс до цього: якщо прийняти за необхідний і
достатній ознаку вірусу можливість саморозмноження, то тоді будь-яка
програма, що має інсталятор, є вірусом. Разом: аргумент не проходить. P>
... що, якщо
під вірусом розуміти не просто "саморозмножуються код", але "саморозмножуються
код, який не виконує корисних дій або навіть приносить шкоду, без
залучення/інформування користувача "... p>
Вірус KOH
є програмою, шифрувальної диски за паролем, що вводяться користувачем. _Все_
свої дії KOH коментує на екрані і запитує дозволу користувача.
Плюс до того має Деінсталятор - розшифровує диски і видаляє з них свій
код. Проте все одно - вірус! P>
Якщо у випадку з
ALREADY.COM залучити суб'єктивні критерії (корисна/не корисна, входить до
комплект/самостійна і т.п.), то, можливо, це і не варто називати
вірусом/черв'яком. Але чи варто залучати ці самі суб'єктивні критерії? P>
А які можуть
бути об'єктивні критерії вірусу? Саморозмноження, скритність і деструктивні
властивості? Але адже на кожен об'єктивний критерій можна привести два
контрприклади - a) приклад вірусу, не відповідного під критерій, і b) приклад
не-вірусу, що підходить під критерій: p>
саморозмноження:
p>
Intended-віруси,
що не вміють розмножуватися через велику кількість помилок, або
розмножуються тільки при дуже обмежених умовах. p>
MS-DOS і
варіації на тему SYS + COPY. p>
Скритність: p>
Віруси "KOH",
"VirDem", "Macro.Word.Polite" і деякі інші інформують користувача про
свою присутність і розмноження. p>
Скільки
приблизно (з точністю до десятка) драйверів сидить під стандартної Windows95?
Приховано сидить, між іншим. p>
Деструктивні
властивості: p>
нешкідливі
віруси, типу "Yankee", які чудово живуть в DOS, Windows 3.x, Win95, NT і
нічого нікуди не гадять. p>
Старі версії
Norton Disk Doctor'а на диску з довгими іменами файлів. Запуск NDD в цьому
випадку перетворює Disk Doctor'а в Disk Destroyer'а. p>
Тому тема
"Нормального" визначення комп'ютерного вірусу залишається відкритою. Є тільки
кілька точних віх: наприклад, файл COMMAND.COM вірусом не є, а
сумно відома програма з текстом "Dis is one half" є стовідсотковим
вірусом ( "OneHalf"). Все, що лежить між ними, як може виявитися вірусом,
так і немає. p>
Не гарячіться,
Шура, - ви ще не відсиділи за минуле справу. P>
з Жванецького p>
3. Хто і
чому пише віруси? h2>
Сам я
написанням вірусів не займався, з їх авторами перетинаюся досить рідко, і,
отже, мої міркування з цього приводу можуть бути лише чисто
теоретичними. p>
Так хто ж
пише віруси? На мій погляд, основну масу їх створюють студенти та школярі,
які тільки що вивчили мову асемблера, хочуть спробувати свої сили, але не
можуть знайти для них більш гідного застосування. Отраді той факт, що
значна частина таких вірусів їх авторами часто не поширюється, і
віруси через деякий час "вмирають" разом з дискетами, на яких зберігаються.
Такі віруси пишуться швидше за все тільки для самоствердження. P>
Другу групу
складають також молоді люди (частіше - студенти), які ще не повністю
оволоділи мистецтвом програмування, але вже вирішили присвятити себе написанню і
поширенню вірусів. Єдина причина, що штовхає подібних людей на
написання вірусів, це комплекс неповноцінності, який проявляє себе в
комп'ютерному хуліганстві. p>
З-під пера
подібних "умільців" часто виходять або численні модифікації
"Класичних" вірусів, або віруси вкрай примітивні і з великим числом
помилок (такі віруси я називаю "студентськими"). Значно полегшилася життя
подібних вірусів після виходу конструкторів вірусів, за допомогою яких
можна створювати нові віруси навіть при мінімальних знаннях про операційну
системі і компонування, або навіть взагалі не маючи про це ніякого уявлення.
Їх життя стало ще легше після появи макро-вірусів, оскільки замість
складного мови Асемблер для написання макро-вірусів досить вивчити
досить простий Бейсік. p>
Ставши старше і
досвідченіше, але так і не подорослішав, багато хто з подібних вірусів потрапляють в
третій, найбільш небезпечну групу, яка створює і запускає в світ
"Професійні" віруси. Ці дуже ретельно продумані і налагоджені
програми створюються професійними, часто дуже талановитими програмістами.
Такі віруси нерідко використовують досить оригінальні алгоритми,
недокументовані і мало кому відомі способи проникнення в системні
області даних. "Професійні" віруси часто виконані за технологією "стелс"
та (або) є поліморфік-вірусами, заражають не тільки файли, але і завантажувальні
сектора дисків, а іноді і виконувані файли Windows і OS/2. p>
Досить
значну частку у моїй колекції займають "сімейства" - групи з кількох
(іноді більше десятка) вірусів. Представників кожної з таких груп можна
виділити з однією відмінною межі, яка називається "почерком": у
кількох різних віруси зустрічаються одні й ті ж алгоритми та прийоми
програмування. Часто всі або майже всі представники сімейства належать
одному автору, і іноді досить забавно стежити за "становленням пера"
подібного художника - від майже "студентських" спроб створити хоч що-небудь,
схоже на вірус, до цілком працездатною реалізації "професійного"
вірусу. p>
На мою
думку, причина, що змушує таких людей направляти свої здібності на таку
безглузду роботу все та ж - комплекс неповноцінності, іноді поєднується
з неврівноваженою психікою. Показовим є той факт, що подібне
вірусопісательство часто поєднується з іншими згубними пристрастями. Так,
навесні 1997 року один з найбільш відомих у світі авторів вірусів на прізвисько
Talon (Австралія) помер у віці 21 року від летальної дози героїну. P>
Кілька
окремо варто четверта група авторів вірусів - "дослідники". Ця група
складається з досить кмітливих програмістів, які займаються
винаходом принципово нових методів зараження, приховування, протидії
антивірусам і т.д. Вони ж придумують способи впровадження в нові операційні
системи, конструктори вірусів і поліморфік-генератори. Ці програмісти пишуть
віруси не заради власне вірусів, а швидше ради "дослідження" потенціалів
"Комп'ютерної фауни". P>
Часто автори
подібних вірусів не запускають свої творіння в життя, проте дуже активно
пропагують свої ідеї через численні електронні видання, присвячені
створення вірусів. При цьому небезпека від таких "дослідницьких" вірусів не
падає - потрапивши до рук "професіоналів" з третьої групи, нові ідеї дуже
швидко реалізуються в нових віруси. p>
Ставлення до
авторам вірусів у мене Троїста. По-перше, всі, хто пише віруси або
сприяє їхньому поширенню, є "годувальниками" антивірусної індустрії,
річний оборот якої я оцінюю як мінімум дві сотні мільйонів доларів або
навіть більше того (при цьому не варто забувати, що збитки від вірусів складають
кілька сотень мільйонів доларів щорічно і в рази перевищують витрати на
антивірусні програми). Якщо загальна кількість вірусів до кінця 1997 року швидше
всього досягне 20.000, то неважко підрахувати, що дохід антивірусних фірм від
кожного вірусу щорічно складає мінімум 10 тисяч доларів. Звичайно ж,
авторам вірусів не слід сподіватися на матеріальну винагороду: як
показує практика, їх праця була і залишається безкоштовним. До того ж на
сьогоднішній день пропозиція (нові віруси) цілком задовольняє попит
(можливості антивірусних фірм з обробки нових вірусів). p>
По-друге, мені
кілька жаль авторів вірусів, особливо "професіоналів". Адже для того, щоб
написати подібний вірус, необхідно: a) затратити досить багато сил і часу,
причому набагато більше, ніж потрібно для того, щоб розібратися у вірусу
занести його до бази даних або навіть написати спеціальний антивірус, і б) не
мати іншого, більш привабливого, заняття. Отже, Вірусописьменники
- "Професіонали" досить працездатні і одночасно з цим маються від
байдикування - ситуація, як мені здається, дуже сумна. p>
І по-третє, до
моєму відношенні до авторів вірусів досить сильно підмішана почуття нелюбові і
презирства як до людей, свідомо і безцільно що витрачають себе на шкоду всім
іншим. p>
Важке і
непоказна p>
Життя простого
програміста p>
(Народний
фольклор) p>
Немає межі
нашому интегралу. p>
(Народна
мудрість) p>
4. Історія
комп'ютерних вірусів - від давнини до наших днів h2>
4.1. Трохи
археології h2>
Думок по
приводу дати народження першого комп'ютерного вірусу дуже багато. Мені достеменно
відомо тільки одне: на машині Беббідж його не було, а на Univac 1108 і
IBM-360/370 вони вже були ( "Pervading Animal" і "Christmas tree"). Таким
чином, перший вірус з'явився десь на самому початку 70-х або навіть наприкінці 60-х
років, хоча "вірусом" його ніхто ще не називав. На цьому розмова про вимерлих
копалин пропоную вважати завершеним. p>
4.2. Початок
шляхи h2>
Поговоримо про
новітньої історії: "Brain", "Vienna", "Cascade" і далі. Ті, хто почав працювати
на IBM-PC аж у середині 80-х, ще не забули повальну епідемію цих вірусів в
1987-89 роках. Букви сипалися на екранах, а натовпи користувачів мчали до
фахівців з ремонту дисплеїв (зараз усе навпаки: вінчестер здох від
старості, а валять на передовій невідомий науці вірус). Потім комп'ютер
заграв чужоземний гімн "Yankee Doodle", але лагодити динаміки вже ніхто не
кинувся - дуже швидко розібралися, що це - вірус, та не один, а цілий
десяток. p>
Так віруси
почали заражати файли. Вірус "Brain" і що скаче по екрану кулька вірусу "
Ping-pong "ознаменували перемогу вірусу і над Boot-сектором. Все це дуже не подобалося
користувачам IBM-PC, і - з'явилися протиотрути. Першим попалися мені
антивірусом був вітчизняний ANTI-KOT: це легендарний Олег Котик випустив в
світло перші версії своєї програми, яка знищувала цілих 4 (чотири) вірусу
(американський SCAN з'явився у нас в країні дещо пізніше). До речі, всім,
хто дотепер зберіг копію цього антивіруса, пропоную негайно її стерти
(хай простить мене Олег Котик!) як програму шкідливу і нічого, крім витрати
зайвих нервів і непотрібних телефонних дзвінків, що не приносить. На жаль,
ANTI-KOT визначає вірус "Time" ( "Єрусалимський") по комбінації "MsDos" в
кінці файлу, а деякі інші антивіруси ці самі букви акуратно причіпляють
до всіх файлів з розширенням COM або EXE. p>
Слід
звернути увагу на те, що історії завоювання вірусами Росії і Заходу
розрізняються між собою. Першим в?? русом, стрімко поширився на
Заході був завантажувальний вірус "Brain", і тільки потім з'явилися файлові віруси
"Vienna" і "Cascade". У Росії ж навпаки, спочатку з'явилися файлові
віруси, а роком пізніше - завантажувальні. p>
Час йшов,
віруси плодилися. Всі вони були чимось схожі один на одного, лізли в пам'ять,
чіплялися до файлів і секторів, періодично вбивали файли, дискети
вінчестери. Одним з перших "одкровень" став вірус "Frodo.4096" - перший з
відомих мені файлових вірусів-невидимок (стелс). Цей вірус перехоплював INT
21h і, при зверненні через DOS до заражених файлів, змінював інформацію таким
чином, що файл з'являвся перед користувачем в незараженою вигляді. Але це
була тільки надбудова вірусу над MS-DOS. Не минуло й року, як електронні
таргани полізли всередину ядра DOS (вірус-невидимка "Beast.512"). Ідея
невидимості продовжувала приносити свій плоди і далі: влітку 1991 року пронісся,
косячи комп'ютери як бубонна чума, вірус "Dir_II". "Так-a-a!" Сказали всі, хто
в ньому порпався. p>
Але боротися з
невидимками було досить просто: почистив RAM - і будь спокійний, шукай гада і
лікуй його на здоров'я. Більше клопотів доставляли самошіфрующіеся віруси,
які іноді зустрічалися в чергових надходженнях в колекції. Адже для їх
ідентифікації і видалення доводилося писати спеціальні підпрограми,
налагоджувати їх. Але на це ніхто тоді не звертав уваги, поки ... Ще не
з'явилися віруси нового покоління, ті, які носять назву
поліморфік-віруси. Ці віруси використовують інший підхід до невидимості: вони
шифруються (в більшості випадків), а в розшифровувача використовують команди,
які можуть не повторюватися при зараженні різних файлів. p>
4.3.
Поліморфізм - мутація вірусів h2>
Перший
поліморфік-вірус з'явився на початку 90-х кодів - "Chameleon", але по-справжньому
серйозною проблема поліморфік-вірусів стала лише рік по тому - в квітні 1991-го,
коли практично весь світ був охоплений епідемією поліморфік-вірусу "Tequila"
(наскільки мені відомо, ця епідемія практично не зачепила Росію, а першу
Российская епідемія, викликана поліморфік-вірусом, відбулася аж три роки потому
- 1994 рік, це був вірус "Phantom1 "). p>
Популярність
ідеї самошіфрующіхся поліморфік-вірусів вилилася в появу генераторів
поліморфік-коду - на початку 1992 з'являється знаменитий вірус "Dedicated",
що базується на першому відомому поліморфік-генераторі MtE і відкрив серію
MtE-вірусів, а через досить короткий час з'являється і сам
поліморфік-генератор. Представляє він собою об'єктний модуль (OBJ-файл), і
тепер для того щоб з самого звичайного нешифрованих вірусу отримати
поліморфік-мутанта достатньо лише слінковать їх об'єктні модулі - OBJ-файл
поліморфік-генератора і OBJ-файлом вірусу. Тепер автору вірусу, якщо він бажає
створити справжній поліморфік-вірус, не доведеться сидіти над кодами власного
за/розшифровувача. При бажанні він може підключити до свого вірусу
поліморфік-генератор і викликати його з кодів вірусу. p>
На щастя,
перший MtE-вірус не потрапив в "живу природу" і не викликав епідемію, а
разработчі