[맥 보안] Quicklook 캐시를 통해 내 데이터가 노출되고 있다는 것 아셨나요?

맥을 사용하며 하루에도 수십번씩 사용하는 훑어보기(Quicklook) 기능으로 인해 사용자의 데이터가 노출되고 있다는 점 알고 계셨나요? 꽤 오래 전에 이슈된 듯 하나, 저는 몇일 전 우연히 글을 읽다 알게 되었네요.

요약하여 정리하기도 힘들만큼 여기저기 정보들이 분산되어 있어, 아래와 같이 관련된 문제 및 임시적 해결방안에 관해 정리하여 적어보았습니다. 우선, Quicklook으로 발생되는 문제의 요점은 아래와 같습니다. ▼

  • Quicklook(space bar)을 실행할 때마다 읽은 데이터의 Thumbnail이 캐싱되어 디스크 어딘가에 저장된다.
  • Quicklook으로 읽었던 데이터를 삭제하더라도 캐싱된 데이터는 그대로 유지된다.
  • Quicklook으로 읽는 데이터가 암호화된 분할 번들 디스크에 있더라도 Thumbnail이 저장된다.

파일을 삭제하던, 암호화하던 space bar로 노출된 파일은 디스크 공간 그 어딘가에 자취를 남기게 됩니다. 즉, 내 맥을 만지고 있는 제 3자가 터미널 커맨드만 조금 다룰 줄 안다면, 나의 사용 자취 및 파일 흔적을 찾아내게 되는 것입니다.


Quicklook 캐시 위치

아래는 필자의 캐시 위치입니다. ▼

붉은색 부분이 유동적(Dynamic 혹은 Random)으로 설정되기 때문에, 아래 경로를 입력하는 것으로는 접근할 수 없을 수도 있습니다.

/private/var/folders/ff/3m1y9syj5cd_vhjpgy0yy5c00000gn/C/com.apple.QuickLook.thumbnailcache

 

방법이야 많겠지만 범용적이고 가장 간단할만한 사용방법은 아래와 같습니다. ▼

* 터미널에서 아래 커맨드를 입력해 주시면 파인더로 해당 경로를 열어줍니다. 

$ open $TMPDIR/../C/com.apple.QuickLook.thumbnailcache/

High Sierra 10.13 ▲

모하비로 넘어오면서 위 경로는 접근이 허용되지 않았으며, 그 어떤 파일도 노출시켜주지 않았습니다. 같은 경로를 모하비에서 열게 되면, 아래와 같은 결과를 얻을 수 있었습니다. ▼

$ sudo ls -l /private/var/folders/ff/3m1y9syj5cd_vhjpgy0yy5c00000gn/C/com.apple.QuickLook.thumbnailcache
Password:
ls: /private/var/folders/ff/3m1y9syj5cd_vhjpgy0yy5c00000gn/C/com.apple.QuickLook.thumbnailcache: Operation not permitted

Mojave 10.14 ▲

이 문제와 관련해서는 아마도 SIP이 아닐까 짐작하고 있지만, 실제로 테스트해보진 않았습니다. 여러 군데에 질의를 남겼지만, 베타 버전이 진행중인 모하비인지라 정확한 문제는 파악하기 힘들었습니다. 관련 질의 링크를 남겨놓았으니, 참고바랍니다.

 

추가

Quicklook을 실행한 상태에서 아래 커맨드를 실행시켜 보시면, 본인의 정확한 Quicklook 캐시 데이터 주소를 알 수 있습니다.

$ sudo lsof -c quicklookd


Quicklook 캐시 관련 파일

위 경로의 아래 2가지 파일에 노출되는 정보들이 담겨 있습니다.

  • index.sqlite : folder, file_name, fs_id 관련 DB 정보
  • thumbnails.data : 이미지(썸네일) 데이터

 

좀 더 자세하게 index.sqlite 파일을 DB Browser for SQLite(무료)를 통해 열어보면, 정보들이 고스란히 담겨 있는 것을 보실 수 있습니다.

 

Quicklook 파싱하기 (썸네일 가져오기)

위에서 찾은 정보들을 토대로 저장된 이미지를 불러오는 방법입니다. 여러가지 툴이 필요하므로(사실 해보기 매우 귀찮습니다), 그냥 보고 넘기셔도 될 듯 합니다.

 

1) 파이썬이 필요합니다. 없으시다면 설치해주시면 됩니다.

$ brew install python2

 

2) Quicklook Parser를 다운받습니다. ▼

 

3) 터미널을 열고, 다운로드한 디렉토리로 이동합니다.

예) cd ~/Desktop/OSX-QuickLook-Parser

 

4) 아래 커맨드를 순서대로 실행합니다. ▼

$ sudo easy_install biplist
$ sudo pip install Pillow
$ sudo easy_install xlswriter

 

 

5) 아래 커맨드를 입력합니다(GUI 툴 실행). ▼

$ python2 quicklook_parser_v_3_5.py

 

6) 해당 내용을 입력합니다. ▼

  • Open thumbnailcache folder… : Quicklook 캐시 저장 경로(본인의)
  • Save Report and Thumbnails… : 실행 결과가 저장될 경로(임의로 지정)

 

7) 나의 노출될 데이터(?)들을 OUTPUT 경로에서 확인합니다.


Quicklook 캐시 데이터 삭제하기

이를 삭제하는 방법은 너무 간단합니다. 위 경로로 들어가 해당 파일을 지우는 것보다 터미널을 열어 아래 커맨드를 실행해주기만 하시면 됩니다.

* 필자는 $TMPDIR 안에 있는 그 어떤 파일도 임의로 지우지 않습니다(예전에 아픈 기억 때문에). 하지만 커맨드를 활용한 삭제는 안전한 듯합니다. ▼

$ qlmanage -r cache

 

모든 thumbnail 데이터가 초기화되었습니다. ▼


이상입니다.

참조

댓글 남기기