Разграничение доступа средствами Oracle

 

 

Команда set_password без параметра (пароля) заставляет LSNRCTL выдать приглашение для ввода пароля, который перед передачей листенеру будет шифроваться. Однако, если пароль задан в команде set_password, например, “set_password fred”, пароль будет передан листенеру в незашифрованном виде. Это обеспечивает полезную обратную совместимость, но позволяет развернуть атаки на листенер. Читая хеш-значение пароля из файла listener.ora и используя его в команде set_password, нарушитель может обойтись без необходимости знания пароля. 

Кроме того, если атакующий имеет набор хешей для наиболее вероятных паролей, он может автоматизировать подбор пароля  с использованием метода брут-форс. В случае слишком простого пароля результат может быть получен в относительно короткое время. В случае массовой атаки на LISTENER возможен "отказ в обслуживании" всей системы. Для борьбы с данным нападением возможно использование параметров, определяющих ограничение доступа к Oracle ( не к LISTENER). В файле protocol.ora (для версий до 8 включительно ) или sqlnet.ora (для версий 9 и старше) необходимо добавить параметры:

     tcp.validnode_checking = YES
     tcp.invited_nodes = {list of IP addresses}       // доступ разрешен, перечень адресов через запятую
     tcp.excluded_nodes = {list of IP addresses}   // доступ запрещен, перечень адресов через запятую

Сайт создан в системе uCoz