TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 24 READS

리눅스 Zoom 클라이언트가 복사하는 내용을 전부 읽고 있었다: X11 클립보드 구조가 만든 사각지대

복사 버튼을 누를 때마다 Zoom이 보고 있었다

PuTTY 만든 분으로 유명한 사이먼 태덤(Simon Tatham)이 마스토돈에 올린 관찰 하나가 리눅스 사용자들 사이에서 파장을 일으켰어요. 리눅스용 Zoom 클라이언트가, 사용자가 뭔가를 복사할 때마다 그 내용을 즉시 가져간다는 거예요. 붙여넣기를 한 것도 아니고, Zoom 창이 활성화된 것도 아닌데요. 그냥 백그라운드에 Zoom이 떠 있기만 하면, 터미널에서 복사한 비밀번호든 코드 조각이든 전부 Zoom 프로세스가 한 번씩 읽어간다는 얘기죠.

X11 클립보드는 어떻게 동작하냐면

이게 왜 가능한지 이해하려면 X11의 클립보드 구조를 알아야 해요. 윈도우나 맥은 시스템이 클립보드 내용을 어딘가에 저장해두는 방식이잖아요. 그런데 X11은 달라요. 여기엔 클립보드 저장소가 아예 없어요. 대신 '셀렉션 소유권'이라는 개념을 쓰거든요.

이게 뭐냐면, 여러분이 브라우저에서 텍스트를 복사하면 브라우저가 "지금부터 CLIPBOARD 셀렉션은 내 거야"라고 X 서버에 선언해요. 데이터는 아직 브라우저 안에만 있죠. 나중에 에디터에서 붙여넣기를 누르면 에디터가 X 서버를 통해 브라우저에게 "CLIPBOARD 내용 좀 줘, 텍스트 형식으로"라고 요청을 보내고, 브라우저가 그때 데이터를 건네주는 거예요. 택배 보관함이 아니라 '누구한테 물건이 있는지만 적힌 명단' 같은 구조인 셈이죠.

이 구조의 중요한 특징이 하나 있어요. 복사한 쪽(소유자)은 누가 자기한테 요청을 보냈는지 알 수 있어요. 태덤은 자기가 관리하는 프로그램으로 들어오는 셀렉션 요청을 보다가, 복사할 때마다 어김없이 Zoom 프로세스에서 요청이 날아오는 걸 발견한 것으로 보여요. 즉, Zoom은 소유권이 바뀌는 이벤트를 감시하다가 새 소유자가 생기면 곧바로 내용을 요청하는 코드를 갖고 있는 거예요.

왜 이런 짓을 할까

악의적이라고 단정하긴 이르지만, 몇 가지 가능성이 있어요. 하나는 Qt 같은 GUI 프레임워크에서 '클립보드 변경 알림'을 구현하려면 소유권 변경을 감지한 뒤 실제 내용까지 읽어야 하는 경우가 있어서, 개발자가 별 생각 없이 그렇게 구현했을 수 있어요. 또 하나는 회의 중에 복사한 링크나 이미지를 빠르게 공유하는 기능을 위해 미리 내용을 캐싱하는 것일 수 있고요. 하지만 이유가 뭐든 사용자 입장에선 결과가 같아요. 비밀번호 관리자에서 복사한 비밀번호가 Zoom 메모리를 거쳐 간다는 거죠. 그 데이터가 어디로도 전송되지 않는다는 보장은 Zoom의 말을 믿는 수밖에 없어요. Zoom은 이미 2020년에 '종단간 암호화' 표현 문제로 미국 FTC 제재를 받은 전력이 있어서 사용자들이 더 민감하게 반응하는 거고요.

Wayland라면 이게 안 됩니다

여기서 리눅스 데스크톱의 큰 흐름과 이어지는 지점이 있어요. X11의 후계자인 Wayland는 보안 모델이 근본적으로 달라요. Wayland에서는 키보드 포커스를 가진 창만 클립보드를 읽을 수 있거든요. 백그라운드에 있는 앱은 아무리 원해도 클립보드에 접근이 안 돼요. X11에서는 모든 앱이 서로의 키 입력을 훔쳐볼 수 있고 화면도 찍을 수 있는데, 이런 '앱끼리 완전히 신뢰하는' 설계가 1980년대 연구실 환경에서 나온 거라 지금 기준으로는 너무 느슨하죠. Wayland가 불편하다는 말을 많이 듣지만, 그 불편함의 상당 부분이 바로 이런 격리에서 오는 거예요.

다른 OS는 어떤가 보면, 안드로이드는 12부터 앱이 클립보드를 읽으면 화면에 토스트를 띄워주고, iOS는 14부터 붙여넣기 알림을 보여줘요. macOS도 최근 버전에서 앱이 사용자 조작 없이 클립보드를 읽으면 경고를 띄우기 시작했고요. 윈도우는 아직 아무 앱이나 자유롭게 읽을 수 있어서 X11과 비슷한 상황이에요.

한국 개발자에게 주는 시사점

리눅스 데스크톱에서 개발하시는 분들, 특히 Zoom이나 비슷한 사내 메신저를 종일 띄워두는 분들은 몇 가지 점검해볼 만해요. 첫째, 지금 세션이 X11인지 Wayland인지 확인해보세요. echo $XDG_SESSION_TYPE 한 줄이면 알 수 있어요. 둘째, 비밀번호 관리자에서 클립보드 자동 삭제 기능을 켜두세요. 복사 직후 바로 읽어가는 앱은 못 막지만, 노출 시간을 줄일 수는 있어요. 셋째, 정말 민감한 토큰은 클립보드 대신 파일이나 환경변수로 넘기는 습관도 고려해볼 만하고요.

앱을 만드는 입장이라면 반대 교훈이 있어요. 클립보드 변경을 감지해야 한다면 소유권 변경 이벤트만 구독하고, 실제 내용은 사용자가 붙여넣기를 할 때만 읽으세요. '언젠가 쓸 수도 있으니 미리 읽어두자'는 편의가 곧바로 프라이버시 문제가 되거든요.

정리하며

X11의 '누구나 읽을 수 있는 클립보드' 구조 위에서 Zoom이 복사하는 족족 내용을 가져가고 있었고, 이건 Wayland로 가야 할 이유를 하나 더 보여준 사례예요.

여러분은 리눅스에서 X11을 쓰시나요, Wayland를 쓰시나요? 클립보드 프라이버시를 위해 어떤 습관을 갖고 계신지 댓글로 나눠주세요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://hachyderm.io/@simontatham/117201594980991062
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...