Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gvisor — 사용자 공간 애플리케이션 커널로 시스템 호출을 가로채고 호스트 커널 접근을 제한하며, OCI 런타임을 통해 Docker/Kubernetes와 통합하여 컨테이너를 샌드박싱합니다. | Kitploit
도구/GitHubGitHub/google/gvisor
Cloud Infrastructure SecurityDefensive ToolsContainer SecuritySecurity VirtualizationCloud Security
GitHubgoogle/gvisor

gvisor

사용자 공간 애플리케이션 커널로 시스템 호출을 가로채고 호스트 커널 접근을 제한하며, OCI 런타임을 통해 Docker/Kubernetes와 통합하여 컨테이너를 샌드박싱합니다.

저장소 보기
19.1k1.9k1일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

gVisor

Build status Issue reviver CodeQL gVisor chat code search

gVisor란 무엇인가?

gVisor는 실행 중인 애플리케이션과 호스트 운영 체제 사이에 강력한 격리 계층을 제공합니다. Linux 유사 인터페이스를 구현하는 애플리케이션 커널입니다. Linux와 달리 메모리 안전 언어(Go)로 작성되었으며 사용자 공간에서 실행됩니다.

gVisor는 Open Container Initiative (OCI) 런타임인 runsc를 포함하며, 이를 통해 기존 컨테이너 도구와 쉽게 연동할 수 있습니다. runsc 런타임은 Docker 및 Kubernetes와 통합되어 샌드박스 컨테이너를 간단히 실행할 수 있게 해줍니다.

gVisor가 아닌 것은?

  • gVisor는 시스콜 필터(예: seccomp-bpf)도 아니고, Linux 격리 프리미티브(예: firejail, AppArmor 등)를 감싸는 래퍼도 아닙니다.
  • gVisor는 또한 일상적인 의미의 VM(예: VirtualBox, QEMU)도 아닙니다.

gVisor는 독특한 제3의 접근 방식을 취하며, 일반 사용자 공간 애플리케이션의 낮은 리소스 사용량, 빠른 시작, 유연성을 유지하면서 VM의 많은 보안 이점을 제공합니다.

gVisor는 왜 존재하는가?

컨테이너는 샌드박스가 아닙니다. 컨테이너는 애플리케이션을 개발, 패키징, 배포하는 방식을 혁신했지만, 추가 격리 없이 신뢰할 수 없거나 잠재적으로 악의적인 코드를 실행하는 데 사용하는 것은 좋은 생각이 아닙니다. 단일 공유 커널을 사용하면 효율성과 성능 향상을 얻을 수 있지만, 단 하나의 취약점으로 컨테이너 탈출이 가능하다는 의미이기도 합니다.

gVisor는 컨테이너를 위한 애플리케이션 커널입니다. 애플리케이션이 기대하는 모든 기능에 대한 접근을 제공하면서도, 애플리케이션이 접근할 수 있는 호스트 커널 표면을 제한합니다. 대부분의 커널과 달리 gVisor는 고정된 물리적 리소스 집합을 가정하거나 요구하지 않습니다. 대신 기존 호스트 커널 기능을 활용하여 일반 프로세스로 실행됩니다. 즉, gVisor는 Linux를 통해 Linux를 구현합니다.

gVisor는 외부 위협으로부터 컨테이너를 강화하거나, 추가 무결성 검사를 제공하거나, 서비스의 접근 범위를 제한하는 기술 및 도구와 혼동해서는 안 됩니다. 어떤 데이터를 컨테이너에 제공할지 항상 주의해야 합니다.

문서

빠른 시작 가이드를 포함한 사용자 문서와 기술 아키텍처는 gvisor.dev에서 확인할 수 있습니다.

소스에서 설치하기

gVisor는 x86_64 및 ARM64에서 빌드됩니다. 다른 아키텍처는 향후 지원될 수 있습니다.

이 지침에서는 bazel 및 기타 빌드 종속 항목이 빌드 컨테이너에 포함되어 있습니다. bazel을 직접 사용하거나 표준 대상을 확인하려면 make help를 입력할 수 있습니다.

요구 사항

다음 종속 항목이 설치되어 있는지 확인하세요:

  • Linux 5.6+
  • Docker 버전 17.09.0 이상

빌드

runsc, containerd-shim-runsc-v1 containerd shim, 그리고 runsc가 자신의 옆에 있는 gvisor-bin/ 디렉터리에서 찾을 것으로 기대하는 몇 가지 사이드카 바이너리가 포함된 릴리스 tarball을 빌드한 다음 /usr/local/bin에 압축을 풉니다:

root@kitploit:~
make release-tarball DESTINATION=bin/
sudo tar -C /usr/local/bin -xf bin/gvisor.tar.bz2

특정 라이브러리나 바이너리를 빌드하려면 대상을 지정할 수 있습니다:

root@kitploit:~
make build TARGETS="//pkg/tcpip:tcpip"

Bazel로 직접 빌드하기 (Docker 없이)

추가 오버헤드 때문에 Bazel을 직접 사용하는 것은 권장되지 않지만, 시작하려면 다음을 따르세요:

  • 필요한 종속 항목의 표준 목록은 빌드 dockerfile을 참조하세요.
  • bazelisk를 설치하고 사용하세요. 그렇지 않으면 bazel 버전이 .bazelversion 파일에 나열된 버전과 일치하는지 확인하세요.

종속 항목을 설정한 후에는 Makefile과 유사하게 Bazel을 사용할 수 있습니다:

root@kitploit:~
bazel build -c opt //debian:gvisor-release-tar

테스트

표준 테스트 스위트를 실행하려면 다음을 사용할 수 있습니다:

root@kitploit:~
make unit-tests
make tests

특정 테스트를 실행하려면 대상을 지정할 수 있습니다:

root@kitploit:~
# Makefile
make test TARGETS="//runsc:version_test"
# Bazel
bazel test //runsc:version_test

Mac OS

일부 패키지는 macOS에서 직접 테스트를 실행할 수 있도록 지원합니다. 이 글을 작성하는 시점에 gVisor는 bazel 8이 필요하며, homebrew를 통해 설치할 수 있습니다:

root@kitploit:~
brew install bazel@8

# You can then run the tests, e.g.:
$(brew --prefix bazel@8)/bin/bazel test --macos_sdk_version=$(xcrun --show-sdk-version) -- //tools/nogo/... //tools/check{aligned,const,escape,linkname,locks,unsafe}/...

go get 사용하기

이 프로젝트는 bazel을 사용하여 종속 항목을 빌드하고 관리합니다. 편의를 위해 표준 go 도구와 호환되는 합성 go 브랜치가 유지 관리됩니다. 이는 gVisor 하위 패키지(예: Netstack을 통한 사용자 공간 네트워킹)에 의존하는 외부 패키지와 라이브러리가 gVisor Go 코드를 자신의 Go 프로젝트로 가져올 때 유용합니다.

go 브랜치 쿼리로 이 브랜치를 명시적으로 선택하세요. @latest는 master로 확인되는데, 이는 Bazel이 필요하며 표준 Go 도구와 호환되지 않습니다:

root@kitploit:~
go get gvisor.dev/gvisor/pkg/tcpip/transport/tcp@go

참고: 이 브랜치에서 runsc를 빌드하는 것은 지원되지 않습니다. gVisor와 runsc는 작동하기 위해 여러 바이너리(일부는 Go로 작성되지 않은 바이너리도 있음)가 필요합니다. go 브랜치는 최선의 노력으로 지원되며, 이 브랜치에서 직접 개발하는 것은 지원되지 않습니다. 개발은 master 브랜치에서 이루어져야 하며, 이후 go 브랜치에 반영됩니다.

커뮤니티 및 거버넌스

프로젝트 거버넌스 정보는 GOVERNANCE.md를 참조하세요.

gvisor-users 메일링 리스트와 gvisor-dev 메일링 리스트는 질문과 토론을 시작하기 좋은 곳입니다.

보안 정책

SECURITY.md를 참조하세요.

기여하기

Contributing.md를 참조하세요.

도구 다운로드