Каковы "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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы