Часть I. Анализ защищенности СУБД Oracle снаружи
Глава 1. Архитектура СУБД
1.1. База данных 1.1.1. Физический уровень 1.1.2. Логический уровень 1.2. Структуры памяти
1.3. Процессы 1.4. Прочие компоненты СУБД 1.5. Заключение 1.6. Полезные ссылки
Глава 2. Анализ защищенности службы TNS Listener
2.1. Описание службы Листенера 2.1.1. Режимы работы Листенера 2.2. Атаки на незащищенную службу Листенера 2.2.1. Получение детальной информации о системе через службу Листенера 2.2.2. Атака на отказ в обслуживании через службу Листенера 2.2.3. Отказ в обслуживании через set trc_level 2.2.4. Отказ в обслуживании через set log_file 2.2.5. Добавление пользователя с правами DBA через set log_file 2.2.6. Получение административных прав на сервере через set log_file 2.2.7. Прочие атаки
2.3. Атаки на защищенную службу Листенера 2.3.1. Перехват пароля 2.3.2. Аутентификация при помощи хэша 2.3.3. Расшифровка пароля на доступ к службе Листенера 2.3.4. Удаленный перебор пароля на доступ к службе Листенера 2.4. Атаки на Листенер, защищенный дополнительными опциями
2.4.1. Опция безопасности ADMIN_RESTRICTIONS 2.4.2. Опция безопасности LOCAL_OS_AUTHENTICATION 2.5. Заключение Сводная таблица 2.6. Полезные ссылки
Глава 3. Подключение к СУБД. Получение SID базы данных
3.1. Подбор SID 3.1.1. Проверка на стандартные значения SID 3.1.2. Перебор SID по словарю
3.1.3. Подбор SID методом полного перебора (Brute force) 3.2. Поиск информации о SID и SERVICE_NAME в сторонних приложениях 3.2.1. Получение SERVICE_NAME через Enterprise Manager Control 3.2.2. Получение SERVICE_NAME через Oracle Application Server 3.2.3. Получение SID через систему SAP R/3 и SAP Web Application Server 3.2.4. Получение SERVICE_NAME через Oracle XDB
3.2.5. Получение SID через доступ к СУБД MsSQL 3.2.6. Получение SID или SERVICE_NAME через уязвимое веб>приложение 3.3. Получение SID с помощью дополнительных знаний или прав в сети
3.3.1. Получение SID с помощью общедоступных данных о корпоративной сети 3.3.2. Получение SID из соседних СУБД в корпоративной сети 3.3.3. Получение SID из соседних серверов корпоративной сети
3.3.4. Получение SID или SERVICE_NAME прослушиванием сетевого трафика 3.4. Заключение
3.5. Полезные ссылки
Глава 4. Преодоление парольной защиты
4.1. Настройка «по умолчанию 4.1.1. Установка СУБД 4.1.2. Стандартные учетные записи 4.1.3. Проверка на наличие стандартных паролей 4.2. Подбор аутентификационных данных 4.2.1. Подбор имен пользователей 4.2.2. Подбор паролей 4.2.3. Подбор паролей AS SYSDBA 4.3. Альтернативные способы получения паролей 4.3.1. Получение паролей с помощью общедоступных данных об ИС
4.3.2. Получение паролей из соседних СУБД 4.3.3. Подключение к СУБД с использованием локального доступа к серверу 4.3.4. Получение паролей через доступ к файловой системе сервера 4.4. Перехват аутентификационных данных 4.4.1. Процесс аутентификации пользователей 4.4.2. Перехват процесса аутентификации и расшифровка хэша 4.5. Заключение 4.6. Полезные ссылки
Глава 5. Безопасность сервера приложений и сторонних компонентов
5.1. Низко висящие фрукты (Oracle XDB) 5.2. Oracle Application Server 5.2.1. Архитектура Oracle Application Server 5.2.2. Обнаружение Oracle Application Server 5.2.3. Атаки на Oracle Application Server
5.2.4. Современные атаки на Oracle Application Server 5.3. Автоматическая проверка 5.4. Заключение
5.5. Полезные ссылки
Заключение к части I
Часть II. Анализ защищенности СУБД Oracle изнутри
Глава 6. Повышение привилегий. Локальные уязвимости СУБД
6.1. PL/SQL>инъекции 6.1.1. Введение в PL/SQL 6.1.2. PL/SQL>инъекции 6.1.3. Blind SQL Injection
6.1.4. Внедрение PL/SQL>процедур 6.1.5. Анонимный PL/SQL>блок 6.1.6. Выполнение PL/SQL>команд напрямую 6.1.7. Cursor Injection 6.1.8. Защита с помощью DBMS_ASSERT и ее обход 6.1.9. История продолжается. Lateral SQL Injection 6.1.10. Заключение 6.2. Атаки на переполнение буфера 6.2.1. Анализ одной уязвимости 6.2.2. Написание POC>эксплоита к новой уязвимости 6.2.3. Выполнение произвольного кода на сервере 6.3. Фокусы с представлениями 6.3.1. Представления 6.3.2. Объединения 6.3.3. Первая уязвимость, связанная с обработкой объединений 6.3.4. Объединения + представления 6.3.5. История продолжается 6.4. Cursor snarfing 6.4.1. Стандартная атака 6.4.2. Продвинутая атака 6.5. Dll Patching 6.5.1. Модификация библиотеки 6.5.2. Посылка команд по сети
6.6. Прочие уязвимости 6.6.1. Примеры нестандартных уязвимостей из CPU July 2008 6.6.2. Примеры нестандартных уязвимостей из CPU April 2008 6.6.3. Примеры нестандартных уязвимостей из более ранних CPU 6.7. Поиск и эксплуатация уязвимостей 6.7.1. Поиск уязвимостей 6.7.2. Написание эксплоита 6.7.3. Системы обнаружения вторжений и методы их обхода 6.8. Заключение 6.9. Полезные ссылки
Глава 7. Вскрытие паролей
7.1. Хранение паролей 7.2. Алгоритм шифрования паролей 7.3. Подбор паролей 7.3.1. Подбор паролей по словарю 7.3.2. Подбор пароля методом грубого перебора (bruteforce) 7.3.3. Перебор с использованием Rainbow Tables 7.4. Oracle 11g и нововведения 7.4.1. Хранение паролей 7.4.2. Алгоритм шифрования паролей 7.5. Заключение 7.6. Полезные ссылки
Глава 8. Получение доступа к операционной системе
8.1. Выполнение команд ОС через СУБД 8.1.1. Выполнение команд ОС, используя внешние библиотеки
8.1.2. Выполнение команд ОС, используя JAVA>процедуры 8.1.3. Выполнение команд ОС, используя пакет DBMS_SCHEDULER 8.1.4. Выполнение команд ОС с помощью пакета Job Scheduler 8.1.5. Выполнение команд ОС путем модификации системных переменных Oracle 8.2. Доступ к файловой системе ОС через СУБД 8.2.1. Доступ к файловой системе через UTL_FILE>процедуры
8.2.2. Доступ к файловой системе через DBMS_LOB>процедуры 8.2.3. Доступ к файловой системе через JAVA>процедуры 8.2.4. Доступ к файловой системе через DBMS_ADVISOR>процедуры 8.3. Заключение
8.4. Полезные ссылки
Глава 9. Поэтапные способы повышения привилегий и другие атаки
9.1. Поэтапные способы повышения привилегий 9.1.1. Привилегия GRANT ANY [OBJECT] PRIVILEGE/ROLE 9.1.2. Привилегия SELECT ANY DICTIONARY 9.1.3. Привилегия SELECT ANY TABLE
9.1.4. Привилегия INSERT/UPDATE/DELETE ANY TABLE 9.1.5. Привилегия EXECUTE ANY PROCEDURE
9.1.6. Привилегия CREATE/ALTER ANY PROCEDURE 9.1.7. Привилегия ALTER SYSTEM
9.1.8. Привилегия ALTER USER 9.1.9. Привилегия ALTER SESSION 9.1.10. Привилегия ALTER PROFILE
9.1.11. Привилегия CREATE LIBRARY 9.1.12. Привилегия CREATE ANY DIRECTORY 9.1.13. Привилегия CREATE/ALTER ANY VIEW 9.1.14. Привилегия CREATE ANY TRIGGER 9.1.15. Привилегия CREATE ANY/EXTERNAL JOB 9.1.16. Роль JAVASYSPRIV 9.1.17. Роль SELECT_CATALOG_ROLE 9.2. Нестандартные способы повышения привилегий 9.2.1. Атака на Листенер при помощи пакета UTL_TCP
9.2.2. Поиск паролей и конфиденциальной информации 9.3. Заключение 9.4. Полезные ссылки
Глава 10. Закрепление прав в системе, руткиты для Oracle
10.1. СУБД и ОС 10.2. Руткиты первого поколения 10.2.1. Скрытие посторонних пользователей
10.2.2. Скрытие посторонних заданий (Jobs) 10.3. Руткиты второго поколения 10.3.1. Модификация исполняемых файлов 10.4. Заключение 10.5. Полезные ссылки
ЧАСТЬ III. Защита СУБД Oracle
Глава 11. Безопасная настройка СУБД Oracle
11.1. Методы защиты СУБД Oracle от атак на Листенер 11.1.1. Защита Листенера от сканирования
11.1.2. Ограничение доступа к службе Листенера 11.1.3. Защита от неавторизированных подключений к Листенеру 11.1.4. Установка патчей и удаление лишних компонентов 11.1.5. Защита от атак, направленных на перехват пароля 11.1.6. Защита от неправомерного доступа к конфигурационным файлам 11.1.7. Мониторинг обращений к Листенеру и защита от перебора 11.1.8. Защита от получения злоумышленником SID 11.1.9. Последние штрихи 11.2. Настройка парольной защиты 11.2.1. Стандартные учетные записи и пароли 11.2.2. Установка паролей и конфигурирование парольной политики 11.2.3. Настройка OS Authentication и Remote OS Authhentication 11.2.4. Защита от неправомерного доступа к хэшам паролей 11.3. Механизмы внутренней защиты 11.3.1. Первичная настройка и установка критических обновлений 11.3.2. Безопасное назначение привилегий
11.3.3. Ограничение доступа к ОС 11.3.4. Защита от руткитов 11.4. Заключение 11.5. Полезные ссылки
Глава 12. Аудит и расследование инцидентов
12.1. Введение в подсистему аудита СУБД Oracle 12.1.1. Уровни подсистемы аудита 12.1.2. Включение ведения журнала аудита 12.1.3. Защита журналов аудита 12.2. Настройка аудита событий для обнаружения злоумышленника 12.2.1. Отслеживание атак на Листенер и подбора SID 12.2.2. Отслеживание попыток подбора имен пользователей и паролей 12.2.3. Отслеживание попыток повышения привилегий 12.2.4. Отслеживание доступа к таблицам с паролями 12.2.5. Отслеживание доступа к ОС 12.2.6. Отслеживание попыток скрытия следов пребывания 12.3. Заключение
12.4. Полезные ссылки
Глава 13. Соответствие стандартам безопасности
13.1. Законы и стандарты в сфере ИБ 13.2. Стандарт PCI DSS 13.2.1. Начальные сведения о PCI DSS
13.2.2. СУБД Oracle и PCI DSS 13.3. Решения Oracle для соответствия СУБД требованиям безопасности
13.3.1. Oracle Advanced Security 13.3.2. Oracle Secure Backup 13.3.3. Oracle Enterprise Manager Configuration 13.3.4. Oracle Database Vault 13.3.5. Oracle Identity Management 13.3.6. Oracle Audit Vault
13.4. Заключение 13.5. Полезные ссылки
Заключение
Соответствие СУБД Oracle требованиям PCI DSS
Приложение A. Применимость PCI DSS к хостинг;провайдерам
Приложение B. Компенсирующие меры