Каковы "best practice" по распределению полномочий в БД Oracle с точки зрения информационной безопасности?

Подскажите, пожалуйста, какое распределение полномочий и какие параметры логирования для различных типов учётных записей соответствует стандартам де-факто или лучшим практикам?



Если я правильно понимаю, каждый администратор должен иметь персональную учётную запись, для которой включено логирование и отключен доступ к бизнес-данным.

Учётные записи пользователей, если таковые создаются, не должны иметь доступ к таблице приложения, и журналирование операций, опять-таки, должно быть включено.



Сейчас администраторы в сферической компании заходят под dcsdba или sys, а логирование отключено, что не соответствует ни то чтобы стандартам, а минимальным требованиям безопасности.
  • Вопрос задан
  • 3890 просмотров
Пригласить эксперта
Ответы на вопрос 3
@snevsky
Думаю этот вопрос является общим для всех БД. Распишу идеальный вариант:
— все owners схем на промышленной БД заблокированы. Доступ под этими пользователями не возможен.
— для проведения установки каждый администратор БД должен обладать собственным логином, с правами позволяющими ему проводить все необходимые операции в этих схемах
— логирование действия настраивается стандартными средствами Oracle aka Audit
— там логируются все действия данных пользователей
— пароль от аккаунта sys должен лежать в сейфе у главного боса и его использование должно быть регламентировано, ибо согласно политики Oracle его действия не могут быть залогированы, иначе он не сможет зайти в систему при возникновении непредвиденных ситуаций, к примеру переполнения табличного пространства для Audit
— из таблицы AUD все данные должны в онлайне стекаться на мониторинг администратору по безопасности
— успешные и неуспешные комманды должны выделаться признаками для возможности предотвращения несанкционированного доступа к данным

Ну вот вроде все что вспомнил согласно PCI DSS
Ответ написан
@lesha_penguin
С точки зрения информ безопасности, самое первое с чем стоит определится это что мы защищаем и от кого/от чего. Без этого особого смысла нет вообще чего-то городить.
Второе: «информбезопасность» это всегда комплекс как технических так и огранизационных мер. Одно без другого смысла не имеет.

Вот вам список вопросов:

1) Вы хотите защитится от DBA? А зачем вы тогда держите у себя такого «сферического DBA в вакууме» которому вы не доверяете? Или у вас администрирование осуществляет сторонняя компания которой вы не доверяете? Тогда зачем такая ком пания? Так может «информбезопасность» начать с того, что подписать с ней соответствующий договор об ответственности за возможные утечки?

2) Вы хотите защитится от нерадивых программистов, которые херачат все направо и налево данные и пакеты на production базе? Вопрос правильный, только стоит его переформулировать так: у вас все программисты такие безотвественные школьники или есть один-два «ведущих разработчика», которые обладают достаточной квалификацией и ответственностью?

3) Вы хотите защитится от некорректных изменений/некорректных действий пользователей БД? А также от всяческих сломанных/слетевших с катушек внешних скриптов имеющих коннект к базе?

4) Вы хотите защититься от злых дядечек которые спят и видят как поиметь вашу базу и утянуть из нее все ваши суперсекретные данные?

А вот теперь, после вступительных вопросов я могу поделится своей Best Practice организацией безопасности (и надежности также) в Oracle.
* ответ на 1)й вопрос — чисто организационные меры
* отучаемся держать все данные в общей схеме-помойке.
* разделяем схемы на бекендные и фронтендные
* бекендные схемы содержат бизнес-данные и пакеты с бизнес-логикой их обработки
* бекендные схемы разделены по задачам и зонам отвественности — за каждую бекендную схему есть свой ответственный ведущий программист и никто туда без его ведома не лазит.
* фронтендные схемы таблиц c данными не содержат (вообще на них просто нет такого гранта как create table). они содержат только вью и пакеты которые преобразуют бизнес-логику «внешнего потребителя» во внутреннюю логику, адресуемую бекендным пакетам. Собственно фронтенд-вью и фронтенд-пакеты в том числе несут на себе задачи безопасности (такие как например не показывать например паспортные данные клиентов-физиков тому кому их показывать низя, не давая менять определенные поля в определенных документах тому кому не надо, показывать в фронтенд-вьюшке для менеджера только его клиентов а не всю клиентсткую базу, и прочее и прочее… то есть задач тут может решатся дофига-дофига-дофига, самое главное составить список этих решаемых задач).
* т.е. обратите внимание, на разделение «бизнес-логики» (бекенд-схемы) и «security-логики»(фронтенд-схемы).
* Все остальные пользователи и внешние скрипты ходят под своим отдельным логином (юзер с грантом только на коннект). Работают только с теми фронтенд-обьектами которые им явно грантованны. О структуре, огранизации и существовании чего-то в бекенд-схемах они вообще не догадываются, что дает сразу +100% к безопасности и надежности.

Много раз применял данную огранизацию в разных местах и всегда она себя оправдывала «на ура».
Ответ написан
Комментировать
@Ruslan_Y
Есть отдельный продукт Oracle Database Vault который как раз и дает защитить бизнес-данные от DBA, но это отдельные деньги и отдельный администратор + наверное еще и Oracle Audit Vault с еще одним админом… ну и без отдельных сотрудников службы безопасности тоже врядли обойдется :). Далеко не все смогу и захотят иметь такую роскошь, но, вообще, это как раз та самая технология от привилегированных пользователей. Презентация PDF
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы