Рівні поліморфізму - студопедія

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

Рівень 1. Віруси, які мають певний набір розшифровувачів з постійним кодом і при зараженні вибирають один з них. Такі віруси є полуполіморфікамі і носять також назва олігоморфік (oligomorphic).

Приклади: Cheeba, Slovakia, Whale.

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

Рівень 3. розшифровщик містить невикористовувані інструкції - сміття типу NOP, CLI, STI і т. Д.

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

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

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

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

Рівень 1. Для виявлення вірусу досить мати кілька масок.

Рівень 2. Виявлення по масці з використанням wildcards.

Рівень 3. Виявлення по масці після видалення інструкцій- "сміття".

Рівень 4. Маска містить кілька варіантів можливого коду, т. Е. Стає алгоритмічної.

Рівень 5. Неможливість виявлення вірусу по масці.

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

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

1. Ступінь складності поліморфік-коду (відсоток від усіх інструкцій процесора, які можуть зустрітися в коді расшифровщика).

2. Використання антіемуляторних прийомів.

3. Сталість алгоритму расшифровщика.

4. Сталість довжини расшифровщика.

Мені не хотілося б викладати ці пункти докладніше, оскільки це може підштовхнути вірусів до створення подібних монстрів.

Схожі статті