Введение
Программное обеспечение источник всех проблем
Программное обеспечение и информационные войны
Ошибки в программах есть всегда
Три основные проблемы
Взаимодействие по сети
Что такое безопасность программного обеспечения?
Шаблоны атак
Оценка открытости системы
Риск
Ознакомление с технологией взлома
Схемы атак, или планы злоумышленника
Пример атаки: взломанный компилятор C++ от компании Microsoft
Применение шаблонов атак
Выбор шаблона атаки
Восстановление исходного кода и структуры программы
Восстановление исходного кода
Средства для восстановления исходного кода
Методы для восстановления исходного кода
Исследование по методу "серого ящика"
Методы исследования
Доступ к ядру
Создание дополнительных модулей для IDA
Декомпиляция и дизассемблирование программного обеспечения
Автоматизированный глобальный аудит для выявления уязвимых мест
Глобальный анализ с помощью IDA-Pro
Создание собственных средств взлома
Чтение и запись в память
Установка заплат
Создание базового средства для охвата кода
Взлом серверных приложений
Доверие к входным данным
Шаблон атаки: делаем клиента невидимым
Поиск точек входа
Подключение к запущенному процессу
Использование доверительных отношений, созданных при настройке среды исполнения
А как насчет неисполняемых файлов?
Конкретные методы атак на серверные приложения
Добавление данных в аргументы для команд командного интерпретатора
Ввод данных и протокол FTP
Использование хакером каналов, портов и прав доступа
Использование свойств файловой системы
Использование переменных среды
Использование недостатков при аутентификации сеанса
Взлом клиентских программ
Служебные сигналы
Основные способы использования служебных символов
Использование переносимых сценариев
Клиентские сценарии и вредоносный код
Внесение данных в сообщения электронной почты
Атаки с помощью вредоносного содержимого
Подготовка вредоносных данных
Дилемма защитника
Обнаружение вторжений
Эффект альтернативного кодирования для систем IDS
Вернемся к Windows-программе APISPY
Трассировка во время выполнения программы
Восстановление кода анализатора
Ошибки при классификации
Посторонние символы
Преобразование символов
Переполнение буфера
Вектор вторжения
Использование существующего кода или блоков данных в памяти
Переполнение буфера и Java
Переполнения буфера в результате обработки содержимого файлов
Атаки на переполнение буфера с помощью механизмов фильтрации и аудита транзакций
Переполнение буфера в стеке
Арифметические ошибки при управлении памятью
Уязвимые места, связанные со строкой форматирования
Переполнение буфера в куче
Переполнения буфера и программы на C++
Использование жестко закодированных вызовов функций
Полезная нагрузка для архитектуры RISC
Структура полезной нагрузки для платформы SPARC
Структура полезной нагрузки на платформе PA-RISC
Переполнение буфера на платформе HP/UX PA-RISC
Структура полезной нагрузки для платформы AlX/PowerPC
Полезная нагрузка для нескольких платформ
Успешная атака на неисполняемые стеки
Наборы средств для взлома
Простой набор средств для взлома на уровне ядра Windows XP
Когда программы используют драйвер
Перехват вызовов
Перенаправление данных с помощью "троянских" программ
Сокрытие файлов и каталогов
Установка заплат в ядро Windows NT для блокировки всей системы защиты
Аппаратный вирус
Вирус CIH
Обнаружение устройств с помощью спецификации CFI
Низкоуровневый доступ к диску
Обнаружение нужного сетевого адаптера
Прерывания
Регистрация нажатий клавиш
Усовершенствованные возможности наборов средств для взлома
|