Назад | Перейти на главную страницу

Безопасная база данных

Мы магазин баз данных Oracle. У меня есть приложение, для которого Oracle, вероятно, не лучший ответ. Я ищу легкую, хорошо работающую и очень безопасную базу данных. В самой базе данных, вероятно, будет дюжина таблиц и, возможно, миллионы записей. Мне не нужны хранимые процедуры, кластеризация или какие-либо высокопроизводительные функции.

Моя конечная цель - безопасность. Мне нужно встроенное шифрование, общий безопасный дизайн и низкий профиль, чтобы минимизировать потенциальные дыры в безопасности.

Я хочу запустить его на * nix, так как их намного проще сделать низкопрофильными, чем Windows.

Например, в мире BSD существует несколько вариантов. FreeBSD - самая портативная, а OpenBSD - самая безопасная. Я ищу OpenBSD в мире баз данных.

Я не знаю ни одного существующего элемента с этой конкретной целью дизайна. Лучшее, что вы получите, - это СУБД с достаточно хорошей встроенной защитой. Большинство приложений СУБД NoSQL не предлагают ничего особенного в плане безопасности. Традиционные системы управления базами данных часто имеют довольно богатые модели безопасности, и безопасность в системах такого типа является зрелой и хорошо изученной дисциплиной.

Если вы хотите, чтобы что-то стояло за безопасным веб-приложением, у вас действительно нет выбора, кроме как разработать приложение с учетом безопасности - традиционная безопасность базы данных (например, посредничество всего доступа на запись через sprocs без прямого доступа на запись к таблицам) - лучшее, что вы можете скорее всего получат. Не забудьте иметь отдельный сервер СУБД и брандмауэр для доступа к машине соответственно.

Если вас беспокоит физическая безопасность сервера, многие платформы СУБД имеют опции для физически зашифрованных данных (например, PostgreSQL). Некоторые операционные системы также поддерживают зашифрованные файловые системы и определенные диски также поддерживает физическое шифрование. Обратите внимание, что восстановление ключа по-прежнему отменяет шифрование - если ключ физически присутствует на сервере СУБД, технически подкованный хакер вполне может его восстановить.

Чтобы спроектировать систему безопасности и оценить, какая архитектура подходит, вам действительно придется провести оценку угроз, чтобы получить некоторое представление о том, от чего вы защищаете. Некоторые сценарии могут быть:

  • Если вы хотите защитить внутреннюю систему от посторонних глаз, то, вероятно, будет достаточно соответствующей защиты пользователей / ролей на платформе СУБД.

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

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

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

Полное раскрытие: Я работаю в группе инженеров Sybase SQL Anywhere. На самом деле я отвечаю за многие функции безопасности. Я пытаюсь ответить на вопрос так, чтобы ответ не звучал как реклама.

Sybase SQL Anywhere - это легкая СУБД, которая включает в себя все ваши стандартные функции СУБД, такие как хранимые процедуры, триггеры, блокировку на уровне строк и т. д., а также ваши стандартные функции безопасности, такие как права пользователей, групп и объектов (таблицы, процедуры и т. д.). Он также содержит множество расширенных функций безопасности, включая надежное (AES) шифрование базы данных и шифрование связи SSL / HTTPS. Доступен компонент шифрования, одобренный FIPS, и он достиг Сертификация Common Criteria (ищите Adaptive Server Anywhere) на уровне EAL3 +.

Я должен сказать, что SQL Anywhere не был разработан с учетом безопасности в качестве первичный фокус; Я не знаю ни одного продукта базы данных, который был.