Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Разрешите войти?

Фленов Михаил aka Horrific

Спецвыпуск: Хакер, номер #052, стр. 052-074-6


Чтобы изменить права доступа процедуры и функции, нужно щелкнуть по ее имени правой кнопкой и в появившемся меню выбрать All tasks/Manage permissions. Открывается окно, как и при назначении прав для вьюшек, но для процедур можно изменять только колонку EXEC, а для функций EXEC и DRI.

Политика прав

Некоторые администраторы любят назначать права используя в качестве основы какую-то существующую роль, например, public. Это неверно, потому что в этой роли могут присутствовать права, абсолютно не нужные пользователям. Лучше стараться назначать права с самого нуля.

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

Таблицы/базы

Базы данных хранят свои настройки и секретные параметры не в реестре и не в отдельных файлах, а в системных таблицах/базах данных, которые ничем не отличаются от других объектов базы и на которые также могут назначаться права. Ни в коем случае не разрешай пользователям права на доступ к этим таблицам без особой надобности.

В SQL-сервере особо важные системные данные хранятся в базах данных master и msdb. Именно эти базы данных необходимо защищать. В Oracle дело обстоит иначе, потому что там каждая база данных существует как отдельный объект и системные таблицы располагаются вперемешку с пользовательскими.

Практически все серверы баз данных предлагают (или не предлагают, но делают это) установить тестовые базы данных, которые могут использоваться для тестирования системы или обучения. Если у тебя установлено такое, обязательно избавься от этого, потому что на эти базы устанавливается публичный доступ. Если взломщик будет знать имена или параметры любого реально существующего объекта в системе, то это может упростить решение его злодейской задачи.

Соединившись с тестовой базой, можно выполнять какие-то команды от имени сервера и вредить ОС или рабочей базе данных. Ничего лишнего в системе не должно быть, тем более что на такие таблицы/базы данных установлены достаточно высокие права даже для гостя.

Итого

Несмотря на то, что в качестве примера использовалась MS SQL Server, понятия прав, ролей и аутентификации есть практически во всех базах данных. Зная все правила, о которых ты только что читал, и уточнив специфику выбранной БД, можно наконец почувствовать себя в безопасности.

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

У спеца по безопасности не должно быть друзей :).

Некоторые считают, что босс должен видеть все, поскольку он босс. Это верно, если начальник хороший спец в IT и может дать гарантию, что не навредит. Если он чайник и случайно может уничтожить данные, то виноватым будешь ты, поэтому не давай права sa даже боссу.

Назад на стр. 052-074-5  Содержание