|
chrootとは、UNIXオペレーティングシステムにおいて、現在のプロセスとその子プロセス群に対してルートディレクトリを変更する操作である。ルートディレクトリを別のディレクトリに変更されたプロセスは、その範囲外のファイルにはアクセスできなくなるため、この操作をchroot監獄などとも呼ぶ。"chroot" は chroot(2) システムコールおよび chroot(8) コマンドを意味する。 chroot システムコールは、1982年3月18日(4.2BSDリリースの17ヶ月前)、ビル・ジョイがインストールおよびビルドシステムのテスト用に作成したのが起源である。 == 用途 == chroot はOSの仮想化され分離されたコピーを作るのに使われる。これには、以下のような用途がある。 ; テストと開発 : 実際に使用中のシステムで評価するには危険と思われる開発中ソフトウェアのテスト環境構築に chroot を使う。 ; 依存関係制御 : ソフトウェアの開発において、ビルドに最低限必要なものだけを用意した環境に chroot して実施することもできる。これにより、意図しないライブラリがリンクされてしまうのを防ぐことができる。 ; 互換性 : 古いソフトウェアや異なるABIを使っているソフトウェアは、場合によっては chroot した環境で実行する必要がある。これは例えば、動的リンクされるライブラリが同じ名前で異なる内容を必要とされる場合があるためである(名前空間の衝突の回避)。 ; 復旧 : ブートできなくなったシステムの復旧において、別のブート媒体(Live CD など)で立ち上げておいて、ダメージのある環境に chroot することがある。UNIXのインストールでも、最初はインストール媒体で立ち上げておいて、最小限インストールした時点で chroot でディスクをルートディレクトリとすることもある。 ; 特権分離 : chroot されたプロセスのオープンしているファイル記述子(ファイル、パイプ、ネットワーク接続など)はそのまま保持されるので、chroot したディレクトリ内に作業用ファイルを残す必要がなく、chroot監獄の設計が簡略化される。これを応用して、特権プログラムの脆弱性のある部分だけを chroot して実行することで不正なファイルアクセスを防ぐことができる。しかし、chroot したとしてもシステムコールができなくなるわけでもなく、ブロックデバイスへのアクセスを拒否するわけでもないため、特権を得た攻撃者にはあまり効果がない。 ; ハニーポット : chroot はネットワークサービスを実行する実システムのシミュレートにも使われる。しかし、chroot はシステムコールを仮想化しないし、ブロックデバイスや仮想ファイルシステム(Linux の /proc や /sys)へのアクセスをブロックしないので、ハニーポットに捉われた攻撃者がハニーポットであることに気づく可能性はある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Chroot」の詳細全文を読む スポンサード リンク
|