
저는 X11을 처음 접했고 이것이 인터넷에서 말하는 것처럼 실제로 위험한지 알고 싶습니다.
제가 이것을 어떻게 이해했는지 설명하겠습니다. 현재 사용자 아래에서 실행되는 모든 애플리케이션은 키보드, 마우스, 모니터(예: 스크린샷 찍기)에 액세스할 수 있는데 이는 좋지 않습니다. 그러나 공식 저장소에서 프로그램을 설치하면(예: 데비안의 경우), 키로거 등을 포함하지 않을 가능성이 높으면 위험이 과장된 것으로 보입니다. 내가 잘못?
예, 별도의 서버에서 애플리케이션을 열 수 있습니다(예: 제퍼), 그런데 공유 클립보드가 없어서 불편하네요. TMP 파일을 기반으로 클립보드를 만드는 것도 불편하다.
답변1
현재 사용자 아래에서 실행되는 모든 애플리케이션은 키보드, 마우스, 모니터(예: 스크린샷 찍기)에 액세스할 수 있는데 이는 좋지 않습니다.
데스크탑의 모든 X11 클라이언트는 창의 내용 가져오기, 창 변경, 창 닫기, 다른 클라이언트에 대한 키 및 마우스 이벤트 위조, 입력 장치 가져오기 등을 포함하여 서로에 대한 깊은 액세스 권한을 갖습니다.
X11 프로토콜의 디자인은 서로의 발가락을 밟는 것이 아니라 클라이언트가 모두 신뢰할 수 있고 협력할 것이라는 아이디어를 기반으로 합니다(후자는 Firefox, Chrome 또는 Java와 같은 최신 응용 프로그램에 의해 완전히 깨졌습니다).
그러나 키로거 등을 포함할 가능성이 없는 공식 저장소(예: Debian)에서 프로그램을 설치하는 경우 위험 문제는 분명히 과장됩니다. 내가 잘못?
이 프로그램에는 결함이 있어 악용될 수 있습니다. X11 서버 및 라이브러리가 최신 상태가 아닐 수 있습니다. 예를 들어 모든 X11 클라이언트는 다음을 수행할 수 있습니다.충돌현재 버전의 Debian(Buster 10)에 있는 X 서버는 무해한 Xkb를 통해 요청합니다. (그건안정적인업스트림 소스 코드에 있지만 아직 데비안에서는 구현되지 않았습니다). 충돌이 발생할 수 있는 경우 X11 서버의 권한(하드웨어에 대한 액세스 등)을 사용하여 코드를 실행할 수도 있습니다.
Xwayland(및 Debian의 일반 Xorg Xserver)의 느슨한 인증 문제는 끝에 있는 참고 사항을 참조하세요.이 답변.
네, 별도의 서버(예: Xephyr)에서 애플리케이션을 열 수 있지만 공유 클립보드가 없어 불편합니다. TMP 파일을 기반으로 클립보드를 만드는 것도 불편하다.
추가 조치를 취하지 않는 한 Xephyr
,모든 로컬 사용자기본적으로 연결합니다. 바라보다이것이에 대해 토론하십시오.
여러 X11 서버 간에 공유 클립보드를 만드는 것은 이것과 혼합되기보다는 자체 Q&A가 필요한 흥미로운 질문입니다.
답변2
동일한 사용자 계정을 사용하여 동일한 컴퓨터에서 실행되는 응용 프로그램은 ptrace
시스템 호출을 사용하여 서로의 프로세스 메모리를 수정할 수 있으므로 X11은 여기서 가장 편리한 공격 표면이 아닙니다.
완전히 신뢰하지 않는 애플리케이션의 경우 먼저 다른 사용자 ID로 실행해야 하며(Android가 다른 공급업체의 애플리케이션을 사용하는 것처럼) XSECURITY 확장을 사용하여 "신뢰할 수 없는" 애플리케이션 액세스를 생성할 수 있습니다. X11은 모든 액세스 토큰으로 제한됩니다.
- 자신의 창에 특정하지 않은 입력 이벤트에 액세스할 수 없습니다.
- XTEST 확장 프로그램에 액세스할 수 없습니다.
- 투명한 창문 없음
X11의 입력 이벤트에는 Synthetic
입력 이벤트가 입력 장치에서 생성되었는지 또는 다른 프로그램에서 전송되었는지 알려주는 필드가 있으며, 수신 프로그램은 합성된 이벤트를 xterm
무시하는 등 합성된 이벤트를 처리하는 방법을 결정합니다. XTEST 확장을 사용하면 Synthetic
테스트 목적으로 소프트웨어에서 비이벤트가 생성될 수 있으므로 신뢰할 수 없는 클라이언트는 확장을 사용할 수 없습니다.