Насколько безопасна база данных PostgreSQL, если мой сервер украден? - PullRequest
8 голосов
/ 12 мая 2010

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

Помимо предположения пароля, насколько легко получить данные из этой базы данных?

Предположения:

  1. На сервере существует только БД. В PHP-скрипте или чем-то в этом роде нет пароля
  2. Тот, кто украл сервер, является экспертом по восстановлению сервера / БД / жесткого диска
  3. Я не использую шифрование жесткого диска или что-либо, выходящее за рамки нормы для защиты
  4. Я использую Ubuntu Hardy (последняя стабильная версия)

Я пытаюсь понять риски, связанные с получением физического доступа к жестким дискам моего сервера.

Ответы [ 7 ]

4 голосов
/ 12 мая 2010

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

Ditto.

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

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

Шифрование жесткого диска - это тактика задержки - она ​​обеспечит защиту, соответствующую силе алгоритма, силе ключа и надежности пароля, блокирующего доступ к ключу (или возможность установки аппаратного обеспечения с ключом, хранящимся отдельно ). Даже при использовании шифрования предполагается, что это тактика задержки. Рано или поздно злоумышленник пройдет через пространство ключей и выяснит, какой ключ расшифровывает систему.

Защита от несанкционированного доступа - это еще один вариант - найти способ электронного стирания жесткого диска при определенных условиях (например, физическое удаление его из корпуса).

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

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

3 голосов
/ 12 мая 2010

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

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

Я имею в виду, если это сценарий, который может разумно произойти ...

редактирование:

Если бы у меня был файл БД Postgres, в который я хотел попасть, и у меня были ресурсы (т. Е. Я потратил 4 КБ на некоторые дешевые Dells), я бы использовал конфигурацию Беовульфа и выполнял бы параллельный взлом методом перебора. Ситуация ухудшится, если я начну иметь больше денег и смогу настроить, скажем, несколько из тех милых суперкомпьютеров NVidia на компьютере, которые подключены, чтобы действительно начать перебор паролей.

Если вор серьезно относится к этому, и у вас еще не запланирована безопасность с 0-го дня, ваш файл БД будет открыт, как сардина.

2 голосов
/ 12 мая 2010

Если вы не шифруете жесткий диск / файловую систему, вам не повезло, поскольку Postgres не предлагает встроенное шифрование. А шифрование жесткого диска - единственный реальный способ защиты украденного сервера.

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

1 голос
/ 07 октября 2015

Хорошее начало - включить полное шифрование диска. Вы также можете зашифровать на прикладном уровне. (например, зашифровать данные перед отправкой в ​​базу данных, сохранить ключ, недоступный с сервера базы данных)

1 голос
/ 20 мая 2015

Для конкретного опубликованного вопроса (и вопроса, на который я пришел, чтобы найти ответ) Postgresql по умолчанию хранит данные таблицы в незашифрованном виде. Оглядываясь в файлах в ... / pgsql / 9.2 / data / base / * Я бы предположил, что эти таблицы хранятся в виде фрагментов по 1,1 гигабайта, и я могу успешно найти строки ASCII в этих файлах с помощью grep. Из проверки файлов выясняется, что данные хранятся в столбцах.

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

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

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

1 голос
/ 12 мая 2010

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

1 голос
/ 12 мая 2010

Эта статья, кажется, особенно актуальна для вашего вопроса:

Общая безопасность в базе данных PostgreSQL
http://www.ibm.com/developerworks/opensource/library/os-postgresecurity/

...