Насколько безопасна база данных PostgreSQL, если мой сервер украден?

StackOverflow https://stackoverflow.com/questions/2820831

Вопрос

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

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

Допущения:

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

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

Это было полезно?

Решение

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

То же самое.

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

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

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

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

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

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

Другие советы

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

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

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

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

Если бы у меня был файл DB Postgres DB, я хотел войти, и у меня были ресурсы (т. Е. Проводят 4К для некоторых дешевых Dells), я бы использовал конфигурацию Beowulf и выполнять параллельное растрескивание грубой силой. Вещи ухудшаются, если я начну иметь больше денег и можете настроить, скажем, несколько из этих сладких машин NVIDIA SuperComputer-на настольных компьютерах, подключенных к тому, чтобы действительно начать принуждать пароль.

Если вор серьезно относится к попаданию в него, и у вас нет безопасности, уже запланированных с дна 0, ваш файл DB будет открыт как сардина.

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

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

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

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

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

Для конкретного вопроса, опубликованного (и тот, который я пришел в поисках ответа на), PostgreSQL по умолчанию хранит данные таблицы незашифрованные. Оглядываясь в файлы в ... / PGSQL / 9.2 / Data / Base / * Я догадался бы, что эти таблицы магазина в 1,1 гигабайтных кусках, и я могу успешно найти строки ASCII в этих файлах с GREP. От проверки файлов кажется, что данные хранятся в столбцах.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top