[논문 리뷰] Apptainer Without Setuid
이 논문은 Apptainer(이전 이름: Singularity)를 위한 루트리스, setuid-free 아키텍처를 제안하며, 사용자 네임스페이스, FUSE, 그리고 현대적인 리눅스 파일시스템(squashfs 및 overlay)을 활용해 비권한 사용자가 컨테이너를 생성하고 실행하며 안전하게 암호화할 수 있도록 한다. 주요 기여는 /etc/subuid 및 /etc/subgid의 시스템 관리자 설정이 필요 없이도 비권한 사용자에게 컨테이너 작업(중첩 실행 및 SIF 전체 암호화 포함)을 네이티브로 지원함과 동시에, 권한이 높은 접근 방식과 비교해 성능이 유사한 것을 유지한다는 점이다.
Apptainer (formerly known as Singularity) since its beginning implemented many of its container features with the assistance of a setuid-root program. It still supports that mode, but as of version 1.1.0 it no longer uses setuid by default. This is feasible because it now can mount squashfs filesystems, ext3 filesystems, and overlay filesystems using unprivileged user namespaces and FUSE. It also now enables unprivileged users to build containers, even without requiring system administrators to configure /etc/subuid and /etc/subgid unlike other "rootless" container systems. As a result, all the unprivileged functions can be used nested inside of another container, even if the container runtime prevents any elevated privileges. As of version 1.2.0 Apptainer also supports completely unprivileged encryption of Singularity Image Format (SIF) container files. Performance with a particularly challenging HEP benchmark using the FUSE-based mounts both with and without encryption is essentially identical to the previous methods that required elevated privileges to use the Linux kernel-based counterparts.
연구 동기 및 목표
- Apptainer에서 루트 권한을 가진 프로그램에 의존하는 것을 제거하여 보안성과 사용성 향상.
- 시스템 수준의 /etc/subuid 및 /etc/subgid 설정이 필요 없이도 비권한 사용자가 컨테이너를 빌드하고 실행할 수 있도록 하기.
- 비권한 환경에서 완전한 컨테이너 암호화 및 중첩 컨테이너 실행을 지원하기.
- 권한이 높은 컨테이너 실행 방식과 비교해 높은 성능 유지하기.
제안 방법
- 권한이 높지 않은 사용자 네임스페이스를 활용해, 승격된 권한 없이도 컨테이너 프로세스를 격리.
- squashfs, ext3, overlay 파일시스템에 대한 FUSE 기반 마운트를 사용해 커널 수준의 권한 없이도 컨테이너 이미지에 접근 가능하게 하기.
- 커널 기반 setuid 메커니즘을 대체하기 위해 사용자 공간 파일시스템 작업을 구현해 컨테이너 이미지 마운트.
- 사용자 공간 암호화를 통한 비권한 SIF 컨테이너 파일 암호화 통합으로, 승격된 키 관리 필요 없음.
- 호스트 컨테이너 런타임이 승격된 권한을 차단하는 환경에서도 중첩 컨테이너 실행을 지원하는 런타임 아키텍처 설계.
- 시스템 수준의 사용자 ID 매핑 설정에 의존하지 않고도 전체 컨테이너 빌드 프로세스를 비권한 사용자 네임스페이스 내에서 수행하도록 구현.
실험 결과
연구 질문
- RQ1Apptainer는 setuid-root 프로그램이 필요 없이도 완전한 컨테이너 기능과 보안성을 유지할 수 있는가?
- RQ2시스템 관리자 설정 없이도 비권한 사용자가 컨테이너를 빌드하고 실행할 수 있는가?
- RQ3FUSE 기반 파일시스템 마운트가 커널 기반의 권한이 높은 마운트와 비교해 성능이 유사한가?
- RQ4권한이 높지 않은 사용자 공간 방식으로 완전한 컨테이너 암호화를 구현할 수 있는가?
- RQ5승격된 권한이 허용되지 않는 환경에서 컨테이너 작업이 안전하게 중첩 실행 가능한가?
주요 결과
- Apptainer 1.2.0은 setuid나 시스템 수준의 사용자 ID 매핑 설정 없이도 비권한 사용자가 컨테이너를 생성하고 실행하며 암호화하는 데 완전히 지원한다.
- 어려운 HEP 벤치마크에서 FUSE 기반 마운트의 성능(암호화 유무에 관계없이)은 이전의 권한이 높은 커널 기반 방법과 거의 동일하다.
- 비권한 사용자는 이제 제한된 환경에서도 시스템 관리자의 간섭 없이 컨테이너를 빌드하고 실행할 수 있다.
- 비권한 모드에서도 중첩 컨테이너 실행이 완전히 지원되어 안전하고 격리된 실행 체인을 구현할 수 있다.
- SIF(Singularity Image Format) 파일의 완전한 암호화가 이제 비권한 모드에서 네이티브로 지원되며, 승격된 구성 요소에 의존하지 않는다.
- setuid-free 아키텍처로의 전환은 보안성이나 기능성에 손상 없이 사용성 향상과 공격 표면 감소를 크게 개선한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.