run0、systemd の sudo の透過的な代替品

run0: sudo の安全な代替品

次のバージョンの開発 systemd 256 は進行中で、現在 80% 近く完了しています。 そしてXNUMXつ 提示される変更候補のうち このリリースには、systemd の同じ作成者「Lennart Pottering」が参加しており、彼はマストドン上の出版物を通じて、システムの導入を発表しました。 「run0」という新しいユーティリティ。

このツール sudo のより安全な代替手段として提供されます。 systemd-run コマンドを補完するものとして機能します。主な利点は、危険な可能性がある SUID フラグを指定した実行可能ファイルを使用する必要がなくなることです。 run0 は、他のユーザーの識別子を使用してプロセスをより安全に実行するように設計されていると述べられています。

ポエタリング sudo の代替手段の導入は、sudo の中心的な問題は SUID の性質にあるためであると主張しています。 セキュリティを損なう可能性があります。これに対応して、systemd 256 からは、非特権コードの介入とは独立して特権で動作するよう努めます。 sudo で SUID フラグを使用して識別子を変更すると、追加のリスクが伴います。これは、SUID プロセスが、特権のないユーザーによって制御される多くのプロパティを含む実行コンテキストを継承するためです。

SUID プロセスは外部の概念です。これらは非特権コードによって呼び出され、非特権コードによって意図および制御される実行コンテキストを継承します。実行コンテキストとは、環境変数、プロセス スケジューリング プロパティ、cgroup 割り当て、セキュリティ コンテキスト、渡されたファイル記述子など、現在の Linux でプロセスが持つ多数のプロパティを意味します。

これらのプロパティ 環境変数、ファイル記述子、プログラマ オプション、グループ バインディングを含めることができます。これらのプロパティの一部は SUID プロセスのカーネルによって自動的に削除され、その他のプロパティはアプリケーション自体によって削除されますが、特権のないユーザーによる外部データの不注意な取り扱いにより、sudo などの複雑な SUID プログラムには脆弱性が依然として見つかります。

対照的に、 run0 は SUID を使用せず、代わりにシステム管理者に特定のユーザー ID でシェルまたはプロセスを開始するように要求します。 その後、新しい疑似端末 (PTY) を作成し、それと現在の端末 (TTY) の間のデータ転送を処理します。この動作は、従来の sudo よりも ssh 経由での実行を彷彿とさせます。特権プロセスは、ユーザー プロセスではなく、PID 1 プロセスによって生成された分離コンテキストで実行されます。つまり、転送される $TERM 環境変数を除き、ユーザーの環境のプロパティを継承しません。さらに、転送は、ブラックリストではなくホワイトリストのアプローチに従って、明示的に許可されたプロパティのリストを通じて制御されます。

Polkit は run0 でのユーザー機能の承認と決定を担当しますが、sudo で使用されるクラシック ルール言語 (/etc/sudoers) はこのツールではサポートされていません。他の権限でプログラムを実行する機能が systemd-run に組み込まれており、run0 コマンドが systemd-run へのシンボリック リンクとして作成され、使用時に sudo のようなコマンド ライン インターフェイスが提供されます。

しかし、安全に関する話はこれくらいにしておきましょう。このツールは、sudo よりもはるかに楽しい使い方ができます。たとえば、デフォルトでは、昇格された特権で操作している間、端末の背景が赤みがかった色調になります。これは、まだ特権を放棄していないことを通知するものであり、適切な特権で実行されたすべてのコマンドが終了したことを示します。

追加機能 run0 の 高い権限で作業していることを視覚的に示す。これは、端末で赤みがかった背景を設定し、ウィンドウのタイトルに赤い点を追加することで実現されます。昇格した特権で実行を終了すると、ドットが消え、背景が通常に戻ります。さらに、run0 はすべての実行オプションをサポートします。 "systemd-run"、パラメータとして "--property"これにより、systemd サービスの任意の構成を設定できます。CPUWeight=200 MemoryMax=2G IPAccounting=yes"

あなたがそれについてもっと知りたいなら、あなたは詳細を調べることができます 次のリンクで。