macOS 27のApple Intelligenceレポート:Macから何が送信されているかを確認する

macOSTahoe ·
macOS 27のApple Intelligenceレポート:Macから何が送信されているかを確認する

macOS 27のApple Intelligenceレポートを使って、Siri AIとWriting Toolsのどのリクエストがプライベートクラウドコンピュートに送られたかを確認し、JSONを読み、保護する方法を解説します。

macOS 27 Golden Gateにより、Apple Intelligenceはもはやオプションではなくなりました。モデルは使うかどうかにかかわらずダウンロードされ、Siri AIはSpotlightに組み込まれ、かつてないほど多くのリクエストがMacからAppleのサーバーへと処理のために送られています。「実際に何が送信されているのか?」というAppleの答えは、ほとんどのMacユーザーが一度も開いたことのない機能、つまりプライバシーとセキュリティ設定の一番下にひっそりと置かれたApple Intelligenceレポートです。このレポートは、プライベートクラウドコンピュートに送信したテキストと返ってきた応答を、リクエストごとに見せてくれます。ただし、空のファイルをエクスポートしてしまいやすい、誤読しやすい、流出させてしまいやすいといった癖もあります。このガイドでは、実際に何かが記録されるようにオンにする方法、Macに最初から入っているツールで生成されたJSONを読む方法、レポートではわからないこと、そしてその最も深い層——暗号学的アテステーション——があなたではなくセキュリティ研究者のためのものである理由を説明します。

重要なポイント

  • レポートはプライベートクラウドコンピュートのアクティビティを記録しますが、オンにした後からしか記録されません。 システム設定 > プライバシーとセキュリティ > Apple Intelligenceレポートで「過去15分間」(デフォルト)か「過去7日間」を選択します。Appleは、期間を変更してからプライベートクラウドコンピュートへのリクエストが一度もない場合、レポートが空になることがあると警告しています。
  • 実際のあなたの言葉が含まれています。 Howard Oakleyの分析によれば、各リクエストのエントリにはプロンプト全文とモデルの応答が含まれます——たとえばWriting Toolsに通したテキストなどです。エクスポートしたファイルは個人的な日記のように扱ってください。
  • 組み込みツールで読めるJSONファイルです。 macOSにはjqが含まれています。このガイドのいくつかのコマンドで、レポートを「どのアプリが」「何を」「いつ」送信し、それがデバイス上で処理されたのかクラウドで処理されたのかがわかる、読みやすいリストに変換できます。
  • Mac上のAI活動を網羅した完全なログではありません。 Oakleyの調査によると、オンデバイスでのやり取りは統合ログにしか記録されないようです。また、Siriとの会話は新しいSiriアプリにトランスクリプトとして記録されます。
  • アテステーションデータは研究者向けです。 レポートの大部分は、各リクエストを処理したサーバー向けのBase64エンコードされたアテステーションバンドルです。Appleのpccvreツールでこれを解析できますが、それにはリカバリでセキュリティ設定を変更する必要があり、Oakleyは一般ユーザーにとってその結果は「ほとんど役に立たない(precious little use)」と結論づけています。

macOS 27でこのレポートが重要になる理由

Apple Intelligenceは処理を2か所に分担しています。単純なタスクはMacに保存されたモデルを使ってデバイス上で実行されます。より大きなタスクは、Apple Silicon上に構築されたAppleのサーバーインフラである**プライベートクラウドコンピュート(PCC)**に送られます。Macに関するAppleのプライバシーページには、「プライベートクラウドコンピュートで処理されるデータは、保存されたりAppleがアクセスできるようになったりすることはありません。データはリクエストを満たすためだけに処理され、その後結果は安全にデバイスへ返され、保持されることはありません」と記載されています。

macOS 27で変わった3つのことにより、この約束を自分で確認しておく価値が生まれています。

  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セキュアビデオの録画は、ビデオの説明と検索のためにオンデバイスおよびプライベートクラウドコンピュートを通じて処理されます」(178858470)と記載されています。同じリリースノートには、Home IntelligenceについてApple Intelligenceレポートのエントリに関する修正も記載されており、そこでは「プライベートクラウドコンピュートに送信された一部のデータがレポートに表示されない」(176056930)という不具合が挙げられています——これは、Appleがこのレポートをそうしたデータが本来表示されるべき場所とみなしている証拠です。

このレポートは、PCCに送られたものについての、組み込みかつリクエスト単位の唯一の記録です。プライバシーを少しでも気にするなら、使い方を知っておく価値があります。

プライベートクラウドコンピュートが約束すること、レポートで確認できること

Appleのどの主張をこのレポートで実際に検証できるのかを知っておくと、レポートを読みやすくなります。2024年6月10日、Appleがセキュリティ研究ブログでプライベートクラウドコンピュートを発表した際、Appleは5つの中核要件を掲げました。

要件Appleが約束した内容レポートで検証できるか
個人ユーザーデータのステートレスな計算データはリクエストを満たすためだけに使われ、保持されず、Appleのスタッフからアクセスできないいいえ——これはサーバー側で起きることです
強制力のある保証保護は方針だけでなく、技術的に強制される間接的に、アテステーションを通じて
特権的なランタイムアクセスの排除インシデント発生時であっても、スタッフがプライバシー保証を回避できるインターフェースは存在しないいいえ
非標的性攻撃者はシステム全体を侵害しない限り、特定のユーザーのデータだけを狙い撃ちできない部分的に——下記のリレーを参照
検証可能な透明性研究者は、実際に稼働しているソフトウェアがAppleの公開した内容と一致することを確認できるはい、アテステーションバンドルとpccvreを通じて

この設計に由来する2つの仕組みが、レポートに表示される内容の大部分を説明しています。

あなたのMacが、信頼するサーバーを選びます。 Appleは、デバイスが各リクエストのペイロード鍵を「公開透明性ログ内のソフトウェアリリースと一致するアテステーション測定値を持つPCCノードの公開鍵に対してのみ」ラップすると説明しています。つまり、あなたのMacは、候補となる各サーバーのアテステーションを、公開された追記専用のソフトウェアリリース一覧と照合してから、そのサーバーに何かを復号させる、ということです。privateCloudComputeRequests内のアテステーションバンドルは、その確認が行われた証拠であり、1つのリクエストに複数のノードが列挙されることもあります。これは鍵が条件を満たす各ノードに配布されるためです。1つのリクエストに多数のアテステーションエントリが存在するからといって、あなたのデータが何度も複製されて処理されたわけではありません。それは複数のサーバーがそのリクエストを処理する資格を持っていたことを意味します。

あなたのIPアドレスはAppleから隠されます。 同じ投稿によれば、PCCへのリクエストは、「リクエストがPCCインフラストラクチャに到達する前に、デバイスの送信元IPアドレスを隠す」サードパーティが運用するOHTTPリレーを経由します。これは非標的性要件の一部です。レポートにはリクエストとノードが表示されますが、設計上Appleの外側に位置するリレーは表示されません。

レポートにできないのは、1番目と3番目の約束を証明することです。サーバーが応答後に本当にあなたのデータを破棄しているかどうかは、そのサーバー上で動いているソフトウェアの特性です。アテステーションは、そのソフトウェアが公開されたリリースと一致していることを教えてくれます。公開されたリリースそのものは、Appleが提供する仮想研究環境(Apple Siliconを搭載したMac向け)を使って独立した研究者が検証する対象です。「あなたは何が送信されたかを確認し、研究者はサーバーが何を実行しているかを確認する」——この役割分担が、このレポートについての正しい理解の仕方です。

AIの活動が記録される3つの場所

何かをオンにする前に、このレポートが3つの記録のうちの1つであり、それぞれがカバーする範囲が異なることを知っておくと役立ちます。9月22日付のHoward Oakleyによる解説では、それらが次のように整理されています。

記録カバーする範囲確認場所
統合ログオンデバイスでのやり取り(ここにしか記録されないようです)Consoleアプリまたはlogコマンド。日常的な閲覧を想定していません
SiriアプリSiriとの会話の詳細なトランスクリプトmacOS 27の新しいSiriアプリ
Apple Intelligenceレポート(AIR)プライベートクラウドコンピュートが処理したリクエスト。プロンプト、応答、アテステーションデータを含むシステム設定 > プライバシーとセキュリティ > Apple Intelligenceレポート

つまり、「Siriに何を言ったか」を知りたいならSiriアプリを開いてください。「どのテキストがMacからAppleのサーバーへ出ていったか」を知りたいなら、答えはこのレポートです。そして「オンデバイスのモデルは何をしたのか」については、正直なところ、わかりやすい記録は存在しません。

何かが記録されるようにレポートをオンにする方法

最もよくある間違いは、レポートをエクスポートしたら空のファイルだった、というものです。これは、レポートが選択した期間、しかもその期間を選択した時点からしかカバーしないために起こります。macOS 27向けのAppleのヘルプページにはこう書かれています。「期間を変更してから一度もプライベートクラウドコンピュートへのリクエストがない場合、レポートは空になることがあります」。

次の順序で進めてください。

  1. システム設定を開き、サイドバーのプライバシーとセキュリティをクリックします。
  2. 一番下までスクロールし、Apple Intelligenceレポートをクリックします。
  3. レポートの期間を選びます:過去15分間(デフォルト)または過去7日間。オフを選ぶとレポートは無効になります。
  4. ここで、いつもどおりApple Intelligenceを使います——Writing Toolsで段落を書き直したり、Siri AIに複雑な質問をしたり、長いメールを要約したりします。
  5. 同じ画面に戻り、アクティビティを書き出すをクリックします。
  6. 保存先を選び、書き出すをクリックします。ファイルはApple_Intelligence_Report.jsonという名前で保存されます。

どの期間を選ぶべきかは、何を知りたいかによります。

  • 過去15分間は、的を絞ったテストに最適です。オンにして、特定の操作を1つだけ行い、すぐにエクスポートすれば、読みやすく、今行ったことだけが含まれる小さなファイルが得られます。
  • 過去7日間は、普段の使い方を監査するのに最適です。設定してから1週間普段どおりに使い、その後エクスポートします。アテステーションデータが大半を占める、はるかに大きなファイルになると考えてください。

Appleのヘルプページには、テキストリーダーでファイルを開くよう書かれています。それでも動作しますが、このファイルは目で読むようには設計されていません。だからこそ次のセクションが重要になります。

エクスポートしたファイルは機微なデータとして扱う

Oakleyによるレポートの読み方の説明は明確です。レポートには「メッセージや、インテリジェントなライティングツールに入力したテキスト」といった個人データが含まれます。各リクエストのエントリには、プロンプト全文とモデルの応答の両方が含まれます。Writing Toolsで個人的なメールを書き直した場合、そのメールのテキストがファイルの中に存在します。

このことは、ファイルの扱い方を変える必要があることを意味します。

  • 非公開の場所に保存してください。 デスクトップ・書類フォルダの同期がオンになっている場合、デスクトップはiCloud Driveに同期されている可能性があります。同期されていないローカルフォルダを検討してください。
  • サポートへの問い合わせに添付したり、オンラインのJSONビューアーにアップロードしたりしないでください。 構造だけを共有したい場合は、先にプロンプトと応答を削除してください(コマンドは後述します)。
  • 用が済んだら削除してください。 ゴミ箱に移動し、ゴミ箱を空にします。レポートはその期間内であればいつでも再エクスポートできます。
  • 期間設定は保持され続けることを忘れないでください。 監査のために7日間に設定した場合、その後そのままにしておくか、元に戻すかを決めてください。

このレポート設定が制御しているのは、あなたが確認するためにMacが記録する内容です。オフにしても、リクエストがPCCに送られなくなるわけではありません。Macがそのリクエストの一覧を保持しなくなるだけです。

JSONの中身

レポートには2つのトップレベルのセクションがあります。Oakleyの分析と、GitHubにあるオープンソースビューアーのドキュメントは、大まかな構造について一致しています。

modelRequests — モデルへのリクエスト1件につき1エントリです。各エントリには次のようなフィールドが含まれます。

フィールド内容
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でエンコードされたアテステーションバンドルです。各バンドルは、あなたのMacがそのリクエストの暗号鍵を渡してもよいと判断したPCCサーバーノードを表します。GitHubビューアーのドキュメントには、requestId、nodeState、ノード数、attestationBundle、node、proxiedBy、assetHashといったフィールドも挙げられており、そのほとんどは不透明な技術的な値として扱われています。

私たち自身はまだmacOS 27のレポートをエクスポートできていません——テスト機はまだmacOS Tahoe 26.5.2のままです——ので、上記のフィールド一覧は自分のファイルからではなく、この2つの情報源によるものです。フィールド名はリリースごとに変わる可能性があります。次のセクションの最初のコマンドで、実際に自分のレポートに何が含まれているかがわかります。この表を含め、どんな表よりもそちらを信頼してください。

jqでレポートを読む

macOSにはjqというコマンドラインのJSONプロセッサが含まれています。私たちのTahoeテスト機では、/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が表示されるはずです。2番目のコマンドは、最初のモデルリクエストのフィールドを一覧表示します。どちらかのコマンドが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

これはリクエストごとに1行、時刻(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

開発者やフォーラムとレポートの構造を共有したい場合は、このバージョンを共有してください。タイムスタンプやモデル、実行環境は残しつつ、プロンプトと応答を削除します。共有前に内容を確認してください。将来のバージョンのレポートで他のフィールドにテキストが入るようになった場合、このコマンドではそれを削除できません。

1件ずつ、フィールドごとに読む

タイムラインを確認したら、1件のエントリを選んでじっくり読んでみましょう。それぞれの項目が何を教えてくれるかを知っておくと役立ちます。

  • 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、メモ、サードパーティのエディタのどこから呼び出したかにかかわらず、専用のサービスcom.apple.WritingTools.xpc.WritingToolsViewServiceから送信されます。そのため、どのアプリを使っていたかを知りたい場合は、このフィールドではなくタイムスタンプと自分の記憶を頼りにしてください。
  • useCaseは、それがどんな種類のリクエストだったかを教えてくれます。 値は機能によって異なります。同じ機能からの複数のエントリを比較すると、その機能の値の傾向がわかります。
  • promptは、送信範囲を教えてくれます。 ここが驚きの出やすい部分です。要約リクエストには画面に表示されていた範囲より多くのメール本文が含まれることがあり、書き直しリクエストには意識していた1文だけでなく選択範囲全体が含まれます。いくつかのプロンプトを読んでみることが、各機能が何を送信しているかを把握する一番の方法です。
  • responseは、返ってきた内容です。 画面上で見たものと一致するはずです。応答があるのに、たとえばキャンセルしたために結果を見なかった場合でも、そのリクエストはサーバーまで届いていたことになります。

iPhoneとiPadでも同じレポート

AppleはiPhoneとiPadでも、設定 > プライバシーとセキュリティ > Apple Intelligenceレポートで同じレポートを提供しており、それらのデバイス向けのAppleのヘルプページも同じ内容を説明しています。この記録はデバイスごとのものです。Macでエクスポートしたレポートには、そのMacから行われたリクエストしか表示されません。Apple Intelligenceの使用状況を全体として監査したい場合は、同じ期間について各デバイスでレポートをエクスポートしてください。

このセクションのすべてのコマンドは、macOSに標準搭載されているjqを使い、公開されているフィールド名から構築した小さなサンプルファイルに対してテストしました。実際のレポートでは、アテステーションのセクションによってファイルが大きくなり、テキストエディタでの表示が遅くなることを想定しておいてください。jqのコマンドであれば、要求した部分しか読み込まないため問題なく処理できます。

夜、テーブルに並んだノートパソコン、タブレット、スマートフォン、それぞれの画面が同じ柔らかな紫色の光を放つ様子

よくある4つの誤読

初めてレポートを開いた人は、同じような誤った結論にたどり着きがちです。次の点に注意してください。

  1. 「2つのセクションのエントリ数は同じはず」。 そうとは限りません。modelRequestsはモデルへのリクエストを一覧化したもの、privateCloudComputeRequestsは主にアテステーションからなるPCCのメタデータを保持するものです。GitHubビューアーのドキュメントに掲載されているサンプルレポートでは、前者が23件、後者が18件でした。1対1の対応を期待するのではなく、時刻でエントリを突き合わせてください。
  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とプライベートクラウドコンピュートをカバーします。統合機能を使ってChatGPTに何かを送ることを選んだ場合、そのリクエストはOpenAIの利用規約に従います。Mac上でのChatGPTのプライバシー面については、ChatGPT Messagesプラグインとフルディスクアクセスについての記事で取り上げました。

さらに深く:アテステーションとpccvre

アテステーションバンドルは、プライベートクラウドコンピュートを単なる約束以上のものにしている、レポートの部分です。セキュリティ研究ブログで説明されているAppleの設計では、あなたのデバイスは、検査のためにAppleが公開したソフトウェアを実行していることを暗号学的に証明できるPCCノードにしか、リクエストを送信しません。レポート内のアテステーションバンドルは、その証明そのものです。

Appleはこれを解析するツールを提供しています。Oakleyの9月24日のフォローアップ記事はAppleの言葉を引用しています。「pccvreのアテステーションサブコマンドを使うと、Apple Intelligenceレポートからアテステーションバンドルを解析、正規化、検証できます」。このツールは次の場所にあります。

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

私たちのTahoe 26.5.2の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を使うには、リカバリで起動し、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>

彼の結論は、文脈ごと引用する価値があります。1件のアテステーションバンドルに対するJSON出力は53KBに達し、取引のセキュリティに関する認識可能な単語がいくつか含まれていたものの、「その大半は、人間が読むためではなくセキュリティ研究者のためのBase64エンコードされたデータだった」とのことです。現状のAIRは「私たちにとってはほとんど役に立たない」と彼は書いています。

私たちの推奨は、そこから導かれます。日常使いのMacでレポートを読むためだけに、研究者向けゲストを有効にしないでください。 実際に解釈できる部分であるプロンプトと応答のテキストは、セキュリティ設定を一切変更せずにjqで読めます。アテステーションの検証は、まさにそのためにAppleの仮想研究環境が用意されている、仮想マシンで作業する研究者に任せておきましょう。

20分でできる実践的なプライバシー監査

普段のApple Intelligenceの使用で何がAppleに送信されているかを知りたい場合、次のような的を絞った手順があります。

  1. レポートの期間を「過去15分間」に設定する。 これでクリーンな観測期間が得られます。
  2. 一度に1つのことだけ行う。 Writing Toolsで段落を書き直す。個人的な文脈が必要な質問をSiri AIに尋ねる。Mailで長いメールスレッドを要約する。使っているならHome Intelligenceの検索も試す。
  3. 各操作の後にエクスポートし、jqセクションのコマンド3を実行します。各操作がPCCに届いたかどうか、どのコンポーネントが送信したかが、操作ごとにわかります。
  4. コマンド6でプロンプトを読みます。 想定していたよりも多くのテキストがサーバーに送られていないか確認してください——たとえば、要約のために表示されていたメッセージだけでなく、メールスレッド全体が送られていた、といったケースです。
  5. 何を変えるか決めます。 ある機能が想定以上のものを送信している場合、機密性の高い資料についてはその機能の使用をやめてください。macOS 27ではApple Intelligenceを一括でオフにすることはできませんが、機密文書に対してWriting Toolsを呼び出さないという選択はできます。
  6. エクスポートしたファイルを削除し、期間設定を残したい状態に戻します。

これは、ある機能が「オンデバイスで動いている」かどうかについて職場での議論を決着させる良い方法でもあります。レポートは示すべきものを示してくれるので、誰も推測する必要がありません。

管理者向け

Macを管理する組織にとっての疑問は少し違います。「自分は何を送信したか」ではなく「ユーザーは何を送信し得るか」です。このレポートはユーザー単位・Mac単位のツールなので、フリート全体の監査手段にはなりませんが、ポリシーを策定する際の有用な検証ステップにはなります。

  • ポリシーの判断をテストするために使う。 MDMである機能を許可または制限する前に、代表的なデータを用意したテスト機で上記の20分間の監査を実施し、どのコンポーネントがPCCに到達するかを確認してください。
  • ストレージコストが固定になったことを念頭に置く。 macOS 27ではApple Intelligenceを完全に無効化できなくなったため、すべてのMacがモデルをダウンロードします。macOS 27のストレージガイドで説明している内容を踏まえて計画してください。
  • エクスポートしたレポートはユーザーデータとして扱う。 調査のためにユーザーにレポートのエクスポートを依頼する場合、そこには本人のテキストが含まれています。メールの内容と同じ規則の下で扱ってください。

管理対象のフリートに影響するmacOS 27の変更点全体については、macOS 27管理者チェックリストを参照してください。

オフィスでノートパソコンを確認するIT管理者、隣には管理対象ノートパソコンでいっぱいの充電カート

よくあるトラブルの解決方法

エクスポートしたレポートが空

問題:Apple_Intelligence_Report.jsonにリクエストが1件もない、またはjqがnullのセクションを報告する。

解決策:レポートは、最後に期間を変更してから行われたPCCへのリクエストしかカバーしません。期間を設定してから、実際にPCCに到達する機能を使い(ある程度の長さの段落に対するWriting Toolsの書き直しは確実なテストです)、再度エクスポートしてください。オンデバイスの機能しか使っていなかった場合、レポートが空になるのは想定どおりの結果です。

プライバシーとセキュリティにApple Intelligenceレポートが見つからない

問題:項目がリストにない。

解決策:プライバシーとセキュリティのペインの一番下、権限のリストの下にあります。下までスクロールしてください。これは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が研究者向けゲストが無効だと表示する

問題:pccvreのコマンドが「allow-research-guests is currently disabled」というメッセージで止まる。

解決策:これは設計どおりの動作です。有効にするにはリカバリでの操作が必要で、セキュリティ境界を弱めることになります。あなたがセキュリティ研究者であれば、Oakleyがそうしたように仮想マシンの中で行ってください。そうでなければ、アテステーション層はスキップして構いません。プロンプトと応答を読むだけなら、それは不要です。

よくある質問

Macの Apple Intelligenceレポートとは何ですか?

これは、プライベートクラウドコンピュートが処理したApple Intelligenceのリクエストの記録で、システム設定 > プライバシーとセキュリティから確認できます。15分間または7日間の期間を選び、Apple_Intelligence_Report.jsonとしてエクスポートします。

なぜ私のApple Intelligenceレポートは空なのですか?

これには、期間を変更してから行われたプライベートクラウドコンピュートへのリクエストしか含まれません。まず期間を設定し、たとえば長めの段落に対するWriting Toolsのようにクラウドに到達する機能を使ってから、エクスポートしてください。

レポートには実際のテキストが含まれますか?

はい。各リクエストのエントリには、モデルに送信されたプロンプトと応答の両方が含まれます。エクスポートしたファイルは非公開にし、オンラインのビューアーにアップロードせず、用が済んだら削除してください。構造だけを安全に共有したい場合は、jqの削除用コマンドを使ってください。

レポートをオフにすると、Appleのサーバーへのデータ送信は止まりますか?

いいえ。この設定は、あなたが確認するためにMacがプライベートクラウドコンピュートへのリクエストの記録を保持するかどうかを制御するだけです。機能が必要とする限り、リクエストは引き続きプライベートクラウドコンピュートに送られます。

オンデバイスのモデルが何をしたかを確認できますか?

わかりやすい形ではできません。Howard Oakleyの分析によれば、オンデバイスでのやり取りは統合ログにしか記録されないようです。Siriとの会話は、Siriアプリにトランスクリプトとして保存されます。

レポート内のアテステーションバンドルとは何ですか?

あなたのMacが各リクエストの送信に同意したプライベートクラウドコンピュートのサーバーを表す、暗号学的な証拠です。Appleのpccvreツールでこれを解析できますが、リカバリで研究者向けゲストを有効にする必要があり、出力はセキュリティ研究者向けのものです。

レポートをサードパーティのビューアーで見ても安全ですか?

完全にローカルで動作し、コードを確認できるものに限られます。GitHub上のオープンソースビューアーは、ネットワークリクエストを一切行わないとされています。それでも、最も安全な方法は自分のMac上でjqを使うことで、追加のソフトウェアは一切不要です。

まとめ

Apple Intelligenceレポートは、macOS 27が提供する、AIの利用に対する「領収書」に最も近いものです。すべてを教えてくれるわけではありません——オンデバイスの活動とSiriとの会話は別の場所にあり、アテステーション層は研究者向けに書かれています——ですが、あなたのMacからプライベートクラウドコンピュートへ何が出ていき、何が返ってきたのかを、平文で見せてくれます。テストする前にオンにし、すぐにエクスポートし、テキストエディタではなくjqで読み、このファイルを個人データとして扱ってください。Apple Intelligenceをもはやオフにできない今、その確認方法を知っておくことが次善の策です。

関連記事:MacでSiri AIを使う方法 · macOS 27のSiri AIウェイトリスト · macOS 27で30GBのディスク容量が消費された件