소프트웨어 샌드박싱 기초: 제대로 된 격리 환경 설계법
원제 Software sandboxing: The basics (2025)
107 포인트댓글 20
Key Point
개발자가 직접 샌드박싱을 구현할 때 마주치는 함정(사용자 네임스페이스의 보안 문제, 잘못된 도구 선택)을 알 수 있고, 실무에서 피해야 할 접근과 권장하는 방식을 구체적으로 제시한다.
핵심 요약
- Emilua 개발자가 공유하는 샌드박싱 구현 경험과 실무 지침이다.
- 프로세스 권한을 프로그래매틱하게 제한하되 관리자 권한 없이, 권한을 증가시키지 않는 방식이어야 한다.
- setuidgid 같은 전통적 UNIX 도구는 개발자용 샌드박싱에 맞지 않으며, Capsicum(FreeBSD), Seccomp(Linux) 같은 확장 인터페이스가 필요하다.
- Docker로 유명해진 Linux 네임스페이스는 루트 권한 코드 경로를 모든 사용자에게 노출해 보안 위험을 키우므로 신뢰할 수 있는 컨테이너 도구 용도로만 제한해야 한다.
- Landlock 같은 최신 Linux 샌드박싱 메커니즘은 커널 공격 표면을 급증시키지 않도록 설계되었으며, 장기적으로 Linux 네임스페이스에만 의존하는 것은 위험하다.