Mac은 내 가족을 이미 안다: macOS가 매일 점수를 매기는 관계도

2022년부터 모든 Mac에서 돌아가는 개인 지식 그래프를 연구자들이 뜯어 봤습니다. 144개 특징으로 가족을 점수 매기는 방식과, 내 Mac의 저장소를 직접 열어 보는 방법을 정리합니다.

Mac은 내 가족을 이미 안다라는 제목과 중심 노드에서 여섯 사람으로 뻗는 관계도
출처: Eighth Rank

2022년 macOS 13부터 모든 Mac에는 데몬 두 개가 돌아가며 사용자와 주변 사람들의 관계도를 만든다. 연구자 Dario Pasquini와 Michał Bazyli는 이 저장소를 뜯어 본 글을 10월 28일에 냈다. 연락처와 사진, 메시지 기록에서 누가 가족인지 점수로 매기는 모델까지 디스크에 그대로 들어 있다.

가족인지 아닌지는 144개 숫자로 계산한다

두 데몬의 이름은 knowledgeconstructiond와 intelligenceplatformd다. 결과물은 ~/Library/IntelligencePlatform 아래 SQLite 데이터베이스 51개에 평문으로 쌓인다. 접근은 전체 디스크 접근 권한(TCC Full Disk Access)이 막는다. 핵심인 graph.db는 주체, 서술어, 객체 세 칸짜리 행을 모은 저장소로, 개체 분류 181개와 서술어 278개를 쓴다. 입력은 연락처, 사진 속 얼굴, 캘린더, 가족 공유(구성원 나이 포함), 건강 앱의 비상 연락처, 메일과 메시지에서 찾은 일정, 설치된 앱이다.

그중 가장 눈에 띄는 부분은 가족 판정이다. 온톨로지 파일 옆에는 EntityTagging_Family와 EntityTagging_FamilyAndFriends라는 이진 분류 모델(XGBoost) 두 개가 들어 있고, 사람마다 144개 특징을 받아 클래스와 확률을 낸다. 특징 이름은 모델 메타데이터에 평문으로 적혀 있다.

연락처, 사진, 메시지와 통화 기록, 가족 공유가 144개 특징으로 모여 분류 모델 두 개를 거쳐 사람별 점수표 entityTagging.db에 매일 기록되는 흐름. 점수표 17개 열 중 모델이 붙은 열은 2개.
출처: Eighth Rank, Anatomy of Apple's Personal Knowledge Graph의 설명을 다시 그림

144개의 구성이 편중돼 있다. 같은 성, 같은 집 주소, iCloud 가족 플래그처럼 누구인지 말해 주는 특징은 20개뿐이다. 나머지 124개는 행동에서 나온다. 40개는 그 사람과 언제 어떻게 연락하는지(요일, 시간대, 집이나 직장에 있을 때의 연락 빈도), 84개는 함께 찍힌 사진이 요일과 시간대 조합마다 얼마나 되는지다. 연구자들은 모델의 대부분이 이 둘이라고 정리했다.

결과는 사람 한 줄씩, 관계 17개 열(family, mother, coworker 등)로 된 표 entityTagging.db에 하루 한 번 다시 계산돼 들어간다. 모델이 붙은 열은 그중 2개다.

메시지 내용 없이도 생활 리듬이 나온다

저장소에는 메시지 본문이 없다. 누구와, 언제, 어느 앱으로, 어느 방향으로 연락했는지만 남는다. 연구자들은 그것만으로 충분하다고 본다. 시간 기록을 요일과 시각으로 접으면 매일 새벽 1시에서 7시 사이 빈 구간이 드러나고, 수면 시간표를 따로 저장하지 않았는데도 그 구간이 자는 시간으로 읽힌다. 연구자들이 가상 데이터로 그린 화면이지만 원리는 같다. 수집한 항목보다 그 결과물에서 새로 얻어지는 정보가 많다.

한 번 들어간 정보는 쉽게 사라지지 않는다. 연락처나 가족 공유에서 항목을 철회해도 그 행은 지워지지 않고 만료 표로 옮겨져 신뢰도와 출처를 그대로 가진다. macOS 27로 올리면 그래프가 연락처, 캘린더, 가족 공유 기반 행 대부분을 철회했다가 하루에 걸쳐 다시 만든다. 같은 저장소는 iOS에도 있고, 연구자들은 포렌식 도구 iLEAPP의 사례로 이를 보였다.

내 Mac에 무엇이 쌓였는지 직접 볼 수 있다

연구자들은 로컬에서만 도는 대시보드 iKnow를 공개했다. 파이썬 표준 라이브러리만 쓰고 127.0.0.1에 붙으며, 데이터베이스를 읽기 전용으로 열고 아무것도 쓰거나 기록하지 않는다. 전체 디스크 접근 권한을 쥔 프로그램이 이 저장소를 읽을 수 있으니, 도구를 돌릴 터미널이나 앱에 그 권한을 줄 때도 같은 점검이 필요하다. 연구자들은 저장소 위치를 알려 주는 에이전트용 안내문도 같이 냈고, 그 에이전트에는 클라우드 모델 대신 직접 돌리는 모델을 붙이라고 권했다.

적용해 볼 만한 점

전체 디스크 접근 권한을 준 앱 목록을 점검하고, iKnow로 내 Mac의 그래프를 열어 보는 것이 바로 해 볼 수 있는 일이다. 연락처와 가족 공유에 입력한 관계 정보가 이 추론의 재료가 된다는 점을 알고 입력하면 된다. 행동 기록 124개로 관계를 점수화하는 144개 특징 설계는, 내용 없이 메타데이터만으로 얼마나 알 수 있는지 따져 볼 때 참고할 만한 예이기도 하다.


출처: Eighth Rank, Anatomy of Apple's Personal Knowledge Graph