• Все разделы
  • Статьи
  • Медиа
  • Новости
  • Нормативные материалы
  • Конференции
  • Глоссарий

Учетная запись имеет доступ к исходному коду в качестве SYS

Главная Специалистам База уязвимостей Учетная запись имеет доступ к исходному коду в качестве SYS

Карточка уязвимости

Характеристики уязвимости

Уровень опасности
Оценка CVSS
Производитель ПО
Наименование ПО
Oracle Database (Oracle Database)
Описание
Учетной записи была предоставлена привилегия выполнять или создавать исходный код в качестве SYS.
Oracle поддерживает ряд привилегий, которые предоставляют пользователю возможность выполнять действия над типами объектов. Некоторые из этих привилегий можно предоставить, используя ключевое слово "ANY". Это ключевое слово позволяет обладателю привилегии выполнять действия над любой схемой, что существенно влияет на работу системы, и может эксплуатироваться в целях повышения привилегий.
Для создания или выполнения кода в схеме SYS могут использоваться следующие привилегии:
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
EXECUTE ANY PROCEDURE
ALTER ANY TRIGGER
CREATE ANY TRIGGER
При создании или выполнении кода в схеме SYS, код будет запущен с привилегиями пользователя SYS, фактически позволяя обладателю привилегии выполнять любые команды в качестве пользователя SYS.
Обладатель CREATE ANY PROCEDURE или ALTER ANY PROCEDURE может создавать или заменять функцию в схеме SYS, которая запускает команды в качестве SYS. Также, любой пользователь с привилегией EXECUTE ANY PROCEDURE может запускать функции, которые принимают параметры, и вызывать EXECUTE IMMEDIATE. Существует множество процедур, которые выполняют команды, переданные в качестве параметров, например SYS.INITJVMAUX.EXEC. Аналогичные действия могут быть выполнены с использованием триггеров.
Как исправить
Отзовите привилегии у всех пользователей, которые не являются администраторами базы данных. Предоставьте пользователям отдельные привилегии на те функции или процедуры, которые им необходимо выполнять.
Чтобы отозвать привилегию у любой учетной записи, выполните следующую команду:
REVOKE [ПРИВИЛЕГИЯ] FROM [пользователь или роль];
где "ПРИВИЛЕГИЯ" - одна из следующих привилегий:
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
EXECUTE ANY PROCEDURE
ALTER ANY TRIGGER
CREATE ANY TRIGGER
Ссылки
Oracle 10 :
CREATE ANY PROCEDURE, ALTER ANY PROCEDURE :
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6009.htm
Oracle 11 :
CREATE ANY PROCEDURE, ALTER ANY PROCEDURE :
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/create_procedure.htm