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


Oracleinfsec.shtml - часть 11


CREATE ANY DIRECTORY

Чтение произвольных файлов с помощью вызовов больших объектов. Любой текстовый файл может отображаться как внешний большой объект и читаться с использованием привилегий процесса, принадлежащего Oracle. Это может также использоваться для проверки существования файлов. Так, нарушитель может выполнять в сервере произвольные команды, направлять их вывод в файл и читать этот файл. Примеры приведены в пакете “hack” приложения А.

CREATE DATABASE LINK

Просмотр других баз данных.
Можно встраивать данные соединения в команды создания связей баз данных, избавляясь от необходимости наличия соответствующей записи в файле tnsnames.ora. Например:

Create database link test

Connect to mdsys identified by mdsys

Using '(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP)

(HOST=victim.us.oracle,com)

(PORT=1521))(CONNECT_DATA=(SID=orcl)))';

может использоваться для попытки доступа к базе данных на машине victim.us.oracle.com как пользователь MDSYS, используя SID по умолчанию orcl.

Эту привилегию иногда можно использовать для исследования баз данных, непосредсвенно не доступных нарушителю. Например, незащищенная тестовая система может быть использована для просмотра баз данных в корпоративной сети интранет.

Также отметим, что пароли связей хранятся в открытом виде в таблице link$.

Табл. 2. Привилегии баз данных и возможные атаки.

Таким образом, используя пакет “HACK”, представленный в приложении А, можно преодолеть защиту листенера. Например, используя в SQL Plus процедуру javaexecute:

SQL> execute hack.javaexecute(‘c:\winnt\system32\cmd /c

“echo admin_restrictions = off >>c:\oracle\network\admin\listener.ora”’);

Она вставляет в файл listener.ora строку “admin_restrictions = off. После этого выполнение в контролере листенера команды RELOAD приведет к выключению опции ADMIN_RESTRICTIONS.

Используя в пакете “HACK” процедуру просмотра (browse), нарушитель может читать файл listener.ora, например:

SQL> execute hack.browse(‘listener.ora’,’c:\oracle\network\admin\’);

Это позволяет обнаружить текущие установки защиты листенера, включая его пароль (хешированный в UNIX, открытый текст в NT).

Меры противодействия – атаки баз данных




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