
man visudo
説明 visudo は (デフォルトでは)EDITOR
環境VISUAL
変数を使用しません。
状態
「visudoが使用するエディタがシェルエスケープを許可している場合、ユーザーがrootシェルを取得するのを防ぐ簡単な方法はありません。」
今、セキュリティリスクが正確にどこにあるのか混乱しています。私は信じる
- ルートのみvisudoを使用して編集できます。
/etc/sudoers
- ルートのみがルートの環境変数を変更できます。
- ルートにはすでにルートシェルがあります
これがうまくいかないユースケースがあるかもしれませんが、考えることはできません。
答え1
厳密に言えば、ランダムエディタを実行すると追加のセキュリティリスクが発生するとは思われませんvisudo
。明らかに、これを実行しているユーザーはvisudo
すでに編集権限を持っているため、/etc/sudoers
システムで他のコマンドを実行できるようにするルールを追加できます。したがって、実行しているエディタに関係なく、ユーザーはvisudo
新しいsudoルールを追加して、必要なものを間接的に実行できます。
EDITOR
私の考えでは、環境変数に関するドキュメントのアドバイスは、VISUAL
sudoの標準ロギングをバイパスしながらルートシェル(または任意のコマンド)を実行することです。デフォルトでは、sudo はすべての成功と失敗の認証をシステムログに記録します。これにより、ユーザーがsudoを介してどのコマンドを実行したかについての監査証跡がシステム管理者に提供されます。ユーザーが変更した場合は、/etc/sudoers
チェックサムvisudo
またはファイルビューで確認できます。ただし、ユーザーがルートシェルを取得できる場合は、監査証跡なしでvisudo
任意のコマンドを実行できます。
したがって、セキュリティリスクは実行権限を付与するのと同じですsudo bash
。つまり、この権限を持つユーザーは、コマンドの実行を制限または記録することなく、ルートシェルを取得して任意のコードを実行できます。