Your SlideShare is downloading. ×
0
Сложнейшие техники, применяемые буткитами  и полиморфными вирусами<br />Vyacheslav Zakorzhevsky, Senior Malware Analyst, K...
Обзор выступления<br />PAGE 2<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Современное вредоносное ПО уж...
Буткиты. Чем страшны, как работают и что делают?<br />
Буткиты. Что это и зачем?<br />PAGE 4<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Буткит – вредоносная ...
Перехват и обработка прерываний
Внедрение в стартовый код операционной системы</li></li></ul><li>Буткиты. Что это и зачем?<br />Что это даёт?<br />Возможн...
Структура жёсткого диска и назначение MBR<br />PAGE 6<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Дейст...
Начальная загрузка компьютера<br />PAGE 7<br />|  Yet Another Conference 2011 |  September 19, 2011<br />В случае успеха<b...
БуткитSinowal, модификация жёсткого диска<br />PAGE 8<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Струк...
Полный алгоритм работы буткит компоненты Sinowal<br />PAGE 9<br />|  Yet Another Conference 2011 |  September 19, 2011<br ...
Основные действия буткита<br />PAGE 10<br />|  Yet Another Conference 2011 |  September 19, 2011<br />	Дальнейшие действия...
Что в итоге?<br />PAGE 11<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Осуществлён запуск вредоносного к...
Буткит, подключающий нулевые виртуальные адреса и повышающий уровень привилегий<br />
БуткитTrup - особенности<br />PAGE 13<br />|  Yet Another Conference 2011 |  September 19, 2011<br />В чём сложность?<br /...
Добавление элементов в глобальную таблицу дескрипторов</li></li></ul><li>БуткитTrup - особенности<br />PAGE 14<br />|  Yet...
Виртуальная память в Windows <br />PAGE 15<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Разбиение адресн...
Физическая память в Windows <br />PAGE 16<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Распределения нач...
Виртуальный адрес -> логический адрес<br />PAGE 17<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Смещение...
Логический адрес -> физический адрес<br />PAGE 18<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Логически...
Ring 3 -> ring 0 из «пользовательского» режима<br />PAGE 19<br />|  Yet Another Conference 2011 |  September 19, 2011<br /...
Что же в итоге?<br />PAGE 20<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Код буткита использовал неотоб...
Полиморфный EPO-вирус с собственной виртуальной машиной<br />
PAGE 22<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Особенности рассматриваемого файлового вируса<br />...
Отсутствие статичных сигнатур вируса
Не производится изменений характеристик секций
Часть кода вируса меняется от поколения к поколению
Присутствует виртуальная машина с собственным P-кодом</li></li></ul><li>PAGE 23<br />|  Yet Another Conference 2011 |  Sep...
Типовой вариант файлового вируса<br />PAGE 24<br />|  Yet Another Conference 2011 |  September 19, 2011<br />Тот же самый ...
Схема заражения исполняемого файла исследуемым вирусом<br />PAGE 25<br />|  Yet Another Conference 2011 |  September 19, 2...
Модификация функций оригинального файла вирусом<br />PAGE 26<br />|  Yet Another Conference 2011 |  September 19, 2011<br ...
Модификация переходов в оригинальном файле вирусом<br />PAGE 27<br />|  Yet Another Conference 2011 |  September 19, 2011<...
Upcoming SlideShare
Loading in...5
×

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

10,486

Published on

Вячеслав Закоржевский, Kaspersky Lab

Пришёл в «Лабораторию Касперского» в середине 2007 года на должность вирусного аналитика. В конце 2008 года занял позицию старшего вирусного аналитика в группе эвристического детектирования. В область интересов входит исследование полиморфных вирусов и сильно изменяющихся зловредов. Также следит за современными тенденциями в методах обфускации, антиэмуляции и прочих, применяемых вредоносным программным обеспечением.

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

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
10,486
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Сложнейшие техники, применяемые буткитами и полиморфными вирусами<br />Vyacheslav Zakorzhevsky, Senior Malware Analyst, Kaspersky Lab<br />19 сентября 2011 / Yet Another Conference, Yandex<br />
  2. 2. Обзор выступления<br />PAGE 2<br />| Yet Another Conference 2011 | September 19, 2011<br />Современное вредоносное ПО уже давно перешло из разряда «поделок» в категорию «сложных программ»<br />В чём сложность?<br />Зачем?<br />Как?<br />
  3. 3. Буткиты. Чем страшны, как работают и что делают?<br />
  4. 4. Буткиты. Что это и зачем?<br />PAGE 4<br />| Yet Another Conference 2011 | September 19, 2011<br />Буткит – вредоносная программа, модифицирующая MBR жёсткого диска<br />В чём сложность?<br /><ul><li>Работа на низком уровне с жёстким диском и оперативной памятью
  5. 5. Перехват и обработка прерываний
  6. 6. Внедрение в стартовый код операционной системы</li></li></ul><li>Буткиты. Что это и зачем?<br />Что это даёт?<br />Возможность использовать неразмеченное пространство жёсткого диска<br />Возможность получить управление достарта кода операционной системы<br />Возможность изменять ход загрузки ОС<br />PAGE 5<br />| Yet Another Conference 2011 | September 19, 2011<br />
  7. 7. Структура жёсткого диска и назначение MBR<br />PAGE 6<br />| Yet Another Conference 2011 | September 19, 2011<br />Действия, выполняемые MBR:<br />Поиск загрузочного раздела<br />Проверка сигнатуры AA55h<br />Передача управление в найденный раздел<br />Структуражёсткого диска в общем случае<br />MBR<br />1 - ый сектор<br />Таблица разделов<br />2 - 63 сектора<br />Reserved<br />Раздел 1<br />64 - … сектора<br />Раздел 2<br />Раздел n<br />
  8. 8. Начальная загрузка компьютера<br />PAGE 7<br />| Yet Another Conference 2011 | September 19, 2011<br />В случае успеха<br />Поиск «активного» раздела<br />Загрузочный раздел<br />MBR<br />
  9. 9. БуткитSinowal, модификация жёсткого диска<br />PAGE 8<br />| Yet Another Conference 2011 | September 19, 2011<br />Структуражёсткого диска после заражения<br />Структуражёсткого диска до заражения<br />MBR<br />MBR<br />1 - ый сектор<br />1 - ый сектор<br />Таблица разделов<br />Таблица разделов<br />2 - 63 сектора<br />Reserved<br />2 - 63 сектора<br />Reserved<br />Раздел 1<br />64 - … сектора<br />Раздел 1<br />64 - … сектора<br />Раздел 2<br />Оригинальный MBR<br />Код буткита<br />Драйвер буткита<br />Раздел 2<br />Раздел n<br />Раздел n<br />Неразмеченное пространство<br />
  10. 10. Полный алгоритм работы буткит компоненты Sinowal<br />PAGE 9<br />| Yet Another Conference 2011 | September 19, 2011<br />Структура заражённого жёсткого диска<br />Структура физической памяти<br />Заражённый MBR<br />0x0000<br />IDT<br />Таблица разделов<br />0x0400<br />Reserved<br />BIOS Data<br />0x0600<br />Раздел 1<br />MBR<br />0x0800<br />0x7C00<br />Раздел 2<br />Считанный BIOS`омMBR<br />Раздел n<br />0x7E00<br />Оригинальный MBR<br />Неразмеченное пространство, занятое данными буткита<br />0x8000<br />Код буткита<br />0x9000<br />0x9F40<br />Код буткита<br />
  11. 11. Основные действия буткита<br />PAGE 10<br />| Yet Another Conference 2011 | September 19, 2011<br /> Дальнейшие действия, выполняемые буткитом:<br />Перехват Int 13h в IDT<br />Перехват управления в ntbootdd.sys после BlLoadBootDrivers<br />Поиск базы ntoskrnlи перехват в нём IoInitSystem<br />Зачитывание драйвера буткита из неразмеченной области в выделенную виртуальную память<br />Запуск драйвера с помощью ZwCreateSystemThread<br />
  12. 12. Что в итоге?<br />PAGE 11<br />| Yet Another Conference 2011 | September 19, 2011<br />Осуществлён запуск вредоносного кода в ring0<br />Запуск кода буткита осуществляется сразу же после инициализации системы<br />Вредоносный код исполняется вне какого-либо процесса<br />Код буткита располагается вне файловой системы<br />
  13. 13. Буткит, подключающий нулевые виртуальные адреса и повышающий уровень привилегий<br />
  14. 14. БуткитTrup - особенности<br />PAGE 13<br />| Yet Another Conference 2011 | September 19, 2011<br />В чём сложность?<br /><ul><li>Работа с низкоуровневыми структурами, отвечающими за организацию виртуальной памяти
  15. 15. Добавление элементов в глобальную таблицу дескрипторов</li></li></ul><li>БуткитTrup - особенности<br />PAGE 14<br />| Yet Another Conference 2011 | September 19, 2011<br />Что это даёт?<br />Возможность обращаться к физической памяти по искусственно заблокированным виртуальным адресам<br />Возможность повышать привилегии путём перехода из ring3 в ring0 с помощью шлюза вызова<br />
  16. 16. Виртуальная память в Windows <br />PAGE 15<br />| Yet Another Conference 2011 | September 19, 2011<br />Разбиение адресного пространства в системах Windows NT (32-бит)<br />Назначение раздела адресного пространства<br />0x00000000 – 0x0000FFFF<br />Для выявления нулевых указателей<br />0x00010000 – 0x7FFEFFFF<br />Для кода и данных ring 3<br />Для выявления некорректных указателей<br />0x7FFF0000 – 0x7FFFFFFF<br />0x80000000 – 0xFFFFFFFF<br />Для кода и данных ring 0<br />
  17. 17. Физическая память в Windows <br />PAGE 16<br />| Yet Another Conference 2011 | September 19, 2011<br />Распределения начальных адресов физической памяти при инициализацииWindows<br />0x0000<br />old IDT<br />0x0400<br />BIOS Data<br />0x0600<br />MBR<br />0x0800<br />0x7C00<br />MBR / Boot Sector<br />0x7E00<br />Код буткита<br />Код буткита недоступен из Windows, как из ring0, так и из ring3<br />
  18. 18. Виртуальный адрес -> логический адрес<br />PAGE 17<br />| Yet Another Conference 2011 | September 19, 2011<br />Смещение<br />Селектор (16 – бит)<br />Таблица дескрипторов<br />32 – битный логический адрес<br />+<br />Дескриптор<br />
  19. 19. Логический адрес -> физический адрес<br />PAGE 18<br />| Yet Another Conference 2011 | September 19, 2011<br />Логический адрес (32 – бит)<br />Смещение<br />Каталог<br />Таблица<br />Запись n<br />Запись 2<br />Запись 1<br />Запись n<br />Запись 2<br />Запись 1<br />+<br />32 – битный физический адрес<br />Модификация записи буткитом<br />CR3<br />
  20. 20. Ring 3 -> ring 0 из «пользовательского» режима<br />PAGE 19<br />| Yet Another Conference 2011 | September 19, 2011<br />Глобальная таблица дескрипторов<br />Ring 3<br />Дескриптор кода, DPL = 0<br />Шлюз вызова, DPL = 3<br />Дескриптор n<br />Ring 0<br />Дескриптор 1<br />Всегда нулевой<br />
  21. 21. Что же в итоге?<br />PAGE 20<br />| Yet Another Conference 2011 | September 19, 2011<br />Код буткита использовал неотображённую область физической памяти<br />Вредоносное приложение, запущенное под ring3 безболезненно переходит в ring0<br />
  22. 22. Полиморфный EPO-вирус с собственной виртуальной машиной<br />
  23. 23. PAGE 22<br />| Yet Another Conference 2011 | September 19, 2011<br />Особенности рассматриваемого файлового вируса<br />Файловый вирус – вредоносная программа, модифицирующаяисполняемый файл таким образом, что к его оригинальной функциональности добавляется вредоносная составляющая<br />В чём сложность рассматриваемого вируса?<br /><ul><li>Применяется техника EPO (entry point obscuring)
  24. 24. Отсутствие статичных сигнатур вируса
  25. 25. Не производится изменений характеристик секций
  26. 26. Часть кода вируса меняется от поколения к поколению
  27. 27. Присутствует виртуальная машина с собственным P-кодом</li></li></ul><li>PAGE 23<br />| Yet Another Conference 2011 | September 19, 2011<br />Особенности рассматриваемого файлового вируса<br />Что это даёт?<br />Возможность выполнять вредоносные действия в контексте доверенной программы<br />Применение собственной виртуальной машины и EPO-техники значительно затрудняет обнаружение заражённых файлов<br />
  28. 28. Типовой вариант файлового вируса<br />PAGE 24<br />| Yet Another Conference 2011 | September 19, 2011<br />Тот же самый файл после заражения<br />Типовой PE-файл до заражения<br />header<br />header<br />EP<br />.code<br />.code<br />.data<br />.data<br />.rsrc<br />.rsrc<br />EP<br />Тело вируса<br />Изменены PE-заголовок, последняя секция, характеристики последней секции<br />
  29. 29. Схема заражения исполняемого файла исследуемым вирусом<br />PAGE 25<br />| Yet Another Conference 2011 | September 19, 2011<br />Тот же самый файл после заражения<br />Типовой PE-файл до заражения<br />header<br />header<br />EP<br />.code<br />EP<br />.code<br />.data<br />.data<br />.data – данные вируса<br />.rsrc<br />Точка входа и характеристики секции не изменяется<br />.rsrc<br />
  30. 30. Модификация функций оригинального файла вирусом<br />PAGE 26<br />| Yet Another Conference 2011 | September 19, 2011<br />Модификация отдельных функций<br />
  31. 31. Модификация переходов в оригинальном файле вирусом<br />PAGE 27<br />| Yet Another Conference 2011 | September 19, 2011<br />Модификация отдельных переходов<br />
  32. 32. Полная схема работывируса <br />PAGE 28<br />| Yet Another Conference 2011 | September 19, 2011<br />Заражённый файл<br />header<br />EP<br />.code<br />Изменённая функция<br />Изменённая функция<br />данные вируса<br />Статичное тело вируса<br />.data<br />P-Code<br />.rsrc<br />
  33. 33. Виртуальная машина<br />PAGE 29<br />| Yet Another Conference 2011 | September 19, 2011<br />Формат инструкций виртуальной машины<br />Относительный адрес функции<br />Параметр 1<br />Параметр 2<br />4 байта<br />Действия, выполняемые с помощью виртуальной машины:<br />Поиск ntdll<br />Вызов ZwProtectVirtualMemory<br />Расшифровка основного статичного тела, содержащего «полезную нагрузку»<br />
  34. 34. Что же в итоге?<br />PAGE 30<br />| Yet Another Conference 2011 | September 19, 2011<br />Заражённый файл практически невозможно отличить от оригинального:<br />Отсутствие специфичных статичных фрагментов вредоносного кода<br />Основной код вируса зашифрован всегда по-разному<br />Расположение P-кода всегда разное и вычисляется динамически<br />Модифицированную вирусом секцию сложно отличить от секции обычного файла<br />
  35. 35. Vyacheslav Zakorzhevsky, Senior Malware Analyst, Kaspersky Labvyacheslav.zakorzhevsky@kaspersky.com<br />19 сентября 2011 / Yet Another Conference, Yandex<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×