Виявлення невідомого вірусу

Виявлення невідомого вірусу

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

Найперше правило - не панікувати. Ні до чого хорошого це не призведе. Ви - не перший і не останній, чий комп'ютер виявився зараженим, до того ж не кожен збій комп'ютера є проявом вірусу. Тому частіше згадуйте приказку - "Не такий страшний чорт, як його малюють". До того ж поразка вірусом не найгірше, що може трапитися з комп'ютером.

Не забувайте перед використанням антивірусних програм і утиліт завантажити комп'ютер з резервної копії DOS, розташованої на явно чистої від вірусів і захищеної від записи дискеті, і в подальшому використовувати програми тільки з дискет. Це необхідно для того, щоб застрахуватися від резидентного вірусу, так як він може блокувати роботу програм або використовувати їх роботу для інфікування файлів, що перевіряються / дисків. Більш того, існує велика кількість вірусів, що знищують дані на диску, якщо вони "підозрюють", що їх код може бути виявлений. Звичайно ж, це вимога ніяк не відноситься до макро-вірусів і до дискам, розмічених одним з нових форматів (NTFS, HPFS), - після завантаження DOS такий вінчестер виявиться недоступним для DOS-програм.

Виявлення завантажувального вірусу

У завантажувальних секторах дисків розташовані, як правило, невеликі програми, призначення яких полягає у визначенні розмірів і меж логічних дисків (для MBR вінчестера) або завантаженні операційної системи (для boot-сектора).

На початку слід прочитати вміст сектора, підозрілого на наявність вірусу. Для цієї мети зручно використовувати DISKEDIT з "Нортоновских утиліт" або AVPUTIL з професійного комплекту AVP.

Деякі завантажувальні віруси практично відразу можна виявити за наявністю різних текстових рядків (наприклад, вірус "Stoned" містить рядки: "Your PC is now Stoned!", "LEGALISE MARIJUANA!"). Деякі віруси, що вражають boot-сектори дисків, навпаки, визначаються відсутністю рядків, які обов'язково повинні бути присутніми в boot-секторі. До таких рядках відносяться імена системних файлів (наприклад, рядок "IO SYSMSDOS SYS") і рядки повідомлень про помилки. Відсутність або зміна рядка-заголовка boot-сектора (рядок, що містить номер версії DOS або назва фірми-виробника програмного забезпечення, наприклад, "MSDOS5.0" або "MSWIN4.0") також може служити сигналом про зараження вірусом, якщо на комп'ютері немає встановлена ​​Windows95 / NT - ці системи з невідомої мені причини записують в заголовок завантажувальних секторів дискет випадкові рядки тексту.

Стандартний завантажувач MS-DOS, розташований в MBR, займає менше половини сектора, і багато вірусів, що вражають MBR вінчестера, досить просто помітити по збільшенню довжини коду, розташованого в секторі MBR.

Однак існують віруси, які впроваджуються в завантажувач без зміни його текстових рядків і з мінімальними змінами коду завантажника. Для того щоб виявити такий вірус, в більшості випадків досить відформатувати дискету на свідомо незараженном комп'ютері, зберегти як файл її boot-сектор, потім деякий час використовувати її на зараженому комп'ютері (записати / прочитати кілька файлів), а після цього на незараженном комп'ютері порівняти її boot-сектор з оригінальним. Якщо в коді завантажувального сектора відбулися зміни - вірус спійманий.

Наведені міркування грунтуються на тому, що стандартні завантажувачі (програми, записувані операційною системою в завантажувальні сектора) реалізують стандартні алгоритми завантаження операційної системи і оформляються відповідно до її стандартами. Якщо ж диски відформатовані утилітами, що не входять до складу DOS (наприклад, Disk Manager), то для виявлення в них вірусу слід проаналізувати алгоритм роботи і оформлення загрузчиков, створюваних такою утилітою.

Виявлення файлового вірусу

Як зазначалося, віруси діляться на резидентні і нерезидентні. Зустрічалися досі резидентні віруси відрізнялися значно більшим підступністю і витонченістю, ніж нерезидентні. Тому для початку розглянемо найпростіший випадок - поразка комп'ютера невідомим нерезидентним вірусом. Такий вірус активізується при запуску будь-якої зараженої програми, робить все, що йому належить, передає управління програмі-носію і надалі (на відміну від резидентних вірусів) не заважатиме її роботі. Для виявлення такого вірусу необхідно порівняти довжини файлів на вінчестері і в дистрибутивних копіях (згадка про важливість збереження таких копій вже стало банальністю). Якщо це не допоможе, то слід побайтно порівняти дистрибутивні копії з використовуваними програмами. В даний час розроблено досить багато утиліт такого порівняння файлів, сама найпростіша з них (утиліта COMP) міститься в DOS.

Існує і ще один спосіб візуального визначення зараженого вірусом DOS-файлу. Він заснований на тому, що їх файли, вихідний текст яких написаний на мові високого рівня, мають цілком певну структуру. У разі Borland або Microsoft C / C ++ сегмент коду програми знаходиться на початку файлу, а відразу за ним - сегмент даних, причому на початку цього сегмента стоїть рядок-копірайт фірми-виробника компілятора. Якщо в дампі такого файлу за сегментом даних слід ще одну ділянку коду, то цілком ймовірно, що файл заражений вірусом.

Те ж справедливо і для більшості вірусів, що заражають файли Windows і OS / 2. У виконуваних файлах цих ОС стандартним є розміщення сегментів в наступному порядку: сегмент (и) коду, за якими слідують сегменти даних. Якщо за сегментом даних йде ще один сегмент коду, це також може служити сигналом про присутність вірусу.

Слід зазначити, що резидентні DOS-блокувальники часто виявляються безсилими, якщо робота ведеться в DOS-вікні під Windows95 / NT, оскільки Windows95 / NT дозволяють вірусу працювати "в обхід" блокувальника (як, втім, і всіх інших резидентних програм). DOS-длокіровщікі також нездатні зупинити поширення Windows-вірусів.

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

Характерними проявами макро-вірусів є:

  • Word: неможливість конвертування зараженого документа Word в інший формат.
  • Word: заражені файли мають формат Template (шаблон), оскільки при зараженні Word-віруси конвертують файли з формату Word Document в Template.
  • тільки Word 6: неможливість записи документа в інший каталог / на інший диск за командою "Save As".
  • Excel / Word: в STARTUP-каталозі присутні "чужі" файли.
  • Excel версій 5 і 7: наявність в Книзі (Book) зайвих і прихованих Листів (Sheets).

Для перевірки системи на предмет наявності вірусу можна використовувати пункт меню Tools / Macro. Якщо виявлені "чужі макроси", то вони можуть належати вірусу. Однак цей метод не працює в разі стелс-вірусів, які забороняють роботу цього пункту меню, що, в свою чергу, є достатньою підставою вважати систему зараженої.

Багато віруси мають помилки або некоректно працюють в різних версіях Word / Excel, в результаті чого Word / Excel видають повідомлення про помилку, наприклад:

Якщо таке повідомлення з'являється при редагуванні нового документа або таблиці і при цьому свідомо не використовуються будь-які призначені для користувача макроси, то це також може служити ознакою зараження системи.

Сигналом про вірус є і зміни в файлах і системної конфігурації Word, Excel і Windows. Багато віруси тим чи іншим чином змінюють пункти меню Tools / Options - дозволяють або забороняють функції "Prompt to Save Normal Template", "Allow Fast Save", "Virus Protection". Деякі віруси встановлюють на файли пароль при їх зараженні. Велика кількість вірусів створює нові секції і / або опції в файлі конфігурації Windows (WIN.INI).

Виявлення резидентного вірусу

Якщо в комп'ютері виявлені сліди діяльності вірусу, але видимих ​​змін в файлах і системних секторах дисків не спостерігається, то цілком можливо, що комп'ютер вражений одним з "стелс" -віруси. В цьому випадку необхідно завантажити DOS зі свідомо чистої від вірусів дискети, що містить резервну копію DOS, і діяти, як і при ураженні нерезидентним вірусом. Однак іноді це небажано, а в ряді випадків неможливо (відомі, наприклад, випадки купівлі нових комп'ютерів, заражених вірусом). Тоді доведеться виявити і нейтралізувати резидентну частину вірусу, виконану за технологією "стелс". Виникає питання: де в пам'яті і як шукати вірус або його резидентну частину? Існує кілька способів інфікування пам'яті.

1. Вірус може проникнути в таблицю векторів переривань

При наявності вірусу в таблиці векторів переривань, утиліти, що відображають карту розподілу пам'яті (наприклад, AVPTSR.COM, AVPUTIL.COM), починають "шуміти".

2. Вірус може декількома способами вбудуватися в DOS: в довільний системний драйвер, в системний буфер, в інші робочі області DOS (наприклад, в область системного стека або в вільні місця таблиць DOS і BIOS)

Вірус, що вбудовується в системний буфер, повинен зменшувати загальне число буферів; в іншому випадку він буде знищений наступними операціями зчитування з диска. Досить нескладно написати програму, яка підраховує число буферів, реально присутніх в системі, і порівнює отриманий результат зі значенням команди BUFFERS, розташованої в файлі CONFIG.SYS (якщо команда BUFFERS відсутня, то зі значенням, що встановлюються DOS за замовчуванням).

3. Вірус може проникнути в область програм у вигляді:

  • окремої резидентної програми або окремого блоку пам'яті (MCB);
  • всередині або "приклеївшись" до будь-якої резидентної програмі.

4. Вірус може проникнути за кордон пам'яті, виділеної під DOS

Увага! Ємність оперативної пам'яті може зменшитися на 1 або кілька кілобайт і в результаті використання розширеної пам'яті або деяких типів контролерів. При цьому типовою є наступна картина: в "отрезанном" ділянці вміст більшості байтів нульове.

5. Вірус може вбудовуватися в конкретні, свідомо резидентні програми або "приклеїтися" до вже наявних блоків пам'яті

Можливо інфікування вірусом файлів DOS, які є резидентними (наприклад, IO.SYS, MSDOS.SYS, COMMAND.COM), завантажуваних драйверів (ANSY.SYS, COUNTRY.SYS, RAMDRIVE.SYS) і ін. Виявити такий вірус набагато складніше внаслідок малої швидкості його поширення, але, проте, вірогідність атаки подібного вірусу значно менше. Все частіше стали зустрічатися "хитрі" віруси, які коригують заголовки блоків пам'яті або "обманюють" DOS таким чином, що блок з кодами вірусу стає одним цілим з попереднім блоком пам'яті.

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

Виявлення резидентного Windows-вірусу є вкрай складним завданням. Вірус, перебуваючи в середовищі Windows як додаток або VxD-двайвер, практично невидимий, оскільки одночасно активні кілька десятків додатків і VxD, і вірус за зовнішніми ознаками від них нічим не відрізняється. Для того, щоб виявити програму-вірус в списках активних додатків і VxD, необхідно досконально розбиратися в "нутрощах" Windows і мати повне уявлення про драйвери й програми, встановлених на даному комп'ютері.

Тому єдиний прийнятний спосіб зловити резидентний Windows-вірус - завантажити DOS і перевірити запускаються файли Windows методами, описаними вище.

Схожі статті