データセキュリティのベストプラクティス 更新日時: 2025/10/01
開発者データ使用ポリシーのセクション6 に準拠するため、チームは社員、処理、技術、アセット、リスクを考慮した情報セキュリティプラクティスを実施している必要があります。このプラクティスにより、ユーザーデータやデバイスユーザーデータの機密性、完全性、可用性を保護するための手順をチームが確実に実施することができます。ユーザーデータやデバイスユーザーデータの保存や送信に関するさまざまなリスクを理解しておいてください。ユーザーデータやデバイスユーザーデータの不正アクセスや紛失を防ぐため、組織内で以下の情報セキュリティ対策を講じることが期待されます。
アクセス管理 - ユーザーデータやデバイスユーザーデータを不正アクセスから保護するプラクティスを実施する。 変更管理 - コードのセキュリティ脆弱性を防ぐためのセキュアなコーディングプラクティスを利用し、ユーザーデータやデバイスユーザーデータの漏洩につながりかねない不正変更を防止する。 運用 - 既知の脆弱性や悪用による不正アクセスを防ぐため、ユーザーデータやデバイスユーザーデータの保存や送信を行うシステムに常にパッチを適用し、最新の状態に保つためのプラクティスを実施する。 情報セキュリティプラクティスについて通知するには、既知の業界情報セキュリティ基準に従ってください。情報セキュリティ基準とは、チームにとって効果的なセキュリティを立案、実施、運用するための包括的なプランを定めるフレームワークのことです。有用な業界セキュリティ基準の例をいくつか以下に示します。
Metaでは、特定の情報セキュリティ規定に従うことを求めたり、特定のデータセキュリティ認証を取得したりすることを求めたりするわけではありませんが、以下にいくつか例を示します。
ISO 27001 - ISO 27001は、国際標準化機構(ISO) による一連のセキュリティ基準の1つで、アクセス制御、インシデントの管理と対応、システムの開発と保守、コンプライアンスなどの一般的なセキュリティ領域において、チームが情報セキュリティプログラムを効果的に管理できるようにすることを目的としています。この基準に従って管理を実施し、認定機関の審査を受けることで、ISO 27001の認証を取得できます。ISO 27018 - ISO 27018は、クラウドストレージにおける個人情報の保護に関する国際基準です。NIST CSF - 米国国立標準技術研究所(NIST) のサイバーセキュリティフレームワーク(CSF)は、特定、防御、検知、対応、復旧という5つの柱から成るプランです。NIST CSFを採用するチームは、セキュリティの目標を達成するために、これらの各分野で一連の処理を採用し、テクノロジーを利用し、人材の雇用と訓練を行います。OWASP - Open Web Application Security Project® (OWASP) は、ソフトウェアのセキュリティ向上に取り組む非営利団体です。コミュニティ主導のオープンソースソフトウェアプロジェクト、世界中にある何百もの支部、何万人ものメンバー、および主要な教育やトレーニングのカンファレンスを通じて、OWASP Foundationは、ウェブのセキュリティを確保するための情報を開発者と技術者に提供しています。COBIT - 情報および関連技術のための統制目標(COBIT)は、情報テクノロジー(IT)管理とITガバナンスのためにISACAが作成したフレームワークです。このフレームワークはビジネスに焦点を当てたもので、IT管理のための包括的な一連のプロセスを定義しています。各プロセスでは、プロセス入出力、主要なプロセスアクティビティ、プロセスの目的、パフォーマンスの測定、基本的な成熟度モデルも定義されています。GDPR - GDPR の第32条では、個人情報の機密性、完全性、可用性を保護するために必要な、チームによる技術的措置について扱われています。GDPRへの準拠が求められている場合は、すでに情報セキュリティ基準を実施している可能性があります。ISO 27001認証 - チームによるISO 27001要件の実施状況を調査した監査人による評価で、その要件が満たされていることを認定するものです。 ISO 27018認証 - 個人を特定できる情報(PII)を保護する措置の実施に関して、チームがISO 27018の制御目標、制御策、ガイドラインを実施しているかを調査した審査員による評価で、その要件が満たされていることを認定するものです。 SOC2 Type 2報告書 - SOC2 Type 2報告書は、チームによる6か月にわたるSOC2のトラストサービス基準の実施の有効性について、監査人が評価するものです。SOC2 Type 1報告書は、手順の実施を一定期間観察する代わりに、ある時点での手順設計の評価を行う点で、Type 2の報告書とは異なります。Metaでは通常、ユーザーデータやデバイスユーザーデータはすべて、暗号化された状態で保存することが期待されています。保存データの暗号化とは、ストレージへの保存時に判読不能なフォーマットに変換することによりデータを保護することです。暗号化されたディスクやファイルに不正なアクセスがあっても、解読するためのキーがなければデータを読み取ることはできません。
保存データの暗号化は以下のタイミングで実施されます。
ユーザーデータやデバイスユーザーデータの保存先を特定する際。 ユーザーデータやデバイスユーザーデータの保存時に暗号化を行う際。 ポリシーや監査により、このアプローチに例外がないことを確認する際(つまり、ユーザーデータやデバイスユーザーデータが非暗号化フォーマットで保存される場合)。 ストレージに書き込まれないデータについては、保存時の暗号化は必要ありません。ユーザーデータやデバイスユーザーデータを保管する必要がないストレージ先(ログファイルなど)を特定し、使うソフトウェアやプロセスを変更して不要なデータストアからこのデータを削除することによって、暗号化の複雑さを低減することができます。
Metaでは通常、ユーザーデータやデバイスユーザーデータはすべて、伝送時に暗号化することが期待されています。伝送時の暗号化は、ネットワーク接続での送信時に、TLS 1.2やそれに匹敵するネットワーク通信セキュリティを提供するものなどを使って判読不能なフォーマットに変換することで、データを保護するものです。
伝送時の暗号化は以下の場合に実施されます。
クライアント間(ウェブとモバイルアプリなど)、およびサーバー間の伝送も考慮に入れて、ユーザーデータやデバイスユーザーデータが伝送されるすべてのネットワーク接続を特定するとき。 暗号化されたネットワーク接続を要求し、暗号化されていない接続をリダイレクトまたは禁止するよう、ソフトウェアとインフラストラクチャを設定するとき。 ポリシーや監査により、このアプローチに例外がないことを確認する際(つまり、ユーザーデータやデバイスユーザーデータが非暗号化フォーマットで伝送される場合)。 ソフトウェアの脆弱性とセキュリティの問題をテストすることで、これらの問題をできるだけ早期に見つけ、解決できるようになります。これを支援するために、Metaはアップロード時にアプリのバイナリに対して脆弱性スキャンを実施しています。一方、ユーザーデータやデバイスユーザーデータをMeta以外のサーバーに保管する場合は、維持しているあらゆるソフトウェアとハードウェアに関して、脆弱性管理とセキュリティテストを行うためのプラクティスを実施している必要があります。検討することのできるベストプラクティスのいくつかを、以下に示します。
静的/動的ツールや手動のコードレビューによって、コードの脆弱性やバグを特定、優先順位付け、監視、軽減するためのプラクティスを確立する。 ユーザーデータやデバイスユーザーデータの保存またはアクセスを行うシステムについて、セキュリティのポリシー、フレームワーク、規制要件への遵守に関する評価を実施する。 ユーザーデータやデバイスユーザーデータの保存またはアクセスを行うシステムを評価するために、内部または外部からの侵入テストを実施する。侵入テストでは、脆弱性を発見して優先順位を付けるため、セキュリティの専門家に依頼して、悪意のあるハッカーが用いるのと同一の技法を用いて製品をテストする。侵入テストと似ていますが、ホワイトハッカーがシステム内の脆弱性を発見し、脆弱性開示プログラム(VDP)を通じてそれを明らかにする場合もあります。 ユーザーデータやデバイスユーザーデータの保存またはアクセスを行うシステムについて、脆弱性管理とパッチプログラムを開発/実装する。 脆弱性を特定してリスクを評価するため、ユーザーデータやデバイスユーザーデータの保存またはアクセスを行うシステムに対して脆弱性スキャン/検出を実施する。 ユーザーデータやデバイスユーザーデータの保存またはアクセスを行うシステムの所有者と連携し、重大度レベルや定義済みサービスレベルに応じて脆弱性を解決する。
静的解析を使うことにより、セキュリティ上の問題を生じさせ得るコーディングの誤りがないか、ソースコードを調べる。例えば、GitHubはリポジトリ内のコードスキャンをサポート しています。または、サードパーティのスキャン製品をGitHubが使用するように設定 することができます。 脆弱性がどのように発見されたかにかかわらず、特に重大度が危険、高、中の脆弱性に関しては、トリアージを行い、優先順位に従って解決する必要があります。
認証情報とアクセストークンは、APIなどのサービスへのアクセスを認証するために利用されるので、機密性が高くなります。悪意のあるハッカーがアクセストークンを読み取ると、関連付けられているユーザーになりすまし、データに不正アクセスすることができます。
以下を行うことで、これらの機密性の高い認証情報とアクセストークンを保護できるようになります。
GitHubのシークレットスキャニング 機能などのツールを使用して、コードリポジトリに認証情報やアクセストークンが記述されていないことを確認する。管理者のみがアクセスできるように認証情報とアクセストークンを保管する。 可能であれば、クラウド環境やサーバー環境でトークンボルトを使用する。 可能であれば、モバイルデバイスでシステム認証情報ストレージを使用する。 多要素認証(MFA)では、アクセスする前に2種類以上の認証手段を提供する必要があります。この認証手段には、認証アプリからのトークンや、ユーザーの携帯電話に送信されるSMSメッセージなどが含まれます。MFAを求めることで、悪意のあるハッカーがアカウントに不正アクセスし、アクセス権を悪用してシステムに入り込むリスクを軽減することができます。
リモートアクセスでMFAを実行する1つの方法として、バーチャルプライベートネットワーク(VPN)の接続を求め、その後VPNへのアクセスのためにMFAを求めるという方法があります。あるいは、MFAを要求し、ほかの種類の認証をブロックするグループポリシーを全ユーザー向けに定めることもできます。自社環境でMFAを求める方法については、ご利用のプロバイダーのドキュメントを参照してください。MFAを求める際に利用できるポリシーのテンプレートの例は、
Amazon AWSのIDとアクセス管理ツールのドキュメント で確認できます。
ユーザーアカウントの管理を一元化するには、Microsoft Azure ADやOktaといったIDプロバイダーやその他のツールを利用します。
どの技術的な実装を選択しても、次の原則について検討する必要があります。
管理者が必要な場合にのみアカウントを作成する。 最小権限の原則に従ってアカウントを設定する。 できる限り、(スーパーユーザーまたは管理者のアカウントではなく)通常のユーザーアカウントで処理が実施されるよう設定する。 ユーザーがチームを離任する際など、アカウントが不要になった場合には、アカウントを速やかに停止する。 上記の原則の例外がないことを確認するため、アカウントを定期的に監査する。 悪意のあるハッカーがセキュリティの脆弱性を悪用しないよう、ソフトウェアを最新の状態に保ってください。これには、サーバー上、アプリ内、およびチームのメンバーが仕事で使用するデバイス上で実行されるソフトウェアが含まれます。検討することのできるベストプラクティスのいくつかを、以下に示します。
アプリのビルド、実行、管理に使われる関連アセット(サーバー、ソフトウェア、アプリ、依存関係、デバイスなど)を把握する。 こうしたアセットを常に最新の状態に保つためのポリシーを作成する。 可能な範囲で、こうしたポリシーを自動化して強制実行するための関連テクノロジーを利用する。 逸脱がないか、アセットを定期的に監査する。 以下は、ソフトウェアを最新の状態に保つために用いられるツールやテクノロジーの一例です。
本番システムはユーザーからの正当なリクエストを処理しますが、悪意のあるハッカーもこのシステムに直接アクセスすることができます。検討することのできるベストプラクティスのいくつかを、以下に示します。
システムに必要なサービスを特定し、不要なサービスはすべて停止するか削除する。 セキュリティパッチやアップグレードが提供されたらシステムをアップデートする手順を定める。 プランからの逸脱がないか、システムを定期的に監査する。 上述のシステム保守を行いやすくするため、次のベストプラクティスも検討してください。
データベース依存型アプリでは、標準的なハードニング構成テンプレートを使う。 取得リクエストや購入承認を含む、アセット取得のためのプロセスと承認済みチャネルを定義する。 アセットインベントリーを維持し、ライフサイクル全体ですべてのアセットを追跡する。 廃止されたすべての生産物や非揮発性メモリメディアのサニタイジングおよび破壊に関するEOLアセット管理手続きを利用する(必要な場合、サニタイジング/破壊の証明書を含む)。 ネットワークへのアクセスを制御し、紛失または盗まれたモバイルデバイスのデータを遠隔で削除可能なモバイルデバイス管理ソリューションを実装する。 システム開発ライフサイクルを実装し、システムを管理する。 未承認、非ライセンス、非サポートのハードウェア/ソフトウェアがないか定期的に確認する。 アセットのための安全な設定ベースラインを活用し、サーバー、モバイルデバイス、ネットワークデバイスのためのベースラインを維持する。 ベースライン設定を中央リポジトリに保存し、各システムで利用可能なサービスとそのサービスの設定方法を定義する。 ネットワークデバイスの標準設定を確立する。 前述のように、安全な設定ベースラインが遵守されているかどうか、定期的にシステムをチェックする。 設定管理と変更管理のプロセスにより、セキュリティ設定を管理する。 中央管理型のアンチマルウェアソフトを使い、定期的に更新する。 アクセスログを継続的にモニタリングすることで、システムの制御をより適切に維持できるようになります。Oculusやデバイスユーザーデータへのアクセスをモニタリングするため、以下のようなベストプラクティスを検討してください。
ユーザーデータとデバイスユーザーデータを保持する場所を最小限にする。 ネットワークセグメンテーションを利用して、ユーザーデータとデバイスユーザーデータを分離し、不正アクセスを防ぐ。 保護セグメントへのアクセスとデータ出力をすべて記録する。
注 : 悪意のあるハッカーが事後に改ざんして自身の行為を容易に隠ぺいできないように、監査ログを保護してください。
分析や調査のために、アクセスレベルの変更をログに記録する。 ユーザーデータやデバイスユーザーデータを保存または送信するアセットをモニタリングして、未承認の人員、接続、デバイス、ソフトウェアがないかどうか確認する。 セキュリティ関連のアクティビティを検出可能なイベントタイプのログを生成するよう、ログ記録システムおよびモニタリングシステムを設計する。 複数のソースやセンサーからのイベントデータを収集し、相関関係を調べる。 ログを遠隔ログ集約システムに送信する。 クロックを単一の参照時刻源と同期する。 必要に応じて、セキュリティログを伝送時に保護する。 不正な変更またはアクセスからセキュリティログを保護する。 定義済みのスケジュールとリテンションポリシーに基づいて、セキュリティログをバックアップする。 検知システムからの通知がセキュリティ担当者に送られて調査が行われ、必要に応じてエスカレーションされるようにするための手続きを整えておく。 管理下のITアセット上で発生するアクティビティを記録してモニタリングするため、エンドポイントのモニタリングソフトウェアを導入する。 クラウドモニタリングサービスを実装する。 境界やエッジの情報システムでファイアウォール、ホストベースのフィルタリング、DDoS検出/軽減技術、なりすまし防止技術を使う。 ネットワークベースのIDSセンサーとネットワークベースの侵入防止システムを実装して常に最新の状態に保つ。 ユーザーデータやデバイスユーザーデータへの不正アクセスを特定する際は、データの機密性、整合性、利用可能性を損なう可能性のあるイベントをトリアージし、それに対応するためのプロセスを確立してください。検討することのできるベストプラクティスのいくつかを、以下に示します。
セキュリティインシデントを検出、記録、優先順位付け、対処するためのセキュリティインシデント対応計画(役割と責任の定義を含む)を正式に策定する。 エスカレーションと隔離/封じ込めの手順を作成し、インシデント対応計画に含める。 復旧計画プロセスを策定し、これまでの知見を今後の活動に生かす。 社員および契約社員がセキュリティインシデントを特定・報告できるようにするためのトレーニングを実施する。 侵入テストの一部としてのインシデント対応机上演習、インシデント対応Blueチームドリル、Purpleチーミングなどを通じて、定期的にインシデント対応のシステムやプロセスをテスト、レビュー、更新する。