Linux 시스템의 Firefox 프로세스가 내 시스템의 어떤 부분에도 액세스하지 못하게 하여 화면 공유를 중단할 수 있나요?
나는 화상 통화 중에 Firefox에 화면 공유 기능이 있다는 것을 알았습니다. 즉, 프로세스가 내 화면에 있는 내용을 읽을 수 있다는 의미입니다.
나는 브라우저가 화면의 모든 것에 접근할 수 있는 것을 좋아하지 않습니다. 이것의 메커니즘은 무엇입니까?
답변1
X11에서 화면 공유가 가능한 이유는 무엇입니까?
X11 보안 모델에서 X 서버에 액세스할 수 있고 X 서버 확장에 의해 제한되지 않는 모든 클라이언트는 기본적으로 신뢰되며 유사한 쿼리를 사용할 수 있습니다.XCopyArea
또는XGetImage
화면에 있는 모든 창의 내용을 캡처합니다. 그 이유는 X11 프로토콜의 첫 번째 버전이 1987년에 출시되었고 보안 기능이 나중에 "추가"되었기 때문에 주로 역사적인 것입니다.
Wayland는 더욱 엄격한 보안 설계를 갖추고 있습니다. 합성자 또는 지정된 신뢰할 수 있는 응용 프로그램만 다른 창의 내용에 액세스할 수 있습니다.
X 액세스 제어 확장 프레임워크
화면 공유를 차단하는 정교한 솔루션은 다음을 사용하는 것입니다.X 액세스 제어 확장(XACE). 이 확장은 세부적인 액세스 제어 결정을 허용하기 위해 다른 확장 모듈에 대한 후크를 제공합니다.
안타깝게도 특정 응용 프로그램이 외부 창에 액세스하는 것을 방지할 수 있는 기존 모듈을 찾지 못했기 때문에 이러한 확장을 직접 작성해야 합니다. 이는 꽤 시간이 많이 걸리는 작업일 수 있습니다.
X 보안 확장
더 간단한 해결책은 다음과 같습니다.보안 확장. XACE보다 앞서며 "신뢰할 수 있는" 클라이언트와 "신뢰할 수 없는" 클라이언트만 구별하므로 화면 공유만 차단하지는 않습니다.그래픽 가속, 커서 캡처, 사용자 정의 커서 및 전체 화면 창과 같은 기능도 있습니다.. 따라서 잘못된 동작이 발생하고 렌더링 속도가 느려질 수 있습니다.
기본 아이디어는 응용 프로그램이 "마법 쿠키"를 사용하여 X 서버에 권한을 부여한다는 것입니다. 이러한 "쿠키"는 본질적으로 ~/.Xauthority
응용 프로그램이 X 서버에 연결이 허용되었음을 증명하는 데 사용할 수 있는 파일(또는 환경 변수에서 참조되는 파일)에 기록되는 난수입니다. 쿠키는 "신뢰할 수 있음" 또는 "신뢰할 수 없음"일 수 있습니다. 로그인 시 생성된 기본 쿠키는 신뢰할 수 있습니다./tmp/xauth-*
XAUTHORITY
따라서 Firefox를 제한하려면 새 X 권한 파일에 신뢰할 수 없는 새 쿠키를 생성하고 XAUTHORITY
환경 변수를 사용하여 시작 시 Firefox에 신뢰할 수 없는 쿠키를 제공해야 합니다. 이 작업은 다음을 사용하여 수행할 수 있습니다.xauth
주문하다.
다음 래퍼 스크립트는 신뢰할 수 없는 X 클라이언트로서 인수로 제공된 프로그램을 실행합니다.
#!/bin/sh
# Create empty file only accessible by the current user or empty it if already existing
(umask 0077; : > ~/.Xauthority-untrusted)
# Generate an untrusted magic cookie expiring 30 seconds after last use
xauth -f ~/.Xauthority-untrusted generate "$DISPLAY" MIT-MAGIC-COOKIE-1 untrusted timeout 30
# Set the environment variable
XAUTHORITY=~/.Xauthority-untrusted
export XAUTHORITY
# Replace the shell with the program given on the command line
exec "$@"
예를 들어 저장 untrusted.sh
하고 실행 가능하게 만드십시오. 그런 다음 를 사용하여 신뢰할 수 없는 모드에서 Firefox를 시작할 수 있습니다 ./untrusted.sh firefox
.
이는 악성 애플리케이션으로부터 완전히 보호되지는 않습니다. 애플리케이션이 로컬 컴퓨터에 있고 사용자 계정으로 실행되는 한, 악성 애플리케이션이 원래 권한 파일의 위치를 추측하거나 다음과 같은 문제로 인해 발생한 문제를 이용할 수 있으므로 이 보호를 우회할 수 있습니다.xhost
액세스 제어는 가능하지만 브라우저가 화면을 공유하는 것을 방지하기에 충분합니다.