과거에 특정 유형의 공격에 취약한 것으로 나타났던 브라우저 및 기타 소프트웨어를 제한하기 위해 데스크탑 시스템에서 LXC를 사용할 수 있습니까? 그래서 제가 달성하고 싶은 것은 예를 들어 Firefox가 감옥에 있으면서 여전히 창 등을 볼 수 있지만 호스트 시스템이 아닌 "거품 내부"에 대한 읽기 및 쓰기 액세스 권한만 갖도록 하는 것입니다.
LXC의 샘플 컨테이너 lxc-sshd
는 유사한 것이 가능해야 함(애플리케이션 수준 컨테이너)을 제안하지만, 나는 TTY가 최대로 필요한 프로그램에서만 이것을 보았습니다.
KDE, GNOME, Unity에서도 작동합니까?
답변1
지옥불Firefox 또는 기타 GUI 소프트웨어를 감옥에 넣을 수 있는 Linux 네임스페이스 샌드박스 프로그램입니다. 모든 Linux 컴퓨터에서 실행되어야 합니다.
답변2
간접적. 등의 도움을 받아LXC또는오픈VZ그 안에 있는 애플리케이션에는 기본적으로 자체 Linux 상자가 있습니다. 그래서 당신은 다음과 같은 것을 사용해야합니다엑스투고또는가상 네트워크 컨트롤러원격 데스크톱을 보거나 X Remote를 사용하여 실행 중인 애플리케이션을 표시합니다.
이 튜토리얼에서는 Debian/Ubuntu를 사용하여 이 작업을 수행하는 방법을 설명하지만 대부분의 단계는 다른 배포판으로도 변환되어야 합니다. 기사 제목은 다음과 같습니다.데비안 가상화: LXC 데스크탑 가상화.
답변3
어떤 데스크탑 관리자를 실행하고 있는지는 중요하지 않습니다. 중요한 것은 Xwindows 소켓, XAUTHORITY 환경 변수 및 그것이 가리키는 파일에 대한 액세스 권한을 컨테이너에 제공한다는 것입니다.
답변4
lxc 컨테이너에는 자체 디스플레이/오디오가 없으므로 어떻게든 호스트 디스플레이/오디오를 사용해야 합니다. 일반적인 Linux 솔루션은 다음과 같습니다.
- 컨테이너 경계를 넘어 호스트 X 리소스를 직접 공유
- SSH 역파이프를 통한 X 전달 사용
이러한 솔루션의 문제점은 컨테이너의 악성 콘텐츠가 X를 통해 제어되어 창을 보거나 키 입력 등을 캡처할 수 있다는 것입니다. X는 이러한 안전을 염두에 두고 설계되지 않았습니다.
또 다른 해결책은 소위 가짜 X 서버를 사용하는 것인데, 이는 실제 X 서버는 아니지만 컨테이너의 클라이언트 소프트웨어에 가짜 X 인터페이스와 가짜 X 화면을 제공하는 동시에 일부 X 작업을 실제 X 서버에 전달하는 것입니다. X 서버가 그 뒤에 있습니다. 의사 X 화면은 호스트의 실제 X 데스크탑에 단일 X 창으로 나타납니다.
xserver-xephyr
이러한 위장된 X 서버 중 하나는 실제로 X 개발자가 디버깅을 위해 개발한 소프트웨어 Xepyr입니다 .
나는 firefox, openvpn, Xephyr 및 pulseaudio로 채워진 lxd/lxc 컨테이너를 (일반 우분투 lxc 이미지에서) 생성하기 위해 간단한 자바 스크립트 프로그램을 작성했습니다. 대상 호스트도 Ubuntu입니다. VPN은 모든 IP 트래픽을 VPS로 전달합니다.
https://github.com/craigphicks/browser-on-lxc-vpn-xephyr
https://www.npmjs.com/package/browser-on-lxc-vpn-xephyr
마지막으로 Specter et al.의 취약점을 고려할 때. 등, 컨테이너조차도 보장을 제공할 수 없습니다. 이론적으로 완벽한 방어를 위해서는 별도의 물리적 CPU가 필요합니다. (위협의 실제 범위는 논쟁의 여지가 있습니다. 1년이 지난 후에도 악의적인 공격은 보고되지 않았습니다.) 해결책으로 컨테이너를 다른 시스템에 쉽게 배치할 수 있습니다.
이는 호스트를 보호할 수도 있습니다(또는 그렇지 않을 수도 있습니다. 보장하지는 않습니다). 그러나 브라우저는 비밀번호, OTP 등 민감한 정보를 대량으로 입력하는 데 사용되는 경우가 많습니다. SIP와 사회적 거리두기는 최선의 안전 조치이지만, 좋은 생활 방식은 아닙니다.