web-dev-qa-db-ja.com

SSHでのPermitUserEnvironmentのセキュリティリスク

環境変数をsshシェルに渡すためのPermitUserEnvironmentとファイル~/.ssh/environmentの使用に関する投稿をかなり読みました。公式の sshd docs と他のいくつかのリソースは、これを行うことのいくつかのセキュリティリスクを暗示しています。

環境処理を有効にすると、ユーザーは、LD_PRELOADなどのメカニズムを使用して、一部の構成でアクセス制限を回避できる場合があります。

PermitUserEnvironmentをアクティブ化することで発生する可能性のあるセキュリティの問題は何ですか?これらの環境変数にDB接続の詳細を保持しようとしていましたが、これはお勧めですか?

11
Rob Squires

まず最初に、ユーザーアクセス制限で特別なことをしようとしない場合、つまり、対話型のシェルアクセスを提供する場合は、おそらくゼロ追加使用を許可することによるセキュリティリスクがあります。 .ssh/environmentファイル。ユーザーがそのファイルを使用して実行できることは何であるため、シェルでインタラクティブに実行することもできます。

環境処理を有効にすると、ユーザーは、LD_PRELOADなどのメカニズムを使用して、一部の構成でアクセス制限をバイパスできる場合があります。

SSH強制コマンドを使用して、sshを介して実行できる操作を制限している場合(たとえば、sftpまたはscpのみを使用するように制限している場合)、環境変数を設定できるようにするなので LD_PRELOAD(場合によってはPATH)でも、基本的なライブラリ呼び出しを独自のコードに置き換えることで、制限をハイジャックすることができます。一方、.ssh/environmentユーザーに代わってユーザーがそれを管理できない場合、リスクは比較的小さくなります。

特定のユースケースについての詳細を知らなければ、明確な答えを提供することは困難です。

16
larsks