![fakechroot はセキュリティ上の欠陥ですか?](https://rvso.com/image/1642386/fakechroot%20%E3%81%AF%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E4%B8%8A%E3%81%AE%E6%AC%A0%E9%99%A5%E3%81%A7%E3%81%99%E3%81%8B%3F%20.png)
最近、 についてさらに詳しく知りましたfakechroot
。私の知る限り、 は chroot であってもユーザー権限を昇格するため危険であるようです。 は知っていますfakeroot
が、ルートを必要とする操作は何もできないため、同じではありません。
ただし、 chroot 内では実際に root 権限を必要とする操作を実行できます。つまり、通常のユーザーを使用して chroot を root 化し、ホスト上で root として抜け出す可能性があるfakechroot
ということですか?fakechroot
マニュアルページには、fakechroot
ユーザー権限は昇格されないと書いてありますが、完全に理解できているかどうかはわかりません。
答え1
一部の Linux アプリケーションは、現在のユーザーが である場合にのみ動作しますroot
。これらのアプリケーションのほとんどは Linux 自体の変更に関係するため、一般ユーザーからは保護されています。
root
ただし、一般ユーザーとして作業しているときに、特定の目的のために一時的にこれらのコマンドを使用する場合にのみ、権限を昇格せずにこのようなコマンドを実行したい場合があります。
このようなコマンドは現在のユーザーで実行され、実行中の Linux バージョンに実際の影響を与えないため、セキュリティ上の欠陥にはなりません。
このようなコマンドの最も良い例は ですfakeroot
。その機能は演じる実際にはこのようなことは起こらないものの、現在のユーザーが であることがわかりますroot
。
これにより、root として実行されることを想定しているプログラムが、root を必要とする操作が成功したと誤って認識しながら、実際には通常のユーザーとして実行される可能性があります。
chown root:root
これは通常、パッケージをビルドするときに使用され、 、またはinstall -o root
など を実行しても、インストールされるパッケージのインストール プロセスがエラーなしで続行できるようにします。 は、これらのファイルに与えた偽の所有権を記憶しているため、所有権を検査する後続の操作では、実際の所有者ではなく が所有者としてfakeroot
認識されます。root
これにより、たとえば、後続のtar
実行でファイルを root が所有するものとして保存できるようになります。fakeroot
この場合、root が所有し suid されたファイルを含む tarball が作成されます。ただし、権限の昇格なしで root として実行しない限り、その tarball を抽出してそれらの権限を保持することはできません。
fakeroot
こうすると、通常のユーザーとしてビルドを実行できるようになります。その際、ビルドがルートとして実行された場合に得られる効果は保持され、後でそれを再現できるようになります。効果を「実際に」適用するには、実際のルート権限が必要になりますが、これをfakeroot
取得する方法は提供されていません。
もう一つの例は偽ルートは、
fakechroot
通常の非 setuid プログラムです。ユーザーの権限を強化したり、システムのセキュリティを低下させたりすることはありません。ルート権限なしで chroot(8) コマンドを使用できる環境を作成します。これは、apt
ルート権限を必要とせずにパッケージのインストールを呼び出すのに役立ちます。ユーザーは、このようにして、システム上の他のユーザーに影響を与えることなく、自分の小さなバブル内にルート環境を作成します。
fakechroot
機能は提供されないfakeroot
ため、コマンドfakechroot
を介して呼び出す必要がありますfakeroot
。これら 2 つのコマンドは補完的であり、多くの場合一緒に使用されます。