Безопасность и доступ по умолчанию

Безопасность и доступ по умолчанию

База данных и все ее объекты (таблицы, просмотры и хранимые процедуры) становятся защищенными от неавторизованного доступа в момент их создания. То есть доступ является "необязательным". Ни один пользователь не может получить доступ к любому объекту базы данных, не получив на это полномочий. За исключением пользователей с особыми привилегиями - владелец, SYSDBA и (в POSIX) Суперпользователь - пользователи должны иметь привилегии SQL к любой операции, даже к SELECT.

А теперь плохие новости

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

С возможностью при инсталляции Firebird 1.5 ограничивать местоположение внешних объектов, к которым может обращаться сервер, ситуация несколько улучшается. При этом риски не устраняются полностью- вы должны выполнить конкретные шаги по реализации этой возможности и созданию ограничений файловой системы операционной системы. Доступ по умолчанию к внешним файлам в инсталляторе установлен в NONE, и каталоги внешних функций ограничены деревом UDF. Ваша задача - позаботиться о системных ограничениях.

Системные таблицы, где Firebird хранит все метаданные, включая сами привилегии SQL, вовсе не защищены привилегиями SQL.

Совет, как наказать идиотов-пользователей и плохих парней

Мой уважаемый коллега Павел Цизар (Pavel Cisar) предложил прием устранения недостатка привилегий SQL по защите метаданных Firebird, когда идиоты- пользователи, минуя DDL, пытаются изменять метаданные в системных таблицах, внося в них беспорядок. Это также отражает злонамеренные попытки разрушить ваши метаданные с помощью скрипта. Вот данное решение.

Хотя кажется, что PUBLIC (т. е. все) имеют доступ ALL К системным таблицам, тем не менее существует таинственный черный ход в управлении правами SQL, который может легко исправить ситуацию. Вы можете ограничить доступ к системным таблицам, так же, как и к любым другим таблицам базы данных, предоставив, а затем отменив полномочия. При этом права предоставляются только для того, чтобы быть отмененными.

Все, что нужно сделать, - это просто установить управление доступом к системным таблицам путем выполнения серии операторов GRANT ALL <системная таблица> то PUBLIC. После этого мы можем отменить любые права.

Я не знаю точного технического объяснения, каким именно образом это работает, но это мой совет. Оператор GRANT создает управляющий список доступа (Access Control List, ACL) для системной таблицы, который проверяется в коде. Какая-то ветвь в этом коде означает "предоставить всем все привилегии, если элемент ACL не найден для системной таблицы, иначе использовать ACL".

Следует помнить некоторые вещи.

• Эта установка не сохраняется после восстановления базы данных из резервной копии, следовательно, напишите скрипт, который вы будете использовать каждый раз для только что восстановленной базы данных.

• Вам нужно быть внимательным по поводу удаления прав SELECT у PUBLIC К некоторым системным таблицам, потому что функции API isc_biob_iookup_desc() и isc_array_iookup_bounds() зависят от этой возможности. От этого также могут зависеть некоторые инструментальные средства и библиотеки.

• Удаление прав записи в системные таблицы не ограничивает возможность их изменения обычным нормальным способом с использованием команд DDL. Предотвращается только бесполезная прямая корректировка системных таблиц.

Привилегия дает возможность пользователю иметь некий вид доступа к объекту в базе данных. Она предоставляется с помощью оператора GRANT и убирается с использованием оператора REVOKE.

Синтаксис разрешения доступа:

GRANT <привилегия> ON <объект>

ТО <пользователь>;

привилегия, предоставленная пользователю к объекту, создает разрешение. Синтаксис для удаления разрешений:

REVOKE <привилегия> ON <объект>

FROM <пользователь>;

Доступны некоторые варианты "центрального" синтаксиса. Мы рассмотрим их несколько позже.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Программы по умолчанию

Из книги автора

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


2.10.2. Настройки по умолчанию

Из книги автора

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


2.10.3. Пароли по умолчанию

Из книги автора

2.10.3. Пароли по умолчанию Многие сервисы во время установки прописывают пароли по умолчанию. В ОС Linux эта проблема стоит особо остро, потому что программы инсталляции используют RPM-пакеты и чаще всего даже не предлагают их сменить. Я бы на месте разработчиков вообще


4.1.4. Права по умолчанию

Из книги автора

4.1.4. Права по умолчанию Когда пользователь создает новый файл или директорию, то им назначаются права по умолчанию. Давайте разберем это на примере. Для создания файла выполним команду ls и перенаправим вывод в файл:ls -al >> testfileТеперь проверим права на этот файл с помощью


4.11.1. Фильтр по умолчанию

Из книги автора

4.11.1. Фильтр по умолчанию Исходя из принципа всеобщего запрета, в качестве правила по умолчанию мы должны запретить любые действия. Изначально в Linux все разрешено, а это безопасно только для отдельно стоящего сервера, который даже не подключен к сети. Проверьте ваши


4.7. Поведение по-умолчанию

Из книги автора

4.7. Поведение по-умолчанию В некоторых случаях механизм определения состояния не может распознать протокол обмена и, соответственно, не может выбрать стратегию обработки этого соединения. В этом случае он переходит к заданному по-умолчанию поведению. Поведение


4.3.3. Принтер по умолчанию

Из книги автора

4.3.3. Принтер по умолчанию Для того чтобы печатать на только что установленном принтере в ОpenOffice, нужно сделать его принтером, выбираемым по умолчанию Для этого выберите ваш принтер в окне конфигуратора и щелкните на кнопке Сделать принтером по умолчанию (рис. 4.14). Рис. 4.14.


Программы по умолчанию

Из книги автора

Программы по умолчанию Компонент Программы по умолчанию позволяет установить правила привязки файлов разных форматов к определенным программам, которые будут их обрабатывать. Здесь вы не только можете менять эти приложения, но и добавлять другие форматы файлов, с


Префикс по умолчанию

Из книги автора

Префикс по умолчанию Можно также определить префикс, который по умолчанию будет подставляться к адресу в адресной строке, если он там явно не указан. По умолчанию используется префикс http://, который говорит браузеру о том, что он должен отослать запрос службе WWW. Но если вы


В браузере по умолчанию

Из книги автора

В браузере по умолчанию А можно ли как-то сохранить адрес понравившегося сайта? Оказывается можно! В любом браузере найдется в верхней строчке меню нужная кнопочка, которая обычно называется Избранное, Закладки или Favorites. Чтобы сохранить нужную страничку в своих


Преобразования по умолчанию

Из книги автора

Преобразования по умолчанию Большинство операций языка Си выполняют преобразование типов для приведения своих операндов к общему типу либо для того, чтобы расширить значения коротких по размеру типов до размера, используемого в машинных операциях. Преобразования,


14.2.1. Конструктор по умолчанию

Из книги автора

14.2.1. Конструктор по умолчанию Конструктором по умолчанию называется конструктор, который можно вызывать, не задавая аргументов. Это не значит, что такой конструктор не может принимать аргументов; просто с каждым его формальным параметром ассоциировано значение по


4.6.6 Параметры по Умолчанию

Из книги автора

4.6.6 Параметры по Умолчанию Часто в самом общем случае функции требуется больше праметров, чем в самом простом и более употребительном случае. Например, в библиотеке потоков есть функция hex(), порождащая строку с шестнадцатиричным представлением целого. Второй параметр


Программы по умолчанию

Из книги автора

Программы по умолчанию Существует также возможность удаления из меню Пуск кнопки Программы по умолчанию. Для этого необходимо в разделе реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer создать REG_DWORD-параметр NoSMConfigurePrograms и присвоить ему значение 1, после чего перезагрузить


3.7. Программы по умолчанию

Из книги автора

3.7. Программы по умолчанию Как и обещал ранее, пункт главного меню Программы по умолчанию мы рассмотрим отдельно. Выполните команду меню Пуск | Программы по умолчанию (рис. 3.25). В появившемся окне вы можете:? задать программы по умолчанию, то есть выбрать программы, которые