macOS 27의 Apple Intelligence Report: Mac에서 무엇이 전송되는지 확인하기

macOSTahoe ·
macOS 27의 Apple Intelligence Report: Mac에서 무엇이 전송되는지 확인하기

macOS 27의 Apple Intelligence Report를 사용해 Siri AI와 Writing Tools 요청 중 어떤 것이 Private Cloud Compute로 전송됐는지 확인하고, JSON을 읽고, 이를 보호하는 방법을 알아봅니다.

macOS 27 Golden Gate부터 Apple Intelligence는 더 이상 선택 사항이 아니게 되었습니다. 사용 여부와 관계없이 모델이 다운로드되고, Siri AI는 Spotlight에 내장되었으며, 그 어느 때보다 많은 요청이 Mac에서 Apple 서버로 넘어가 처리됩니다. "정확히 무엇이 전송되는가?"라는 질문에 대한 Apple의 답은 대부분의 Mac 사용자가 한 번도 열어본 적 없는 기능, 즉 Privacy & Security 설정 맨 아래에 숨어 있는 Apple Intelligence Report입니다. 이 기능은 Private Cloud Compute로 보낸 텍스트와 그에 대한 응답을 요청 단위로 보여줄 수 있습니다. 하지만 빈 파일을 내보내기 쉽고, 잘못 해석하기 쉬우며, 유출되기도 쉬운 여러 특이점도 가지고 있습니다. 이 가이드에서는 실제로 기록이 남도록 이 기능을 켜는 방법, Mac에 이미 있는 도구로 이 기능이 생성하는 JSON을 읽는 방법, 이 보고서가 알려주지 못하는 것, 그리고 그 가장 깊은 층 — 암호학적 증명(attestation) — 이 사실은 사용자보다 보안 연구자를 위한 것인 이유를 살펴봅니다.

핵심 요약

  • 이 보고서는 Private Cloud Compute 활동을 기록하며, 이는 사용자가 직접 켠 이후부터만 적용됩니다. System Settings > Privacy & Security > Apple Intelligence Report에서 "최근 15분"(기본값) 또는 "최근 7일"을 선택합니다. Apple은 기간을 변경한 이후 Private Cloud Compute 요청이 없었다면 보고서가 비어 있을 수 있다고 경고합니다.
  • 실제로 사용자가 입력한 내용이 그대로 담겨 있습니다. Howard Oakley의 분석에 따르면 각 요청 항목에는 전체 프롬프트와 모델의 응답이 포함됩니다 — 예를 들어 Writing Tools를 거친 텍스트가 그렇습니다. 내보낸 파일은 개인 일기처럼 취급해야 합니다.
  • 기본 제공 도구로 읽을 수 있는 JSON 파일입니다. macOS에는 jq가 포함되어 있으며, 이 가이드에 나오는 몇 가지 명령으로 보고서를 어떤 앱이 언제 무엇을 보냈는지, 기기에서 처리됐는지 클라우드에서 처리됐는지 알 수 있는 읽기 쉬운 목록으로 바꿀 수 있습니다.
  • Mac에서 일어난 AI 활동의 완전한 기록은 아닙니다. Oakley는 기기 내(on-device) 상호작용이 통합 로그(unified log)에만 기록되는 것으로 보이며, Siri 대화는 새 Siri 앱에 대화록 형태로 기록된다는 사실을 확인했습니다.
  • 증명(attestation) 데이터는 연구자를 위한 것입니다. 보고서 대부분은 각 요청을 처리한 서버에 대한 Base64로 인코딩된 증명 번들(attestation bundle)입니다. Apple의 pccvre 도구로 이를 파싱할 수 있지만 Recovery에서 보안 설정을 변경해야 하며, Oakley는 그 결과가 일반 사용자에게는 "쓸모가 거의 없다"고 결론지었습니다.

macOS 27에서 이 보고서가 더 중요한 이유

Apple Intelligence는 작업을 두 곳으로 나눠 처리합니다. 간단한 작업은 Mac에 저장된 모델을 사용해 기기에서(on the device) 실행됩니다. 더 큰 작업은 Apple silicon 기반 서버 인프라인 **Private Cloud Compute(PCC)**로 전송됩니다. Mac용 Apple 개인정보 보호 페이지에는 "Private Cloud Compute에서 처리되는 데이터는 저장되거나 Apple이 접근할 수 있도록 제공되지 않습니다. 이 데이터는 오직 요청을 처리하기 위해서만 사용되며, 처리 후 결과는 안전하게 기기로 반환되고 보관되지 않습니다"라고 명시되어 있습니다.

macOS 27에서 세 가지가 바뀌면서 이 약속을 직접 확인해볼 가치가 생겼습니다.

  1. 더 이상 Apple Intelligence를 완전히 끌 수 없습니다. MacRumors가 보도한 것처럼, macOS 27과 iOS 27에서는 이를 비활성화하던 토글이 제거되었습니다. 이 변경으로 인한 저장공간 비용은 업그레이드 후 macOS 27이 차지하는 30GB 가이드에서 다룹니다.
  2. Siri AI는 새로운 대화형 클라이언트입니다. Spotlight에 내장되어 있으며 전용 앱도 있습니다. 사용법은 macOS 27용 Siri AI 가이드에서 다뤘습니다. 더 강력한 요청일수록 더 많은 요청이 PCC로 전송된다는 의미이기도 합니다.
  3. Home도 목록에 추가됐습니다. Apple의 macOS 27 릴리스 노트에는 Home 앱에서 Apple Intelligence를 활성화하면 "HomeKit Secure Video 녹화 영상이 영상 설명 및 검색을 위해 기기 내와 Private Cloud Compute를 통해 처리됩니다"(178858470)라고 명시되어 있습니다. 같은 릴리스 노트에는 Home Intelligence 항목에 대한 Apple Intelligence Report 수정 사항도 실려 있는데, "Private Cloud Compute로 전송된 일부 데이터가 보고서에 나타나지 않는" 문제(176056930)였습니다 — 이는 Apple이 이 데이터가 보고서에 나타나야 한다고 간주하고 있음을 보여주는 신호입니다.

이 보고서는 PCC로 전송된 내용을 요청 단위로 확인할 수 있는 유일한 기본 제공 기록입니다. 개인정보 보호에 조금이라도 관심이 있다면 이를 사용하는 방법을 알아둘 가치가 있습니다.

Private Cloud Compute가 약속하는 것과 보고서로 확인할 수 있는 것

Apple의 어떤 주장을 이 보고서로 실제로 검증할 수 있는지 알면 보고서를 읽기가 더 쉬워집니다. Apple은 2024년 6월 10일 보안 연구 블로그에서 Private Cloud Compute를 소개하며 다섯 가지 핵심 요건을 제시했습니다.

요건Apple의 약속보고서로 확인 가능한가?
개인 사용자 데이터에 대한 상태 비저장(stateless) 연산데이터는 오직 요청 처리를 위해서만 사용되고, 보관되지 않으며, Apple 직원이 접근할 수 없음아니오 — 서버에서 일어나는 일이기 때문
강제 가능한 보장보호 장치는 정책만이 아니라 기술적으로도 강제됨간접적으로 — 증명(attestation)을 통해
권한을 가진 런타임 접근 불가사고가 발생하더라도 직원이 개인정보 보호 장치를 우회할 수 있는 인터페이스가 없음아니오
특정 대상 지정 불가(Non-targetability)전체 시스템을 손상시키지 않고는 공격자가 특정 사용자의 데이터만 골라낼 수 없음부분적으로 — 아래의 릴레이 참고
검증 가능한 투명성연구자가 실행 중인 소프트웨어가 Apple이 공개한 것과 일치하는지 확인 가능예 — 증명 번들과 pccvre를 통해

이 설계에서 나온 두 가지 메커니즘이 보고서에서 보게 될 내용 대부분을 설명해줍니다.

Mac이 어떤 서버를 신뢰할지 직접 선택합니다. Apple은 기기가 각 요청의 페이로드 키를 "공개 투명성 로그(public transparency log)의 소프트웨어 릴리스와 일치하는 증명된 측정값을 가진 PCC 노드의 공개 키에만" 감싼다고 설명합니다. 다시 말해, Mac은 어떤 서버든 데이터를 복호화하도록 허용하기 전에 공개되어 있고 추가만 가능한(append-only) 소프트웨어 릴리스 목록과 대조해 각 후보 서버의 증명을 확인합니다. privateCloudComputeRequests에 담긴 증명 번들이 바로 이 확인 절차의 증거이며, 자격을 갖춘 노드마다 키가 배포되기 때문에 하나의 요청에 여러 노드가 나열될 수 있습니다. 하나의 요청에 여러 증명 항목이 있다고 해서 데이터 사본이 여러 개 처리됐다는 뜻은 아니며, 여러 서버가 해당 요청을 처리할 자격이 있었다는 뜻입니다.

IP 주소는 Apple로부터 숨겨집니다. 같은 게시물에 따르면 PCC 요청은 "요청이 PCC 인프라에 도달하기 전에 기기의 발신 IP 주소를 숨기는, 제3자가 운영하는" OHTTP 릴레이를 거칩니다. 이는 특정 대상 지정 불가 요건의 일부입니다. 보고서는 요청과 노드를 보여주지만, 설계상 Apple 외부에 위치한 이 릴레이는 보여주지 않습니다.

이 보고서가 할 수 없는 것은 첫 번째와 세 번째 약속을 증명하는 일입니다. 서버가 응답 후 실제로 데이터를 폐기하는지는 그 서버에서 실행 중인 소프트웨어의 속성입니다. 증명은 그 소프트웨어가 공개된 릴리스와 일치한다는 사실만 알려주며, 그 공개된 릴리스 자체는 Apple silicon Mac용으로 Apple이 제공하는 Virtual Research Environment를 사용해 독립적인 연구자들이 검사합니다. 사용자는 무엇이 전송됐는지 확인하고, 연구자는 서버가 무엇을 실행하는지 확인하는 이 역할 분담이야말로 이 보고서를 바라보는 정직한 방식입니다.

AI 활동이 기록되는 세 곳

무언가를 켜기 전에, 이 보고서가 세 가지 기록 중 하나이며 각각 다른 영역을 다룬다는 점을 알아두면 도움이 됩니다. 9월 22일자 Howard Oakley의 안내글은 이를 다음과 같이 정리합니다.

기록다루는 범위확인 위치
통합 로그(Unified log)기기 내 상호작용(이곳에만 기록되는 것으로 보임)Console 앱 또는 log 명령어; 일상적으로 읽기 위한 용도가 아님
Siri 앱Siri 대화의 상세한 대화록macOS 27의 새 Siri 앱
Apple Intelligence Report(AIR)Private Cloud Compute가 처리한 요청, 프롬프트, 응답, 증명 데이터 포함System Settings > Privacy & Security > Apple Intelligence Report

그러니 "내가 Siri에게 뭐라고 말했지?"가 궁금하다면 Siri 앱을 열면 됩니다. "어떤 텍스트가 내 Mac에서 Apple 서버로 나갔지?"가 궁금하다면 답은 이 보고서입니다. 그리고 "기기 내 모델은 무엇을 했지?"가 궁금하다면, 솔직히 말해 친절하게 확인할 수 있는 기록은 존재하지 않습니다.

실제로 기록이 남도록 보고서를 켜는 방법

가장 흔한 실수는 보고서를 내보냈는데 빈 파일이 나오는 것입니다. 이는 보고서가 선택한 기간, 즉 그 기간을 선택한 시점부터만 다루기 때문에 발생합니다. macOS 27용 Apple 자체 도움말 페이지에는 이렇게 쓰여 있습니다. "기간을 변경한 이후 Private Cloud Compute 요청이 전혀 없었다면 보고서가 비어 있을 수 있습니다."

다음 순서를 따르세요.

  1. System Settings를 열고 사이드바에서 Privacy & Security를 클릭합니다.
  2. 맨 아래로 스크롤해 Apple Intelligence Report를 클릭합니다.
  3. 보고서 기간을 선택합니다. Last 15 Minutes(기본값) 또는 Last 7 Days 중에서 고릅니다. Off를 선택하면 보고서가 꺼집니다.
  4. 이제 평소처럼 Apple Intelligence를 사용합니다 — Writing Tools로 문단을 다시 써보거나, Siri AI에게 복잡한 질문을 하거나, 긴 이메일을 요약해봅니다.
  5. 같은 화면으로 돌아가 Export Activity를 클릭합니다.
  6. 저장할 위치를 선택하고 Export를 클릭합니다. 파일 이름은 Apple_Intelligence_Report.json입니다.

어떤 기간을 선택할지는 무엇을 알고 싶은지에 따라 달라집니다.

  • Last 15 Minutes는 집중적인 테스트에 가장 적합합니다. 켜고, 특정 동작 하나를 수행한 뒤 바로 내보내면 읽기 쉽고 방금 한 일만 담긴 작은 파일을 얻을 수 있습니다.
  • Last 7 Days는 평소 사용 패턴을 감사하는 데 가장 적합합니다. 설정한 뒤 일주일 동안 평소처럼 작업하고 내보냅니다. 훨씬 큰 파일이 나오며 대부분 증명 데이터가 차지할 것으로 예상됩니다.

Apple 도움말 페이지에는 텍스트 리더로 파일을 열라고 되어 있습니다. 그렇게 해도 되지만, 이 파일은 눈으로 읽도록 설계되지 않았기 때문에 다음 섹션이 중요합니다.

내보낸 파일을 민감한 데이터로 다루기

Oakley가 보고서를 읽고 내린 해석은 명확합니다. 이 보고서에는 "메시지와 지능형 작문 도구에 입력한 텍스트"와 같은 개인 데이터가 포함되어 있습니다. 각 요청 항목에는 전체 프롬프트와 모델의 응답이 담겨 있습니다. Writing Tools로 사적인 이메일을 다시 썼다면 그 이메일의 텍스트가 파일 안에 있는 것입니다.

그렇기 때문에 이 파일을 다루는 방식도 달라져야 합니다.

  • 비공개 위치에 저장하세요. Desktop & Documents 동기화가 켜져 있다면 바탕화면이 iCloud Drive에 동기화될 수 있습니다. 동기화되지 않는 로컬 폴더를 고려하세요.
  • 지원 요청에 첨부하거나 온라인 JSON 뷰어에 업로드하지 마세요. 구조만 공유하고 싶다면 먼저 프롬프트와 응답을 제거하세요(명령어는 아래에 있습니다).
  • 다 사용했으면 삭제하세요. 휴지통으로 이동시킨 뒤 휴지통을 비웁니다. 보고서는 해당 기간 내라면 언제든 다시 내보낼 수 있습니다.
  • 기간 설정은 계속 유지된다는 점을 기억하세요. 감사를 위해 7일로 설정했다면, 이후 그대로 둘지 다시 원래대로 되돌릴지 결정하세요.

이 보고서 설정은 사용자가 검토할 수 있도록 Mac이 무엇을 기록할지를 제어할 뿐입니다. 이를 끈다고 해서 요청이 PCC로 전송되는 것이 멈추는 것은 아니며, 단지 Mac이 그 목록을 기록하는 것을 멈출 뿐입니다.

JSON 안에는 무엇이 있는가

보고서에는 최상위 섹션이 두 개 있습니다. Oakley의 분석과 GitHub에 있는 오픈소스 뷰어의 문서는 대략적인 구조에 대해 일치된 견해를 보입니다.

modelRequests — 모델에 대한 요청 하나당 항목 하나입니다. 각 항목에는 다음과 같은 필드가 포함됩니다.

필드담고 있는 내용
timestamp요청이 이루어진 시각, 1970년 1월 1일 이후 경과 초(소수점 포함)
identifier요청의 고유 ID(UUID)
prompt모델로 전송된 전체 텍스트
response모델의 응답
model모델 식별자, 예를 들어 com.apple.fm.language.instruct_server_v2로 시작하는 값
modelVersion모델 버전
useCase요청의 용도
clientIdentifier요청을 보낸 구성 요소 — Writing Tools의 경우 Oakley의 2024년 분석에서는 com.apple.WritingTools.xpc.WritingToolsViewService가 확인됨
executionEnvironment실행 위치: 서버 요청의 경우 PrivateCloudCompute; Oakley는 OnDevice도 가능한 값으로 언급함

privateCloudComputeRequests — PCC가 처리한 요청에 대한 메타데이터입니다. Oakley는 이를 대부분의 보고서에서 "대부분"을 차지하는 부분이라고 설명합니다. 주된 내용은 Base64로 인코딩된 **증명 번들(attestation bundle)**입니다. 각 번들은 Mac이 해당 요청의 암호화 키를 넘겨줄 의향이 있었던 PCC 서버 노드를 설명합니다. GitHub 뷰어의 문서에는 requestId, nodeState, 노드 개수, attestationBundle, node, proxiedBy, assetHash와 같은 필드도 나열되어 있으며, 이들 대부분을 불투명한 기술적 값으로 취급합니다.

저희는 아직 macOS 27 보고서를 직접 내보내보지 못했습니다 — 테스트용 Mac이 아직 macOS Tahoe 26.5.2이기 때문입니다 — 그래서 위 필드 목록은 저희 자신의 파일이 아니라 앞서 언급한 두 출처에서 가져온 것입니다. 필드 이름은 릴리스마다 달라질 수 있습니다. 다음 섹션의 첫 번째 명령어는 여러분의 실제 보고서에 무엇이 들어 있는지 보여줍니다. 이 표를 포함한 그 어떤 표보다 그 결과를 신뢰하세요.

jq로 보고서 읽기

macOS에는 명령줄 JSON 처리기인 jq가 포함되어 있습니다. 저희의 Tahoe 테스트 Mac에서 /usr/bin/jq --version은 jq-1.7.1-apple을 표시합니다. Homebrew로도 jq를 설치했다면 아래 명령어 모두 문제없이 작동합니다.

터미널을 열고 보고서를 저장한 폴더로 cd 이동한 뒤, 먼저 그 구조부터 살펴봅니다.

1. 보고서에 무엇이 들어 있는지 확인하기

jq 'keys' Apple_Intelligence_Report.json
jq '.modelRequests[0] | keys' Apple_Intelligence_Report.json

첫 번째 명령어는 최상위 섹션을 나열합니다. modelRequests와 privateCloudComputeRequests가 보여야 합니다. 두 번째 명령어는 첫 번째 모델 요청의 필드를 나열합니다. 두 명령어 중 어느 쪽이든 null 관련 오류로 실패한다면 해당 섹션이 비어 있는 것입니다 — 돌아가서 기간 설정을 확인하세요.

2. 요청 개수 세기

jq '{modelRequests: (.modelRequests | length), pccRequests: (.privateCloudComputeRequests | length)}' Apple_Intelligence_Report.json

Writing Tools 동작 몇 개로 이루어진 15분 테스트라면 두 숫자 모두 작은 값이어야 합니다. 오픈소스 뷰어의 문서에는 모델 요청 23건, PCC 요청 18건인 예시 보고서가 나와 있습니다.

3. 모든 요청을 타임라인으로 나열하기

jq -r '.modelRequests[] | [(.timestamp | floor | todate), .executionEnvironment, .clientIdentifier, .model] | @tsv' Apple_Intelligence_Report.json

이 명령은 요청마다 한 줄씩 출력합니다. 시간(UTC), 실행 위치, 요청한 구성 요소, 응답한 모델이 표시됩니다. 전체 패턴을 파악하는 가장 빠른 방법입니다. 현지 시간을 원한다면 todate를 strflocaltime("%Y-%m-%d %H:%M")으로 바꾸세요.

4. 기기에서 실행된 것과 클라우드에서 실행된 것의 비율

jq '[.modelRequests[].executionEnvironment] | group_by(.) | map({(.[0]): length}) | add' Apple_Intelligence_Report.json

결과는 {"PrivateCloudCompute": 12}와 같은 작은 객체입니다. 기기 내 상호작용이 통합 로그에만 기록되는 것으로 보인다는 Oakley의 발견을 고려하면, 보고서의 모든 항목이 PrivateCloudCompute로 나타나도 놀랄 일은 아닙니다.

5. 어떤 앱과 구성 요소가 요청을 보냈는지

jq -r '[.modelRequests[].clientIdentifier] | group_by(.) | map("\(length)\t\(.[0])") | .[]' Apple_Intelligence_Report.json

각 줄은 개수와 클라이언트 식별자로 이루어져 있습니다. 이는 "Mail이 요약을 위해 내 메시지를 PCC로 보내고 있는가?"나 "Writing Tools는 서버를 얼마나 자주 사용하는가?" 같은 질문에 답해줍니다.

6. 전송된 텍스트 읽기

jq -r '.modelRequests[] | select(.executionEnvironment == "PrivateCloudCompute") | "\(.timestamp | floor | strflocaltime("%Y-%m-%d %H:%M"))  \(.clientIdentifier)\n  PROMPT: \((.prompt // "")[0:300])\n"' Apple_Intelligence_Report.json

이 명령은 PCC로 전송된 각 프롬프트의 처음 300자를 시간, 출처와 함께 출력합니다. 보고서에서 가장 많은 것을 드러내는 화면이며, 이 파일을 조심스럽게 다뤄야 하는 이유이기도 합니다.

7. 텍스트를 제외한 공유용 사본 만들기

jq 'del(.modelRequests[].prompt, .modelRequests[].response)' Apple_Intelligence_Report.json > AIR-redacted.json

개발자나 포럼에 보고서의 구조를 공유하고 싶다면 이 버전을 공유하세요. 타임스탬프, 모델, 실행 환경은 남겨두되 프롬프트와 응답은 제거합니다. 공유하기 전에 확인하세요. 향후 버전의 보고서가 다른 필드에 텍스트를 담게 된다면 이 명령은 그것까지 제거하지 못합니다.

항목 하나를 필드별로 읽어보기

타임라인을 확보했다면 항목 하나를 골라 전체를 읽어보세요. 각 부분이 무엇을 알려주는지 알아두면 도움이 됩니다.

  • model 이름은 작업의 규모를 알려줍니다. server가 포함된 식별자 — Oakley의 예시로는 com.apple.fm.language.instruct_server_v2와, 2024년에는 com.apple.fm.language.instruct_server_v1.text_summarizer가 있음 — 는 서버 측 모델을 가리킵니다. 로컬에서 실행될 것으로 예상했던 요청에 서버 모델이 표시된다면, 그 요청에서는 해당 기능이 PCC를 사용한 것입니다.
  • clientIdentifier는 누가 요청했는지 알려줍니다. 항상 사용 중이던 앱이 아니라 시스템 구성 요소의 이름이 표시됩니다. Writing Tools 요청은 Mail, Notes, 서드파티 편집기 중 어디서 호출했든 자체 서비스인 com.apple.WritingTools.xpc.WritingToolsViewService에서 발생합니다. 그러니 어떤 앱을 사용하고 있었는지 알고 싶다면 이 필드보다 타임스탬프와 본인의 기억을 활용하세요.
  • useCase는 어떤 종류의 요청이었는지 알려줍니다. 값은 기능마다 다르므로 같은 기능에서 나온 여러 항목을 비교해 자신의 값이 어떤 모습인지 파악하세요.
  • prompt는 전송 범위를 알려줍니다. 놀라운 사실이 발견되기 쉬운 부분입니다. 요약 요청에는 화면에 보이던 것보다 더 많은 이메일 스레드 내용이 포함될 수 있고, 다시 쓰기 요청에는 생각했던 문장뿐 아니라 선택 영역 전체가 포함됩니다. 프롬프트 몇 개를 읽어보는 것이 각 기능이 무엇을 전송하는지 가늠하는 가장 좋은 방법입니다.
  • response는 돌아온 결과입니다. 화면에서 본 내용과 일치해야 합니다. 응답은 존재하지만 결과를 본 적이 없다면 — 예를 들어 작업을 취소한 경우 — 그래도 요청은 서버까지 도달한 것입니다.

iPhone과 iPad에서도 동일한 보고서

Apple은 iPhone과 iPad에서도 Settings > Privacy & Security > Apple Intelligence Report에 동일한 보고서를 제공하며, 해당 기기용 Apple 도움말 페이지도 같은 방식으로 설명합니다. 기록은 기기별로 이루어집니다. Mac에서 내보낸 보고서는 그 Mac에서 이루어진 요청만 보여줍니다. Apple Intelligence 사용 전체를 감사하고 싶다면 같은 기간 동안 각 기기에서 보고서를 내보내세요.

저희는 macOS에 기본 포함된 jq를 사용해, 문서화된 필드 이름을 바탕으로 만든 작은 샘플 파일을 대상으로 이 섹션의 모든 명령어를 테스트했습니다. 실제 보고서에서는 증명 섹션 때문에 파일이 커져 텍스트 편집기에서 열기 느려질 것으로 예상되지만, jq 명령어는 이를 문제없이 처리합니다.

밤에 테이블 위에 나란히 놓인 노트북, 태블릿, 스마트폰, 각 화면이 동일한 은은한 보라색 빛을 냄

흔히 잘못 이해하는 네 가지

처음 보고서를 열어보는 사람들은 대체로 같은 잘못된 결론을 내리곤 합니다. 다음 사항들을 피하세요.

  1. "두 섹션의 항목 수는 같아야 한다." 그럴 필요는 없습니다. modelRequests는 모델에 대한 요청을 나열하고, privateCloudComputeRequests는 대부분 증명으로 이루어진 PCC 메타데이터를 담고 있습니다. GitHub 뷰어 문서의 예시 보고서는 전자가 23건, 후자가 18건이었습니다. 일대일 대응을 기대하기보다 시간으로 항목을 맞춰보세요.
  2. "증명이 많다는 건 내 데이터가 여러 서버로 갔다는 뜻이다." 앞서 설명했듯, Mac은 공개된 릴리스와 증명이 일치하는 모든 노드에 요청의 키를 배포합니다. 증명이 여러 개라는 것은 자격을 갖춘 노드가 여럿이라는 뜻이지, 요청이 여러 번 처리됐다는 뜻이 아닙니다.
  3. "모델 이름을 보면 내가 어떤 제품을 사용했는지 알 수 있다." 모델 식별자는 Apple의 내부 모델과 어댑터를 나타내며, 같은 모델이 여러 기능에 사용될 수 있습니다. 무엇을 하고 있었는지 파악하려면 clientIdentifier와 타임스탬프를 활용하세요.
  4. "보고서에 아무것도 없다는 건 내 Mac에서 아무것도 나가지 않았다는 뜻이다." 기간을 변경한 이후 보고서가 비어 있다는 것은 그 이후로 PCC 요청이 없었다는 뜻일 뿐입니다. 그 이전 기간에 대해서는 아무것도 알려주지 않으며, ChatGPT 같은 서드파티 서비스도 포함하지 않습니다.

이 보고서가 알려주지 않는 것

이 보고서는 다루는 범위가 구체적이기 때문에 가치가 있지만, 그 한계 역시 그만큼 구체적입니다.

  • 기기 내 활동은 대부분 빠져 있습니다. Oakley의 해석에 따르면 기기 내 상호작용은 통합 로그에만 나타납니다. 이 보고서는 Apple Intelligence가 Mac에서 한 일의 완전한 기록이 아닙니다.
  • Siri 대화는 다른 곳에 기록됩니다. Siri 앱이 대화록을 보관하므로, Siri에게 무슨 말을 했는지 확인하려면 이 보고서가 아니라 그곳을 봐야 합니다.
  • 서버에서 무슨 일이 일어났는지가 아니라 무엇이 전송됐는지를 보여줍니다. 이 보고서는 Mac이 증명을 받아들인 서버로 요청을 보냈다는 사실을 증명합니다. 그 서버들이 데이터로 무엇을 했는지는 보여줄 수 없으며, 그것을 확인하는 것이 Apple이 공개한 보안 설계와 독립적인 연구의 역할입니다.
  • 보고서에 포함되는 범위는 해당 기능이 제대로 연동되어 있는지에 달려 있습니다. macOS 27 릴리스 노트에서 Home Intelligence 항목이 보고서에서 누락되던 문제를 수정한 사례(176056930)는 적어도 사전 릴리스 빌드에서는 기능이 보고서에 나타나지 않을 수 있음을 보여줍니다.
  • 서드파티 AI는 이 보고서의 범위 밖입니다. 이 보고서는 Apple Intelligence와 Private Cloud Compute를 다룹니다. 통합 기능을 통해 ChatGPT로 무언가를 보내기로 선택하면, 그 요청은 OpenAI의 약관을 따릅니다. Mac에서의 ChatGPT 개인정보 보호 측면은 ChatGPT Messages 플러그인과 전체 디스크 접근 권한 문서에서 다뤘습니다.

더 깊이 들어가기: 증명(attestation)과 pccvre

증명 번들은 Private Cloud Compute를 단순한 약속 이상의 것으로 만들어주는 보고서 부분입니다. 보안 연구 블로그에 설명된 Apple의 설계에 따르면, 기기는 Apple이 검사용으로 공개한 소프트웨어를 실행 중이라는 사실을 암호학적으로 증명할 수 있는 PCC 노드에만 요청을 보냅니다. 보고서에 담긴 증명 번들이 바로 그 증거입니다.

Apple은 이를 파싱하는 도구를 제공합니다. Oakley의 9월 24일자 후속 글은 Apple의 말을 다음과 같이 인용합니다. "pccvre attestation 하위 명령을 사용해 Apple Intelligence Report의 증명 번들을 파싱, 정규화, 검증할 수 있습니다." 이 도구는 다음 위치에 있습니다.

ls -l /System/Library/SecurityResearch/usr/bin/pccvre

저희의 Tahoe 26.5.2 Mac에는 이미 이 도구가 있습니다. 하지만 이를 실행해도 일반적인 Mac에서는 그다지 진행되지 않습니다. 저희 Mac에서는 pccvre --help와 pccvre attestation --help 모두 다음 메시지와 함께 즉시 멈췄습니다.

allow-research-guests is currently disabled; Please go to recovery and run 'csrutil allow-research-guests enable'

이것이 관문입니다. pccvre를 사용하려면 Recovery로 시작한 뒤 System Integrity Protection 옵션을 변경해야 합니다.

csrutil allow-research-guests enable

일반 세션에서 다음 명령으로 상태를 확인할 수 있습니다.

csrutil allow-research-guests status

저희 Mac에서는 csrutil status의 System Integrity Protection status: enabled와 함께 Allow Research Guests status: disabled가 표시됩니다. Oakley는 Apple이 연구 접근을 활성화하면 "추가적인 공격 표면이 노출될 수 있다"고 경고한다고 언급합니다. 그는 자신의 주력 Mac이 아니라 보안 설정을 변경한 macOS 27 가상 머신에서 작업했으며, sudo pccvre --help를 실행해 라이선스 프롬프트에 동의한 뒤 다음과 같은 형태의 명령으로 번들을 파싱했습니다.

pccvre attestation parse [--debug] [--input-format <input-format>] \
  [--request-index <request-index>] [--attestation-index <attestation-index>] \
  [--bundle-version <bundle-version>] [--output-format <output-format>] \
  [--output <output>] <file>

그의 결론은 전체 맥락에서 인용할 가치가 있습니다. 증명 번들 하나에 대한 JSON 출력은 53KB에 달했으며, 거래의 보안성에 관해 알아볼 수 있는 단어가 몇 개 포함되어 있었지만 "압도적으로 더 많은 부분은 사람이 읽기 위한 것이 아니라 보안 연구자를 위한 Base64 인코딩 데이터"였습니다. 있는 그대로라면 AIR는 "우리에게 거의 쓸모가 없다"고 그는 적었습니다.

저희의 권장 사항은 여기서 나옵니다. 자신의 보고서를 읽기 위해 평소 사용하는 Mac에서 research guests를 활성화하지 마세요. 실제로 해석할 수 있는 부분인 프롬프트와 응답 텍스트는 보안 설정을 전혀 바꾸지 않아도 jq로 읽을 수 있습니다. 증명 검증은 가상 머신에서 작업하는 연구자들에게 맡겨두세요. 이것이 바로 Apple의 Virtual Research Environment가 설계된 목적입니다.

20분 만에 끝내는 실전 개인정보 보호 감사

평소 Apple Intelligence 사용이 Apple로 무엇을 전송하는지 알고 싶다면, 다음과 같은 집중된 루틴을 시도해보세요.

  1. 보고서를 Last 15 Minutes로 설정합니다. 깨끗한 시간 구간을 확보할 수 있습니다.
  2. 한 번에 한 가지씩 수행합니다. Writing Tools로 문단을 다시 써봅니다. 개인적인 맥락이 필요한 질문을 Siri AI에게 해봅니다. Mail에서 긴 이메일 스레드를 요약해봅니다. 사용한다면 Home Intelligence 검색도 시도해봅니다.
  3. 각 동작 후 내보내고 jq 섹션의 명령 3을 실행합니다. 각 동작이 PCC에 도달했는지, 어떤 구성 요소가 보냈는지 동작별로 확인할 수 있습니다.
  4. 명령 6으로 프롬프트를 읽습니다. 예상보다 더 많은 텍스트가 서버로 갔는지 확인합니다 — 예를 들어 요약을 위해 보이는 메시지 하나가 아니라 이메일 스레드 전체가 전송됐는지 확인합니다.
  5. 무엇을 바꿀지 결정합니다. 어떤 기능이 편안하게 느껴지는 것보다 더 많이 전송한다면, 민감한 자료에는 그 기능을 사용하지 마세요. macOS 27에서는 Apple Intelligence를 통째로 끌 수는 없지만, 기밀 문서에서는 Writing Tools를 호출하지 않기로 선택할 수는 있습니다.
  6. 내보낸 파일을 삭제하고 유지하고 싶은 기간으로 다시 설정합니다.

이는 회사에서 특정 기능이 "기기 내에서" 처리되는지 아닌지를 두고 벌어지는 논쟁을 해결하는 좋은 방법이기도 합니다. 보고서는 보여주는 그대로를 보여줄 뿐, 아무도 추측할 필요가 없습니다.

관리자를 위한 안내

Mac을 관리하는 조직은 조금 다른 질문을 던집니다. "내가 무엇을 보냈는가?"가 아니라 "우리 사용자들이 무엇을 보낼 수 있는가?"입니다. 이 보고서는 사용자별, Mac별 도구이므로 전체 기기군에 대한 감사 메커니즘은 아니지만, 정책을 작성할 때 유용한 검증 단계가 되어줍니다.

  • 정책 결정을 검증하는 데 사용하세요. MDM으로 어떤 기능을 허용하거나 제한하기 전에, 대표성 있는 데이터를 담은 테스트 Mac에서 위의 20분 감사를 실행해 어떤 구성 요소가 PCC에 도달하는지 확인하세요.
  • 저장공간 비용이 이제 고정되어 있다는 점을 기억하세요. macOS 27에서는 Apple Intelligence를 완전히 비활성화할 수 없으므로 모든 Mac이 모델을 다운로드합니다. macOS 27 저장공간 가이드에 설명된 대로 이에 대비하세요.
  • 내보낸 보고서를 사용자 데이터로 취급하세요. 조사를 위해 사용자에게 보고서 내보내기를 요청한다면, 그 안에는 사용자의 텍스트가 담겨 있습니다. 이메일 내용과 같은 규칙으로 다루세요.

관리 대상 기기군에 영향을 미치는 macOS 27의 더 폭넓은 변경 사항은 macOS 27 관리자 체크리스트를 참고하세요.

사무실에서 노트북을 확인하는 IT 관리자, 옆에는 관리 대상 노트북으로 가득 찬 충전 카트

자주 발생하는 문제 해결하기

내보낸 보고서가 비어 있음

문제: Apple_Intelligence_Report.json에 요청이 하나도 없거나, jq가 null 섹션을 보고합니다.

해결 방법: 보고서는 마지막으로 기간을 변경한 이후에 이루어진 PCC 요청만 다룹니다. 기간을 설정한 뒤 실제로 PCC에 도달하는 기능을 사용하고(상당한 길이의 문단에 대한 Writing Tools 다시 쓰기가 신뢰할 만한 테스트입니다) 다시 내보내세요. 기기 내 기능만 사용했다면 빈 보고서가 나오는 것이 정상입니다.

Privacy & Security에서 Apple Intelligence Report를 찾을 수 없음

문제: 목록에 해당 항목이 없습니다.

해결 방법: Privacy & Security 화면 맨 아래, 권한 목록보다 아래에 있으니 스크롤을 내리세요. Apple Intelligence를 지원하는 Mac에서만 나타납니다. Mac에서 Apple Intelligence 자체를 사용할 수 없다면 Apple Intelligence를 사용할 수 없거나 회색으로 표시될 때를 참고하세요.

jq가 "Cannot iterate over null"이라고 표시함

문제: 명령이 중간에 실패합니다.

해결 방법: 명령이 기대하는 섹션이 보고서에 없거나, 일부 항목에 필드가 빠져 있는 것입니다. jq 'keys'와 jq '.modelRequests[0] | keys'를 실행해 실제 구조를 확인한 뒤 필드 이름을 조정하세요. 필드 뒤에 // empty를 추가하면 — 예를 들어 .prompt // empty — 실패하는 대신 누락된 값을 건너뜁니다.

타임스탬프가 이상하게 보임

문제: 시간이 몇 시간씩 어긋나 있습니다.

해결 방법: todate는 UTC로 출력됩니다. 현지 시간대를 원한다면 대신 strflocaltime("%Y-%m-%d %H:%M")을 사용하세요. 원본 값은 1970년 1월 1일 이후 경과 초(소수점 포함)이므로 먼저 floor로 반올림해야 합니다.

파일이 너무 커서 열리지 않음

문제: 7일 보고서는 수십 메가바이트에 달해 텍스트 편집기가 멈춰버립니다.

해결 방법: 그것은 증명 데이터 때문입니다. 편집기로 열지 말고, 요청한 부분만 읽어오는 jq 명령을 사용하세요. 명령 7은 프롬프트와 응답이 빠진 훨씬 작은 사본을 만들어줍니다.

pccvre가 research guests가 비활성화되어 있다고 표시함

문제: 어떤 pccvre 명령을 실행해도 "allow-research-guests is currently disabled" 메시지와 함께 멈춥니다.

해결 방법: 이는 의도된 설계입니다. 이를 활성화하려면 Recovery가 필요하며 보안 경계가 약해집니다. 보안 연구자라면 Oakley가 했던 것처럼 가상 머신에서 진행하세요. 그렇지 않다면 증명 계층은 건너뛰세요. 프롬프트와 응답을 읽는 데는 필요하지 않습니다.

FAQ

Mac의 Apple Intelligence Report란 무엇인가요?

Private Cloud Compute가 처리한 Apple Intelligence 요청의 기록으로, System Settings > Privacy & Security에서 확인할 수 있습니다. 15분 또는 7일 중 기간을 선택한 뒤 Apple_Intelligence_Report.json으로 내보냅니다.

왜 내 Apple Intelligence Report가 비어 있나요?

기간을 변경한 이후에 이루어진 Private Cloud Compute 요청만 포함되기 때문입니다. 먼저 기간을 설정하고, 긴 문단에 Writing Tools를 사용하는 등 클라우드에 도달하는 기능을 사용한 뒤 내보내세요.

보고서에 실제로 내가 입력한 텍스트가 포함되나요?

네. 각 요청 항목에는 모델로 전송된 프롬프트와 응답이 포함됩니다. 내보낸 파일은 비공개로 유지하고, 온라인 뷰어에 업로드하지 말고, 다 사용했으면 삭제하세요. 구조를 안전하게 공유하려면 jq 편집(redaction) 명령을 사용하세요.

보고서를 끄면 데이터가 Apple 서버로 가는 것을 막을 수 있나요?

아니요. 이 설정은 사용자가 검토할 수 있도록 Mac이 Private Cloud Compute 요청 기록을 남길지 여부만 제어합니다. 어떤 기능이 필요로 하면 요청은 여전히 Private Cloud Compute로 전송됩니다.

기기 내 모델이 무엇을 했는지 확인할 수 있나요?

친절한 방법으로는 불가능합니다. Howard Oakley의 분석에 따르면 기기 내 상호작용은 통합 로그에만 기록되는 것으로 보입니다. Siri 대화는 Siri 앱에 대화록 형태로 보관됩니다.

보고서에 있는 증명 번들(attestation bundle)은 무엇인가요?

Mac이 각 요청을 전송하기로 동의한 Private Cloud Compute 서버를 설명하는 암호학적 증거입니다. Apple의 pccvre 도구로 이를 파싱할 수 있지만 Recovery에서 research guests를 활성화해야 하며, 그 출력 결과는 보안 연구자를 위한 것입니다.

보고서에 서드파티 뷰어를 사용해도 안전한가요?

완전히 로컬에서 실행되고 코드를 직접 확인할 수 있는 것만 그렇습니다. GitHub에 있는 오픈소스 뷰어는 네트워크 요청을 전혀 하지 않는다고 밝히고 있습니다. 그렇다 해도 가장 안전한 방법은 별도 소프트웨어가 필요 없는, 자신의 Mac에서 jq를 사용하는 것입니다.

마치며

Apple Intelligence Report는 macOS 27이 제공하는 것 중 AI 사용에 대한 영수증에 가장 가까운 존재입니다. 모든 것을 알려주지는 않습니다 — 기기 내 활동과 Siri 대화는 다른 곳에 있고, 증명 계층은 연구자를 위해 만들어졌습니다 — 하지만 무엇이 Private Cloud Compute로 Mac을 떠났고 무엇이 돌아왔는지는 평문으로 보여줍니다. 테스트하기 전에 켜고, 즉시 내보내고, 텍스트 편집기가 아니라 jq로 읽고, 이 파일을 개인 데이터로 취급하세요. 이제 Apple Intelligence를 완전히 끌 수 없는 만큼, 이를 확인하는 방법을 아는 것이 차선책입니다.

관련 글: Mac에서 Siri AI 사용하는 방법 · macOS 27의 Siri AI 대기자 명단 · macOS 27이 차지한 디스크 공간 30GB