Як захистити базу даних Firebird
Перед будь-яким адміністратором бази даних стоїть завдання убезпечити базу даних від несанкціонованого доступу, псування чи крадіжки.
Безпека БД в СУБД Firebird, як і більшості інших серверів баз даних головним чином залежить від складності пароля користувача і прав доступу до даних цього користувача, а також доступу до файлів самої БД.
Паролі доступу до БД
- Змінити пароль користувача SYSDBA зі стандартного masterkey на складніший.
- Для обмеження доступу до даних використовувати користувачів (ролі) з відповідними правами на читання/запис у таблиці.
- Не використовувати SYSDBA для доступу до бази даних із програми.
Налаштування сервера
Незважаючи на міф, що гуляє по інтернету про те, що до файлів баз даних СУБД Firebird необхідно давати доступ (share) користувачам - робити цьогоне потрібно в жодному разі. Сервер сам обробляє запити клієнтів і крім відкритого порту немає необхідності відкривати якийсь доступ. Щоб не вказувати шлях до БД при підключенні, можна скористатися аліасами, таким чином, тільки адміністратор знатиме точне розташування самої БД на сервері.
- Закрити локальний вхід на сервер всім користувачам, крім одного (адміністратора).
- У доменній мережі сервер СУБД Firebird не обов'язково має входити до домену, таким чином навіть адміністратор домену не зможе отримати доступ до сервера.
- У налаштуваннях брандмауера для роботи СУБД Firebird необхідно відкрити порт 3050 TCP/IP, всі інші (включаючи RDP) краще закрити.
Шифрування трафіку
СУБД Firebird не підтримує шифрування трафіку. Якщо firebird використовується в локальній мережі підприємства, то немає ніякої проблеми. Навряд чи хтось усередині вашої мережі зможе перехоплювати нешифрований трафік. Але що робити, якщо деякі користувачі підключаються до бази даних з інтернету? Для вирішення цього завдання можна скористатися стороннім продуктом, наприклад ZeBeDee — програмою, яка забезпечує шифрований і стислий «тунель» для даних TCP або UDP, що передаються між двома системами. Детально почитати, як прикрутити шифрування до СУБД Firebird можна в цій статті.
Криптоконтейнери
СУБД Firebird не підтримує шифрування даних і, скопіювавши БД на свій сервер, можна отримати до неї необмежений доступ (на своєму сервері ми знатимемо пароль SYSDBA). Використання криптоконтейнерів може вирішити цю проблему. Наприклад, широко відомий TrueCrypt, яким можна не лише зашифрувати розділ реального диска, але й створити віртуальний контейнер (віртуальний зашифрований диск) для розміщення БД. Щоправда, слід розуміти, що найменший збій у роботі може привести БД у неробочий стан, та й швидкість роботи з таким контейнером може виявитися помітно нижчою ніж з реальним диском. Тому використовувати такий режим слід з крайньою обережністю. А ось для зберігання резервних копій баз даних криптоконтейнер підходить ідеально.
На закінчення хочеться додати, що будь-який захист можна обійти. Питання лише в тому, чи стоять ті зусилля (фінансові та тимчасові) ваших даних? Не варто впадати в параною закриваючи все і вся у своїй невеликій мережі та намагаючись контролювати кожен IP пакет. Втім, відкривати папку з базою даних у загальний доступ заради зручності також не варто. У всьому потрібен баланс та розумний підхід.
UPD: Можна ще почистити описи таблиць (полів тощо) та вихідники тригерів та уявлень у системних таблицях, що утруднитьаналіз БД.
UPD2: Як варіант ще використовувати не стандартний порт FB, якщо вона доступна з інтернету