Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибки реализации Степень риска Запуск кода на атакуемом узле Механизм реализации Переполнение буфера Высока я
Переполнение стека адрес возврата local[2] local[1] local[0] Стек Буфер f_vulner() { char local[3] ……}
int f_vulner (char arg) { char local[100] char local[100] //обработка //обработка return 0 return 0} void main() { char arg[200] char arg[200] gets (arg) gets (arg).. f_vulner (arg) f_vulner (arg) printf(arg) printf(arg) return 0 return 0} адрес возврата [100] local Стек Обычный ход выполнения программы «Переполнение стека» Переменная arg [100] strcpy(local, arg)
int f_vulner (char arg) { char local[100] char local[100] //обработка //обработка return 0 return 0} void main() { char arg[200] char arg[200] gets (arg) gets (arg).. f_vulner (arg) f_vulner (arg) printf(arg) printf(arg) return 0 return 0} адрес возврата [100] local Данные [200] Переполнение стека «Переполнение стека» Стек strcpy(local, arg) Ошибка ! Вместо возврата запуск кода
Данные [200] «Переполнение стека» Вызов функций ядра (программное прерывание INT 0x80) Вызов функций из модулей DLL Использование функции «WinExec» Использование переполнения стека
Причины переполнения буфера Отсутствие необходимых проверок на корректность аргументов Отсутствие средств вычисления длины буфера при работе с указателями strcpy(local, arg) Abcd……….?
Последствия переполнения буфера Чтение ячеек памяти, не принадлежащих массиву Модификация ячеек памяти Системные данные (адрес возврата и т. д.) Системные данные (адрес возврата и т. д.) Другие переменные Другие переменные Исполняемый код Исполняемый код Несуществующая (свободная область) Несуществующая (свободная область)
Этапы проведения атаки «Переполнение буфера» Подготовка враждебного кода Передача управления враждебному коду Под видом команд или параметров уязвимого приложения В адресном пространстве уязвимого приложения (без параметров) В адресном пространстве уязвимого приложения (с параметрами)
Предотвращение ошибок переполнения Использование механизма структурных исключений Использование «Heap» для указателей Использование языков программирования, делающих невозможным переполнение буфера Несуществующая область Буфер Отказ от индикатора завершения
Методы защиты Установка пакетов исправления Исправление исходного кода с перекомпиляцией Тестирование программ специальными утилитами
Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибки эксплуатации (особенности психологии) Степень риска Запуск кода (приложения) на объекте атаки Механизм реализации Пример атаки на IP - сеть: «Троянский конь» Высока я
C:\windows> from: NetBus сервер Patch.exe C:\windows> Выполнение команд NetBus клиент Patch.exe Пример атаки на IP - сеть: «Троянский конь» 1) 2) 3)
Реализация WWW-службы Клиент (WEB-броузер) HTTP-cервер Протокол обмена HTTP/1.0 HTTP/1.1
Пример уязвимости WWW-клиента Клиент (WEB-броузер) Hacker s Web site C:\…\StartUp\ RunMe.hta
Уязвимости WWW-серверов Уязвимости программной реализации (ошибки кода) Уязвимости программной реализации (ошибки кода) Уязвимости информационного наполнения Уязвимости информационного наполнения Ошибки обслуживания (настройки) Ошибки обслуживания (настройки)
Нарушение нормального функционирования объекта атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибка в реализации MS Internet Information Server Степень риска Бесполезное расходование вычислительного ресурса (посылка некорректных HTTP-запросов) Механизм реализации Средняя Отказ в обслуживании «IIS_DoS»
HACKER IIS Windows NT Server Внутренняя сеть HTTP - запросы Отказ в обслуживании «IIS_DoS» C:\ HackTools \ iisdos.exe
Ошибка обработки имён CGI - скриптов Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибка в реализации MS Internet Information Server Степень риска Запуск кода на объекте атаки Механизм реализации Средняя
Ошибка обработки имён CGI - скриптов Описание уязвимости Опубликовано на сайте: NSFOCUS INFORMATION TECHNOLOGY CO.,LTD ( CVE: CAN HTTP C:\dir
Ошибка обработки имён HTR - файлов Описание уязвимости HTTP Содержимое файла test.bat
Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибка реализации Internet Explorer Степень риска Запуск кода на объекте атаки (во время посещения Web-сайтов злоумышленников) Механизм реализации Высокая Использование уязвимости обработки MIME-сообщения
HACKER Внутренняя сеть HTTP Использование уязвимости обработки MIME-сообщения … MIME-сообщение Команды ОС …