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()
시스템 호출을 사용하여 네임스페이스 간에 이동하거나 CLONE_NEWIPC
플래그와 함께 unshare()
또는 clone()
시스템 호출을 사용하여 새로운 네임스페이스를 생성할 수 있습니다. 프로세스가 새로운 네임스페이스로 이동하거나 생성할 때, 해당 네임스페이스와 연결된 IPC 객체를 사용하기 시작합니다.
새로운 인스턴스의 /proc
파일 시스템을 --mount-proc
매개변수를 사용하여 마운트하면, 새로운 마운트 네임스페이스가 해당 네임스페이스에 특정한 프로세스 정보에 대한 정확하고 격리된 뷰를 갖도록 보장합니다.
또한, 루트일 경우에만 다른 프로세스 네임스페이스에 들어갈 수 있습니다. 그리고 디스크립터가 그것을 가리키지 않는 한 다른 네임스페이스에 들어갈 수 없습니다 (예: /proc/self/ns/net
).
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)