Your SlideShare is downloading. ×
[JAM 2.1] RootKIT (Dmitry Kostenich)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

[JAM 2.1] RootKIT (Dmitry Kostenich)

449
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
449
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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)).«Чистый» вариант:
  • 11. USER SPACE ROOTKITSЗараженный вариант:
  • 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 FlinkBlink 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. ОБСУЖДЕНИЕ И ВОПРОСЫ СПАСИБО ЗА ВНИМАНИЕ!

×