当社のAIエンジンNeutronが、UCバークレーのCyberGymベンチマークで96.75%のスコアを記録しました。 詳細を見る

エンジニアリング

エンジニアリング

Appleのプライバシー:プライバシーマニフェストファイル完全ガイド

本記事は、Appleのエコシステムにおけるプライバシーマニフェストファイルのガイドです。特に間近に迫った2024年の義務化を背景に、透明性とコンプライアンスにおける重要性を強調し、実装手順を示すとともに、ユーザーの信頼醸成と規制順守を促すうえでの役割を明らかにします。

はじめに

プライバシーマニフェストファイルは、開発者がモバイルアプリケーションとその依存関係に関連するプライバシー慣行を宣言するための新しい方法です。

これらのファイルは、サードパーティSDKの開発者が自社フレームワークのプライバシー慣行を開示できるようにすることで、透明性を維持し、プライバシー基準を引き上げます。 ユーザーと開発者の双方にとってプライバシーが重要であることを踏まえると、プライバシーマニフェストファイルを理解し実装することは、Appleのプライバシー要件に準拠するうえで欠かせないものとなっています。

2024年5月に予定されている義務化により、App Store Connectでのすべての新規アプリ提出とアップデートにおいて、広く利用されているSDKのプライバシーマニフェストの同梱が求められるため、これらのファイルの重要性は大幅に高まる見込みです。開発者は今、プライバシーマニフェストファイルの概念と用途を把握し、Appleが引き上げたプライバシーおよびセキュリティの基準に準拠するために、それらを作成・実装する手順を習得することが求められています。 本ガイドは、そのプロセスを分かりやすく解き明かし、プライバシーマニフェストファイルの包括的な理解と、その導入・実行に関する実践的な知見を開発者に提供することを目的としています。

プライバシーマニフェストファイルを理解する

プライバシーマニフェストは、開発者がアプリの依存関係のプライバシー慣行を明確に示すうえで欠かせません。 「PrivacyInfo.xcprivacy」という名前のこれらのファイルは、SDKが収集するデータの種類、その用途、ユーザーとの紐付け、そしてApp Tracking Transparencyポリシーへの準拠状況を宣言します。これらは複数の目的を果たします。

1- Data Description:連絡先情報、健康・フィットネスデータ、金融情報など、収集されるデータのカテゴリを列挙します。

2- Usage Explanation:各データ型の目的が、分析、広告、アプリ機能、その他の用途のいずれであるかを詳細に記します。

3- Tracking Disclosure:データがトラッキング目的で使われるかどうかを明記し、開発者がプライバシー規制に準拠するのを支援します。

これらのマニフェストはコンプライアンスと透明性に関わるものであり、開発者、ひいてはユーザーにデータ利用の明確な全体像を提供します。 May 2024以降、App Storeのアプリで使われるすべてのサードパーティSDKについて同梱が必須となり、プラットフォーム全体でより高いプライバシーおよびセキュリティ基準が確保されます。この取り組みは、Apple Storeのエコシステムにおけるユーザーの信頼とデータの完全性を高めようとする、より大きな潮流の一環です。

現時点でのプライバシーマニフェストファイルの導入状況

この分析では、さまざまな特性を持つ複数の業種にわたる3000件を超えるiOSアプリケーションを対象としました。

2024年4月時点で、このグラフはiOSアプリケーション開発における憂慮すべき傾向を示しており、大半のアプリがプライバシーマニフェストファイルを実装していないか、部分的にしか実装していません。

図
Graph 1: Global adoption April 2024

銀行業界では、プライバシーマニフェストファイルの実装は依然として大部分が未完了のままであり、完全に統合しているアプリはごく一部にとどまっています。これは、報告対象の期間時点において、この重要な業界のプライバシー対策に潜在的なギャップがあることを示唆しています。

図
Graph 3: Adoption in the banking sector

医療業界では、銀行業界と比べてプライバシーマニフェストファイルの実装に向けて前進したアプリケーションの割合が大きいものの、かなりの部分がまだ実装に着手しておらず、この機微な業界において包括的なプライバシー対策を確保するうえで課題が続いていることを示しています。

図
Graph 3: Adoption in the health sector

プライバシーマニフェストの作成と実装

アプリ向けにプライバシーマニフェストを作成し実装するには、Appleのガイドラインへの準拠を確保するためのいくつかの手順が必要です。開発者がこのプロセスを進めるための分かりやすいガイドを以下に示します。

プライバシーマニフェストを作成し実装する手順

  • ステップ1:Xcode 15以降を使い、New > File > iOS > Resource > App Privacy.と進んでファイルを作成します。

    図
    Figure 1: Add Privacy file manifest file

  • ステップ2:新しく作成したプライバシーマニフェストファイルをアプリのバンドルリソースに追加し、ルートディレクトリに配置されていることを確認します。

    図
    Figure 3: Select Privacy file manifest file target

図
Figure 3: Privacy manifest file target added

  • ステップ3:このプロパティリストファイルの最上位レベルで、ディクショナリに次のキーを追加します。
    • NSPrivacyTracking:アプリまたはサードパーティSDKが、App Tracking Transparencyフレームワークで定義されるトラッキングのためにデータを使用するかどうかを示すブール値。
    • NSPrivacyTrackingDomains:アプリまたはサードパーティSDKが接続する、トラッキングに関与するインターネットドメインを列挙する文字列の配列。ユーザーがApp Tracking Transparencyフレームワークを通じてトラッキングの許可を与えていない場合、これらのドメインへのネットワークリクエストは失敗し、アプリはエラーを受け取ります。 NSPrivacyTrackingをtrueに設定した場合は、NSPrivacyTrackingDomainsに少なくとも1つのインターネットドメインを指定する必要があります。falseに設定した場合は、ドメインを0個以上指定できます。
    • NSPrivacyCollectedDataTypes:アプリまたはサードパーティSDKが収集するデータ型を記述するディクショナリの配列。データカテゴリは、サードパーティ広告、開発者の広告またはマーケティング、分析、製品のパーソナライズ、アプリ機能、その他の目的です。
    • NSPrivacyAccessedAPITypes:アプリまたはサードパーティSDKがアクセスする、アクセスに理由が必要なAPIとして指定されたAPI型を記述するディクショナリの配列。理由が必要なAPIのリストは、ファイルタイムスタンプAPI、システム起動時刻API、ディスク容量API、アクティブキーボードAPI、ユーザーデフォルトAPIです。

図
Figure 4: Add Privacy manifest file items

  • ステップ4:NSPrivacyCollectedDataTypesのリストを、その型と、アプリまたはサードパーティSDKがアクセスする理由のリストとともに追加します。

図
Figure 5: Add NSPrivacyCollectedDataTypes

  • ステップ5:NSPrivacyAccessedAPITypesのリストを、その型と、アプリまたはサードパーティSDKがアクセスする理由のリストとともに追加します。

    図
    Figure 6: Add NSPrivacyAccessedAPITypes

  • ステップ6:プライバシーマニフェストがアプリのビルド成果物またはアーカイブに含まれていることを確認し、ターゲットのメンバーになっていることを検証します。

NSPrivacyCollectedDataTypesの主要な構成要素

NSPrivacyCollectedDataTypesカテゴリに含めるべき主要な構成要素の内訳を以下に示します。

  • NSPrivacyCollectedDataType:収集するデータの種類(例:位置情報、連絡先)を指定します。
  • NSPrivacyCollectedDataTypeLinked:データがユーザーのアイデンティティに紐付けられているかどうかを示すブール値。
  • NSPrivacyCollectedDataTypeTracking:データがトラッキング目的で使われるかどうかを示すブール値。
  • NSPrivacyCollectedDataTypePurposes:データ収集の理由を列挙し、Appleが定めた目的と整合していることを確保します。

NSPrivacyAccessedAPITypesの主要な構成要素

  • プライバシーマニフェストは、アプリとその依存関係で使用される具体的なAPIを明確に示す必要があります。
  • 各APIについて、そのAPIを使用する理由を明確に正当化し、Appleのガイドラインに準拠していることを確認します。

トラッキングドメインの管理

プライバシーマニフェストは、トラッキングドメインを目録化することで、ネットワーク接続の管理に役立ちます。 iOS 17では、ユーザーが明示的に許可を与えていない限り、承認されていないトラッキング接続は自動的にブロックされ、プライバシー保護が強化されます。

プライバシーマニフェストの作成と実装

すべてのネットワーク接続を一覧化してトラッキングドメインを特定する

図
Figure 7: Summary network communication

動的スキャンを実行すると、Ostorlabはアプリケーションが通信するすべてのネットワークドメインを一覧表示します。これは、トラッキングに使われているドメインを特定するための重要なリソースです。

図
Figure 8: List all network communication

Analysis EnvironmentのAPIセクションでは、それらのドメインに送信されたリクエスト/レスポンスを一覧表示します。この情報を使って、ドメインのリストをNSPrivacyTrackingDomainsに追加できます。

アプリケーションで使用されているすべてのAPIを一覧化する

図
Figure 9: Summary APIs/features

ドメインに加えて、Ostorlabはアプリケーションで使用されているすべてのAPIを一覧表示します。それらのAPIがAppleの定める理由が必要なAPIに該当する場合は、NSPrivacyAccessedAPITypesに追加する必要があります。

プライバシーマニフェストファイルが欠けているSDKを特定する

静的解析の際、Ostorlabはアプリケーションとそのすべてのフレームワークにプライバシーマニフェストファイルが存在するかを確認し、欠けているものを報告します。

図
Figure 10: Missing privacy file manifest

まとめ

プライバシーマニフェストファイルを理解し実装することは、Appleのプライバシー要件に対応する開発者にとって極めて重要です。本記事では、これらのファイルが透明性の向上とAppleのプライバシー基準への準拠において果たす重要な役割と、それらを作成してアプリ開発プロセスに組み込むための段階的なガイドを解説しました。2024年5月の義務化が近づくなか、プライバシーマニフェストファイルを習得することの重要性はいくら強調してもしすぎることはありません。アプリのコンプライアンスを確保することは、規制上の期待に沿うだけでなく、高いプライバシーおよびセキュリティ基準を守ることでユーザーとの信頼を築くことにもつながります。 開発者がこれらの要件を満たす準備を進めるにあたっては、最新のAppleガイドラインに沿うよう、アプリのプライバシーマニフェストを継続的にレビューし検証することが不可欠です。このステップを支援するために、Ostorlab.coでアプリのIPAをスキャンすることを検討し、プライバシーマニフェストファイルの完全性とコンプライアンスを確認してください。そうすることで、App Storeでのアプリの立場を守るだけでなく、今日のデジタルエコシステムの礎であるプライバシーへのコミットメントを強化できます。こうした取り組みに取り組むことで、私たち開発者コミュニティは、単に機能のためにコードを書くだけでなく、ユーザーのプライバシーとセキュリティの擁護者となり、アプリ開発の未来に向けた基準を打ち立てることができるのです。

タグ:

privacy