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