뉴스 목록
Help Net Security2026. 09. 28.

다른 사용자가 OS의 파일 알림 기능으로 당신의 웹 탐색을 지켜보고 키 입력 시간을 잴 수 있다

한 줄 요약

그라츠 공과대학교 연구진이 Windows, Linux, macOS, Android가 파일 변경을 알려주는 "파일 알림" 기능을 악용해, 같은 컴퓨터의 다른 계정이나 다른 앱이 사용자의 활동을 몰래 훔쳐볼 수 있다는 사실을 밝혀냈습니다. 예를 들어 Windows에서는 권한이 없는 일반 계정도 다른 사용자가 Firefox로 어떤 웹사이트를 방문했는지 95.7% 정확도로 알아낼 수 있었고, Linux에서는 키보드를 누르고 떼는 타이밍만으로 SSH 원격 접속 중 입력한 키 입력까지 거의 전부 추적할 수 있었습니다. 이 공격은 별도 관리자 권한 없이도 가능해서, 감염된 계정 하나만으로 같은 시스템의 다른 계정 활동을 엿볼 위험이 있습니다. Microsoft와 Linux, macOS, Android 보안팀 모두 이 문제를 인지했으며, Linux는 부분적인 패치(CVE-2025-68788)를 내놓았지만 Windows의 관련 보호 기능은 기본적으로 꺼져 있어 그대로 노출된 상태입니다.

사건

Windows·Linux·macOS·Android의 파일 변경 알림 기능(inotify, ReadDirectoryChangesW, FSEvents, FileObserver 등)을 이용해, 권한 없는 계정이나 앱이 다른 사용자의 웹사이트 방문 기록과 키보드 입력 타이밍을 알아낼 수 있는 취약점이 연구로 공개됨.

영향

Windows에서는 Firefox 방문 사이트의 95.7%를 오탐 없이 식별했고, Linux에서는 로컬 및 SSH 원격 세션 모두에서 거의 모든 키 입력 타이밍을 포착했다. macOS와 Android에서도 앱 실행, 파일 다운로드, 메신저 미디어 수신 등 민감한 활동이 노출됐다.

원인

이들 운영체제의 파일 알림 API가 접근 권한이 없는 파일에 대해서도 파일명·경로·변경 이벤트를 노출하도록 설계돼 있어, 공격자가 이를 모아 사용자 행동 패턴(템플릿)과 대조하는 방식으로 정보를 재구성할 수 있음.

대응

연구팀은 2025년 8~10월 Linux, Android, Windows, macOS 보안팀에 이 문제를 보고했다. Linux 커널은 2026년 초 장치 파일 관련 부분 패치(CVE-2025-68788)를 배포했으나 파일시스템 전반의 노출은 남아있다. Microsoft는 레지스트리 정책(EnforceDirectoryChangeNotificationPermissionCheck)을 추가했지만 기본값은 비활성화 상태다.

실무 포인트

Windows 관리자는 EnforceDirectoryChangeNotificationPermissionCheck 정책을 수동으로 활성화해야 하며, 다중 사용자 시스템이나 공유 서버에서는 계정 간 격리 강화와 최신 Linux 커널 패치 적용을 검토할 필요가 있다.

본문

그라츠 공과대학교(Graz University of Technology) 연구진은 Windows, Linux, macOS의 파일 알림 시스템을 이용해 다른 계정의 활동을 엿보는 방법을 시연했다.

Windows에서는 권한이 없는 일반 계정이 다른 사용자가 Firefox로 방문한 인기 웹사이트의 95.7%를 탐지했으며, 탐지된 모든 사이트는 실제로 피해자의 브라우저가 로드한 사이트였다. Linux에서는 별도의 취약점을 통해 로컬 키보드와 SSH 세션 모두에서 키 입력 타이밍이 노출됐다.

프로그램들은 파일이 변경될 때 반응하기 위해 이러한 알림을 사용한다. 예를 들어 PDF 뷰어는 LaTeX 재컴파일 후 문서를 다시 렌더링하고, 동기화 도구는 수정된 파일을 다른 기기로 복사한다. 연구진은 Linux의 inotify, Windows의 ReadDirectoryChangesW, macOS의 FSEvents를 사용했는데, 이들 각각은 일반 계정이 읽기 권한을 가진 어떤 디렉터리든 감시할 수 있게 해준다. 이들의 공격자는 피해자의 컴퓨터에서 별도의, 권한 없는 계정으로 코드를 실행한다. 논문은 systemd가 흔히 자체 사용자로 실행하는 침해된 Linux 서비스를 하나의 경로로 언급한다.

이 방법은 매핑 단계에서 시작된다. 연구팀은 일상적인 작업을 수행하면서 시스템의 모든 파일 이벤트를 기록한 다음, 각 작업을 추적하는 이벤트를 발생시킨 파일들만 남겼다. 이 템플릿들은 터미널 명령어, 키보드·마우스 입력, 브라우징, 인쇄, 가상머신과 Docker 컨테이너, 블루투스, 네트워크와 VPN 변경, USB 장치를 포괄했다. 감시에 드는 비용은 측정 결과 최대 CPU 시간의 0.21%에 불과했다.

파일 알림 템플릿화 공격의 두 단계 개요: 템플릿화와 공격 (출처: 연구 논문)

Windows는 전체 경로를 넘겨준다

연구진은 C: 드라이브 루트에 감시를 걸었다. 그러자 Windows는 감시 계정에게 닫혀 있어야 할 다른 사용자의 홈 폴더 내부를 포함해, 드라이브 전체에서 전체 경로가 포함된 파일 생성·수정·이름 변경을 보고했다.

브라우저는 사이트별 데이터를 사이트 주소가 포함된 이름의 폴더에 저장한다. Firefox는 사이트가 로컬 스토리지, IndexedDB, 캐시를 사용할 때 폴더를 만들며, Edge는 다른 Chromium 브라우저들과 마찬가지로 IndexedDB에 대해서만 폴더를 만든다. Windows 11 24H2에서 자동화된 브라우저를 사용해 상위 1,000개 사이트를 로드했고, 그중 975개가 응답했다. Firefox는 테스트한 사이트의 95.7%에 대해 사이트명 폴더를 만들었고 Edge는 32%였다. 감시 프로그램은 두 브라우저 모두에서 이러한 폴더를 전부 포착했으며 오탐은 전혀 없었다. 논문은 Edge의 낮은 탐지율을 IndexedDB를 사용하는 사이트 비율이 더 적기 때문이라고 설명한다.

드라이브 전체 감시는 다른 흔적들도 포착했다. Prefetch 파일은 실행된 각 프로그램의 이름을 담고 있으며, ssh도 예외가 아니다. Zoom의 데이터베이스 파일은 사용자가 대기실에 들어가고, 회의에 참여하고, 나갈 때마다 서로 다른 방식으로 변경되었다. Windows Defender 스캔은 검사한 각 파일마다 이벤트를 발생시켜, 다른 사용자의 문서, 동영상, 브라우저 데이터의 경로를 감시 프로그램에 넘겨주었다. Defender는 이후 스캔에서는 변경되지 않은 파일을 건너뛰는 것으로 보였으며, 논문은 이 유출을 초기 스캔 탓으로 돌린다.

Microsoft는 연구팀에게 이 동작이 설계상 의도된 것이며 "다른 사용자의 프로필 디렉터리 내 파일명과 경로만 드러낼 뿐"이라고 답했다. 그러나 브라우저 테스트에서는 이름과 경로만으로도 브라우징 기록을 재구성하기에 충분했고, 저자들은 Microsoft가 이를 재고해야 한다고 주장한다.

별도로 활동하던 Sébastien Huneault는 2025년 4월 Microsoft에 유사한 동작을 보고했다(CVE-2025-27738 및 CVE-2025-21197). 그라츠 연구팀은 논문 제출 이후 한참이 지나서야 이 보고들을 알게 되었다고 밝혔다. Microsoft의 업데이트 KB5058189는 레지스트리 정책인 EnforceDirectoryChangeNotificationPermissionCheck를 추가했으며, 논문은 이것이 해당 동작을 완화한다고 설명한다. Microsoft는 이 정책을 기본적으로 비활성화한 상태로 배포하며, 저자들은 논문에 실린 모든 Windows 공격이 초기 설정 그대로의 시스템에서 작동한다고 보고한다.

Linux는 키 입력 타이밍을 유출한다

Linux에서는 폴더를 읽을 수 있는 계정이 그 안의 모든 파일에 대한 알림을 받게 되며, 열람이 금지된 파일도 예외가 아니다. 그런 파일 중 하나가 키보드의 장치 파일이므로, 키를 누를 때마다 어떤 키인지는 아니지만 언제 키가 눌리고 떼어졌는지를 감시 프로그램에 알려준다. 이전 연구들은 이러한 리듬이 입력된 텍스트를 재구성하는 데 도움이 될 수 있음을 보여준 바 있다. 테스트용 노트북에서 이 공격은 7명의 타이핑 참가자로부터 거의 모든 키 입력을 포착했다.

같은 수법은 SSH를 통해서도 작동했다. 한 테스트에서 서버의 한 프로세스가 원격 사용자가 입력한 402개의 키 입력 전부를 포착했으나, sudo와 같은 숨겨진 비밀번호 프롬프트에 입력된 내용은 놓쳤다.

연구팀은 또한 사용자 계정 내에서 이미 실행 중인 악성코드가 KDE 데스크톱에서 진짜 비밀번호 창 위에 가짜 창을 그려낼 수 있음을 보였으며, Firefox가 불러오는 글꼴을 통해 인기 사이트 100개 중 어떤 사이트를 사용자가 열어두었는지 알아낼 수 있음도 보여주었다.

패치는 일부만 해결한다

연구팀은 2025년 8월부터 10월 사이에 Linux, Android, Windows, macOS 보안팀에 조사 결과를 공개했으며, 네 팀 모두 이를 인정했다. Linux 커널 개발자들은 2026년 초 부분적인 완화 조치를 배포했고, 해당 사안에는 CVE-2025-68788이 부여되었다. 이 패치는 장치 파일에 대한 '읽을 수 없는 파일' 경로는 막지만, 나머지 파일시스템은 여전히 노출되어 있다. 저자들은 Linux의 감시를 파일 소유권이나 읽기 권한에 결부시키고, Windows가 드라이브 전체를 감시하지 못하도록 막을 것을 제안한다.

다른 플랫폼들

macOS는 세 데스크톱 시스템 중 유출이 가장 적었다. 저자들은 두 가지 요인을 꼽는다: FSEvents는 감시자가 읽을 수 있는 파일에 대해서만 보고를 제한하며, Linux가 제공하는 읽기 접근 이벤트가 없다는 점이다. macOS Sonoma 14.2.1에서도 연구진은 여전히 인쇄, 블루투스 장치 변경, 앱 설치·제거, Podcasts·Voice Memos·Books 같은 특정 앱의 실행을 확인할 수 있었다.

Android 16을 탑재한 두 대의 폰(Pixel 9a와 Galaxy A54)에서는, 권한이 전혀 없는 앱이 Android의 FileObserver를 사용해 스코프드 스토리지(scoped storage)가 접근을 막도록 설계된 파일들을 볼 수 있었다. 이를 통해 다운로드 파일, 사진, 스크린샷은 물론 WhatsApp의 비공개 미디어 폴더까지 노출되었다. 이 앱은 수신된 미디어가 도착한 시점을 알아냈고, 파일명을 읽었으며, 파일이 삭제되는 시점도 확인했다. 이전 연구에서도 Android에서 앱 실행이 이러한 방식으로 유출된다는 사실이 밝혀진 바 있다.

저자들은 네 플랫폼 모두에 대한 코드를 공개했다.

출처
Help Net Security · helpnetsecurity.com
원문 보기

분야별 뉴스

관심 분야의 보안 이슈를 모아 보세요.

TORUN SECURITY

투런이 제공하는 보안 솔루션

공격 표면 관리부터 엔드포인트·내부정보 보호까지, 기업 환경에 맞는 보안 솔루션을 투런이 함께 설계합니다.