SlideShare une entreprise Scribd logo
1  sur  26
СОВРЕМЕННЫЕ РУТКИТ/АНТИРУТКИТ
         ТЕХНОЛОГИИ



                       Дмитрий Костенич
РУТКИТЫ: ОБЩИЕ СВЕДЕНИЯ
•   Этимология термина rootkit: ―root‖ – привилегированный администратор UNIX-
    системы, ―kit‖ – набор инструментов, rootkit – набор утилит для обеспечения
    «привилегированного» доступа злоумышленника к системе незаметно для
    настоящего администратора.
•   Руткит — программа или набор программ для скрытия следов присутствия
    злоумышленника или вредоносной программы в системе.
РУТКИТЫ: ОБЩИЕ СВЕДЕНИЯ
•   Руткит – это не компьютерный вирус (хотя вирус и может использовать его в
    качестве «помощника»).
•   Задачи компьютерного вируса: «рассадить» себя и нанести вред операционной
    системе.
•   Задачи руткита:
     • скрытие своего присутствия и активности «полезной» нагрузки;
     • удалѐнное управление компьютером;
     • сбор информации;
     • кража информации;
     • подмен поисковых запросов и т.п.
КАК РАБОТАЮТ РУТКИТЫ?
•   Руткит не является типичным исполняемым файлом (.exe или .com).
•   Основная логика работы реализована в драйвере либо в DLL.
•   Наличие загрузчика («дроппера»), устанавливающего основной модуль руткита в
    систему через API.
•   Однажды прописавшись в системе, руткит будет загружаться с ней постоянно.
КЛАССИФИКАЦИЯ РУТКИТОВ
Современные операционные системы многоуровневые
•   Пространство пользователя:
     • Все пользовательские приложения и сервисы;
     • Различные системные приложения и сервисы;
     • Ошибка в одном из приложений не ведет за собой крах всей системы.
•   Пространство ядра:
     • «Сердце» операционной системы;
     • Драйвера устройств;
     • Менеджер виртуальной памяти;
     • HAL и т.д.
КЛАССИФИКАЦИЯ РУТКИТОВ
Структура операционной системы Windows семейства NT.

                                                     Environment Subsystems
           System & Service
              Processes              User Apps
                                                     OS/2               POSIX
                                     Subsystem DLL
                                                                Win32


    User
    Kernel

                                   Executive
                                                                         Win32
                   Device
                                                       Kernel           User/GDI
                   Drivers
                        Hardware Abstraction Layer (HAL)
КЛАССИФИКАЦИЯ РУТКИТОВ
    Два типа:
•     User Space Rootkits (User Application)
•     Kernel Space Rootkits (Device Driver)
USER SPACE ROOTKITS
Принципы работы:
•   Патчинг различных бинарников с целью подмены результатов работы:
     • Task Manager / Process Explorer;
     • Netstat / ipconfig и т.д.
•   Удаленное внедрение кода:
     • Thread Injection / DLL Injection
USER SPACE ROOTKITS
Патчинг бинарников:
•      Самый старый и известный подход к скрытию вредоносного ПО;
•      Модифицируются различные системные утилиты, которые обладают возможностью
       отследить вредоносную активность (Task Manager, Netstat, ipconfig и т.д.).
«+»:
•      Просты в написании.
«-»:
•      Не универсальны;
•      Значительно увеличивают размер руткита;
•      Легко обходятся антивирусным ПО.
USER SPACE ROOTKITS
Удаленное внедрение кода:
•   Основан на модификации основных структур PE-файла (в частности, IAT (Import
    Address Table)).
«Чистый» вариант:
USER SPACE ROOTKITS
Зараженный вариант:
USER SPACE ROOTKITS
•   Удаленное внедрение кода – «хукинг»
•   2 вида:
     • Подмена адреса;
     • Модификация кода функции.




     Классические руткиты, которые легко обнаруживаются. Иначе – 0-day.
USER SPACE ROOTKITS
    «+»:
•     Легко создавать.
•     Не требуют kernel модуля (драйвера).
•     Относительно просто внедрить в процесс.
    «-»:
•     Нет root привилегий и доступа к объектам ядра.
•     Легко обнаружить.
•     Влияют на поведение только одного процесса.
KERNEL SPACE ROOTKITS
Уровень ядра дает неограниченный доступ к системным ресурсам. Доступны:
•   Глобальная таблица адресов (GDT);
•   Локальная таблица адресов (LDT);
•   Каталог страниц;
•   Таблица дескрипторов прерываний (IDT);
•   Таблица диспетчеризации системных служб (SSDT);
•   Многоуровневая система драйверов;
•   Непосредственное манипулирование объектами ядра (DKOM);
•   Манипулирование аппаратурой и т.д.
KERNEL SPACE ROOTKITS
Классические варианты работы:
•   Перехват функций в режиме ядра
      Сплайсинг NtQuerySystemInformation в ntdll.dll
      Перехват int 2E / SysEnter
      Подмена сервиса в таблице SSDT, сплайсинг в ядре
KERNEL SPACE ROOTKITS
•   Непосредственное манипулирование объектами ядра (DKOM)




                                PsActiveProcessHead
   ListEntry                                                         ListEntry
                              Blink             Flink
Blink Flink                                                       Blink Flink
                                       ListEntry
                                    Blink Flink


                  ListEntry                                ListEntry
               Blink Flink                              Blink Flink
KERNEL SPACE ROOTKITS
•     Файловая система
    CreateFile ( Kernel32.dll )                     User App        Ring 3

    NtCreateFile ( ntdll.dll )
                  SysEnter/SysCall
                  Int 0x2e

                                                                    Ring 0
      nt!KiFastCallEntry
                                     NtCreateFile
     nt!KiSystemService

         ZwCreateFile                          IoCreateFile

             Driver
                                                IopCreateFile   IopParseDevice
                                                       IRP
KERNEL SPACE ROOTKITS
•   Файловая система
                       IoCallDriver                       IoCallDriver

«Верхний» драйвер                     «Средний» драйвер                  «Нижний» драйвер



IRP                                   IRP                                IRP
…                                     …                                  …
IO_STACK_LOCATION                     IO_STACK_LOCATION                  IO_STACK_LOCATION
KERNEL SPACE ROOTKITS
•   Файловая система:
 Модификация функций на различных уровнях;
 Драйвера-фильтры;
 Модификация адресов IRP и FastIO обработчиков;
 Собственная виртуальная файловая система.
KERNEL SPACE ROOTKITS
•   Файловая система

      IRP
                       Ntfs.sys
                                   Rustock
                   Volmgr.sys

                   Partmgr.sys

                  ClassPnP.sys      MBR Rootkit
                       Disk.sys
                                   TDL v2
                       Atapi.sys   TDL v3
                   PciIde.sys
       I/O
KERNEL SPACE ROOTKITS
    «+»:
•     Влияют на все процессы в системе.
•     Есть root привилегии.
•     Тяжело обнаружить.
    «-»:
•     Достаточно сложны в реализации.
•     Пользователь должен обладать необходимыми правами, чтобы руткит смог
      «заразить» систему, т.е. чтобы отработал «дроппер».
РУТКИТЫ: ЭВОЛЮЦИЯ
•   Джефри Рихтер: методы внедрения dll, создание удалѐнных потоков, технологии
    перехвата системных вызовов в пространстве пользователя
•   Vanquish – первый зловред
•   NtRootKit, ресурс rootkit.com ( Грег Хогланд, Джеймс Батлер )
•   Nuclear Grabber
•   FU – первый DKOM руткит
•   ...
•   Rustock
•   …
•   TDL v3, MAX++, Duqu и т.п.
РУТКИТЫ: ЭВОЛЮЦИЯ
•   PoC
•   Заказное ПО
•   Коммерческий продукт
•   Государственные заказы
АНТИРУТКИТЫ
•   PoC
      Klister
      Process Hunter
•   Независимые разработчики
      GMER
      RkU
      XueTr
•   Вендоры
      Vba32 Arkit
      Kaspersky TDSS Killer
МЕТОДЫ ОБНАРУЖЕНИЯ
•   Сравнение двух «снимков» системы (например, списка файлов на диске). Первый
    снимок делается на проверяемой системе, второй – после загрузки с CD или
    подключения исследуемого HDD к заведомо чистому компьютеру. Подобная
    методика гарантированно позволит обнаружить любой RootKit, который маскирует
    на диске свои файлы.
•   Сравнение данных, возвращаемых API функциями разного уровня и (или)
    получаемых низкоуровневыми методами (например, прямым чтением диска и
    анализом файлов реестра).
•   Анализ в памяти функций основных библиотек на предмет наличия изменений их
    машинного кода.
•   Анализ и восстановление ServiceDescriptorTable.
ОБСУЖДЕНИЕ И ВОПРОСЫ




 СПАСИБО ЗА ВНИМАНИЕ!

Contenu connexe

En vedette

Trabajo presentación fersiarte
Trabajo presentación fersiarteTrabajo presentación fersiarte
Trabajo presentación fersiartefersiarte
 
[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)
[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)
[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)jam_team
 
[JAM 2.1] Intro (Alexei Yanochkin)
[JAM 2.1] Intro (Alexei Yanochkin)[JAM 2.1] Intro (Alexei Yanochkin)
[JAM 2.1] Intro (Alexei Yanochkin)jam_team
 
[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)jam_team
 
59013897 nota-taranum-8
59013897 nota-taranum-859013897 nota-taranum-8
59013897 nota-taranum-8Nor Aina Mahat
 
Kkbi perbezaan tarannum.sem 7
Kkbi perbezaan tarannum.sem 7Kkbi perbezaan tarannum.sem 7
Kkbi perbezaan tarannum.sem 7Nor Aina Mahat
 

En vedette (11)

Trabajo presentación fersiarte
Trabajo presentación fersiarteTrabajo presentación fersiarte
Trabajo presentación fersiarte
 
[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)
[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)
[JAM 2.0] CTIA 2011: Mobile Business (Evgeny Kaziak)
 
Sandubas
SandubasSandubas
Sandubas
 
[JAM 2.1] Intro (Alexei Yanochkin)
[JAM 2.1] Intro (Alexei Yanochkin)[JAM 2.1] Intro (Alexei Yanochkin)
[JAM 2.1] Intro (Alexei Yanochkin)
 
Albaqarah 261
Albaqarah 261Albaqarah 261
Albaqarah 261
 
Pafa (2010)
Pafa (2010)Pafa (2010)
Pafa (2010)
 
Internet Культура
Internet КультураInternet Культура
Internet Культура
 
[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)
 
59013897 nota-taranum-8
59013897 nota-taranum-859013897 nota-taranum-8
59013897 nota-taranum-8
 
Haiwan ansar
Haiwan ansarHaiwan ansar
Haiwan ansar
 
Kkbi perbezaan tarannum.sem 7
Kkbi perbezaan tarannum.sem 7Kkbi perbezaan tarannum.sem 7
Kkbi perbezaan tarannum.sem 7
 

Similaire à [JAM 2.1] RootKIT (Dmitry Kostenich)

TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераudmlug
 
Os
OsOs
OsIKTO
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Ontico
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и средыAlexandr Konfidentsialno
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Бинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыБинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыd_olex
 
Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах solertia
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
 
[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivationbeched
 
Ievgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpackingIevgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpackingNoNameCon
 
Solaris OS
Solaris OSSolaris OS
Solaris OSSSA KPI
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон ТурецкийCodeFest
 
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомDocker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомAnton Turetsky
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsNikita Lipsky
 
Информационная безопасность в веб - основы
Информационная безопасность в веб - основыИнформационная безопасность в веб - основы
Информационная безопасность в веб - основыAlex Chistyakov
 
Approaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization SystemApproaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization SystemIosif Itkin
 
Анализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийАнализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийPositive Hack Days
 
Jouravski kickstart1
Jouravski kickstart1Jouravski kickstart1
Jouravski kickstart1kuchinskaya
 

Similaire à [JAM 2.1] RootKIT (Dmitry Kostenich) (20)

TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Работа высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервераРабота высоконагруженного DNS-сервера
Работа высоконагруженного DNS-сервера
 
Os
OsOs
Os
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и среды
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Бинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыБинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективы
 
Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation
 
Ievgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpackingIevgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpacking
 
PHP daemons into social games
PHP daemons into social gamesPHP daemons into social games
PHP daemons into social games
 
Solaris OS
Solaris OSSolaris OS
Solaris OS
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомDocker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутом
 
Delivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java ApplicationsDelivering Native User Experience In Client Side Java Applications
Delivering Native User Experience In Client Side Java Applications
 
Информационная безопасность в веб - основы
Информационная безопасность в веб - основыИнформационная безопасность в веб - основы
Информационная безопасность в веб - основы
 
Approaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization SystemApproaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization System
 
Анализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийАнализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторий
 
Jouravski kickstart1
Jouravski kickstart1Jouravski kickstart1
Jouravski kickstart1
 

[JAM 2.1] RootKIT (Dmitry Kostenich)

  • 1. СОВРЕМЕННЫЕ РУТКИТ/АНТИРУТКИТ ТЕХНОЛОГИИ Дмитрий Костенич
  • 2. РУТКИТЫ: ОБЩИЕ СВЕДЕНИЯ • Этимология термина rootkit: ―root‖ – привилегированный администратор UNIX- системы, ―kit‖ – набор инструментов, rootkit – набор утилит для обеспечения «привилегированного» доступа злоумышленника к системе незаметно для настоящего администратора. • Руткит — программа или набор программ для скрытия следов присутствия злоумышленника или вредоносной программы в системе.
  • 3. РУТКИТЫ: ОБЩИЕ СВЕДЕНИЯ • Руткит – это не компьютерный вирус (хотя вирус и может использовать его в качестве «помощника»). • Задачи компьютерного вируса: «рассадить» себя и нанести вред операционной системе. • Задачи руткита: • скрытие своего присутствия и активности «полезной» нагрузки; • удалѐнное управление компьютером; • сбор информации; • кража информации; • подмен поисковых запросов и т.п.
  • 4. КАК РАБОТАЮТ РУТКИТЫ? • Руткит не является типичным исполняемым файлом (.exe или .com). • Основная логика работы реализована в драйвере либо в DLL. • Наличие загрузчика («дроппера»), устанавливающего основной модуль руткита в систему через API. • Однажды прописавшись в системе, руткит будет загружаться с ней постоянно.
  • 5. КЛАССИФИКАЦИЯ РУТКИТОВ Современные операционные системы многоуровневые • Пространство пользователя: • Все пользовательские приложения и сервисы; • Различные системные приложения и сервисы; • Ошибка в одном из приложений не ведет за собой крах всей системы. • Пространство ядра: • «Сердце» операционной системы; • Драйвера устройств; • Менеджер виртуальной памяти; • HAL и т.д.
  • 6. КЛАССИФИКАЦИЯ РУТКИТОВ Структура операционной системы Windows семейства NT. Environment Subsystems System & Service Processes User Apps OS/2 POSIX Subsystem DLL Win32 User Kernel Executive Win32 Device Kernel User/GDI Drivers Hardware Abstraction Layer (HAL)
  • 7. КЛАССИФИКАЦИЯ РУТКИТОВ Два типа: • User Space Rootkits (User Application) • Kernel Space Rootkits (Device Driver)
  • 8. USER SPACE ROOTKITS Принципы работы: • Патчинг различных бинарников с целью подмены результатов работы: • Task Manager / Process Explorer; • Netstat / ipconfig и т.д. • Удаленное внедрение кода: • Thread Injection / DLL Injection
  • 9. USER SPACE ROOTKITS Патчинг бинарников: • Самый старый и известный подход к скрытию вредоносного ПО; • Модифицируются различные системные утилиты, которые обладают возможностью отследить вредоносную активность (Task Manager, Netstat, ipconfig и т.д.). «+»: • Просты в написании. «-»: • Не универсальны; • Значительно увеличивают размер руткита; • Легко обходятся антивирусным ПО.
  • 10. USER SPACE ROOTKITS Удаленное внедрение кода: • Основан на модификации основных структур PE-файла (в частности, IAT (Import Address Table)). «Чистый» вариант:
  • 12. USER SPACE ROOTKITS • Удаленное внедрение кода – «хукинг» • 2 вида: • Подмена адреса; • Модификация кода функции. Классические руткиты, которые легко обнаруживаются. Иначе – 0-day.
  • 13. USER SPACE ROOTKITS «+»: • Легко создавать. • Не требуют kernel модуля (драйвера). • Относительно просто внедрить в процесс. «-»: • Нет root привилегий и доступа к объектам ядра. • Легко обнаружить. • Влияют на поведение только одного процесса.
  • 14. KERNEL SPACE ROOTKITS Уровень ядра дает неограниченный доступ к системным ресурсам. Доступны: • Глобальная таблица адресов (GDT); • Локальная таблица адресов (LDT); • Каталог страниц; • Таблица дескрипторов прерываний (IDT); • Таблица диспетчеризации системных служб (SSDT); • Многоуровневая система драйверов; • Непосредственное манипулирование объектами ядра (DKOM); • Манипулирование аппаратурой и т.д.
  • 15. KERNEL SPACE ROOTKITS Классические варианты работы: • Перехват функций в режиме ядра  Сплайсинг NtQuerySystemInformation в ntdll.dll  Перехват int 2E / SysEnter  Подмена сервиса в таблице SSDT, сплайсинг в ядре
  • 16. KERNEL SPACE ROOTKITS • Непосредственное манипулирование объектами ядра (DKOM) PsActiveProcessHead ListEntry ListEntry Blink Flink Blink Flink Blink Flink ListEntry Blink Flink ListEntry ListEntry Blink Flink Blink Flink
  • 17. KERNEL SPACE ROOTKITS • Файловая система CreateFile ( Kernel32.dll ) User App Ring 3 NtCreateFile ( ntdll.dll ) SysEnter/SysCall Int 0x2e Ring 0 nt!KiFastCallEntry NtCreateFile nt!KiSystemService ZwCreateFile IoCreateFile Driver IopCreateFile IopParseDevice IRP
  • 18. KERNEL SPACE ROOTKITS • Файловая система IoCallDriver IoCallDriver «Верхний» драйвер «Средний» драйвер «Нижний» драйвер IRP IRP IRP … … … IO_STACK_LOCATION IO_STACK_LOCATION IO_STACK_LOCATION
  • 19. KERNEL SPACE ROOTKITS • Файловая система:  Модификация функций на различных уровнях;  Драйвера-фильтры;  Модификация адресов IRP и FastIO обработчиков;  Собственная виртуальная файловая система.
  • 20. KERNEL SPACE ROOTKITS • Файловая система IRP Ntfs.sys Rustock Volmgr.sys Partmgr.sys ClassPnP.sys MBR Rootkit Disk.sys TDL v2 Atapi.sys TDL v3 PciIde.sys I/O
  • 21. KERNEL SPACE ROOTKITS «+»: • Влияют на все процессы в системе. • Есть root привилегии. • Тяжело обнаружить. «-»: • Достаточно сложны в реализации. • Пользователь должен обладать необходимыми правами, чтобы руткит смог «заразить» систему, т.е. чтобы отработал «дроппер».
  • 22. РУТКИТЫ: ЭВОЛЮЦИЯ • Джефри Рихтер: методы внедрения dll, создание удалѐнных потоков, технологии перехвата системных вызовов в пространстве пользователя • Vanquish – первый зловред • NtRootKit, ресурс rootkit.com ( Грег Хогланд, Джеймс Батлер ) • Nuclear Grabber • FU – первый DKOM руткит • ... • Rustock • … • TDL v3, MAX++, Duqu и т.п.
  • 23. РУТКИТЫ: ЭВОЛЮЦИЯ • PoC • Заказное ПО • Коммерческий продукт • Государственные заказы
  • 24. АНТИРУТКИТЫ • PoC  Klister  Process Hunter • Независимые разработчики  GMER  RkU  XueTr • Вендоры  Vba32 Arkit  Kaspersky TDSS Killer
  • 25. МЕТОДЫ ОБНАРУЖЕНИЯ • Сравнение двух «снимков» системы (например, списка файлов на диске). Первый снимок делается на проверяемой системе, второй – после загрузки с CD или подключения исследуемого HDD к заведомо чистому компьютеру. Подобная методика гарантированно позволит обнаружить любой RootKit, который маскирует на диске свои файлы. • Сравнение данных, возвращаемых API функциями разного уровня и (или) получаемых низкоуровневыми методами (например, прямым чтением диска и анализом файлов реестра). • Анализ в памяти функций основных библиотек на предмет наличия изменений их машинного кода. • Анализ и восстановление ServiceDescriptorTable.
  • 26. ОБСУЖДЕНИЕ И ВОПРОСЫ СПАСИБО ЗА ВНИМАНИЕ!