Базы данных Oracle - статьи


Oracleinfsec.shtml - часть 8


Использование опубликованных оповещений о проблемах безопасности

Выпущен ряд оповещений о проблемах безопасности, связанных с листенером (в основном это атаки типа “отказ в обслуживании”), а также появилось несколько инструментальных средств, которые позволяют любому воспользоваться ими. Нарушитель просто указывает целевой листенер и запускает такое средство для аварийного завершения листенера.

Атака типа “исчерпание ресурсов”

Эта атака пользуется механизмом создания листенером новых серверных сеансов. Рассмотрим рис. 8.

Рис. 8. Установление через листенер связи клиент-сервер.

Установление соединения через Oracle Net требует выполнения ряда шагов:

  • клиент инициирует соединение с сервером, сообщая листенеру, что он хочет связаться с указанным сервисом;
  • листенер ожидает поступающих запросов на соединение с сервером. Когда запрос получен, он проверяет, запущен ли серверный процесс (запускает его, если требуется), и сообщает серверу, что ожидается соединение;
  • сервер отвечает листенеру, сообщая детали соединения для передачи их клиенту;
  • листенер информирует клиента, что сервер ожидает его, и передает ему детали соединения с сервером;
  • клиент разрывает свое соединение с листенером;
  • клиент начинает соединение с сервером.

Спровоцировав сбой последнего шага в этом процессе, злонамеренный клиент может организовать эффективную атаку сервера типа “отказ в обслуживании”, так как в конечном счете у сервера закончатся ресурсы, израсходованные на ожидание соединений клиентов. Этого можно достигнуть повторяющимся выполнением команды LSNRCTL SPAWN (только в UNIX) или запуском большого количества соединений с базой данных без последующих попыток аутентификации.

Удаленное выполнение команд

Листенер можно использовать для выполнения нарушителем команд сервера:

  • установив протокольный файл листенера как скрипт оболочки ОС и отослав сфабрикованный пакет, содержащий команды оболочки, нарушитель может выполнять в сервере произвольные команды. После записи в файл, который, вероятно, будет выполнен системным администратором или процессом загрузки системы (например, AUTOEXEC.BAT), эти команды могут быть выполнены пользователем с очень высокими привилегиями;
  • как видно из предыдущего анализа, листенер отвечает за запуск серверных процессов. Эти процессы будут работать под пользователем Oracle (в UNIX) или SYSTEM (в NT). Для того чтобы заставить листенер выполнять наши команды, необходимо реконфигурировать файл listener.ora. Это можно сделать через механизм работы с протокольным файлом, направив вывод протокольного файла в файл listener.ora, а затем отослать пакет, содержащий команды, которые мы хотим выполнить. Например, можно послать пакет, содержащий определение SID:




Начало  Назад  Вперед



Книжный магазин