ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Методи боротьби з вірусами
         

     

    Інформатика, програмування

    МЕТОДИ БОРОТЬБИ
    з вірусом

    У цій главі описані наиб-
    леї ефективні методи
    боротьби з вірусами, захисту
    від проникнення і лікування.
    Наведено алгоритми необ-
    ходимо дій при подо-
    зорі на наявність вірусу
    в комп'ютері. Описані заходи
    по запобіганню "епідеміо-
    ми Академії "шляхом створення про-грами
    -блокувальника.

    Розглянуто приклад створення
    програми-антивіруса.
    Представлені вихідні тек-
    сти програм з докладними коментарями
    .

    У попередніх розділах відбулося знайомство з комп'ютерними вірусу-
    ми, що вражають Flash BIOS, документи текстового процесора
    Microsoft Word 6.0 for Windows, файли різних операційних систем
    та інші. Прийшов час розглянути різні способи боротьби з ними.

    Отже, що ж таке антивірус? Відразу ж розвіємо одну часто виникають-
    щую ілюзію. Чомусь багато хто вважає, що антивірус може вияв-
    жити будь-який вірус, тобто, запустивши антивірусну програму або моні-
    тор, можна бути абсолютно впевненим у їх надійності. Така точка
    зору не зовсім вірна. Справа в тому, що антивірус - це теж програм-
    ма, звичайно, написана професіоналом. Але ці програми здатні
    розпізнавати і знищувати лише відомі віруси. Тобто антивірус
    проти конкретного вірусу може бути написаний лише в тому випадку, ко-
    та у програміста є хоча б один екземпляр цього вірусу.
    От і йде ця нескінченна війна між авторами вірусів і антівіру-
    сов, щоправда, першого в нашій країні чомусь завжди більше, ніж друге.
    Але і у творців антивірусів є перевага! Справа в тому, що су-
    суспільством велика кількість вірусів, алгоритм яких практично
    скопійований з алгоритму інших вірусів. Як правило, такі варіації
    створюють непрофесійні програмісти, які з якихось причи-
    нам вирішили написати вірус. Для боротьби з такими "копіями" придумуйте-
    але нова зброя - евристичні аналізатори. З їх допомогою антивірус
    здатний знаходити подібні аналоги відомих вірусів, повідомляючи
    користувачеві, що в нього, схоже, завівся вірус. Природно, надійність
    евристичного аналізатора не 100%, але все ж його коефіцієнт поліз-
    ного дії більше 0,5. Таким чином, в цій інформаційній вої-
    не, як, втім, і в будь-який інший, залишаються найсильніші. Віруси, кото-
    рие не розпізнаються антивірусними детекторами, здатні написати
    тільки найбільш досвідчені й кваліфіковані програмісти.

    Таким чином, на 100% захиститися від вірусів практично невозмож-
    але (мається на увазі, що користувач змінюється дискетами з друзями
    і грає в ігри, а також отримує інформацію з інших джерел,
    наприклад з мереж). Якщо ж не вносити інформацію в комп'ютер через
    поза, заразитися вірусом неможливо - сам він не народиться.

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

    наприклад, як AVP або DrWeb. Дуже добре, якщо на жорсткому диску
    встановлений ревізор Adinf. Багато користувачів додають стрічку по-
    пуску ревізорів, антивірусів, антивірусних моніторів в конфігур-
    ційних файл AUTOEXEC.BAT - теж дуже дієво.

    Є певні способи боротьби і з завантажувальними вірусами.
    В установках (SETUP) комп'ютера передбачений захист від запису
    в MBR. Коли запис починається, BIOS відразу ж її зупиняє
    і запитує підтвердження на дозвіл запису. Природно,
    слід заборонити запис, а потім завантажиться зі своєю, заздалегідь підго-
    лення, системної дискети. У більшості комп'ютерних користу-
    Ватель такий дискети немає - а треба б завести. І це ще не все.
    Віруси постійно удосконалюються, і все їхнє різноманіття охопити,
    звичайно, неможливо. Тому треба бути готовим, що рано чи по-
    здно вірус все-таки потрапить на жорсткий диск, і зустріти його потрібно
    у всеозброєнні.

    Стандартні програми захисту

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

    Варто також зазначити, що програми-детектори не надто універ-
    сальних, оскільки здатні виявити тільки відомі віруси. Не-
    яким таким програмам можна повідомити спеціальну послідовно-
    ність байт, характерну для якогось вірусу, і вони зможуть
    виявити інфіковані їм файли - наприклад, це вміє Notron
    AntiVirus або AVSP.

    Програма Aidstest застаріла і зараз вже практично не використовує-
    ся. Найбільш широке поширення одержали програми DrWeb
    і AVP. Завдяки своїм новітнім детекторів, вони можуть виявити
    будь-які віруси - як самі старі, так і тільки що з'явилися. Ще
    потрібно згадати детектор Adinf. Ця антивірусна програма вияв-
    жива всі віруси, що не змінюють довжину файлів, невидимі віруси,
    та багато інших. Таким чином, ці три програми забезпечать потужніше-
    шую захист проти вірусів. До речі, на заході теж віддають перевагу
    користуватися російськими програмами DrWeb і AVP.

    Рятуючись від вірусів, потрібно створити потужний захист проти них. Встановіть
    на своєму диску AVP, DrWeb та Adinf. Кожна програма хороша по-сво-
    йому - нехай захист буде багаторівневою. Всі ці програми можна
    вписати в файл AUTOEXEC.BAT, тоді при завантаженні комп'ютера про-
    верка на зараження вірусом буде здійснюватися автоматично.

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

    Пошук вірусу

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

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

    Типовий варіант: стандартна PC (286, 386 ... Pentium), як мінімум
    1Мбайт ОЗУ, як мінімум 400Мбайт HDD; можлива наявність прин-
    тера, звукової карти, CDD і іншої периферії. Програмне забезпе-чення
    : Windows 95, можливо Windows 3.1x, але працюють все одно під
    DOS. Джентльменський набір: Norton Commander 3.0-5.0, Norton Utility
    6.0-8.0, свіжі антивіруси: AidsTest та DrWeb, русифікатори, архівато-
    ри, резидентні програми та інше. Як обов'язковий усло-
    вия - наявність завідомо "чистої" захищеної від запису завантажувального
    дискети, що містить (хоча б у скороченому вигляді) вищезгаданий
    комплект програм.

    Отже, на думку господаря комп'ютер поводиться дивно. Наприклад,
    програми, які раніше працювали правильно, починають збоїти або
    взагалі перестають запускатися, комп'ютер періодично "висне", ек-
    ран і динамік відтворюють незвичайні відео-і аудіоеффекти. Що
    будемо робити?

    1. Садовить перед собою господаря комп'ютера і детально расспраші-
    ваем його про події, що передували виникнення збоїв. Вияс-
    нитка потрібно наступне.

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

    а) Коли вперше помічені симптоми вірусу? Деякі віруси
    люблять пристосовувати свою діяльність до певної дати або
    часу: 1 травня, 7 листопада, 13-те число, п'ятниця, п'ятій годині вечора,
    а також 6 марта, 15 листопада, 11-а хвилина кожної години.

    б) Не чи пов'язані зміни в роботі комп'ютера з перших запус-
    ком будь-якої програми? Якщо так, то ця програма - перший
    в черзі на "медкомісію".

    в) не пов'язано поява симптомів зараження з розпаковуванням
    будь-якого старого архіву і запуском програм з нього? Неко-
    торие сучасні антивіруси (AVP, DrWeb) вміють перевіряти
    архіви найбільш популярних форматів. Але ж зрідка ще
    зустрічаються архіви. ice,. arc,. zoo,. bsa,. uc2,. ha,. pak,. chz,. eli
    та інші - їх антивіруси діагностувати не можуть.

    г) Чи не має господар (господиня) комп'ютера звичку залишати
    дискети в дисководі при перезавантаженні? Завантажувальний вірус мо-
    жет роками жити на дискеті, ніяк себе не виявляючи.

    2. У присутності господаря (господині) вмикаємо комп'ютер. Уважний-
    але стежимо за процесом завантаження. Спочатку запускається програма
    POST, записана в ПЗП BIOS. Вона тестує пам'ять, тестує і
    ініціалізує інші компоненти комп'ютера і завершується ко-
    Ротко поодиноким гудком. Якщо "вірус" проявляє себе вже на
    цьому етапі - він тут ні до чого. Теоретично вірус може суще-
    ствовать і в BIOS: передбачається, що перший віруси на терито-
    рію СРСР "приїхали" усередині болгарських ПЗУ (сучасні ПЗУ
    часто не є "постійними пристроями, що запам'ятовують",
    вони передбачають можливість перезапису BIOS).

    3. У присутності господаря (господині) намагаємося викликати незвичайне по-
    ведення комп'ютера.

    а) Ідеально, якщо вірус (якщо це дійсно він) оригінали та
    але сповіщає всіх про свою присутність, наприклад, виводить на ек-
    ран повідомлення типу "I am VIRUS!".

    Віруси проявляють себе різними способами: програють ме-
    лодії, виводять на екран сторонні малюнки і написи, що імі-
    руют апаратні збої, змушуючи тремтіти екран. Але, на жаль,
    найчастіше віруси спеціально себе не виявляють. До антіві-
    вірусні програмами додаються каталоги з описами вірусів
    (для AidsTest вони зберігаються у файлі aidsvir.txt, для DrWeb -
    у файлі virlist.web). Найбільш повним є гіпертекстовий
    каталог avpve, що входить до складу антивірусного пакета Е. Каспер -
    ського. У ньому можна не тільки прочитати достатньо докладний
    опис будь-якого вірусу, але й спостерігати його прояви.

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

    б) Дуже часто збої викликаються вірусами не навмисно,
    а лише в силу їх несумісності з програмним середовищем, метушні-
    кається через наявність в алгоритмі вірусу помилок і неточнос-
    тей. Якщо будь-яка програма "зависає" при спробі запуску,
    існує дуже велика ймовірність, що саме вона і заражений-
    на вірусом. Якщо комп'ютер "висне" в процесі завантаження (пос-
    ле успішного завершення програми POST), то за допомогою по-
    крокової виконання файлів config.sys і autoexec.bat (клавіша
    F8 в DOS 6.x) можна легко визначити джерело збоїв.

    4. Не переобтяжуючи комп'ютер, запускаємо (можна прямо з вінчестера)
    антивірус, найкраще DrWeb з ключем/hal. Вірус (якщо він є)
    спробує негайно заразити DrWeb. Останній достатньо на-
    Дежнев детектує цілісність свого коду і в разі чого виведе
    повідомлення "Я заражений невідомим вірусом!" Якщо так і вироби
    дет, то наявність вірусу в системі доведено. Уважно дивимося на
    діагностичні повідомлення типу "Файл такий-то ВОЗМОЖНО за-
    ражен вірусом такого-то класу" (СОМ, EXE, TSR, BOOT, MACRO
    і т.п.). Підозри на ВООТ-вірус в 99% бувають виправдані.

    Одного разу DrWeb 3.20 "лаявся" на ВООТ-сектор дискети, "вилікувано-
    ної "AidsTest від вірусу LzExe, тому антивірусним програмам
    теж не завжди можна довіряти. Наявність великої кількості фай-
    лов, імовірно заражених вірусом одного і того ж клас-
    са, з великою вірогідністю вказує на присутність в компьюте-
    ре невідомого вірусу. Але можуть бути і виключення - DrWeb
    версії 3.15 і нижче активно "лаявся" на стандартні DOC-компо-
    нентов WinWord 2.0.

    Крім того, DrWeb визначає наявність в пам'яті комп'ютера неіз-
    Вестн резидентних вірусів і Stealth-вірусів. Помилки при їх
    визначенні (в останніх версіях антивіруса) досить рідкісні.
    Версія 3.15, не вміє лікувати вірус Kaczor, справно запідозрив-
    ла наявність агресивного резидента в пам'яті. Версія ж 3.18, вмію-
    щая його лікувати, в інфікованої системі взагалі нічого не заме-
    Тіла, а детектувала і вилікувала вірус лише при завантаженні з чистим
    дискети. При цьому треба мати на увазі, що попередження типу
    "Дивна дата файлу", поодинокі підозри на СОМ-, ЕХЕ-ві-
    руси та інше навряд чи можуть бути розцінені як безперечний доку-
    зательство наявності вірусу.

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

    5. Нерідко збої бувають викликані природними причинами, ніяк-
    го відношення до вірусів не мають.

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

    б) Порушення в логічній структурі диска. Завантажується з чистою
    дискети і запускаємо (з неї) ndd. Спочатку просто відзначаємо наявність
    помилок (перехресних ланцюжків, втрачених кластерів і так далі).
    Якщо помилок дуже багато і переважна їх числа відноситься
    до СОМ-і ЕХЕ-файлів, то ні в якому разі не можна виконувати опе-
    рацію виправлення помилок: це може бути DIR-подібний вірус,
    і таке "лікування" диска може стати для багатьох програм фатальний-
    вим. Якщо помилки є і їх відносно небагато, ризикуємо і ле-
    чим диск. Знову завантажується з вінчестера. Збої пропали?

    в) Конфлікти між різними компонентами операційної си-
    СТЕМ та прикладними програмами. Особливо "шкідливими"
    є дискові драйвери-обманщики, активно видозмінюють-
    щие (нехай і з благородними цілями) інформацію, що зчитує-
    мую або записувану на диск:

    - дискові кеш (SMARTDRV, NC_CASHE);

    - пакувальники дисків (DblSpace, DrvSpace, Stacker);

    - системи безпеки (антивірусні монітори типу PROTECT,
    HDPROT, ADM та інші, системи розмежування доступу
    DISKMON, DISKREET). Нерідко дають збій застарілі прістиковоч-
    ные системи захисту від несанкціонованого копіювання, типу
    NOTA або CERBERUS.

    6. Нарешті, самий цікавий випадок - вірус явно не виявлений,
    але підозри на його наявність 'як і раніше залишаються. Досить
    докладно цю тему виклав Е. Касперський у своїй книзі "Комп-
    терни віруси в MS-DOS", обрані фрагменти якої можна
    знайти в гіпертекстовому каталозі avpve того ж автора. Залишається
    тільки привести короткий виклад цих голів з уточненнями і за-
    мечаніямі (може бути, досить спірними).

    а) Виявлення завантажувального вірусу. Завантажується з чистою дискети
    і, запустивши DiskEditor, заглядаємо в сектор 0/0/1 вінчестера.
    Якщо вінчестер розділений (за допомогою fdisk) на логічні диски,
    то код займає приблизно половину сектора і починається
    з байт FAh 33h COh (замість 33h іноді може бути 2Bh). Зака-
    Чіван код повинен текстовими рядками типу "Missing operating
    system ". Наприкінці сектора розміщуються зовні розрізнені бай-
    ти таблиці розділів. Потрібно звернути увагу на розміщення
    активний розділ в таблиці розділів. Якщо операційна система
    розташована на диску С, а активний 2, 3 або 4 розділ, то вірус міг
    змінити точку старту, сам розмістившись на початку другого логи-
    чеського диска (заодно потрібно подивитися і там). Але також це мо-
    жет говорити про наявність на машині декількох операційних си-
    стем і будь-якого boot-менеджера, що забезпечує вибіркову
    завантаження. Перевіряємо всю нульову доріжку. Якщо вона чиста,
    тобто її сектора містять тільки байт-заповнювач, все в поряд-
    ке. Наявність сміття, копій сектора 0/0/1 і іншого може гово-
    вірить про присутність завантажувального вірусу. ?? іншому, антивіруси при
    лікуванні завантажувальних вірусів лише "обезголовлювали" супротивника

    (відновлюють початкове значення сектора 0/0/1), залишаючи тіло
    "догнивала" на нульовій доріжці. Перевіряємо boot-сектор MS-DOS,
    він зазвичай розташований в секторі в 0/1/1. Його зовнішній вигляд для
    порівняння можна знайти як у вищезгаданій книзі Е. Касперс -
    кого, так і на будь-який "чистої" машині. Отже, якщо вірус вияв-
    дружин, за допомогою DiskEditor переписуємо у файл заражений
    об'єкт: MBR 0/0/1 (а краще всю нульову доріжку), boot 0/1/1
    і все інше. Бажано відправити цей комплект вірусоло-
    гам. Копію, за бажання, залишаємо собі - для дослідів.

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

    У цьому випадку основна ознака зараження - зміна конт-
    рольний суми байт файлу. Це легко виявляють антівіру-
    си-інспектора типу Adinf. Як крайній захід можна рас-
    сматрівать пряме вивчення коду програм, підозрілих
    з точки зору наявності в них вірусу. Один з кращих програм-
    них засобiв для оперативного вивчення коду вірусів - програм-
    ма HackerView (hiew.exe by SEN). Але, оскільки "за промовчу-
    нію" комп'ютер чужий, hiew, td, softice, ida і подібних
    програм на ньому може просто не виявитися. Зате стандартний
    відладчик debug присутній точно. Завантажуємо підозрювану
    на наявність вірусу програму (у чистій операційній системі)
    в пам'ять за допомогою команди debug <назва програми>. Коман-
    та й дозволяє дизасемблювати фрагмент коду, команда d -
    переглядати його в шістнадцятковому форматі, команда g <ад-
    рес> запускає програму на виконання з зупинкою в зазначений-
    ної точці, команда t забезпечує покрокову трасування коду,
    команда г відображає поточний вміст регістрів. Щоб ви-
    зуально розпізнати наявність вірусу за кодом, звичайно, необхідний
    певний досвід. Ось на що треба звертати особливу увагу:

    - Наявність на початку програми послідовності команд подоб-
    ного типу вкрай підозріло:

    Start:

    call Metka
    Metka: pop

    - Наявність на початку файлу рядків типу "PkLite", "Ь291" або "diet"
    має на увазі обробку програми відповідним пакувальником;

    якщо початок програми не містить послідовності команд, ха-
    рактерних для пакувальника, не виключений факт її зараження.

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

    - Підозра викликають розташовані на початку програми, напи-
    санній на мові високого рівня, фрагменти видозміни соб-
    ного коду, виклики DOS-або BIOS-переривань та інше. Же-
    лательно візуально пам'ятати характерні початку програм,
    скомпільованих в тій чи іншій системі програмування (на-
    приклад, почала програм, написаних на Turbo Pascal, містять
    велика кількість дальніх викликів підпрограм call xxxx: xxxx).

    - Нарешті, про наявність вірусу можуть свідчити "сторонні-
    ние" рядки типу "Eddie lives." всередині файлу.

    7. Ловля вірусу "на живця". Отже, припустимо, що наявність вірусу в си-
    стеми доведено одним із запропонованих вище методів, і заражений-
    ные вірусом об'єкти визначені. Тепер можна почати вивчення
    вірусу і, слідом за цим, спробувати видалити його з машини. Бажаю-
    тельно надіслати зразок вірусу професійним вірусологам.
    А для цього необхідно виділити вірус у чистому вигляді.

    а) Виділення завантажувального вірусу. Як вже говорилося вище, якщо
    вірус уразив вінчестер, необхідно за допомогою програми
    DiskEditor зберегти у файлі образ зараженого об'єкта (наприклад
    заходів, сектору 0/0/1 або всієї нульової доріжки). Але, як відомо,
    завантажувальні віруси тільки "живуть" в системних областях вин-
    честера, розмножуються ж вони, заражаючи системні області дис-
    кет. Тому дивимося на лицьову панель комп'ютера. Якщо
    в наявності дисководи обох типів (3.5 "і 5.25"), то доведеться

    /•

    відформатувати 4 дискети на 4 стандартних формату: 360Кбайт,
    720Кбайт, 1.2Мбайт і 1.44Мбайт. Потім за допомогою програми
    DiskEditor уважно розглянемо і постараємося запам'ятати
    зовнішній вигляд boot-секторів цих дискет (0/0/1), хоча б перші
    байти (природно, все це робиться на чистій машині). Встав-
    ляем не захищені від запису дискети по черзі в дисководи
    "хворий" машини і (обов'язково) звертаємося до них: намагаємося
    прочитати теку, записати, прочитати і видалити які-небудь
    файли. Нарешті, на чистій машині за допомогою DiskEditor
    знову переглядаємо сектор 0/0/1. Якщо на який-небудь дискеті
    він змінився, за допомогою того ж DiskEditor знімаємо образ
    всій дискети у файл. Вірус спійманий. Можна упакувати файл ка-
    ким-небудь архіватором і послати його вірусологи. Деякі
    хитрі віруси зберігають своє тіло на додатковій, спеціально
    відформатованої доріжці, так званому інженерному ци-
    ліндре дискети. У цьому випадку без пакету копіювання ключових
    дискет типу fda, teledisk або copymaster не обійтися.

    б) Виділення резидентного вірусу. Як відомо, резидентний ви-
    рус постійно знаходиться в пам'яті ПЕОМ, вибираючи жертву для
    зараження. Найчастіше в якості жертв виступають запуску-
    емие програми. Однак файли програм можуть заражатися при
    відкриття, копіювання на дискету або з неї (вірус OneHalf), у
    час пошуку за допомогою DOS-функцій FindFirst або FindNext.
    Необхідно підібрати підходящого претендента на "конт-
    рольне" зараження - невелику програму простої структури,
    приманку. Деякі віруси намагаються розпізнати приманку
    і відмовляються від її зараження. Не підходять для таких цілей
    занадто короткі програми або такі, більша частина яких
    складається з повторюваних байт (наприклад, 90h - код команди
    NOP). В якості приманки з великим успіхом можна вико-
    вать програми test.com і test.exe. Ось їх вихідні тексти
    на мові Assembler.

    test.com

    cseg segment

    assume cs: cseg, ds: cseg, ss: cseg

    org-lOOh
    Start:

    db 1249 dup (OFAh, 90h, OFBh, OF8h)

    1 60 Методи боротьби з вірусами

    mov ah, 4Ch

    int 21h

    cseg ends

    End Start

    test.exe

    cseg segment

    assume cs: cseg, ds: cseg
    Start:

    db 1000 dup (OFAh, 90h, OFBh, OF8h)

    mov ah, 4Ch

    int 21h

    cseg ends

    sseg segment stack

    assume ss: sseg

    db 118 dup (OFAh, 90h, OFBh, OF8h)

    sseg ends

    End Start

    скопіюємо принади на заражену машину. Виконаємо над ними як
    якомога більше операцій: запустимо, скопіюємо в інше місце вінчесте-
    ра і на дискету, перемістити, переглянемо їх у NC і DOS (командою
    dir). При цьому бажано кілька разів поміняти системний час
    і дату, тому що віруси нерідко активні не кожен день і не круг-
    круглі добу. Щоб виключити Stealth-, Online з чистим дис-
    кети і розглянемо уважно ці файли. Як правило, достатньо
    буває проконтролювати розмір файлів і переглянути їх код при
    допомоги F3 - наявність вірусу визначити нескладно.

    в) Виділення нерезидентного файлу. Самий неприємний випадок.
    Крім того, що вірус нерідко вередує, розпізнаючи
    приманку, і як і раніше відмовляється працювати "без вихідних
    і відпусток", так ще й заражаемость програм сильно залежить від
    їх розташування на вінчестері. Одні нерезидентні віруси за-
    ражают тільки в поточному каталозі, інші - тільки в подкатало-
    Гах 1-го рівня, третє - в каталогах, зазначених у рядку path
    системної середовища (Vienna), четверті - взагалі в усіх каталогах
    вінчестера. Тому скористаємося програмою типу it, щоб
    скопіювати приманки у всі каталоги диска (запускаємо з кор-
    невого каталогу):

    rt copy a: test .*.

    Точка "." в кінці - символ поточного каталогу. Потім їх можна буде
    видалити:

    rt del test *

    Тепер вибираємо свідомо заражену програму і запускаємо її N раз,
    постійно змінюючи час та дату. Проконтролювати зміна довжини
    допоможе та ж програма rt:

    rt dir test .*> test.txt

    Отримуємо файл test.txt, що містить список файлів test .* із зазначенням
    їх довжини. Вибираємо той файл приманки, який змінив довжину.
    Ось вірус і спійманий.

    Як досліджувати алгоритм роботи вірусу

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

    1. Перш ніж перейти до розгляду цього питання, згадаємо неко-
    торие принципи функціонування MS DOS.

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

    СОМ-програма являє собою частину коду і даних, яка
    починається з виконуваної команди і займає не більше 64Кбайт.
    Наприклад, таку структуру має командний процесор
    COMMAND.СОМ операційної системи MSDOS до версії 6.22
    включно.

    Структура ЕХЕ-програми набагато складніше. На початку файлу
    ЕХЕ-програми розташовується заголовок (див. додаток). Поля
    ReloCS і ExelP визначають розташування точки входу в програму,
    поля ExeSP і ReloSS - розташування стека, поля PartPag
    і PageCnt - розмір кореневого сегмента програми. Розмір деяких

    6-1436

    програм, обчислений по полях PartPag і PageCnt, може не з-
    впадати з реальним розміром файлу. Такі програми називаються
    "сегментованим" або "містять внутрішні оверлеї".
    Досвідчені автори вірусів уникають заражати такі програми. Пос-
    ле заголовка може розміщуватися спеціальна таблиця,
    точне місце розташування якої визначається полем TablOff, а розмір - по-
    лем ReloCnt. У цій таблиці зберігаються адреси тих слів в коді
    про-грами, які модифікуються операційною системою під час
    завантаження програми. Наприклад, переглядаючи файл програми при
    допомогою утиліти HackerView, можна бачити команду call
    0000:1234 h. У процесі завантаження програми MS-DOS підставить вме-
    сто нулів потрібний сегментний адресу, і все буде працювати коректив-
    але. До речі, якщо в полі TablOff вказано число 40h або більше,
    то, швидше за все, це програма у форматі Windows. Подібний
    формат має, наприклад, командний процесор Windows 95
    COMMAND.COM. Незважаючи на своє розширення, він має на нача-
    ле знамениті символи "MZ" і довжину 95Кбайт.

    2. Приступаємо до дослідження конкретного файлового вірусу і розрив-
    лення алгоритму його лікування. В якості жертви "показового
    розтину "візьмемо широко відомий на початку 90-х років вірус
    SVC-1740. Вибір визначився наступними обставинами:

    - це дуже простий вірус з чіткою структурою;

    - він не містить деструктивних функцій;

    - не містить грубих помилок в алгоритмі;

    - він стандартно заражає СОМ-і ЕХЕ-програми.
    Запустивши SVC вірус на своїй машині, можна спостерігати наступних
    щие його прояви.

    а) У MS-DOS встигли заразитися файли ARCVIEW.EXE,
    HIEW.EXE і LEX.EXE. У результаті HackerView, перевіряючий
    цілісність свого коду, відмовився працювати, повідомивши: "HIEW
    bad, work is aborted".

    6) Windows 3.11 та Windows 95 спочатку запустилися коректно, але
    потім продемонстрували різнокольорові горизонтальні смуги
    в відеорежимі 800х600х256 (вірус не заражав будь-які драй-
    віра, просто в момент старту Windows в пам'яті знаходився ви-
    вірусні обробник переривання INT 21h).

    Вилікування прийшло після використання антивірусів:

    DrWeb з:/сир/а1
    і
    AidsTest з:/f/g/q

    3. За допомогою раніше описаних методів уразив дві принади:

    TEST.COM і TEST.EXE. Збільшення їх довжини на 1740 байт мож-
    але побачити тільки на "чистої" машині (Stealth-ефект). Несколь-
    до слів про інструментарії. Взагалі кажучи, вибір дизассемблер
    досить широкий. Свого часу була широко відома програма
    DisDoc. За визнанням Е. Касперського, він активно користується інте-
    рактівним дизассемблер IDA. Швидко переглянути код програм-
    ми дозволяє утиліта HackerView. Також можливе використання
    будь-якого відладчика. У даному випадку для вивчення коду заражених
    приманок використовувався дизассемблер Sourcer v5.04. Незважаючи на
    відсутність деяких корисних опцій і помилки при дізассемблі-
    рованії (досить рідкісні), користуватися програмою зручно -
    упакована PkLite, вона займає на дискеті всього 48Кбайт.

    Отже, запускаємо дизассемблер командою sr test-сом. На екрані появи-
    лась темно-синя лицьова сторінка. Натиснувши клавішу "а", можна пе-
    Рейти на сторінку опцій. Рекомендується встановити опцію "а" -
    обов'язково дизасемблювати фрагмент програми, маю-
    щійся після команд jmp/ret/iret - це дозволяє отримати ассемб-
    лерний код тих фрагментів програм, до яких немає явного перех-
    так (процедури обробки переривань, приховані підпрограми
    і так далі). Натиснувши Enter, повернемося на першу сторінку. Запустимо процес
    дізассемблірованія натисканням клавіші "g". Залежно від про-
    ізводітельності комп'ютера, процес дізассемблірованія триває від
    кількох секунд до кількох хвилин. Для грубої оцінки розміру
    лістингу можна прийняти, що один кілобайт коду відповідає десять-
    ти-п'ятнадцяти кілобайтам тексту. 6740 байт зараженої приманки
    дають 96Кбайт тексту + фото test.sdf. Цей дуже цікавий файл хра-
    нит в текстовому вигляді як опції, використані при дізассембліро-
    вання, так і параметри отриманого тексту (розміщення фрагментів
    коду і даних, місце розташування символічних імен та інше).
    Якщо змінити ці параметри, перейменувати файл у test.def і пере-
    дати його Sourcer в командному рядку як параметр, то дізас-
    семблер буде працювати у відповідності з новими інструкціями. Ана-
    логічну операцію проробимо для файлу testexe.

    б *

    4. Займемося аналізом отриманого лістингу. Поверхнево вивчаючи за-
    раженние приманки, бачимо:

    - файли збільшили свою довжину на 1740 байт;

    - в їх кінці явно видно сторонні коди;

    - змінився час створення файлів, точніше, змінилося кількістю-
    ство секунд - воно стало рівним 60;

    - на початку файлу test.coM з'явилася команда jmp;

    - у заголовку файлу test.exe змінилися значення полів ReloCS,
    ExelP, ExeSP, ReloSS, PartPag і PageCnt.

    Отже.

    а) На початку вірусного коду міститься послідовність команд
    виду:

    call sub_1
    sub_1: pop si
    sub si, 3

    Подібна послідовність символів характерна для дуже мно-
    гих вірусів. Команда call поміщає в стек зміщення наступної за
    ній команди. Це значення витягується вірусом за допомогою ко-
    мих фахівців pop si (у той час як зазвичай це робиться командою ret)
    і поміщається в регістр si. Скорегувавши цю величину на довжину
    команди call (3 байти), вірус отримує можливість коректного
    звернення до комірок пам'яті щодо кодового сегмента:

    mov cs: Data [si], xxxx.

    Не випадково DrWeb завжди реагує на подібні команди в на-
    Чале програм, видаючи попередження. Втім,
    це не є обов'язковою ознакою присутності вірусу. На-приклад
    , застаріла прістиковочная захист від несанкціонований-
    ного копіювання (НСК) "Nota" також користується цим прийомом.

    б) Важливим елементом алгоритму вірусу є визначення на-
    лічія власного резидента в ОЗУ. Викликаючи переривання DOS
    з "секретної" функцією 83h, вірус чекає реакції системи. "Здо-
    світовий" система не зреагує на провокацію, а "хвора" поме-
    стіт в регістр dx число 1990h (рік створення вірусу?), чим і з-
    вести про наявність вірусу в пам'яті. Ось відповідний
    фрагмент вірусного обробника переривання INT 21h:

    cmp ah, 83h
    je loc_9

    loc_9:

    mov dx, 1990h
    iret

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

    в) У разі відсутності вірусного обробника INT 21h в пам'яті,
    вірус намагається встановити його і залишитися в пам'яті резидентної.
    Алгоритм резидентної запису коду вірусу в пам'ять заснований
    на прямій модифікації заголовка блоку пам'яті (МСВ). Під-
    робное опис цього алгоритму і методів боротьби з вірусами,
    використовують подібний метод інсталяції, можна знайти
    в одному з номерів журналу "Монітор" за 1993 р.

    г) Встановивши свою резидентну копію в ОЗП (або виявивши на-
    відмінність такої копії), вірус передає управління оригінальній
    програмі. Вивчення цього моменту надзвичайно важливо для ана-
    лізу. У процесі зараження (цей фрагмент з лістингу уда-
    льон) вірус зчитує (в data_15) 24 байти початку програми
    і аналізує перші два байти з них. Залежно від содер-
    жімого перші слова ( "MZ" чи ні), вірус виконує заражений-
    ня жертви або по СОМ-, або по ЕХЕ-алгоритму, дописуючи
    фрагмент пам'яті зі своїм кодом до її кінця. Природно, вва-
    танние 24 байти також дописуються в файл-жертву. Тому
    для визначення способу передачі управління оригінального
    коду програми цілком достатньо повторно порівняти збережений-
    ний фрагмент початку з ознакою "MZ":

    cmp cs: data_15 [si], 5A4Dh
    je lt_Was_EXE

    Якщо програма була заражена по СОМ-алгоритму, вірус
    просто витягує перші 3 байти з комірки пам'яті за адресою
    data_15, копіює їх у старе початок оригінального коду (по адре-су
    cs: 100h) і передає туди управління. Адресу data_15 відпо-
    ствует 80-ий (якщо рахувати від кінця) байт зараженої програми.

    Якщо програма була заражена з ЕХЕ-алгоритму, вірус
    обчислює стару точку входу по збереженим в data_20 і data_21
    значень полів ReloCS і ExelP, відновлює розташування
    стека по збереженим в data_18 і data_19 значень полів ReloSS
    і ExeSP і передає управління на ReloCS + ES 10 h: ExeIP (ES -
    сегмент PSP; ES + lOh - сегмент початку програми; ES + ReloCS +
    10h - повний сегмент точки входу). Розташування цих адрес
    в зараженому файлі (від кінця файлу):

    data_20 - 60
    data_21 - 58
    data_18 - 66
    data_19 - 64

    Ще можуть стати в нагоді збережені значення полів PartPag
    і PageCnt (від кінця файлу):

    data_16 1 - 78
    data_16 3 - 76

    Для лікування зараженого файлу достатньо відновити вимірюв-
    ненние значення комірок, адреси яких тільки що вирахували,
    і відсікти 1740 вірусних байт від кінця файлу.

    5. Ще кілька особливостей, з якими іноді можна зустріти-
    ся при дізассемблірованіі коду вірусу і вивченні лістингу. Код
    вірусу може бути зашифрований. У цьому випадку на початку вірусного
    коду повинен розташовуватися розшифровувача. Взагалі кажучи, рас-
    шіфровщіков може бути багато, але перші завжди існує.
    Якщо розшифровувача змінюється від одного зараженого файлу до дру-
    гому, значить маємо справу з поліморфним вірусом. Вироджених
    випадок - зашифровуються тільки збережені в тілі вірусу бай-
    ти. Для СОМ-файлу цілком досить покроково пройти расшіф-
    ровщік в відладчик, дочекатися його завершення і зберегти на вин-
    честер розшифрувати код вірусу. Отриманий файл можна
    розбирання. Для ЕХЕ-файла таке не підходить, тому що в
    пам'яті після завантаження не має назви, і отриманий файл
    не може бути дізассе

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status