見出し画像

中国で利用される全SDKが対象!政府のSDKセキュリティガイドラインのパブコメ版日本語訳独自公開

今週、中国の国家市場監督管理総局、国家標準化管理委員会より、モバイルアプリに組み込まれるSDKに対するセキュリティガイドラインのパブリックコメントが開始、ガイドラインの草案が公開されました。
この国家市場監督管理総局、国家標準化管理委員会というのは、日本でJISの様な業界標準を作りつつ、それを守らない企業を摘発するという、とても権威のある役所です。
基本的に中国で販売される商品については、この国家市場監督管理総局、国家標準化管理委員会が定める「GB」という仕様に従わないといけません。

昨今の中国のサイバーセキュリティの強化の方針を受けて、モバイルアプリに対する個人情報取得のガイドライン等は公布されているのですが、アプリケーション開発者が手の届かないSDKの中身にも、中国政府の規制が入り始めました。
昨今の情勢からサイバーセキュリティ法・個人情報保護法をかなり意識した内容になっています。

本ガイドライン、SDKという形で何かしらのサービスとして中国のお客様に提供されている企業は要注意です。

このあたりの政府の動向やサイバーセキュリティ法・個人情報保護法について、近々webinarを開催しますので、ぜひご参加ください。

それでは、SDKガイドラインの抄訳を進めます。膨大なので、以下の目次の太文字の部分のみ訳します。

なお、筆者及び筆者が所属する機関、組織は、以下の翻訳について法的な責任を負いません。法的な根拠が必要な方は本ガイドラインの発行者または法的資格を有する方にご確認ください。

情報安全技術 モバイル・インターネットアプリケーションSDKセキュリティガイドライン

目次

1. ガイドラインの範囲
2. リファレンス
3. 用語定義
4. 省略語
5. SDK概述
 5.1 SDK使用のシナリオ
 5.2 SDKのセキュリティリスク
6. 基本セキュリティ要件
7. ライフサイクルセキュリティ要件
8. 個人情報セキュリティ要件
 8.1 個人情報の収集
 8.2 個人情報の保存
 8.3 個人情報の使用
 8.4 個人情報の共有、転送、公開
 8.5 個人情報の主体の権利保証
9. SDKとアプリの連動要件
 9.1 実装時
 9.2 運営時
 9.3 サービス終了時
付録A 典型的なSDKの種類
付録B 典型的なSDKのセキュリティホール
付録C 典型的なSDKの悪用行為
付録D アプリケーション内でSDK情報を開示する際のテンプレート
参考文献

6. 基本セキュリティ要件

SDK提供者は以下の基本的なセキュリティ要件を満たす必要がある。

a) SDKの設計、開発、展開、運用のライフサイクル全体において、SDK提供者は、データの送信と保存のセキュリティを保証しなければなりません。SDK提供者は、SDKに安全な開発仕様書とプロセスを備え、関連する人員に対して定期的(少なくとも年1回)にSDKのセキュリティ知識に関するトレーニングと評価を行い、SDKのセキュリティ知識に精通していることを確認することを推奨します。SDKは、アプリとして の部分では、動作中にGB/T 34975-2017の4.1.5.1、4.1.5.2、4.1.5.3項の要件を満たす必要があります。

b) SDK提供者は、GB/T 37988-2019等を参考に、GB/T 35274-2017等の要求に応じて、データセキュリティ管理システムおよび能力を確立し、管理および技術的措置を実施するものとします。

c) 中華人民共和国内で収集・生成されたデータを処理する際、クロスボーダー転送を伴う場合は、SDK提供者はクロスボーダー転送の前にセキュリティ評価を行うものとします。

d) SDK提供者は、個人情報の収集、保管、使用、委託処理、共有、転送、公開、個人情報主体の権利保護などに関して、GB/T 35273-2020の要求に従うものとします。

e) SDK提供者とアプリ提供者は、悪意ある行為の防止、セキュリティ侵害への対応、データセキュリティ保護、個人情報セキュリティ保護における双方の責任と義務について、契約書等により共同で合意し、適時かつ正確な情報開示を実現するものとします。

7. ライフサイクルセキュリティ要件

7.1 設計
設計段階では、以下の要件を満たすこと。

a) 機能設計:SDKは、宣言された機能と互換性のある機能のみを含むべきであり、機能のオプトアウトができるモジュール式の開発が望ましい。無関係な機能を無理にバンドルしてはならない。サービスに必要でない場合や合理的なシナリオがない場合に、バックグラウンドでの動作や他のアプリの起動を行ってはならない。

b) 送信設計:SDKは、データ送信時に安全な送信プロトコルを使用する必要があります。SDK提供者とアプリ提供者のサーバー間でデータ通信が行われる場合、サーバー間の通信は安全である必要があります。また、SDKは、機密データを送信する前に個別に暗号化することが望ましい。

c) ストレージ設計:SDKが個別に扱うデータは、ローカルに保存する場合は単独で別のディレクトリに保存する必要がある。

7.2 開発
開発段階では、以下の要件を満たすこと。

a) SDK提供者は、悪意のある攻撃者がSDKのセキュリティ脆弱性を悪用することによるデータの漏洩、プログラムの異常、SDKの悪意のある改ざんを防ぐために、SDKにウイルス、トロイの木馬、既知のセキュリティ脆弱性が含まれていないことを確認するために、コード監査、セキュリティ強化、完全性の検証、ローカルデータの暗号化保存などにより、SDKのセキュリティを強化する必要がある。

b) SDKとサーバー側のインターフェースは、攻撃によるデータの漏洩や改ざんなどを防ぐために、伝送の暗号化、デジタル証明書の双方向検証、署名検証などで保護されている必要がある。

c) SDK提供者は、偽のデバイスを識別し、クローラー攻撃(デバイス情報をクローリング情報に偽造してアンチチートシステムを回避すること、新規登録ユーザーに限定したプロモーションに参加して収益をごまかすことなど)を防止するために、デバイス・フィンガープリンティング技術を採用することを推奨する。

d) SDK提供者は、コードのデッドループ、デッドロック、OOM、データのアウトオブバウンズなど、SDK自身のコードロジックの異常によるアプリの異常を回避する必要があります。

e) SDK提供者は、異常なトラフィック消費や電力消費などを避けるために、SDKネットワークリクエストのデータ量、頻度、単位時間あたりの総リクエスト数などのサイズを制限することを推奨する。

f) SDK提供者は、逆解析の難易度を上げるために、SDKのコードを難読化することが望ましい。

7.3 デプロイメント
デプロイメントの段階では、以下の要件を満たすこと。

a) SDK提供者は、SDKのロジックの問題、セキュリティの脆弱性、トロイの木馬のような動作、過剰なパーミッションの取得などの動作を検出し、SDKの安全性を確保し、既知のコードセキュリティの脆弱性やビジネスロジックのセキュリティの問題を回避する必要がある。

b) SDK提供者は、アプリ提供者に対し、SDKのセキュリティ能力に関する説明書およびセキュリティ評価報告書を提供すること。

c) 一般公開しない場合、SDK提供者は、アプリ提供者に対し、具体的な展開リソース要件と詳細なデプロイメントの情報を公開すること。 デプロイメントのリソースには、サーバー、ストレージ、帯域幅などが含まれますが、これらに限定されるものではない。また、デプロイメントプランには、ネットワークおよびデータセキュリティ関連の内容を包括すること。

7.4 運営
運営段階では、以下の要件を満たすこと。

a) SDK提供者は、公式ウェブサイト、オープンソースコミュニティ(訳注:Github等)、またはプライバシーポリシーで、SDKが中華人民共和国外での使用をサポートしているかどうか、また、国境を越えたデータ転送があるかどうかを、明示すること。

b) SDK提供者は、SDKのダウンロードファイルと、それに対応する統合ドキュメントおよびAPIインターフェースドキュメントを、公式ウェブサイト、オープンソースコミュニティまたは公開リポジトリで提供し、アプリ提供者にSDKで利用可能なすべての機能を公開し、現在利用可能な過去のSDKバージョンを管理し、バージョンの機能変更の説明を提供すること。

c) パブリック・リポジトリを通じてSDKを配布する場合、SDK提供者はパブリック・リポジトリ・アカウントを適切に管理し、パブリック・リポジトリ・アカウントの漏洩によるセキュリティ問題を回避すること。

d)SDKにホットアップデートの機能がある場合、SDK提供者は、公式ウェブサイト、オープンソースコミュニティ、統合文書またはプライバシーポリシーで公開し、ホットアップデートの機能と役割を明記すること。

e) SDKがセキュリティリスクの問題を修正するためにホットアップデート技術に依存する必要がある場合、SDK提供者は、ホットアップデートによる修正を行う前に、事前にアプリ提供者に通知すること。

f) SDKは、ホットアップデート機能のオン・オフを個別に制御するオプションを提供し、ホットアップデート機能をオフにした場合の影響を特定し、ホットアップデート機能が受け入れられない場合でも、アプリ提供者が本SDKの他の機能を通常使用する権利を留保することが適切である。

g) SDK提供者は、苦情管理メカニズムおよび苦情追跡フィードバックプロセスを確立し、アプリ提供者またはエンドユーザーからの苦情に15営業日以内に対応すること。

h) SDK提供者が運営を停止する場合、影響を受けるアプリ提供者に事前に通知し、ネットワークセキュリティおよびデータセキュリティを確保すること。

i) SDKが原因で個人情報セキュリティインシデントが発生した場合、SDK提供者はGB/T 35273-2020の第10章の個人情報セキュリティインシデントの処理に関する要求に従って処理を行うこと。

8. 個人情報セキュリティ要件

8.1 個人情報の収集
個人情報の収集は以下の要件を満たすこと。

a) SDKは、許諾の申請および個人情報の収集にあたっては、適法性、妥当性、必要性の原則を満たし、許諾の利用目的、方法、範囲、および個人情報に関わる個人情報処理規則をプライバシーポリシー等により告知・説明し、エンドユーザーの許諾を得ること。

b) SDKによる個人情報の収集は、本SDK提供者がプライバシーポリシーで開示する個人情報の収集と一致すること。

c) SDKは、適切な機能を確保しつつ、最小限の頻度で個人情報を収集すること。

d) エンドユーザーまたはアプリ提供者が、SDKが提供するビジネス機能を使用しない場合、SDKは、そのビジネス機能に必要な許可の適用を強制してはいけない。

8.2 個人情報の保存
個人情報の保存にあたっては、以下の要件を満たすこと。

a) SDK提供者は、SDKの運用に使用されるファイル、データベース、その他のデータを暗号化して保存するとともに、SDK内でのデータの漏洩や改ざんを防ぐために、整合性チェックを行うこと。

b)SDK提供者は、データのセキュリティ管理メカニズムを確立し、ネットワークドメインの分離を適切に行い、データの送信と保存のアクセス制御と異常行動の監視を適切に行うこと。

c) 個人情報がモバイル端末にローカルに保存される場合、SDKは保存された個人情報に対するアクセス制御と暗号化による保護を提供すること。

8.3 個人情報の使用
個人情報の使用にあたっては、以下の要件を満たすこと。

a) SDK提供者は個人情報の取得にあたっては利用者の同意を得た上で、最小限の取得に留めること。

b) SDKは、セキュリティが維持されていることを条件に、個人情報はローカルでの処理を優先すること。

8.4 個人情報の共有、転送、公開
個人情報の共有、転送、公開にあたっては、以下の要件を満たすこと。

a) SDK提供者は、個人情報をアプリ提供者以外の組織または個人と共有または譲渡する場合、データ共有または譲渡の目的、データ受領者の種類、および起こりうる結果を個人情報主体に通知し、個人情報主体およびアプリ提供者の同意を得ること。

b) 個人情報を共有または転送する場合、SDK提供者は、データ受信者が個人情報主体を再識別または関連付けることができないように、非識別処理を行うものとし、非識別処理のプロセスはGB/T 37964-2019の第5章を参照すること。

8.5 個人情報の主体の権利保証
個人情報の主体の権利を保証するため、以下の要件を満たすこと。

a) 本SDK提供者は、個人情報の主体が本SDKが提供するサービスの利用を希望しない場合に、個人情報の主体がオプトアウトの権利を行使できるオプトアウトの仕組みを構築することが適切である。

9. SDKとアプリの連動要件

9.1 実装時
SDK提供者は以下の要件を満たすこと。

a) SDK提供者は、アプリ提供者に対し、SDKのzipパッケージ、アクセスおよび使用に関する文書、プライバシーポリシー等を提供すると同時に、本アプリ提供者が収集および使用する個人情報の種類、目的、方法、範囲および保存期間、申請すべき関連許可、問題点のフィードバックおよび苦情処理ルート等を通知し、通知された情報は完全、正確かつ適時であり、意図的な隠蔽または偽装等があってはならない。 収集しなければならない個人情報や、申請しなければならない許可については、その必要性をさらに説明すること。

b) SDK提供者がアプリ提供者にSDKのセキュリティ関連のテストレポートを提供することを推奨する。これには、コードスキャンの結果(コード監査の証明など)、第三者テスト機関のレポートなどが含まれるが、これらに限定しない。

アプリ提供者は以下の要件を満たすこと

a) SDKを実装するアプリ提供者は、アプリのプライバシーポリシーに、SDK名、SDK名前空間、パートナー名、協力の目的、個人情報収集範囲、要求される許可、SDKのプライバシーポリシーを含む、個人情報収集慣行を有する使用するSDKのリストを項目として記載し、アプリ提供者は、SDKのプライバシーポリシーの内容を、以下に提供されるアプリのプライバシーポリシーに統合すること。
 アプリ提供者が、SDKのプライバシーポリシーの内容を、アプリのプライバシーポリシーに統合する方法は、Appendix Dを参照。

9.2 運営時
SDK提供者は以下の要件を満たすこと

a) SDK提供者は、SDKの運用中にプログラムクラッシュ率の上昇等のリスクをモニターした場合、アプリ提供者に通知し、適時修正を行うとともに、アプリ提供者と協力してSDKを再統合するものとします。

b) SDK 提供者は、SDK の運用中に発見されたセキュリティ上の脆弱性は、速やかに App 提供者に通知し、GB/T 30276-2020 の 5.4 a)項の要件に従って脆弱性の処理を完了し、App 提供者と協力して SDK の再統合を行うものとします。

c) SDK提供者は、個人情報主体からの要求や苦情に対応するための仕組みを構築し、本アプリを利用してエンドユーザにユーザの権利を実現するための容易に操作可能な仕組みを提供することにより、エンドユーザの要求に対応するものとする。

d) SDK提供者は、アプリ提供者が個人情報取扱規則をエンドユーザに通知していない、または不完全に通知していることが判明した場合、率先して適時改善を促すことを推奨し、アプリ提供者が対応策を講じない場合は、本SDK提供者はサービスの提供を停止することを推奨する。

アプリ提供者は以下の要件を満たすこと。

a) アプリ提供者は、実装されたSDKの継続的なセキュリティ監視または定期的なセキュリティ評価を行うことを推奨する。 セキュリティ上の脆弱性が発見されたSDKについては、SDK提供者は、速やかにセキュリティ上の脆弱性を修正するか、他の代替手段を採用すること。 悪意のある動作が確認されたSDKについては、その使用を中止すべきである。

9.3 サービス終了時
SDK提供者は以下の要件を満たすこと。

a) アプリがSDKへのアクセスを停止した際、SDK提供者がアプリから個人情報を共有または収集していた場合、協力契約に基づき、アプリから共有または収集した個人情報を削除または匿名化するものとする。

アプリ提供者は以下の要件を満たすこと。

a) アプリ提供者は、SDKを無効化した後、SDKのコードおよびSDKを呼び出すコードを速やかに本アプリから削除するとともに、本アプリを通じて共有または収集された個人情報がある場合には、SDK提供者に対し、協力契約に基づき、本アプリから共有または収集された個人情報の削除または匿名化を促すこと。

b) SDKを無効にした後、SDKによって収集された個人情報がアプリ提供者に共有された場合、アプリ提供者は契約に基づき個人情報を削除または匿名化すること。

原文はこちらからどうぞ!


この記事が気に入ったらサポートをしてみませんか?