Алгоритм роботи вірусів для Access 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Алгоритм роботи вірусів для Access



Оскільки Access є частиною пакета Office, то віруси для Access яв­ля­ють собою такі ж самі макроси мовою Visual Basic, як і інші віруси, що зара­жа­ють програми Office. Однак, у даному випадку замість авто-макросів у сис­те­мі присутні автоматичні скрипти, що викликаються системою при різних подіях (наприклад, Autoexec). Дані скрипти потім можуть викликати різні макро-програми.

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

Зараження скриптів без додаткових макросів не є можливим, оскільки мова скриптів досить примітивна і не містить необхідних для цього функцій. Слід зазначити, що в термінах Access скрипти називаються макро­са­ми (macro), а макроси – модулями (module), однак частіше викори­сто­вується уніфікована термінологія - скрипти і макроси.

Лікування баз даних Access є більш складною задачею, ніж вида­лен­ня інших макро-вірусів, оскільки у випадку Access необхідно знешкодити не тільки вірусні макроси, але й авто-скрипти. А оскільки значна частина ро­боти Access покладена саме на скрипти і макроси, то некоректне вида­лення чи деактивація якого-небудь елемента може привести до немож­ли­вос­ті операцій з базою даних. Те саме справедливо і для вірусів – некоректне заміщення авто-скриптів може привести до втрати даних, що зберігаються в базі.

Приклади макро-вірусів

Macro.Word.Box. Містить сім макросів AutoOpen, AutoClose, Box, Dead, FilePrint, FilePrintDefault, ToolsMacro. При викликах AutoOpen і AutoClose заражає глобальні макроси і документи. Макрос ToolsMacro використовується для заборони меню Tools/Macro. Решта макросів містить процедури зараження і різні ефекти. Виявляється декількома способами. При друці вставляє в документи рядки китайською мовою, виводить MessageBox, записує на диск і запускає вірус "OneHalf.3544", створює і програє WAV-файл (звуковий ефект). Викликає команди DOS:

- echo y|format с/u

- echo y|format c/u/vTwnos1

Містить рядки:

- Taiwan Super No.1 Macro Virus

- Twno1-S

- Today Is My Birthday

- Macro.Word.Catch

Містить шість макросів AutoOpen, encrypt1, FileSave, AutoClose, infectdoc, infectnorm. Зараження системної області макросів і документів відбувається при відкритті файлів. Вірус замінює в документах букви "i" на "o", "o" на "i", "a" на "e", "e" на "a". Причому підміна символів непо­міт­на. При відкритті заражених файлів вірус відновлює текст документа в первинному вигляді, а при збереженні документів на диск – знову замінює. В результаті після лікування вірусу текст документів може виявитися зіпсованим. Після кожної заміни вірус видає в StatusBat крапку. При закритті документів залежно від лічильника випадкових чисел (з віро­гід­ністю 1%) вірус видає повідомлення:

Its а Catch 22 Situation!

Macro.Excel.Soldier. Поліморфний макро-вірус, заражає електронні таблиці Excel. Міс­тить чотири функції з постійними іменами Auto_Open, Auto_Close, Delay, Poly; і декілька функцій з випадковими іменами. При відкритті зараженої таблиці видаляє рядки меню Format/Sheet/Hide і Format/Sheet/Unhide (стелс). При закритті заражає файли, що знаходяться у поточному каталозі. При зараженні залежно від системного датчика випадкових чисел вставляє в початок тексту функції з випадковими іменами і випадковими рядками. Також залежно від випадкового числа виводить в заголовок Excel рядок, що біжить: Microsoft Excel.

 

Мережеві віруси

Мережеві віруси поширюються по комп'ютерних ме­режах. Існують комбі­нації, наприклад, файлово-бутові віруси, які заражають і файли, і бут-сек­то­ри дисків. Крім того, у ком­п'ютерних мережах можуть роз­пов­сюд­жу­ватись віруси будь-яких типів. Віруси розповсюджуються від одного користувача до ін­шого внаслідок обміну програмними продуктами. Локальні ме­режі, як відомо, призначені для сумісного використання програ­мних пакетів кількома користувачами. Мережі дозволяють ши­роко обмінюватися програмами і даними. Очевидно, що при цьому створюється зручне середовище для розповсюдження віру­су. Так, якщо вірус заразив програму login.ехе, яка знаходиться на сервері і яку запускає кожен корис­тувач при вході в мережу, то дуже швидко вірус з'явиться на всіх робочих станціях. Але на практиці ситуація виглядає не дуже драматично, бо ме­реж­ні опе­раційні системи мають механізми захисту і розподілу користува­чів. При грамотному використанні цих можливостей можна об­межити область, в якій може розповсюдитись вірус, внесений з робочої станції, тільки робочою областю того користувача, який вніс його в систему.

Існують мережні віруси, які розраховані на спеціальні ме­режні диски, наприклад, на систему Netware – вони несан­кціоновано входять у систему і, використовуючи максимальні по­вноваження супервізора, по­шкоджують програми, які знахо­дяться на мережних дисках.

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

IRC-хробаки. IRC (Internet Relay Chat) – це спеціальний протокол, розроблений для кому­нікації користувачів Інтернет у реальному часі. Цей протокол надає можливість так званої Інтернет-розмови за допомогою спеціально розробленого про­грамного забез­пе­чення. IRC чимось схожий на телефонну розмову, за винятком того, що в розмові можуть брати участь більш двох спів­роз­мов­ників, що поєднуються по інтересах у різні групи IRC-конференцій. Для підтримки IRC-конференцій створені різні IRC-сервера, до яких під­клю­чаються учасники IRC-розмов. В усьому світі нараховується величезна кіль­кість IRC-серверів, об'єднаних у так звані мережі. Найбільшою є мере­жа EFnet, сервер якої щодня одночасно відвідують кілька десятків тисяч користувачів.

Для підключення до IRC-сервера і ведення IRC-розмов розроблені спе­ці­аль­ні програми – IRC-клієнти. Підключившись до IRC-сервера за до­по­могою програми-клієнта, користувач зазвичай вибирає тему IRC-кон­фе­рен­ції, командою join входить в одну або декілька конференцій ("канали" у термінах IRC) і починає спілкування з іншими "мешканцями" цих каналів.

Крім відвідування загальних (public) конференцій користувачі IRC ма­ють можливість спілкуватися один-на-один з будь-яким іншим корис­тувачем (private), при цьому вони навіть не обов'язково повинні бути на одному каналі. Крім цього існує досить велика кількість IRC-команд, за допомогою яких користувач може одержати інформацію про інших користувачів і канали, змінювати деякі установки IRC-клієнта та інше. Існує також можливість передавати і приймати файли – саме на цій можливості і базуються IRC-хробаки.

IRC-клієнти. На комп'ютерах з MS Windows найпоширенішими клієнтами є mIRC і PIRCH. Це не дуже об'ємні, але досить складні програмні продукти, що крім надання основних послуг IRC (підключення до серверів і каналів) мають ще і масу додаткових можливостей.

До таких можливостей відно­сяться, наприклад, сценарії роботи (скрипти) і завдання автоматичної реак­ції на різні події. Наприклад, з появою під час розмови визначеного слова IRC-клієнт передає повідомлення користувачу, що послав його. Мож­ливе відключення користувача від каналу; посилка персональних повідомлень новим користувачам, що підключаються до каналу; і багато чого іншого. У PIRCH-клієнті, наприклад, подій, на які передбачена реакція, більше 50.

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

Перший ін­ци­дент із IRC-хробаком зафіксований наприкінці 1997 року: користувачами mIRC-клієнта був виявлений скрипт (файл SCRIPT.INI), що переносив свій код через канали IRC і заражав mIRC-клієнтів на комп'ютерах користувачів, що підклю­чалися до заражених каналів. Як виявилося, скрипт-хробаки є досить простими програмами, і через досить короткий час на основі першого mIRC-хробака були створені і "випущені" у мережі декілька десятків різних скрипт-хробаків.

Принцип дії таких IRC-хробаків приблизно однаковий. За допо­мо­гою IRC-команд файл сценарію роботи (скрипт) чи реакції на IRC-події автоматично посилається з зараженого комп'ютера кожному користувачу, що під’єднується до каналу. Надісланий файл-сценарій заміщає стан­дарт­ний і при наступному сеансі роботи вже знову заражений клієнт буде роз­си­лати хробака. Хробаки при цьому використовують особливості кон­фі­гу­рації клієнта, завдяки якій прийняті файли всіх типів розміщуються в коре­не­вий каталог клієнта. Цей каталог також містить і основні скрипти клієн­та, вклю­­чаючи завантажувальні mIRC-скрипти SCRIPT.INI, MIRC.INI і PIRCH-скрипт EVENTS.INI. Ці скрипти автоматично виконуються клі­єн­том при старті і далі використовуються як основний сценарій його роботи.

Деякі IRC-хробаки також містять троянський компонент – по заданих клю­чо­вих словах здійснюють руйнівні дії на уражених комп'ютерах. Наприклад, хробак "pIRCH.Events" по визначеній команді стирає усі файли на диску користувача.

У скрипт-мовах клієнтів mIRC і PIRCH також існують оператори для запуску звичайних команд ОС і модулів, що вико­ну­ють­ся, програм DOS і Windows. Ця можливість IRC-скриптів послужила осно­вою для появи скрипт-хробакв нового покоління, що крім скриптів заража­ли комп'ютери користувачів EXE-вірусами, установлювали "троянських коней", і т.п.

Скрипт-хробаки працездатні тільки в тому випадку, якщо користувач до­зво­ляє копіювання файлів з мережі на свій комп'ютер. Дана опція IRC-клієнтів на­зи­ва­ється “DCC autoget” – одержання файлів по протоколу DCC автоматично і без по­пе­реджуючого повідомлення. При відключеній опції заражений файл прий­ма­ється, розміщується в каталозі клієнта і в наступному сеансі роботи продовжує своє поширення. При цьому користувач не одержує ніяких попереджуючих повідомлень.

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

Приклади мережевих вірусів

mIRC.Acoragil і mIRC.Simpsalapim. Перші відомі mIRC-хробаки вияв­ле­­ні наприкінці 1997 року. Назви одер­­жа­ли по кодових словах, що викорис­то­ву­ються хробаками: якщо в тексті, пере­да­но­му в канал будь-яким корис­тувачем, присутній рядок "Acoragil", то всі корис­ту­вачі, заражені хробаком mIRC.Acoragil авто­ма­тич­­но відключаються від каналу. Те саме відбу­ва­ється з хробаком mIRC. Simpsalapim – він аналогічно реагує на рядок "Simpsalapim". При роз­мно­женні хробаки командами mIRC пересилають свій код у файлі SCRIPT. INI кожному новому користувачу, що підклю­чається до каналу. Містять троянську частину. Хробак mIRC.Simpsalapim міс­тить код захоплення каналу IRC – якщо mIRC власника каналу заражений, то по введенню кодового сло­ва "ananas", зловмисник перехоплює керування каналом. Хробак mIRC. Aco­ra­gil по кодових словах пересилає системні файли OC. Деякі кодові слова обрані так чином, що не привертають уваги жертви – hi, cya чи the. Одна з модифікацій цього хробака пересилає зловмиснику файл паролів UNIX.

Win95.Fono. Небезпечний резидентный файлово-завантажувальний полі­мор­фік-вірус. Використовує mIRC як один із способів свого поширення: перехоплює системні події Windows і при запуску файла MIRC32.EXE активізує свою mIRC-процедуру. При цьому відкриває файл MIRC.INI і записує в його кінець команду, що знімає захист:

[fileserver]

Warning=Off.

Потім створює файли SCRIPT.INI і INCA.EXE. Файл INCA.EXE містить дроппер вірусу, скрипт файла SCRIPT.INI пересилає себе і цей дроппер у канал IRC кожному, хто приєднується до каналу або виходить з нього.

pIRCH.Events. Перший відомий PIRCH-хробак. Розсилає себе кожному корис­ту­ва­чу, що приєднався. По ключових словах виконує різні дії, наприклад:

- по команді ".query" відбувається свого роду переклик, по якому заражені системи відповідають <Так, я вже заражена>;

- по команді ".exit" завершує роботу клієнта;

По інших командах хробак видаляє всі файли з диска С, надає доступ до файлів на зараженому комп'ютері і т.д.

IRC-Worm.Pron. Мережевий вірус-черв'як, зашифрований. Розмножується в IRC-кана­лах і використовує для свого розмноження mIRC-клієнта. Має дуже невели­ку довжину – всього 582 байти. Передається з мережі на комп'ютер у вигляді файла PR0N.BAT. При його запуску вірус копіює себе у файл PR0N.COM і запускає його на виконання. Заголовок вірусу влаштований таким чином, що він може виконуватися як BAT-, так і COM-програма, і в ре­зультаті управління передається на основну процедуру зараження системи. При зараженні системи вірус використовує дуже простий прийом: він копі­ює свій BAT-файл в поточний каталог і в каталог C\WINDOWS\SYSTEM (якщо такий відсутній, то вірус не заражає систему). Потім вірус записує свій код у файл WINSTART.BAT. Для розповсюдження свого коду через mIRC вірус створює новий файл SCRIPT.INI в каталозі mIRC-клієнта. Цей каталог вірус шукає за чотирма варіантами:

C\MIRC; C\MIRC32; C\PROGRA~1\MIRC; C\PROGRA~1\MIRC32.

Скрипт вірусу містить всього одну команду – кожному користувачу, що підключається до зараженого каналу, передається вірусний файл PR0N.BAT. Вірус містить рядок-"копірайт".

Стелс-віруси

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

Відомі стелс-віруси всіх типів – завантажувальні віруси, файлові DOS-віруси і навіть макро-віруси.

Завантажувальні стелс-віруси. Завантажувальні стелс-віруси для приховання свого коду вико­ри­стовують два основних способи.

Перший спосіб полягає в тому, що вірус перехоплює ко­ман­ди читання зараженого сектора (INT 13h) і підставляє замість нього незаражений оригінал. Цей спосіб робить вірус невидимим для будь-якої DOS-програми, вклю­чаючи антивіруси, нездатні "лікувати" оперативну пам'ять комп'ютера. Можливе перехоплення команд читання секторів на рівні більш низькому, чим INT 13h.

Другий спосіб спрямований проти антивірусів, що підтримують ко­манди прямого читання секторів через порти контролера диска. Такі віруси при запуску будь-якої програми (включаючи антивірус) віднов­люють зара­жені сектори, а після закінчення її роботи знову заражають диск. Оскільки для цього вірусу приходиться перехоплювати запуск і закінчення роботи програм, то він повинен перехоплювати також DOS-переривання INT 21h.

З деяким застереженням стелс-вірусами можна назвати віруси, що вносять мінімальні зміни в сектор, що заражається (наприклад, при зара­женні MBR змінюють тільки активну адресу завантажувального сектора – зміні підлягають тільки 3 байти), або маскуються під код стандартного завантажника.

Файлові стелс-віруси. Більшість файлових стелс-вірусів використовує ті самі прийоми, що при­­ведено вище: вони або перехоплюють DOS-виклики звертання до фай­лів (INT 21h), або тимчасово лікують файл при його відкритті і заражають при закритті. Так само, як і для boot-вірусів, існують файлові віруси, що використовують для своїх стелс-функцій перехоплення переривань більш низького рівня – виклики драйверів DOS, INT 25h і навіть INT 13h.

Повноцінні файлові стелс-віруси, що використовують перший спосіб при­хо­ван­ня свого коду, здебільшого досить громіздкі, оскільки їм потрібно пере­хоп­лювати велику кількість DOS-функцій роботи з файлами: відкриття/закриття, читання/записування, пошук, запуск, перейменування і т.д., причому необхідно підтри­му­вати обидва варіанти деяких викликів (FCB/ASCII), а після появи Windows 95/NT їм стало необхідно також обробляти третій варіант – функції роботи з довгими іменами файлів.

Деякі віруси використовують частину функцій повноцінного стелс-віруса. Найчастіше вони перехоплюють функції DOS FindFirst і FindNext (INT 21h, AH=11h, 12h, 4Eh, 4Fh) і зменшують розмір заражених файлів. Такий вірус неможливо визначити по зміні розмірів файлів, якщо, звичайно, він резидентно знаходиться в пам'яті.

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

Макро-стелс-віруси. Реалізація стелс-алгоритмів у макро-вірусах є, напевно, найбільш прос­тою задачею – досить усього лише заборонити виклик меню File/ Templates або Tools/Macro. Досягається це або видаленням цих пунктів меню зі списку, або їхньою підміною на макроси FileTemplates і ToolsMacro.

Частково стелс-вірусами можна назвати невелику групу макро-віру­сів, що зберігають свій основний код не в самому макросі, а в інших областях документа – у його змінних чи в Auto-text.

Приклади стелс-вірусів

Crusher. Безпечний резидентний MBR-EXE-стелс-вірус. При запуску зараже­но­го файла він записується в MBR вінчестера, потім перехоплює INT 21h і записується в початок EXE-файлів при їх копіюванні. При завантаженні з ураженого диска перехоплює INT 1Ch, чекає завантаження DOS, потім відновлює INT 1Ch, перехоплює INT 21h і приступає до зараження файлів. Якщо при роботі вірусу йому не вистачає пам'яті, він повідомляє "Insuf­ficient memory" і повертається в DOS. При запуску CHKDSK вірус виводить текст:

Crusher… You are damned. Bit Addict / Trident.

Ekoterror. Резидентний небезпечний стелс-вірус, при запуску зараженого файла записується в MBR вінчестера і передає управління програмі-носію, при завантаженні з ураженого MBR перехоплює INT 8, 13h, а потім, викорис­то­вуючи INT 8, перехоплює INT 21h і записується в початок.COM-файлів при їх створенні. Періодично розшифровує і виводить текст:

EkoTerror (C) 1991 ATK-toimisto P.Linkola Oy

Kovalevysi on poistettu kДytФstД luonnonsuojelun nimessД.

VihreДssД yhteiskunnassa ei saa olla ydinsДhkФllД toimivia kovalevyjД.

а потім завішує комп'ютер. В деяких випадках некоректно уражає MBR, в результаті DOS гине при завантаженні.

Rasek, сімейство. Дуже небезпечні файлово-завантажувальні віруси, що самошифру­ють­ся. При запуску зараженого файла записують себе в MBR вінчестера, потім перехоплюють INT 13h, 12h. Переривання INT 13h використовується для реалізації стелс-механізму при читанні ураженої MBR. Віруси також записують в Boot-сектори флопі-дисків програму, яка при завантаженні з такого флопі стирає FAT вінчестера. Переривання INT 21h викорис­то­ву­ється вірусом для зараження COM- і EXE-файлів при їх запуску, вірус записується в кінець файлів. У тілі вірусу міститься рядок "AND.COM", вірус шукає цей рядок в імені файла і не вражає такі файли (COMMAND.COM). У тілі вірусів також міститься і інші рядки:

"Rasek.1310" ASEK v1.1,from LA CORUеA(SPAIN).Jan93

"Rasek.1489" RaseK v2.1,from LA CORUеA(SPAIN).Mar93

Vecna. Дуже небезпечний резидентний файлово-завантажувальний стелс-вірус. Заражає boot-сектори дискет, MBR вінчестера і записується поверх EXE-файлів (псує їх). При запуску зараженого EXE-файла записується в MBR вінчестера, розшифровує і виводить текст:

Out of memory.

Потім повертає управління DOS. При завантаженні з диска перехоплює INT 13h, залишається резидентним в пам'яті і заражає дискети і EXE-файли на дискетах. Під налагоджувачем і на Pentium-комп'ютерах виводить текст:

Vecna Live...

Має досить серйозну помилку – може повернути управління оригі­наль­ному обробнику INT 13h із зіпсованим вмістом регістра АХ, що може привести до втрати даних на диску і навіть до його форматування.

Kyokushinkai. Дуже небезпечний резидентний файлово-завантажувальний вірус. При запуску зараженого записується в MBR вінчестера, перехоплює INT 12h, 13h, 1Ch, 21h і при запуску програм шукає EXE-файли і записується в їх кінець. Заражений MBR-сектор не видно при активному в пам'яті вірусі (стелс). Залежно від поточного часу стирає системні сектори рядком:

+++++++ KШФkБshЛдkДЛ +++++++.- 39-mynrazCmeroizв.....

Поліморфік-віруси

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

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

Перші поліморфні віруси Tequila і Maltese Amoeba з'явилися в 1991 році. Все б нічого, але в 1992 році автор, відомий під псевдонімом Dark Avenger, написав свого роду комплект «Зроби сам» для мутаційного механізму, який він зробив частиною вірусу Maltese Amoeba. До 1992 року розробники вірусів працювали насправді дарма. Абсолютно ясно, що кваліфікація професіоналів у сфері антивірусної безпеки ніяк не нижча, і тому багатомісячні зусилля “вірусописьменників” коштували в крайньому випадку зайвих годин роботи для фахівців. Адже всі зашифровані віруси обов'язково містили якийсь незашифрований фрагмент: сам розшифровувач або деяку його частину, по яких можна було б побудувати сигнатуру даного вірусу і потім вже боротися з ним звичними способами.

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

Отже, до поліморфік-вірусів відносяться ті з них, які неможливо (чи вкрай важко) знайти за допомогою так званих вірусних масок – ділянок по­стійного коду, специфічних для конкретного вірусу. Досягається це двома основ­ними способами:

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

- зміною самого виконуваного коду вірусу.

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

Поліморфні розшифровувачі

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

MOV reg_1, count; reg_1, reg_2, reg_3 вибираються з

MOV reg_2, key; AX,BX,CX,DX,SI,DI,BP

MOV reg_3, _offset; count, key, _offset також можуть мінятися

_LOOP:

xxx byte ptr [reg_3], reg_2; xor, add чи sub

DEC reg_1

Jxx _loop; ja чи jnc; далі йдуть зашифровані код і дані вірусу.

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

NOP, STI, CLI, STC, CLC, DEC <невикористовуваний регістр>

або

XCHG <невикористовувані регістри>.

Повноцінні ж поліморфік-віруси використовують ще більш складні алго­рит­ми, у результаті роботи яких у розшифровувачі вірусу можуть зу­стрітися операції SUB, ADD, XOR, ROR, ROL і інші в довільній кількості і порядку. Завантаження і зміна ключів і інших параметрів шифровки вироб­ляється також довільним набором операцій, у якому можуть зустрітися практично всі інструкції процесора Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG, JNZ, PUSH, POP...) із усіма можливими режимами адресації. З'являються також поліморфік-віруси, розшифровувач яких використовує інструкції аж до Intel386. В резуль­таті на початку файла, зараженого подібним вірусом, йде набір безглуздих на перший погляд інструкцій, причому деякі комбінації, що цілком праце­здатні, не аналізуються фірмовими дизасемблерами (наприк­лад, сполучення CSCS чи CSNOP). І серед цієї "каші" з команд і даних зрідка прослизають MOV, XOR, LOOP, JMP – інструкції, що дійсно є "робітниками".

Рівні поліморфізму

Існує розподіл поліморфік-вірусів на рівні в залежності від склад­нос­ті коду, що зустрічається в розшифровувачах цих вірусів. Такий розподіл уперше запропонував доктор Алан Соломон, а згодом Весселин Бончев розширив його.

Рівень 1: віруси, що мають деякий набір розшифровувачів з постійним кодом і при зараженні вибирають один з них. Такі віруси є "напів-поліморфіками" і носять також назву "олігоморфік" (oligomor­phic). Приклади: "Cheeba", "Slovakia", "Whale".

Рівень 2: розшифровувач вірусу містить одну чи кілька постійних інструкцій, основна ж його частина непостійна.

Рівень 3: розшифровувач містить невикористовувані інструкції – "сміття" типу NOP, CLI, STI і т.д.

Рівень 4: у розшифровувачі використовуються взаємозамінні інструкції і зміна порядку проходження (перемішування) інструкцій. Алго­ритм розшифрування при цьому не змінюється.

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

Рівень 6: permutating-віруси. Зміні підлягає основний код вірусу – він поділяється на блоки, що при зараженні переставляються в до­віль­ному порядку. Вірус при цьому залишається працездатним. Подібні віруси можуть бути незашифрованими.

Наведений вище розподіл не вільний від недоліків, оскільки ство­ре­ний за єдиним критерієм – можливість детектувати вірус по коду роз­шиф­ровувача за допомогою стандартного прийому вірусних масок: рівень 1 – для детектування вірусу досить мати кілька масок; рівень 2 – детек­тування по масці з використанням "wildcards"; рівень 3 – детектування по масці після видалення інструкцій-"сміття"; рівень 4 – маска містить кілька варіан­тів можливого коду, тобто стає ал­го­ритмічною; рівень 5 – неможливість детектування вірусу по масці.

Недостатність такого розподілу продемонстрована у вірусі 3-го рівня поліморфічності, що так і називається – "Level3". Цей вірус, будучи одним з найбільш складних поліморфік-вірусів, за приведеним вище розподілом попадає в Рівень 3, оскільки має постійний алгоритм розшифровки, перед яким стоїть велика кількість команд-"сміття". Однак у цьому вірусі алго­ритм генерування "сміття" доведений до досконалості в коді роз­шиф­ро­вувача можуть зустрітися практично всі інструкції процесора і8086.

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

Зміна виконуваного коду

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

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

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

На сьогоднішній день відомі всего два таких віруси, один із яких ("Ply") випадковим образом переміщає свої команди по своєму тілу і заміняє їх на команди JMP чи CALL. Інший вірус ("TMC") використовує більш складний спосіб – щоразу при зараженні вірус змінює місцями блоки свого коду і даних, вставляє "сміття", у своїх асемблерних інструкціях встановлює нові значення офф­сетів на дані, змінює константи і т.д. В результаті, хоча вірус і не шифрує свій код, він є поліморфік-вірусом – у коді не присутній постійний набір команд. Більш того, при створенні своїх нових копій вірус змінює свою довжину.

Деякі віруси (наприклад, віруси сімейства Eddie, Murphy) використовують частину функцій повноцінного вірусу-невидимки. Зазвичай вони пе­ре­хоплюють функції DOS FindFirst і FindNext і «зменшують» розмір зараже­них файлів. Такий вірус неможливо визначити за зміною розмірів фай­лів, якщо, звичайно, він резидентно знаходиться в пам'яті. Програми, що не використовують вказані функції DOS (наприклад, Norton Commander), а напряму звертаються до вмісту секторів, які зберігають каталог, показують правильну довжину заражених файлів.

При інфікуванні файла вірус може здійснювати дії, що маскують і прискорюють його розповсюдження. До подібних дій можна віднести обробку атрибуту Read-only, зняття його перед зараженням і подальше відновлення цього атрибуту. Багато файлових вірусів прочитують дату останньої модифікації файла і відновлюють її після зараження. Для маскування свого розповсюдження деякі віруси перехоплюють переривання DOS, що виникає при зверненні до диска, захищеного від запису, і самостійно обробляють його. Тому серед особливостей алгоритму файлового вірусу можна назвати наявність або відсутність обробки і швидкість його розповсюдження. Швидкість розповсюдження файлових вірусів, що заражають файли тільки під час їх запуску на виконання, буде нижчою, ніж у вірусів, що заражають файли при їх відкритті, перейменуванні, зміні їх атрибутів і т.д. Деякі віруси при створенні своєї копії в оперативній пам'яті намагаються зайняти область пам'яті з найстаршими адресами, руйнуючи тимчасову частину командного інтерпретатора COMMAND.COM. Після закінчення роботи зараженої програми тимчасова частина інтерпретатора відновлюється, при цьому відбувається відкриття файла COMMAND.COM і його зараження, якщо вірус вражає файли при їх відкритті.

Приклади поліморфік-вірусів

Amoeba.2367. Дуже небезпечний резидентний поліморфик-вірус. Перехоплює INT 21h і записується в кінець COM- і EXE-файлів при їх запуску або відкритті. 21 березня і 1 листопада знищує інформацію на вінчестері. Містить тексти:

Tosee aworld in а grain of sand,

And а heaven in а wildflower

Hold Infinity in the palm of your hand

And Eternity in an hour.

"THE VIRUS 16/3/91 AMOEBA virus by the Hacker Twins (C) 1991 This is nothing, wait for the release of AMOEBA II-The universal infector, hidden to any eye but ours! Dedicated to the University of Malta- the worst educational system in the universe,and the destroyer of 5X2 years of human life.

Simulation. Безпечний нерезидентний поліморфік-вірус. Шукає.COM-файли і записується в їх кінець. Періодично виводить одне з повідомлень, після чого завішує комп'ютер:

HA HA HA YOU HAVE А VIRUS! FRODO LIVES!

Have you ever danced with the Devil in the pale moonlight?

DATACRIME VIRUS RELEASED 1 MARCH 1989 ALIVE...

Your system is infected by the SIMULATION virus.

Have а nice day!

Predator (файлово-завантажувальні)

Нешкідливі резидентні COM-EXE-MBR-Boot-поліморфік-віруси. Під час запуску зараженого файла трасують і перехоплюють INT 13h, 21h і за­пи­суються в MBR вінчестера. Потім записуються в кінець COM- і EXE-фай­лів при зверненнях до них. Вражають Boot-сектори дискет. При заванта­женні з ураженого флопі-диска перехоплюють INT 13h і чекають завантаження DOS, потім перехоплюють INT 21h і приступають до зараження. Містять текст:

THE PREDATOR. TORPNACSAELCFASVVAPC.

VANOCED

Останній рядок містить частини імен файлів (задом наперед), які не вражаються вірусом PROT, SCAN, CLEA, VSAF, CPAV, NAV, DECO.

Також містять рядки:

"Predator.2248" Predator virus #2 (c) 1993 Priest - Phalcon/Skism

"Predator.2424" Predator virus #2 (c) 1993

Here comes the Predator!

Samara.1536. Безпечний резидентний файлово-завантажувальний поліморфік-ві­рус. При старті з інфікованого файла заражає MBR вінчестера, перехоплює INT 21h і записується в кінець COM- і EXE-файлів при їх запуску (окрім COMMAND.COM). Забороняє запуск антивірусів AVPLITE, AIDSTEST, AVP, DRWEB, SCAN.

При завантаженні з інфікованого MBR вірус пере­хоплює INT 13h, чекає завантаження DOS і потім перехоплює INT 21h. При завантаженні з boot-сектора дискети вірус ще заражає MBR. При зараженні MBR і boot-секторів не зберігає їх оригінали. Для збереження працездатності системи вірус при завантаженні із зараженого диска само­стій­но прочитує і запускає на виконання перший логічний сектор диска С, який містить заван­та­жувальний код операційної системи.

OneHalf, сімейство. Дуже небезпечні резидентні файлово-завантажувальні поліморфік-віруси. При запуску заражають MBR вінчестера, при завантаженні з ураженого диска перехоплюють INT 13h, 1Ch, 21h і записуються в COM- і EXE-файли при зверненні до них. Не заражають файли SCAN, CLEAN, FINDVIRU, GUARD, NOD, VSAFE, MSAV, CHKDSK. Код-розшиф­ро­ву­вач цих вірусів розкиданий по всьому файла з випадковими зсувами. При зараженні вінчестера вірус прочитує його MBR і сканує таблицю розділів диска (DPT). У ній він шукає останній DOS'івський диск – логічний диск (FAT-12,16/BIGDOS) або Extended par­ti­tion, і коли знаходить, підраховує номер першого і останнього цилінд­рів знай­деного диска (або Extended partition). При цьому вірус досить грамотно обробляє диски, що мають більше 1024 циліндрів і не вписуються в стандарти INT 13h. Вірус запам'ятовує адреси цих циліндрів і заражає вінчестер.

Потім при завантаженні із зараженого вінчестера вірус шифрує два останні циліндри диска, при наступному завантаженні – ще два і т.д., поки не дійде до першого циліндра. При цьому вірус використовує адреси першого і останнього циліндрів диска, які запам'ятав при зараженні він­чес­те­ра. Коли кількість зашифрованих циліндрів перевалить за половину диска, вірус повідомляє (залежно від поточної дати і свого "покоління"):

Disк is one half.

Press any key to continue...

Таким чином, чим частіше перезавантажується заражений комп'ю­тер, тим більше дані виявляються зашифрованими. Після завантаження в пам'ять вірус розшифровує/зашифровує ці сектори "на льоту", тому користувач не помічає того, що його дані зіпсовані. Проте, якщо вилікувати MBR, то всі дані виявляються втраченими.

"OneHalf.3518" не шифрує себе у файлах. Виводить текст:

A20 Error!!! Press any key to continue...

"OneHalf.3544.b" не заражає файли AIDS*.*, ADINF*.*, DRWEB*.*, ASD*.*, MSAV*.*. Виводить повідомлення:

Dis is TWO HALF. Fucks any key to Goping...

Cheeba, сімейство. Резидентні безпечні віруси. Активізуються, коли вектор INT 13h вка­зує на область з адресою меншою, ніж адреса першого MCB. В обробниках INT 13h, 21h, 22h замінюють перші 5 байтів на код "FAR JMP на тіло ві­русу", потім записуються в кінець COM- і EXE-файлів. Містять текст:

CHEEBA Makes Уа High Harmlessly F**K THE LAMERS.

У вірусі присутні також коди, які розшифровуються і виконуються при відкритті файла USERS.BBS, використовуючи ім'я файла як ключ розшифровки. При цьому вірус записує у файл USERS.BBS якусь інформацію (створює ім'я з максимальними привілеями?).

Bomber. Нешкідливий резидентний поліморфік-вірус. Перехоплює INT 21h і заражає COM-файли, окрім COMMAND.COM, при їх запуску. Містить усередині себе текст:

COMMANDER BOMBER WAS HERE. [DAME]



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 326; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.190.232 (0.12 с.)