Содержание
- 2. Драйверы часто встречаются в Антивирусах – доступ к файловой системе, перехват системных функций Межсетевых экранах –
- 3. Взаимодействие GUI NTDLL.DLL I/O manager Driver Kernel space User space Режим ядра Пользовательский режим NtDeviceIoControlFile Kernel32.dll
- 4. Функция DeviceIoControl Параметры hDevice – описатель устройства dwIoControlCode - управляющий код ввода-вывода lpInBuffer – указатель на
- 5. Информация закодированная в dwIoControlCode Метод передачи данных – способ передачи входных данных Идентификатор функции – идентификатор
- 6. Методы передачи входных данных METHOD_BUFFERED METHOD_IN_DIRECT METHOD_OUT_DIRECT METHOD_NEITHER
- 7. Метод: METHOD_BUFFERED Проверка входных параметров функциями ProbeForRead, ProbeForWrite I/O manager выделяет память в пространстве ядра Объём
- 8. Метод: METHOD_IN_DIRECT, METHOD_OUT_DIRECT Проверка входных параметров функциями ProbeForWrite, ProbeForRead I/O manager выделяет память в пространстве ядра
- 9. Метод: METHOD_NEITHER I/O manager передаёт указатели на данные без какой-либо проверки Отсутствуют проверки ProbeForRead, ProbeForWrite Все
- 10. Функции ProbeForRead, ProbeForWrite Параметры: Address –указатель на буфер памяти пользовательского режима Length – длина в байтах
- 11. Обход функций ProbeForRead, ProbeForWrite При длине равной нулю, не вызывает исключения, и не выполняет никаких проверок
- 12. Типичные уязвимости METHOD_NEITHER Arbitrary kernel memory write NULL pointer dereference METHOD_BUFFERED Buffer overflows NULL pointer dereference
- 13. Методология поиска уязвимостей Fuzzing тестирование без предварительной информации о коде драйвера Fuzzing+мониторинг информация о коде драйвера
- 14. Fuzzing Перебор входных параметров DeviceIoControl: dwIoControlCode - DWORD lpInBuffer – PVOID nInBufferSize - DWORD lpOutBuffer –
- 15. Fuzzing ioctl fuzzer NTDLL.DLL I/O manager Driver Kernel space User space Режим ядра Пользовательский режим #1
- 16. 5 минут работы ioctl fuzzer’a
- 17. Fuzzing: Тестовые наборы dwIoControlCode - полный перебор lpInBuffer – NULL, invalid kernel space address nInBufferSize –
- 18. Fuzzing: Плюсы и минусы Плюсы Лёгкий в реализации(40 строк C кода) Неплохие результаты Минусы Пропуск уязвимостей,
- 19. Fuzzing+мониторинг Отслеживание прохода для определённого тестового набора данных(Code coverage) Протоколирование состояний контекста(Data flow) Протоколирование “падений” Генерация
- 20. Windows Kernel Fuzzing+мониторинг ioctl fuzzer Driver #1 DeviceIoControl Kernel Debugger Plugin 1.Log 2.Log N.log Code coverage
- 21. Fuzzing+мониторинг: Плюсы и минусы Плюсы Покрытие кода для конкретного тестового набора Протоколирование найденной уязвимости Минусы Сложность
- 22. Ручной анализ Локализация IOCTL обработчика Анализ обрабатываемых IOCTL значений Формирование тестовых наборов Анализ обработки входных значений
- 23. Ручной анализ: Плюсы и минусы Плюсы Нахождение наибольшего количества уязвимостей Лучший в комбинации с fuzzing подходом
- 24. Статистика протестированных продуктов Всего в исследовании участвовали 40 продуктов: антивирусы, межсетевые экраны, виртуальные машины, эмуляторы, криптосистемы.
- 25. Количество обнаруженных уязвимостей Полная компрометация системы Отказ в обслуживании
- 26. Сравнение методов поиска уязвимостей
- 27. Пути решения IoCreateDeviceSecure – безопасное создание устройства(Microsoft, Dr. Web) PsGetCurrentProcessId – проверка идентификатора процесса(Eset) KeGetPreviousMode –
- 28. Выводы Тестирование драйверов в большинстве компаний не проводится Большое количество уязвимостей, которые можно быстро обнаружить и
- 29. Welcome! http://www.securitylab.ru/lab/
- 30. Будущие исследования Полные результаты исследования и детальная информация по методам поиска уязвимостей будут опубликованы на сайте
- 31. Никита Тараканов [email protected] Вопросы?
- 32. PT Research Team Раздел "Лаборатория" www.securitylab.ru/lab на портале SecurityLab публикует уязвимости, обнаруженные в программном и аппаратном
- 34. Скачать презентацию































Заместитель (Proxy) или Сурогат (Surrogate)
Процессы и модели жизненного цикла ИС. Лекция 3
Построение комплексной защиты автоматизированных систем
Электронные (динамические) таблицы
Резервное копирование
Настройка телекоммуникационного оборудования локальной сети Межпоселенческой библиотеки Советского района
Секрет 3D-рисунка
Презентация на тему Техника безопасности в кабинете информатики
Информационная безопасность
Расчет контрольного числа кода
Презентация на тему Сложные таблицы (7 класс)
Создание, редактирование, форматирование текстовых документов в среде MS WORD
Сжатие данных при оперативной обработке электрокардиограмм
Исправление ошибок в простой программе с условными операторами. ЕГЭ 24
Функции в С++
Структура базы данных
Персональный компьютер (часть 2)
Сайт библиотеки, как инструмент в деятельности ШИБЦ для продвижения книги и чтения
Организация вычислений в электронных таблицах. Обработка числовой информации в электронных таблицах
Одномерные массивы
Решение задач с одномерным массивом
Alwar. Анотація аудіо
Программное обеспечение и операционные системы компьютерной техники Тема 1
Компьютерные вирусы и их классификация
Заполнение контента на pharmacosmetica
Система управления службой каталогов с поддержкой групповых политик. Dynamic Directory
Рассылки
Глобальная компьютерная сеть Интернет