IPC Namespace
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
IPC(Inter-Process Communication)名前空間は、メッセージキュー、共有メモリセグメント、セマフォなどのSystem V IPCオブジェクトの隔離を提供するLinuxカーネルの機能です。この隔離により、異なるIPC名前空間のプロセスは互いのIPCオブジェクトに直接アクセスしたり、変更したりできないため、プロセスグループ間のセキュリティとプライバシーの追加層が提供されます。
新しいIPC名前空間が作成されると、完全に隔離されたSystem V IPCオブジェクトのセットから始まります。これは、新しいIPC名前空間で実行されているプロセスが、デフォルトで他の名前空間やホストシステムのIPCオブジェクトにアクセスしたり干渉したりできないことを意味します。
名前空間内で作成されたIPCオブジェクトは、その名前空間内のプロセスにのみ表示され、アクセス可能です。各IPCオブジェクトは、その名前空間内で一意のキーによって識別されます。異なる名前空間でキーが同じであっても、オブジェクト自体は隔離されており、名前空間を越えてアクセスすることはできません。
プロセスは、setns()
システムコールを使用して名前空間間を移動したり、unshare()
またはclone()
システムコールをCLONE_NEWIPC
フラグと共に使用して新しい名前空間を作成したりできます。プロセスが新しい名前空間に移動するか、新しい名前空間を作成すると、その名前空間に関連付けられたIPCオブジェクトを使用し始めます。
新しいインスタンスの /proc
ファイルシステムを --mount-proc
パラメータを使用してマウントすることで、新しいマウントネームスペースがそのネームスペースに特有のプロセス情報の正確で孤立したビューを持つことを保証します。
また、ルートでない限り他のプロセス名前空間に入ることはできません。そして、ディスクリプタがそれを指していない限り(例えば /proc/self/ns/net
)、他の名前空間に入ることはできません。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)