GitHub - microsoft/litebox: A security-focused library OS supporting kernel- and user-mode execution
핵심 포인트
- 1LiteBox는 호스트와의 인터페이스를 대폭 줄여 공격 표면을 감소시키는 보안 중심의 sandboxing library OS입니다.
- 2이 프로젝트는 다양한 "North" shims와 "South" platform 간의 쉬운 상호 운용성을 위해 설계되었으며, Rust-y nix/rustix 기반의 인터페이스를 제공합니다.
- 3LiteBox는 Windows에서 수정되지 않은 Linux 프로그램 실행, Linux 애플리케이션 sandboxing, SEV SNP 및 OP-TEE와 같은 다양한 환경에서 프로그램 실행을 지원합니다.
LiteBox는 보안에 중점을 둔 "library OS"로, 호스트와의 인터페이스를 대폭 줄여 "attack surface"를 감소시키는 것을 목표로 하는 샌드박싱(sandboxing) 기술입니다. 이 프로젝트는 현재 활발히 개발 중이며, 안정적인 릴리스를 위해 진화하고 있으므로 API 및 인터페이스는 변경될 수 있습니다.
LiteBox의 핵심 방법론은 "North"와 "South" 인터페이스를 통해 다양한 환경 간의 쉬운 상호 운용성(interop)을 제공하는 데 있습니다.
- "North" 인터페이스 (Workload-facing API): 애플리케이션 또는 워크로드가 LiteBox와 상호 작용하는 인터페이스입니다. 이는
nix및rustix와 같은 Rust 기반 시스템 호출 래퍼(system call wrapper)에서 영감을 받은 Rust 친화적인(Rust-y) 인터페이스로 설계되었습니다. 이는 애플리케이션이 일관된 POSIX-like 환경을 볼 수 있도록 추상화 계층을 제공합니다. 애플리케이션은 이 "North" 인터페이스를 통해 파일 시스템, 프로세스 관리, 네트워킹 등 필요한 시스템 서비스를 요청하게 됩니다.
- "South" 인터페이스 (Platform-facing API): LiteBox가 기반으로 하는 실제 하드웨어 또는 운영 체제 플랫폼과 상호 작용하는 인터페이스입니다. LiteBox는 이 "Platform" 인터페이스를 통해 호스트 시스템의 기능을 사용합니다. 이는 다양한 하위 계층 플랫폼, 예를 들어 리눅스 커널, 리눅스 사용자랜드(userland), Windows 사용자랜드, OP-TEE, SEV SNP 또는 LVBS(LiteBox Virtualization-Based Security)와 같은 특정 보안 환경과 연결될 수 있습니다. LiteBox의 "sandboxing" 및 "attack surface reduction"은 이 "South" 인터페이스를 통해 호스트에 노출되는 기능을 최소화함으로써 달성됩니다.
이러한 "North" 및 "South" 인터페이스의 분리를 통해 LiteBox는 커널 모드(kernel-mode) 및 비-커널 모드(non-kernel scenarios) 모두에서 실행될 수 있습니다.
예시 사용 사례는 다음과 같습니다:
- Windows에서 수정되지 않은 리눅스 프로그램 실행 (Linux applications on Windows).
- 리눅스에서 리눅스 애플리케이션 샌드박싱 (Sandboxing Linux applications on Linux).
- SEV SNP(Secure Encrypted Virtualization-Secure Nested Paging) 상에서 프로그램 실행.
- 리눅스에서 OP-TEE(Open Portable Trusted Execution Environment) 프로그램 실행.
- LVBS(LiteBox Virtualization-Based Security) 환경에서 실행.
이 프로젝트는 MIT 라이선스를 따르며, 기여(contributing), 행동 강령(code of conduct), 보안(security), 및 지원(support)에 대한 지침은 관련 파일에 명시되어 있습니다.