Риски безопасности PermitUserEnvironment в SSH

11

Я прочитал довольно много постов, касающихся использования PermitUserEnvironmentи файла ~/.ssh/environmentдля передачи переменных env в оболочку ssh. Официальные sshd-документы и некоторые другие ресурсы ссылаются на некоторые угрозы безопасности, связанные с этим.

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

Каковы вероятные проблемы безопасности активации PermitUserEnvironment? Я хотел сохранить детали подключения к БД в этих переменных среды, это целесообразно?

Роб Сквайрс
источник
Я подал отчет об ошибке в проект OpenSSH, попросив их добавить несколько слов на страницу руководства sshd_config, прояснив эту проблему: bugzilla.mindrot.org/show_bug.cgi?id=2317
Флорин Андрей

Ответы:

16

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

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

Если вы используете принудительные команды SSH для ограничения того, что люди могут делать через ssh (например, если вы ограничиваете людей только использованием sftpили scp), разрешение кому-либо устанавливать переменные среды, такие как LD_PRELOAD(или, возможно, даже PATH), позволит им перехватить ваш файл. ограничения путем замены базовых библиотечных вызовов своим собственным кодом. С другой стороны, если вы создаете учетную запись .ssh/environmentот имени своих пользователей, и они не могут управлять ею, ваши риски относительно невелики.

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

larsks
источник
Я разрешаю доступ к серверу только 2 или 3 доверенным сторонам (разработчикам в нашей собственной организации) через их ключи rsa. Так что из того, что вы говорите, это звучит нормально
Роб Сквайрс
Из вашего ответа я понимаю, что я не должен забывать о последствиях безопасности для включения этой опции, если все мои учетные записи ssh предоставляют полный доступ bash (без sudo). Верный?
Флорин Андрей
Правильно. Если вы предоставляете полный доступ к bash, люди уже могут устанавливать любые переменные среды, которые они хотят.
Жаворонки