Ssh中PermitUserEnvironment的安全风险

Rob*_*res 6 security ssh environment-variables production-environment

我已经阅读了很多关于使用PermitUserEnvironment和文件的帖子~/.ssh/environment,以便将env变量传递给ssh shell.官方的sshd文档和一些其他资源暗示了这样做的一些安全风险.

Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD.
Run Code Online (Sandbox Code Playgroud)

激活可能存在哪些安全问题PermitUserEnvironment?我想在这些环境变量中保存数据库连接细节,这是可取的吗?

谢谢

Pet*_*ter 5

它适用于通过使用自定义 shell 以某种方式限制用户的情况 - 如果用户能够设置 LD_PRELOAD 那么他们可以通过拦截标准库调用以远程计算机上的用户身份执行代码。

一个简单的例子可能是,如果您通过将仅 SFTP 用户的 shell 设置为动态链接的 /bin/false 来禁用其登录 - 如果他们能够修改 ~/.ssh/environment 或 ~/.ssh/authorized_keys然后他们可以添加 LD_PRELOAD=nefarious.so