격리 된 환경에서 응용 프로그램을 만들기위한 도구 인 Bubblewrap

Bubblewrap은 도구입니다. 작동하는 것 Linux에서 샌드 박스 작업 구성 그리고 실행 권한이없는 사용자 응용 프로그램 수준에서. 실제로 Bubblewrap은 Flatpak 프로젝트에서 소프트웨어 패키지에서 시작된 응용 프로그램을 격리하는 중간 계층으로 사용됩니다.

격리를 위해 Linux는 가상화 기술을 사용합니다. cgroup, 네임 스페이스, Seccomp 및 SELinux 사용을 기반으로하는 기존 컨테이너의 컨테이너를 구성하기위한 권한있는 작업을 수행하기 위해 Bubblewrap은 루트 권한 (suid 플래그가있는 실행 파일)로 시작되고 컨테이너가 초기화 된 후 권한이 재설정됩니다.

시스템에서 사용자 네임 스페이스를 활성화 할 필요가 없으므로 기본적으로 많은 배포에서 작동하지 않으므로 컨테이너에서 고유 한 ID 집합을 사용할 수 있습니다.

Bubblewrap 정보

Bubblewrap은 제한된 suida 구현으로 포지셔닝됩니다. 사용자 네임 스페이스 함수의 하위 집합에서 현재 환경을 제외한 모든 사용자 및 프로세스 ID를 환경에서 제외하려면 모드를 사용합니다. CLONE_NEWUSER 및 CLONE_NEWPID.

추가 보호를 위해 Bubblewrap에서 실행되는 프로그램이 모드에서 시작됩니다. PR_SET_NO_NEW_PRIVS, 새로운 특권을 금지하는 예를 들어 setuid 플래그를 사용합니다.

파일 시스템 수준에서의 격리는 기본적으로 tmpfs를 사용하여 빈 루트 파티션이 생성되는 새 마운트 네임 스페이스를 생성하여 수행됩니다.

필요한 경우 외부 FS 섹션이«마운트 – 바인드»(예 : 옵션으로 시작«bwrap –ro-bind / usr / usr', / usr 섹션은 읽기 전용 모드로 호스트에서 전달됩니다.

네트워크 기능은 루프백 인터페이스에 대한 액세스로 제한됩니다. 인디케이터를 통한 네트워크 스택 격리로 반전 CLONE_NEWNET 및 CLONE_NEWUTS.

유사한 Firejail 프로젝트와의 주요 차이점은 setuid 런처도 사용합니다. Bubblewrap에서 컨테이너 레이어에는 필요한 최소한의 기능 만 포함됩니다. 그래픽 응용 프로그램을 시작하고, 데스크톱과 상호 작용하고, Pulseaudio에 대한 호출을 필터링하는 데 필요한 모든 고급 기능은 Flatpak의 측면으로 가져와 권한이 재설정 된 후에 실행됩니다.

반면에 Firejail은 모든 관련 기능을 하나의 실행 파일로 결합합니다., 감사를 복잡하게하고 보안을 적절한 수준으로 유지합니다.

Bubblewrap은 기본적으로 작동합니다. 의 수단으로 임시 파일 시스템에 빈 마운트 네임 스페이스 생성 샌드 박스 처리가 완료된 후 삭제됩니다.

사용자는 스위치를 사용하여 호스트 시스템에서 원하는 디렉토리의 링크를 마운트하여 마운트 네임 스페이스 내에서 원하는 파일 시스템 환경을 구축 할 수 있습니다.

버블 랩 0.4.0

Bubblewrap은 현재 버전 0.4입니다.최근 릴리스 된 .0. 프로젝트 코드는 C로 작성되었으며 LGPLv2 + 라이선스에 따라 배포됩니다.

새로운 버전 네임 스페이스 및 프로세스 결합 지원 구현으로 유명합니다. 기존 사용자 (pid 네임 스페이스).

네임 스페이스 연결을 제어하기 위해 "–userns", "–userns2"및 "–pidns"플래그가 추가되었습니다.

이 기능은 setuid 모드에서 작동하지 않으며 루트 권한없이 작동 할 수있는 별도의 모드가 필요하지만 시스템에서 사용자 네임 스페이스를 활성화해야하며 (Debian 및 RHEL / CentOS에서는 기본적으로 비활성화 됨) 잠재적으로 악용 할 가능성을 배제하지 않습니다. "사용자 네임 스페이스"제한의 경계에 대한 나머지 취약점.

Bubblewrap 0.4의 새로운 기능 중 glibc 대신 musl C 라이브러리로 빌드 할 가능성도 관찰됩니다. 그리고 네임 스페이스 정보를 JSON 형식의 통계 파일에 저장하기위한 지원.

Bubblewrap 코드와 관련 문서는 Github에서 참조 할 수 있습니다. 링크는 이쪽.


기사의 내용은 우리의 원칙을 준수합니다. 편집 윤리. 오류를보고하려면 여기에.

코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.