SlideShare una empresa de Scribd logo
1 de 31
Сложнейшие техники, применяемые буткитами  и полиморфными вирусами Vyacheslav Zakorzhevsky, Senior Malware Analyst, Kaspersky Lab 19 сентября 2011 / Yet Another Conference, Yandex
Обзор выступления PAGE 2 |  Yet Another Conference 2011 |  September 19, 2011 Современное вредоносное ПО уже давно перешло из разряда «поделок» в категорию «сложных программ» В чём сложность? Зачем? Как?
Буткиты. Чем страшны, как работают и что делают?
Буткиты. Что это и зачем? PAGE 4 |  Yet Another Conference 2011 |  September 19, 2011 Буткит – вредоносная программа, модифицирующая MBR жёсткого диска В чём сложность? ,[object Object]
Перехват и обработка прерываний
Внедрение в стартовый код операционной системы,[object Object]
Структура жёсткого диска и назначение MBR PAGE 6 |  Yet Another Conference 2011 |  September 19, 2011 Действия, выполняемые MBR: Поиск загрузочного раздела Проверка сигнатуры AA55h Передача управление в найденный раздел Структуражёсткого диска в общем случае MBR 1 - ый сектор Таблица разделов 2 - 63 сектора Reserved Раздел 1 64 - … сектора Раздел 2 Раздел n
Начальная загрузка компьютера PAGE 7 |  Yet Another Conference 2011 |  September 19, 2011 В случае успеха Поиск «активного» раздела Загрузочный раздел MBR
БуткитSinowal, модификация жёсткого диска PAGE 8 |  Yet Another Conference 2011 |  September 19, 2011 Структуражёсткого диска после заражения Структуражёсткого диска до заражения MBR MBR 1 - ый сектор 1 - ый сектор Таблица разделов Таблица разделов 2 - 63 сектора Reserved 2 - 63 сектора Reserved Раздел 1 64 - … сектора Раздел 1 64 - … сектора Раздел 2 Оригинальный MBR Код буткита Драйвер буткита Раздел 2 Раздел n Раздел n Неразмеченное пространство
Полный алгоритм работы буткит компоненты Sinowal PAGE 9 |  Yet Another Conference 2011 |  September 19, 2011 Структура заражённого жёсткого диска Структура физической памяти Заражённый MBR 0x0000 IDT Таблица разделов 0x0400 Reserved BIOS Data 0x0600 Раздел 1 MBR 0x0800 0x7C00 Раздел 2 Считанный BIOS`омMBR Раздел n 0x7E00 Оригинальный MBR Неразмеченное пространство, занятое данными буткита 0x8000 Код буткита 0x9000 0x9F40 Код буткита
Основные действия буткита PAGE 10 |  Yet Another Conference 2011 |  September 19, 2011 	Дальнейшие действия, выполняемые буткитом: Перехват Int 13h в IDT Перехват управления в ntbootdd.sys после BlLoadBootDrivers Поиск базы ntoskrnlи перехват в нём IoInitSystem Зачитывание драйвера буткита из неразмеченной области в выделенную виртуальную память Запуск драйвера с помощью ZwCreateSystemThread
Что в итоге? PAGE 11 |  Yet Another Conference 2011 |  September 19, 2011 Осуществлён запуск вредоносного кода в ring0 Запуск кода буткита осуществляется сразу же после инициализации системы Вредоносный код исполняется вне какого-либо процесса Код буткита располагается вне файловой системы
Буткит, подключающий нулевые виртуальные адреса и повышающий уровень привилегий
БуткитTrup - особенности PAGE 13 |  Yet Another Conference 2011 |  September 19, 2011 В чём сложность? ,[object Object]
Добавление элементов в глобальную таблицу дескрипторов,[object Object]
Виртуальная память в Windows  PAGE 15 |  Yet Another Conference 2011 |  September 19, 2011 Разбиение адресного пространства в системах Windows NT (32-бит) Назначение раздела адресного пространства 0x00000000 – 0x0000FFFF Для выявления нулевых указателей 0x00010000 – 0x7FFEFFFF Для кода и данных ring 3 Для выявления некорректных указателей 0x7FFF0000 – 0x7FFFFFFF 0x80000000 – 0xFFFFFFFF Для кода и данных ring 0
Физическая память в Windows  PAGE 16 |  Yet Another Conference 2011 |  September 19, 2011 Распределения начальных адресов физической памяти при инициализацииWindows 0x0000 old IDT 0x0400 BIOS Data 0x0600 MBR 0x0800 0x7C00 MBR / Boot Sector 0x7E00 Код буткита Код буткита недоступен из Windows, как из ring0, так и из ring3
Виртуальный адрес -> логический адрес PAGE 17 |  Yet Another Conference 2011 |  September 19, 2011 Смещение Селектор (16 – бит) Таблица дескрипторов 32 – битный логический адрес + Дескриптор
Логический адрес -> физический адрес PAGE 18 |  Yet Another Conference 2011 |  September 19, 2011 Логический адрес (32 – бит) Смещение Каталог Таблица Запись n Запись 2 Запись 1 Запись n Запись 2 Запись 1 + 32 – битный физический адрес Модификация записи буткитом CR3
Ring 3 -> ring 0 из «пользовательского» режима PAGE 19 |  Yet Another Conference 2011 |  September 19, 2011 Глобальная таблица дескрипторов Ring 3 Дескриптор кода, DPL = 0 Шлюз вызова,   DPL = 3 Дескриптор n Ring 0 Дескриптор 1 Всегда нулевой
Что же в итоге? PAGE 20 |  Yet Another Conference 2011 |  September 19, 2011 Код буткита использовал неотображённую область физической памяти Вредоносное приложение, запущенное под ring3 безболезненно переходит в ring0
Полиморфный EPO-вирус с собственной виртуальной машиной
PAGE 22 |  Yet Another Conference 2011 |  September 19, 2011 Особенности рассматриваемого файлового вируса Файловый вирус – вредоносная программа, модифицирующаяисполняемый файл таким образом, что к его оригинальной функциональности добавляется вредоносная составляющая В чём сложность рассматриваемого вируса? ,[object Object]
Отсутствие статичных сигнатур вируса
Не производится изменений характеристик секций
Часть кода вируса меняется от поколения к поколению
Присутствует виртуальная машина с собственным P-кодом,[object Object]
Типовой вариант файлового вируса PAGE 24 |  Yet Another Conference 2011 |  September 19, 2011 Тот же самый файл после заражения Типовой PE-файл до заражения header header EP .code .code .data .data .rsrc .rsrc EP Тело вируса Изменены PE-заголовок, последняя секция, характеристики последней секции
Схема заражения исполняемого файла исследуемым вирусом PAGE 25 |  Yet Another Conference 2011 |  September 19, 2011 Тот же самый файл после заражения Типовой PE-файл до заражения header header EP .code EP .code .data .data .data – данные вируса .rsrc Точка входа и характеристики секции не изменяется .rsrc
Модификация функций оригинального файла вирусом PAGE 26 |  Yet Another Conference 2011 |  September 19, 2011 Модификация отдельных функций
Модификация переходов в оригинальном файле вирусом PAGE 27 |  Yet Another Conference 2011 |  September 19, 2011 Модификация отдельных переходов

Más contenido relacionado

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

Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityDefconRussia
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииVoximplant
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Ontico
 
Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...
Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...
Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...DEPO Computers
 
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...Alexey Kovyazin
 
Документирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, ЯндексДокументирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, ЯндексYandex
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Поговорим о различных версиях .NET
Поговорим о различных версиях .NETПоговорим о различных версиях .NET
Поговорим о различных версиях .NETAndrey Akinshin
 
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Cisco Russia
 
Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)Ontico
 
Документирование блоков. Раскрываем все плюсы
Документирование блоков. Раскрываем все плюсыДокументирование блоков. Раскрываем все плюсы
Документирование блоков. Раскрываем все плюсыYandex
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийSergii Shmarkatiuk
 
Cyber Bionics #iotconfua
Cyber Bionics #iotconfuaCyber Bionics #iotconfua
Cyber Bionics #iotconfuaAndy Shutka
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщикаOdessaFrontend
 
Введение в профессию исследователя приложений без исходных кодов
Введение в профессию исследователя приложений без исходных кодовВведение в профессию исследователя приложений без исходных кодов
Введение в профессию исследователя приложений без исходных кодовDI GR
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
User (1)
User (1)User (1)
User (1)nsovet
 
User (1)
User (1)User (1)
User (1)nsovet
 
Рабочее место электронного документооборота, как сделать клиента счастливее
Рабочее место электронного документооборота, как сделать клиента счастливее Рабочее место электронного документооборота, как сделать клиента счастливее
Рабочее место электронного документооборота, как сделать клиента счастливее Цифровые технологии
 
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”HYS Enterprise
 

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

Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
 
Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...
Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...
Преимущества облачных сервисов DEPO Cloud на базе новой 22-нанометровой микро...
 
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
Решения на базе СУБД Firebird в крупных компаниях и государственных учреждени...
 
Документирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, ЯндексДокументирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
Документирование блоков. Раскрываем все плюсы — Инна Белая, Яндекс
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Поговорим о различных версиях .NET
Поговорим о различных версиях .NETПоговорим о различных версиях .NET
Поговорим о различных версиях .NET
 
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
 
Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)
 
Документирование блоков. Раскрываем все плюсы
Документирование блоков. Раскрываем все плюсыДокументирование блоков. Раскрываем все плюсы
Документирование блоков. Раскрываем все плюсы
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
 
Cyber Bionics #iotconfua
Cyber Bionics #iotconfuaCyber Bionics #iotconfua
Cyber Bionics #iotconfua
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщика
 
Введение в профессию исследователя приложений без исходных кодов
Введение в профессию исследователя приложений без исходных кодовВведение в профессию исследователя приложений без исходных кодов
Введение в профессию исследователя приложений без исходных кодов
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
User (1)
User (1)User (1)
User (1)
 
User (1)
User (1)User (1)
User (1)
 
Рабочее место электронного документооборота, как сделать клиента счастливее
Рабочее место электронного документооборота, как сделать клиента счастливее Рабочее место электронного документооборота, как сделать клиента счастливее
Рабочее место электронного документооборота, как сделать клиента счастливее
 
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
“Tips&Tricks&Antitricks with .Net Core backend in GameDev”
 

Más de yaevents

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...yaevents
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндексyaevents
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...yaevents
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексyaevents
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...yaevents
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...yaevents
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндексyaevents
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндексyaevents
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmannyaevents
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...yaevents
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндексyaevents
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Googleyaevents
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...yaevents
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...yaevents
 
Julia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareJulia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareyaevents
 
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...yaevents
 
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval EvaluationEvangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval Evaluationyaevents
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluationyaevents
 
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"yaevents
 

Más de yaevents (20)

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндекс
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
 
Julia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareJulia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-aware
 
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
 
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval EvaluationEvangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluation
 
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
 

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

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