Apple Find My ハッキング:Linuxでの位置情報追跡

ある意欲的な研究者が、Appleが一切サポートしていない環境でFind Myを動作させることに成功しました。Zerotisticという名で活動する22歳のセキュリティ専門家は、Linuxマシンを完全対応デバイスとしてApple社のインフラに巧妙に登録してみせました。その後、この研究者はApple Accountの所有者に対してあらかじめ位置情報の閲覧を許可していた人物のリアルタイム座標を取得し、復号することに成功しました。実験全体は1週間足らずで完結し、研究者は8月19日にこの驚くべき成果を公開しました

Appleの「壁に囲まれた庭」を突破

Find Myサービスは、iPhoneやiPad、AirTagなどのデバイスや個人の持ち物の位置を特定できる機能です。さらに、友人や家族と位置情報をシームレスに共有することも可能にしています。従来、Appleはこの位置情報共有機能への包括的なアクセスを、自社独自のハードウェアエコシステムのみに限定してきました。iCloudのWeb版では特定のアカウントに紐づくハードウェアの追跡は可能ですが、他人のリアルタイムの位置情報への同様のアクセスは頑なに認めていません。

Zerotisticは、Find Myに必要な構成要素をLinuxシステム上で地道に再現することを決意しました。重要な点として、今回発見された手法では、Apple製デバイスの所有者を無関係に監視することはできません。このカスタムLinuxクライアントは、あくまでApple Accountの所有者に対してすでに自発的に位置情報を共有している人物の座標のみを受信します。研究者は、悪意を持って新たな連絡先を追加したり、許可されていない人物の位置情報共有を一方的に有効化したり、既存のFind My権限構造を回避したりする方法は見つけられなかったとしています。

サーバー認証の突破

最大の壁となったのは、Appleのサーバーが課す厳格なデバイス検証プロトコルをクリアすることでした。単にApple Accountを認証するだけでは、位置情報を取得するには不十分でした。サーバー側は、リクエスト元のコンピューターがApple Identity Services(IDS)と呼ばれるApple内部のメッセージング基盤の完全に検証済みの参加者として機能することを厳しく要求してきたのです。認証済みデバイス間のデータ送信は、Apple Push Notification service(APNs)に大きく依存しています。

複雑な登録プロトコル

Zerotisticはまず、GrandSlamプロトコルを用いて認証を行い、IDSと連携するために必要な予備データの取得に成功しました。続いてこの研究者は、正式なデバイス証明書のリクエストを生成しました。何度も失敗を重ねた末、Appleのサーバーは2048ビットのRSA鍵と特定のSHA-1署名を用いたPKCS#10形式のリクエストのみを受け付けることを突き止めました。さらに、このリクエストをXMLで包んだ上でgzip圧縮し、authenticateDSという廃止済みのアクセスポイントへ送信する必要もありました。

この極めて特殊なリクエストの処理に成功すると、Appleは正式なIDS証明書を発行し、不正なLinuxクライアントとユーザーのアカウントとを紐づけました。Zerotisticは、この複雑な登録手順とサーバーが課す非常に特殊な証明書要件について、詳細に文書化しています。

信頼の確立と鍵の傍受

しかし、証明書1つだけでは不十分でした。Find Myエコシステムに正式に登録するには、Linuxクライアント側で6つの異なる内部サービスへの対応を明示的に宣言する必要がありました。加えて、対応する暗号化方式の詳細な仕様を送信し、デバイス間の安全なメッセージングを実現するための暗号鍵も登録する必要がありました。研究者はこのリクエストにIDS証明書とAPNs証明書の両方で署名を行いました。登録に成功すると、Appleのサーバーは驚くべきことに、このLinuxシステムをFind My通信を受信できる正規デバイスとして扱い始めました。

次の課題は、既存の位置情報共有の取り決めに関するものでした。設定が完了すると、通常、新たに有効化されたApple製デバイスは承認済みの連絡先の位置情報を閲覧するために必要な暗号鍵を自動的に受信します。当然ながら、自作のLinuxクライアントはこれらの必須の鍵を自動的には受信できませんでした。それでもZerotisticはひるまず、distributeKeysコマンドを含む内部リクエストSubscribeAndFetchを発見しました。この特定のリクエストを送信すると、友人側のデバイスは素直に、APNsとIDSを介して有効な暗号鍵をLinuxクライアントへ転送してくれました。幸いなことに、この過程で友人側が位置情報共有を再度有効化したり、新たな許可を手動で発行したりする必要はありませんでした。

座標の復号

この重要な鍵を手にした研究者は、ついにSearchPartyサービス、すなわちFind Myが暗号化された位置情報レポートを返す経路にアクセスすることができました。カスタムのLinuxスクリプトが、Appleのメッセージを丹念に解析し、送信者の身元を厳密に検証した上で鍵を抽出し、座標を完全にローカル環境で復号しました。その結果、このコンピューターは正確な地理座標、その座標が算出された正確なタイムスタンプ、そして重要な精度指標の取得に成功しました。このシステムは、鍵をIDS経由で繰り返し送信する必要なく、その後の位置情報の更新も容易にダウンロードできました。

型破りな応用の歴史

これまでも、野心的な研究者たちはApple Myの閉じたネットワークを操って、Appleが全く想定していなかったタスクを実行してきた歴史があります。2021年には専門家のFabian Bräunlein氏が、近くにあるApple製デバイスを経由した秘密裏のデータ持ち出しにこのインフラを悪用できることを見事に実証しました。この興味深い実験ではESP32マイクロコントローラーとOpenHaystackフレームワークが使用されました。

OpenHaystackプロジェクトは、開発者がFind Myのインフラを巧みに活用して精密な位置追跡を行うサードパーティ製Bluetoothビーコンを構築できるようにするものです。SecurityLabは以前、OpenHaystackの優れた機能とFind Myのアーキテクチャに内在するセキュリティ上の脆弱性について分析を行っています。その後Appleは正式に「Find My」ネットワークをサードパーティメーカーに開放しましたが、こうしたメーカーは公式のFind My Networkアクセサリープログラムへ積極的に参加することが条件とされました。

2025年には、研究者たちがさらに限界を押し広げ、nRootTag攻撃を発表しました。この高度な手法により、攻撃者は標準的なBluetoothデバイスをFind Myネットワーク上で追跡対象のオブジェクトへと変貌させることが可能になります。著者らは、Androidスマートフォン9台、Windowsコンピューター2台、そして12種類の異なるLinuxディストリビューションにわたって、この手法の有効性を検証済みです。ただし重要な点として、nRootTagは根本的に異なる仕組みを利用しており、Linuxシステムに極めて機微な「人の位置情報」セクションへの包括的なアクセスを与えるものではありません。

この突破の重要性

Zerotisticの緻密な取り組みは、まさにFind Myの「人物」機能へのアクセスを実際に確保した点で、これまでの実験とは一線を画しています。この研究者は、単に別のAirTagクローンを作っただけではありません。むしろ、Apple内部プロトコルの複雑な連鎖を丹念に再現し、Linuxマシンを信頼済みクライアントとして登録することに成功し、すでに承認済みの位置情報共有の鍵を不正に取得した上で、座標の復号を完璧にやってのけたのです。

結局のところ、この説得力のある実験は、Find Myがサードパーティ製OSに課している数々の制限の多くが、主にその硬直的なソフトウェアアーキテクチャと厳格なクライアント検証プロトコルに起因していることを証明しています。そして、この極めて機微なデータをLinuxシステム上で処理することが、技術的に不可能ではないことを明確に示しています。

翻訳元: https://meterpreter.org/apple-find-my-hack-linux/

本記事は meterpreter.org の記事を翻訳・要約したものです。