как защитить базу данных Firebird?

FirebirdПеред любым администратором базы данных стоит задача обезопасить базу данных от несанкционированного доступа, порчи или кражи.

Безопасность БД в СУБД Firebird, как и большинства других серверов баз данных главным образом зависит от сложности пароля пользователя и прав доступа к данным этого самого пользователя, а так же доступа к файлам самой БД.

Пароли доступа к БД

Следует помнить, что SYSDBA — супер-администратор, который имеет неограниченный доступ к БД. Использовать эту учетную запись для работы крайне небезопасно. В идеале, этот пароль должен знать лишь администратор БД. Для подключения и работы пользователей  с данными необходимо создавать новые учетные записи с разграничением доступа на чтение/запись. Таким образом, если злоумышленнику станет известен пароль доступа одного из пользователей, он сможет получить доступ только к той информации, доступ к которой есть у пользователя. И изменить (читай испортить) только те данные, которые может изменять учетная запись.

  • Изменить пароль пользователя SYSDBA со стандартного masterkey на более сложный.
  • Для ограничения доступа к данным использовать пользователей (роли) с соответствующими правами на чтение/запись в таблицы.
  • Не использовать SYSDBA для доступа к базе данных из приложения.

Настройка сервера

Несмотря на гуляющий по интернету миф о том, что к файлам баз данных СУБД Firebird необходимо давать доступ (share) пользователям — делать этого не нужно ни в коем случае. Сервер сам обрабатывает запросы клиентов и кроме открытого порта нет необходимости открывать какой либо доступ. Чтобы не указывать путь до БД при подключении, можно воспользоваться алиасами, таким образом, только администратор будет знать точное расположение самой БД на сервере.

  • Закрыть локальный вход на сервер всем пользователям кроме одного (администратора).
  • В доменной сети сервер СУБД Firebird не обязательно должен входить в домен, таким образом даже администратор домена не сможет получить доступ к серверу.
  • В настройках брандмауэра для работы СУБД Firebird необходимо открыть порт 3050 по TCP/IP, все остальные (включая RDP) лучше закрыть.

Шифрование трафика

СУБД Firebird не поддерживает шифрование трафика. Если firebird используется в локальной сети предприятия то нет ни какой проблемы. Вряд ли кто-то внутри вашей сети сможет перехватывать не шифрованный трафик. Но как быть, если некоторые пользователи подключаются к базе данных из интернета? Для решения данной задачи можно воспользоваться сторонним продуктом, например, ZeBeDee — программой, которая обеспечивает шифрованный и сжатый «туннель» для данных TCP или UDP, передаваемых между двумя системами. Подробно почитать как прикрутить шифрование к СУБД Firebird можно в этой статье.

Криптоконтейнеры

СУБД Firebird не поддерживает шифрование данных, и, скопировав БД на свой сервер, можно получить к ней неограниченный доступ (на своем сервере мы будем знать пароль SYSDBA). Использование криптоконтейнеров может решить данную проблему. Например, широко известный TrueCrypt, которым можно не только зашифровать раздел реального диска, но и создать виртуальный контейнер (виртуальный зашифрованный диск) для размещения БД. Правда следует понимать, что малейший сбой в работе может привести БД в нерабочее состояние, да и скорость работы с таким контейнером может оказаться заметно ниже чем с реальным диском. Поэтому, использовать подобный режим следует с крайней осторожностью. А вот для хранения резервных копий баз данных, криптоконтейнер подходит идеально.

В заключении, хочется добавить, что любую защиту можно обойти. Вопрос лишь в том, стоят ли те усилия (финансовые и временные) ваших данных? Не стоит впадать в паранойю закрывая все и вся в своей небольшой сети и пытаясь контролировать каждый IP пакет. Впрочем, открывать папку с базой данных в общий доступ ради удобства тоже не стоит. Во всем нужен баланс и разумный подход.

UPD: Можно ещё почистить описания таблиц (полей и т.п.) и исходники триггеров и представлений в системных таблицах, что затруднит анализ БД.

UPD2: Как вариант еще использовать не стандартный порт FB, если она доступна из интернета

Comments are closed