Информационная безопасность Oracle 9i - Приложение B – контрольный список вопросов для оценки защиты листенера

ОГЛАВЛЕНИЕ

    Приложение B – контрольный список вопросов для оценки защиты листенера

    Для того чтобы ваша система не стала жертвой атак, описанных в этой статье, мы подготовили простой контрольный список.

    Прежде всего, однако, важно понимать, что листенер может быть скомпрометирован плохой конфигурацией ОС и базы данных. Обдумывайте возможности сетевых соединений с сервером базы данных и для входящих соединений, и для исходящих. Фильтрацию входящих соединений в листенере можно устанавливать с помощью параметров TCP.VALIDNODE_CHECKING, TCP.INVITED_NODES и TCP.EXCLUDED_NODES [NETREF, 6-37/38]. Более сложные правила фильтрации могут быть установлены с помощью Connection Manager [NETADMIN, 13]. Использование межсетевых экранов также позволит фильтровать исходящие соединения, а некоторые межсетевые экраны предотвратят передачу клиентам статусной информации.

    В базе данных:

      обеспечьте блокирование или уничтожение всех ненужных учетных записей;

      проанализируйте привилегии и роли, назначенные пользователям, особенно CREATE [ANY] LIBRARY, CREATE ANY DIRECTORY, JAVASYSPRIV и CREATE [PUBLIC] DATABASE LINK;

      уничтожьте процесс PLSExtProc, если он не требуется. Если процесс нужен, локальные пользователи ОС сервера и администраторы базы данных должны быть такими, чтобы им можно было доверять как пользователю, который является владельцем Oracle. Проверяйте код вызова внешних процедур для предотвращения атак типа переполнение буфера”;

      выполняйте рекомендации по обеспечению безопасности баз данных, изложенные в [CHECKLIST].

    Снимите бит SUID у исполняемого файла листенера (если установлен, по умолчанию в Oracle 9i он не устанавливается).

    Проверяйте сайты Oracle с оповещениями, связанными с проблемами безопасности, и с последними заплатами.

    Имея защищенную среду, для конфигурирования listener.ora используйте технику перечисления целей, описанную выше.

    Используйте команду lsnrctl STATUS для проверки:

      выводятся ли какие-либо данные? Если да, листенер может быть защищен с помощью межсетевого экрана или tcp.validnode_checking;

      если данные выводятся, какова установка SECURITY? Если ON, то листенер защищен паролем;

      если SECURITY имеет значение OFF, проверьте установку ADMIN_RESTRICTIONS, пробуя изменить какой-нибудь параметр листенера, например, направив вывод протокольного файла в существующий протокольный файл. Так, если протокольный файл листенера

    /myhost/oracle/OraHome1/network/log/listener.log
    используйте команду:
    set_log /myhost/oracle/OraHome1/network/log/listener.log
    если ответом будет ошибка 12508, это означает, что опция ADMIN_RESTRICTIONS включена.

      если SECURITY имеет значение ON и вы знаете пароль, то можно проверить установку ADMIN_RESTRICTIONS, задав правильный пароль и попытавшись выполнить команду реконфигурирования листенер. Если опция ADMIN_RESTRICTIONS включена, то ответом будет ошибка 1169, даже при правильном пароле.

    Результаты всех этих шагов перечислены в таблицах B.1 и B.2.

    Ответ Значение
    Никаких данных не возвращается, ошибка 1153 Листенер, возможно, защищен межсетевым экраном.
    Никаких данных не возвращается, ошибка 12537 Включена опция tcp.validnode_checking.
    SECURITY=ON Установлен пароль, если вы знаете правильный пароль, также проверьте установку ADMIN_RESTRICTIONS.
    Проверьте, что установленный пароль удовлетворяет критериям сложности, позволяющим снизить риск лобовых” атак и атак словаря данных.
    SECURITY=OFF Пароль не установлен, проверьте установку ADMIN_RESTRICTIONS.

    Табл. B.1. Ответы листенера на запросы статуса.

    В следующей таблице показаны результаты попыток изменения конфигурации, например, командой:

    set log_file c:/Oracle/OraHome1/network/log
    Ответ покажет, установлены ли ADMIN_RESTRICTIONS или пароль.

    Ответ Значение
    Конфигурация изменена
    (пароль не задавался)
    Пароль не установлен.
    Опция ADMIN_RESTRICTIONS не включена.
    Это серьезный просчет, который может быть использован для соединения с листенером и организации атак отказ в обслуживании”.
    Конфигурация изменена
    (был задан правильный пароль)
    Пароль установлен.
    Опция ADMIN_RESTRICTIONS не включена.
    Проверьте, что установленный пароль удовлетворяет критериям сложности, позволяющим снизить риск лобовых” атак и атак словаря данных.
    Отвергнуто с кодом ошибки 12508
    (пароль не задавался)
    Пароль не установлен.
    Опция ADMIN_RESTRICTIONS включена.
    Отвергнуто с кодом ошибки 1169
    (был задан правильный пароль)
    Пароль установлен.
    Опция ADMIN_RESTRICTIONS включена. Листенер защищен, однако такое состояние может оказаться нежелательным с точки зрения эксплуатации, так как оно никому не позволяет реконфигурировать листенер. Можно только вручную уничтожить процесс листенера, используя для этого команды операционной системы сервера. Необходимость такой конфигурации следует проанализировать.

    Табл. B.2. Ответы листенера на команду SET.

    В заключение проверьте протокольные и трассировочные (если трассировка включена) файлы:

      выполнение всех выполненных выше команд должно быть запротоколировано (это позволяет проверить функционирование механизма протоколирования);

      отсутствуют следы необычной деятельности (например, большое количество ошибок проверки пароля), что может указывать на проводимую атаку.

    Протокольные и трассировочные файлы листенера – полезные источники информации и их нужно архивировать вместе с журналами аудита ОС и базы данных для возможного расследования.

    Приложение С – дополнительная литература и ссылки

    [NETREF] Oracle 9i Net Services Reference Guide, Release 1 (9.0.1), June 2001, Part No. A90155-01

    [NETADMIN] Oracle 9i Net Services Administrator’s Guide, Release 1 (9.0.1), June 2001, Part No. A90154-01

    [HACK] Hack Proofing Oracle, Howard Smith, (представлена на Oracle OpenWorld 2000, доступна в http://otn.oracle.com/deploy/security/oow00.htm).

    [CHECKLIST] A Security Checklist for Oracle 9i, http://otn.oracle.com/deploy/security/oracle9i/pdf/9i_checklist.pdf

    [nessus] http://www.nessus.org/

    [nmap] http://www.insecure.org/

    [netcat] http://www.atstake.com/research/

    [bugtraq] http://www.securityfocus.com/