Шифрование паролей в СУБД Oracle

       

Разведка паролей


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

  • На сервере

  • В файлах истории команд shell (bash_history)
  • В скриптах shell
  • В файлах логов
  • В двоичных дампах
  • В трассировочных файлах
  • В Application Server'е

    • В файлах конфигурации JDBC
    • В трассировочных файлах
    • На клиентских ПК
    • В ярлыках на рабочем столе
    • В командных файлах
    • В конфигурационных и инициализационных файлах ( connections.ini)
    • В трассировочных файлах
    • В виде хеш-значений пароли можно получить из следующих источников:

      • Из таблицы sys.user$. К этой таблице имеют доступ

      • все, кто обладают привилегией DBA
      • все, кто обладают привилегией SELECT ANY DICTIONARY
      • В версии 8i все, кто обладают привилегией SELECT ANY TABLE если значение параметра o7_dictionary_accessibility=true
      • Из табличного пространства SYSTEM (датафайл system01.dbf)
        Права на него по умолчанию rw-r----- т.е. читать может не только владелец-пользователь, но и вся и группа.
      • Из файла паролей orapwSID, который находится в каталоге $ORACLE_HOME/dbs, права на него также rw-r-----
      • Из файлов экспорта и бэкапов RMAN'a.
      • Из архивных логов
      • Из нешифрованного TNS трафика. Несмотря на то, что СУБД Oracle не передает пароль по сети в открытом виде, тем не менее, хеш пароля проходит по сети и может быть перехвачен злоумышленником. В ОС Солярис, это можно проверить, перехватывая все пакеты, исходящие с Вашего локального ПК и входящие на порт 1521 сервера: snoop -vx from source_IP to dest_IP port 1521 > file
      • В Linux это можно проверить с помощью tcpdump.

        Возможность шифрования трафика включена в опцию Oracle Advanced Security.

        Типичные ошибки, относящиеся к паролям, укажут правильное направление атаки:



        ORA_28000: The account is locked
        Логин заблокирован.
        Подождать в течение PASSWORD_LOCK_TIME и повторить попытку или попросить администратора сменить пароль
        ORA-28001: The password has expired

        Истек срок действия пароля.

        При возможности сменить пароль самостоятельно или обратиться за этим к администратору.
        ORA-00988: Missing or invalid password(s)

        Пароль не набран, либо набран неверно

        Используйте двойные кавычки, например alter user scott identified by "!alex"
        ORA-01017: Invalid username/password; logon denied

        Введен неверный логин или пароль, доступ запрещен.

        Проверьте правильность вводимых реквизитов.



        Содержание раздела