31
Сложнейшие техники, применяемые буткитами и полиморфными вирусами Vyacheslav Zakorzhevsky, Senior Malware Analyst, Kaspersky Lab 19 сентября 2011 / Yet Another Conference, Yandex

Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

  • Upload
    yaevents

  • View
    10.683

  • Download
    0

Embed Size (px)

DESCRIPTION

Вячеслав Закоржевский, Kaspersky LabПришёл в «Лабораторию Касперского» в середине 2007 года на должность вирусного аналитика. В конце 2008 года занял позицию старшего вирусного аналитика в группе эвристического детектирования. В область интересов входит исследование полиморфных вирусов и сильно изменяющихся зловредов. Также следит за современными тенденциями в методах обфускации, антиэмуляции и прочих, применяемых вредоносным программным обеспечением.Тема докладаСложнейшие техники, применяемые буткитами и полиморфными вирусами.ТезисыБытует мнение, что современные зловреды достаточно просты и пишутся неподготовленными людьми. Данное выступление призвано развеять этот миф. В презентации будут описаны три зловреда, которые используют нетривиальные и сложные методы в процессе своего функционирования. В частности, будет рассмотрена схема работы современных буткитов, которые всё больше и больше набирают обороты. На двух других примерах мы проиллюстрируем изобретательность вирусописателей, которые пытаются максимально усложнить жизнь исследователям и антивирусным компаниям. В одном случае они использовали собственную виртуальную машину совместно с EPO техникой заражения. А в другом - «подключение» нулевых виртуальных адресов для размещения в них своих данных.

Citation preview

Page 1: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Сложнейшие техники, применяемые буткитами и полиморфными вирусами

Vyacheslav Zakorzhevsky, Senior Malware Analyst, Kaspersky Lab19 сентября 2011 / Yet Another Conference, Yandex

Page 2: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Обзор выступления

PAGE 2 | Yet Another Conference 2011 | September 19, 2011

В чём сложность?

Зачем?

Как?

Современное вредоносное ПО уже давно перешло из разряда «поделок» в категорию «сложных программ»

Page 3: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткиты. Чем страшны, как работают и что делают?

Page 4: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткиты. Что это и зачем?

PAGE 4 | Yet Another Conference 2011 | September 19, 2011

Буткит – вредоносная программа, модифицирующая MBR жёсткого диска

В чём сложность?

• Работа на низком уровне с жёстким диском и оперативной памятью

• Перехват и обработка прерываний• Внедрение в стартовый код операционной системы

Page 5: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткиты. Что это и зачем?

Что это даёт?

• Возможность использовать неразмеченное пространство жёсткого диска

• Возможность получить управление до старта кода операционной системы

• Возможность изменять ход загрузки ОС

PAGE 5 | Yet Another Conference 2011 | September 19, 2011

Page 6: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Структура жёсткого диска и назначение MBR

PAGE 6 | Yet Another Conference 2011 | September 19, 2011

Действия, выполняемые MBR:

Поиск загрузочного раздела

Проверка сигнатуры AA55h

Передача управление в найденный раздел

Структура жёсткого диска в общем случае

MBR

Reserved

Раздел 1

Раздел 2

Раздел n

1 - ый сектор

2 - 63 сектора

64 - … сектора

Таблица разделов

Page 7: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Начальная загрузка компьютера

PAGE 7 | Yet Another Conference 2011 | September 19, 2011

В случае успеха

MBR Загрузочный раздел

Поиск «активного»

раздела

Page 8: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткит Sinowal, модификация жёсткого диска

PAGE 8 | Yet Another Conference 2011 | September 19, 2011

Оригинальный MBR

Код буткита

Драйвер буткита

Структура жёсткого диска до заражения

MBR

Reserved

Раздел 1

Раздел 2

Раздел n

1 - ый сектор

2 - 63 сектора

64 - … сектора

Таблица разделов

Структура жёсткого диска после заражения

MBR

Reserved

Раздел 1

Раздел 2

Раздел n

1 - ый сектор

2 - 63 сектора

64 - … сектора

Таблица разделов

Неразмеченное пространство

Page 9: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Полный алгоритм работы буткит компоненты Sinowal

PAGE 9 | Yet Another Conference 2011 | September 19, 2011

Заражённый MBR

Reserved

Раздел 1

Раздел 2

Раздел n

Таблица разделов

Неразмеченное пространство, занятое

данными буткита

Структура заражённого жёсткого диска

Структура физической памяти

IDT

MBR

Считанный BIOS`ом MBR

BIOS Data

0x0000

0x0400

0x06000x0800

0x7C00

Оригинальный MBR

0x7E00

Код буткита0x8000

0x9000

Код буткита0x9F40

Page 10: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Основные действия буткита

PAGE 10

| Yet Another Conference 2011 | September 19, 2011

Дальнейшие действия, выполняемые буткитом:

Перехват Int 13h в IDT

Перехват управления в ntbootdd.sys после BlLoadBootDrivers

Поиск базы ntoskrnl и перехват в нём IoInitSystem

Зачитывание драйвера буткита из неразмеченной области в выделенную виртуальную память

Запуск драйвера с помощью ZwCreateSystemThread

Page 11: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Что в итоге?

PAGE 11

| Yet Another Conference 2011 | September 19, 2011

Осуществлён запуск вредоносного кода в ring0

Запуск кода буткита осуществляется сразу же после инициализации системы

Вредоносный код исполняется вне какого-либо процесса

Код буткита располагается вне файловой системы

Page 12: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткит, подключающий нулевые виртуальные адреса и повышающий уровень привилегий

Page 13: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткит Trup - особенности

PAGE 13

| Yet Another Conference 2011 | September 19, 2011

В чём сложность?

• Работа с низкоуровневыми структурами, отвечающими за организацию виртуальной памяти

• Добавление элементов в глобальную таблицу дескрипторов

Page 14: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Буткит Trup - особенности

PAGE 14

| Yet Another Conference 2011 | September 19, 2011

Что это даёт?

• Возможность обращаться к физической памяти по искусственно заблокированным виртуальным адресам

• Возможность повышать привилегии путём перехода из ring3 в ring0 с помощью шлюза вызова

Page 15: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Виртуальная память в Windows

PAGE 15

| Yet Another Conference 2011 | September 19, 2011

Разбиение адресного пространства в системах Windows NT (32-бит)

Для выявления нулевых указателей

Для кода и данных ring 3

Для выявления некорректных указателей

Для кода и данных ring 0

Назначение раздела адресного пространства

0x00000000 – 0x0000FFFF

0x00010000 – 0x7FFEFFFF

0x7FFF0000 – 0x7FFFFFFF0x80000000 – 0xFFFFFFFF

Page 16: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Физическая память в Windows

PAGE 16

| Yet Another Conference 2011 | September 19, 2011

Распределения начальных адресов физической памяти при инициализацииWindows

old IDT

MBR

MBR / Boot Sector

BIOS Data

0x00000x04000x06000x0800

0x7C00

Код буткита0x7E00

Код буткита недоступен из Windows, как из ring0, так и из ring3

Page 17: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Виртуальный адрес -> логический адрес

PAGE 17

| Yet Another Conference 2011 | September 19, 2011

Селектор (16 – бит)

Смещение

Дескриптор

Таблица дескрипторов

+32 – битный логический

адрес

Page 18: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Логический адрес -> физический адрес

PAGE 18

| Yet Another Conference 2011 | September 19, 2011

Логический адрес (32 – бит)

СмещениеКаталог Таблица

CR3

32 – битный физический адрес

Запись n

Запись 2Запись 1

Запись n

Запись 2Запись 1

+

Модификация записи

буткитом

Page 19: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Ring 3 -> ring 0 из «пользовательского» режима

PAGE 19

| Yet Another Conference 2011 | September 19, 2011

Дескриптор 1

Глобальная таблица дескрипторов

Всегда нулевой

Дескриптор кода, DPL = 0

Шлюз вызова, DPL = 3

Ring 3

Ring 0

Дескриптор n

Page 20: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Что же в итоге?

PAGE 20

| Yet Another Conference 2011 | September 19, 2011

Код буткита использовал неотображённую область физической памяти

Вредоносное приложение, запущенное под ring3 безболезненно переходит в ring0

Page 21: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Полиморфный EPO-вирус с собственной виртуальной машиной

Page 22: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

PAGE 22

| Yet Another Conference 2011 | September 19, 2011

Особенности рассматриваемого файлового вируса

Файловый вирус – вредоносная программа, модифицирующая исполняемый файл таким образом, что к его оригинальной функциональности добавляется вредоносная составляющая

В чём сложность рассматриваемого вируса?

• Применяется техника EPO (entry point obscuring)• Отсутствие статичных сигнатур вируса• Не производится изменений характеристик секций• Часть кода вируса меняется от поколения к поколению

• Присутствует виртуальная машина с собственным P-кодом

Page 23: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

PAGE 23

| Yet Another Conference 2011 | September 19, 2011

Особенности рассматриваемого файлового вируса

Что это даёт?

• Возможность выполнять вредоносные действия в контексте доверенной программы

• Применение собственной виртуальной машины и EPO-техники значительно затрудняет обнаружение заражённых файлов

Page 24: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Типовой вариант файлового вируса

PAGE 24

| Yet Another Conference 2011 | September 19, 2011

Типовой PE-файл до заражения

.code

header

.data

.rsrc

EP

Тот же самый файл после заражения

.code

header

.data

.rsrc

Тело вируса

EP

Изменены PE-заголовок, последняя секция, характеристики последней секции

Page 25: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Схема заражения исполняемого файла исследуемым вирусом

PAGE 25

| Yet Another Conference 2011 | September 19, 2011

Типовой PE-файл до заражения

headerEP

.code

.data.rsrc

Тот же самый файл после заражения

headerEP

.code

.rsrc

.data.data – данные

вирусаТочка входа и характеристики секции не изменяется

Page 26: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Модификация функций оригинального файла вирусом

PAGE 26

| Yet Another Conference 2011 | September 19, 2011

Модификация отдельных функций

Page 27: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Модификация переходов в оригинальном файле вирусом

PAGE 27

| Yet Another Conference 2011 | September 19, 2011

Модификация отдельных переходов

Page 28: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

данные вируса

Полная схема работы вируса

PAGE 28

| Yet Another Conference 2011 | September 19, 2011

Заражённый файл

headerEP

.code

.rsrc

Изменённая функция

P-Code

Изменённая функция

Статичное тело вируса.data

Page 29: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Виртуальная машина

PAGE 29

| Yet Another Conference 2011 | September 19, 2011

Формат инструкций виртуальной машины

Относительный адрес функции

Параметр 1 Параметр 2

4 байта

Действия, выполняемые с помощью виртуальной машины:

Поиск ntdll

Вызов ZwProtectVirtualMemory

Расшифровка основного статичного тела, содержащего «полезную нагрузку»

Page 30: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Что же в итоге?

PAGE 30

| Yet Another Conference 2011 | September 19, 2011

Заражённый файл практически невозможно отличить от оригинального:

Отсутствие специфичных статичных фрагментов вредоносного кода

Основной код вируса зашифрован всегда по-разному

Расположение P-кода всегда разное и вычисляется динамически

Модифицированную вирусом секцию сложно отличить от секции обычного файла

Page 31: Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав Закоржевский, Kaspersky Lab

Thank You

Vyacheslav Zakorzhevsky, Senior Malware Analyst, Kaspersky [email protected]

19 сентября 2011 / Yet Another Conference, Yandex