При запуске системы мне нужно запустить процесс, который требует учетных данных для взаимодействия с другими службами (базой данных и т. Д.). Я, очевидно, не хочу хранить их на диске из соображений безопасности.
Я пытаюсь придумать способ предоставить эти учетные данные процессу при запуске - и только при запуске. После этого они должны быть доступны только процессу.
Возможно ли это как-нибудь? Суть в том, чтобы сделать так, чтобы злоумышленнику было как можно труднее получить эти учетные данные.
Возможно ли это как-то? Суть в том, чтобы сделать так, чтобы злоумышленнику было как можно труднее получить эти учетные данные.
Поместите пароль в файл, доступ к которому имеет только пользователь процессов. Если он начинается как root
, сделать его доступным для чтения root
только. Если он начинается как apache
, затем apache
.
Если он начинается как общий пользователь нравится nobody
(или даже apache
, если веб-сервер не запускает сценарии от имени пользователя, которому они принадлежат), вы застряли. Не существует надежного способа сделать его доступным для чтения только одному процессу в одном конкретном состоянии машины (например, после перезагрузки).
В идеале ваш процесс будет начинаться как root
где вы можете прочитать конфиг, а затем переключиться на непривилегированного пользователя. Это также зависит от уровня доступа ваших пользователей: могут ли они sudo
ты можешь забыть все. Они могут просто strace
процессов, выгрузите память или прослушайте сеть, чтобы увидеть учетные данные.