Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
Очевидно не гуд хранить данные наподобие кредов в открытом виде. Особенно в открытом репозитории.
Для примера есть у нас spring boot application с традиционным applcation.properties в котором удобно прописать урл к базе и логин с паролем. Но ведь этот файл лежит в репозитории и его видно.

Говорят, что безопасно можно хранить в каком-нить Vault(https://www.vaultproject.io/)

Вот собсно спринг команда запилила проект специально для Vault и дала пример:

https://spring.io/guides/gs/vault-config/

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

Проясните ситуацию, плиз
19 мар 20, 16:52    [22102380]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
questioner,

Оракле при записи пароля смотрит, человек ли его записал (не шифрован).
Если человек то стирает и пишет зашифрованную версию.
19 мар 20, 17:00    [22102399]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
PetroNotC Sharp
questioner,

Оракле при записи пароля смотрит, человек ли его записал (не шифрован).
Если человек то стирает и пишет зашифрованную версию.


Spring security тоже хранит пароли в шифрованном виде и по этому хешу нельзя вычислить оригинал, зато легко проверить матчится ли строка на хеш, НО вопрос не про Оракл и не про spring security
19 мар 20, 17:06    [22102411]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
SpringMan
Member

Откуда:
Сообщений: 139
questioner
если этот токен в репозитории хранить

Ну так его не надо хранить в репозитории. Он хранится в специальных_админских_шнягах, которые прокидывают его в приложение через параметры/переменные окружения при старте. А вот эти специальные_админские_шняги уже запаролены.
Для обычных логинов и паролей к базе тут аналогично на самом деле.

Сообщение было отредактировано: 19 мар 20, 17:16
19 мар 20, 17:16    [22102435]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
questioner,
А про что вопрос?
Переведите ваши опасения про матчится....
19 мар 20, 17:17    [22102440]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
chpasha
Member

Откуда:
Сообщений: 9050
questioner
Но ведь этот файл лежит в репозитории и его видно

но ведь репозитарий в свою очередь тоже защищен от несанкционированного доступа. а если не достаточно, то не храните в репозитарии, храните только непосредственно на сервере, где приложение работает. сервер-то достаточно защищен или тоже нет?
19 мар 20, 17:23    [22102454]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
chpasha,
Репо же разработчиков. Не боевой?
Или я что то не понял?
19 мар 20, 17:25    [22102460]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
PetroNotC Sharp
questioner,
А про что вопрос?
Переведите ваши опасения про матчится....


Где опасения?

Вопрос про хранение secrets
19 мар 20, 17:44    [22102484]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
SpringMan
questioner
если этот токен в репозитории хранить

Ну так его не надо хранить в репозитории. Он хранится в специальных_админских_шнягах, которые прокидывают его в приложение через параметры/переменные окружения при старте. А вот эти специальные_админские_шняги уже запаролены.
Для обычных логинов и паролей к базе тут аналогично на самом деле.


специальная_админская_шняга это кубернетис например?
19 мар 20, 17:46    [22102485]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
chpasha
questioner
Но ведь этот файл лежит в репозитории и его видно

но ведь репозитарий в свою очередь тоже защищен от несанкционированного доступа. а если не достаточно, то не храните в репозитарии, храните только непосредственно на сервере, где приложение работает. сервер-то достаточно защищен или тоже нет?


Если репка защищена, то можно все конфиги прямо в ней и хранить, но зачем тогда Vault ? Что такого он даёт?

Сообщение было отредактировано: 19 мар 20, 17:47
19 мар 20, 17:47    [22102486]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
SpringMan
Member

Откуда:
Сообщений: 139
questioner

специальная_админская_шняга это кубернетис например?

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

Сообщение было отредактировано: 19 мар 20, 17:55
19 мар 20, 17:56    [22102491]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
SpringMan
этот токен может знать каждый, но доступ до сервера, который этот токен обработает есть только с определенных машин.


Вот это кстати тема. Действительно, возможно, в Vault можно ограничить доступ для определенной подсети.
19 мар 20, 18:04    [22102497]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
questioner
SpringMan
этот токен может знать каждый, но доступ до сервера, который этот токен обработает есть только с определенных машин.


Вот это кстати тема. Действительно, возможно, в Vault можно ограничить доступ для определенной подсети.


Но что-то нагуглить не смог я ничего по запросу Vault ip white listing
19 мар 20, 18:46    [22102513]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
questioner
Где опасения?
конкретнее.
Админского пароля к бд там нет. Есть пароль юзверя от приложения.
Нвпример
- логин = Склад
- пароль = 12346
Это для приложения склад.
Далее, этим паролем нельзя зайти снаружи.
Прлучается у тебя паранойя.
19 мар 20, 19:18    [22102534]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
questioner
Говорят, что безопасно можно хранить в каком-нить Vault(https://www.vaultproject.io/)
который сам имеет дырки))))
19 мар 20, 19:19    [22102536]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
PetroNotC Sharp,

PetroNotC Sharp
Далее, этим паролем нельзя зайти снаружи.


Если вайтлистинг есть?

Какая разница админ юзер или не админ если даже этот юзер может вычистить все данные из таблиц
19 мар 20, 21:18    [22102592]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45469
Автор посмотри проект http://www.jasypt.org/

В нем решена проблема безопасного хранения паролей в исходниках и конфигах.
19 мар 20, 21:22    [22102594]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5179
mayton
Автор посмотри проект http://www.jasypt.org/

В нем решена проблема безопасного хранения паролей в исходниках и конфигах.


Можно еще посмотреть проект Spring Cloud.
Где есть инструменты для хранения и получения настроек с выделенного сервера.
Но jasypt гораздо проще в использовании.
20 мар 20, 05:41    [22102645]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
questioner
Если вайтлистинг есть?
мммм подробнее. Это что? И почему появится возможность сделать drop table снаружи?
Обычно бд вообще снаружи на порту не висит. Ты о чем?
questioner
Какая разница админ юзер или не админ если даже этот юзер может вычистить все данные из таблиц

Что то у тебя все без разницы - root опрерационки, sys субд и чтение/запись бд "блокнотик" у тебя все на одно лицо.
А защита это эшелонированная оборона.
Имея пароль приложения блокнотик, ты не зальешь туда скрипт чтобы выполнить свой вредоносный код.
Паранойя.

Сообщение было отредактировано: 20 мар 20, 07:36
20 мар 20, 07:37    [22102662]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
mayton
Автор посмотри проект http://www.jasypt.org/

В нем решена проблема безопасного хранения паролей в исходниках и конфигах.
если прогер сам читает /пишет пароль в исходниках, то кто мешает закодировать его MD5?
Если это делает волшебство спринга, тогда конечно)
20 мар 20, 07:41    [22102663]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45469
Я не понял причину беспокойства.

Опиши какая видеться угроза. И мы подумаем как это фиксить.
20 мар 20, 08:31    [22102674]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
just_vladimir
Member

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

Вторая потенциальная проблема, это то, что properties файл это plain text, а нужно сделать так, чтобы глазками пароль в явном виде никто не мог увидеть, вот тут и появляются всякие vault'ы, и тогда в plain text (в properties файле) мы храним ссылку на идентификатор пароля, а не сам пароль, а дальше приложение обращается к хранилищу и получает пароль по идентифкатору.
20 мар 20, 15:08    [22103004]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
questioner
Member

Откуда:
Сообщений: 1878
just_vladimir
Храните в репозитории исходных кодов только шаблон настроечного файла, а не сами настройки. Каждое окружение куда выполняется деплой должно иметь свою копию этого настроечного файла, которое лежит рядом с приложением и не затирается при обновлении приложения, изменения в этот настроечный файл могут внести только администраторы соответствующего сервера.

Вторая потенциальная проблема, это то, что properties файл это plain text, а нужно сделать так, чтобы глазками пароль в явном виде никто не мог увидеть, вот тут и появляются всякие vault'ы, и тогда в plain text (в properties файле) мы храним ссылку на идентификатор пароля, а не сам пароль, а дальше приложение обращается к хранилищу и получает пароль по идентифкатору.

а если это AWS виртуалка? через ci/cd прокидывать этот файл ? где этот ci/cd будет брать этот файл?

Что такое идентификатор пароля? в чем его предназначение ?
20 мар 20, 16:20    [22103049]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45469
questioner
just_vladimir
Храните в репозитории исходных кодов только шаблон настроечного файла, а не сами настройки. Каждое окружение куда выполняется деплой должно иметь свою копию этого настроечного файла, которое лежит рядом с приложением и не затирается при обновлении приложения, изменения в этот настроечный файл могут внести только администраторы соответствующего сервера.

Вторая потенциальная проблема, это то, что properties файл это plain text, а нужно сделать так, чтобы глазками пароль в явном виде никто не мог увидеть, вот тут и появляются всякие vault'ы, и тогда в plain text (в properties файле) мы храним ссылку на идентификатор пароля, а не сам пароль, а дальше приложение обращается к хранилищу и получает пароль по идентифкатору.

а если это AWS виртуалка? через ci/cd прокидывать этот файл ? где этот ci/cd будет брать этот файл?

Что такое идентификатор пароля? в чем его предназначение ?

Ничего никуда прокидывать не надо. AWS-security это вообще отдельная тема. У них есть своя коробочная
технология IAM roles. Вообще их идея заключается в том чтобы полностью разделить код и безопасность.
Код пишут разрабы. И указывают в cloudformation скриптах только НАЗВАНИЯ ОБЪЕКТОВ и ДЕЙСТВИЯ
которые они хотят над объектом делать. Вся остальная часть отдается админам и девопсам. Они ведают
ключами и прописывают их и енваронменты для всех сервисов облака (EC2, RDS, S3, Lambda e.t.c.)
20 мар 20, 16:56    [22103080]     Ответить | Цитировать Сообщить модератору
 Re: [Vault] Как хранить sensitive данные в проекте ? (креды от баз данных и прочее)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
questioner
а если это AWS виртуалка?
хм...
Облачные технологии всплыли.
Топик про них что ли?
20 мар 20, 17:43    [22103130]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить