Secret information stored in the application
アプリケーション内に保存された機密情報
説明
シークレット、パスワード、およびAPIキーの漏洩は、以下を含む深刻な結果をもたらす可能性があります。
- 機密性の喪失: シークレットやパスワードが漏洩した場合、許可されていない個人が機密情報にアクセスする可能性があります。
- 完全性の喪失: 漏洩したシークレットやパスワードは、システムやデータへの不正アクセスを取得するために使用され、潜在的にその情報の改ざんや破損につながる可能性があります。
- 可用性の喪失: 場合によっては、漏洩したシークレットやパスワードの不正使用により、正当なユーザーのアクセスが拒否され、影響を受けるシステムやデータの可用性が損なわれる可能性があります。
- 風評被害: 企業や個人が機密情報を適切に保護できなかったことが明らかになった場合、その評判に損害を受ける可能性があります。
- 法的影響: 漏洩した情報の性質や関連する管轄区域の法律によっては、シークレットやパスワードの漏洩が法的な結果を招く可能性があります。
- 過剰請求: 漏洩したAPIキーは、許可されていない個人がAPIリソースにアクセスして課金が発生する可能性のあるアクションを実行するために使用され、過剰請求につながる可能性があります。
推奨事項
機密データをアプリケーション自体に含めるべきではありません。代わりに、必要に応じてこのデータにアクセスするために、サービスの認証情報を暗号化、保存、および取得するための安全な方法を使用する必要があります。
過剰請求のリスクを防ぐために、利用コストが高くなる可能性のあるサービスに対して、APIキーのピニングを実装するか、認証済みAPIを使用することを検討してください。APIキーのピニングは、暗号化署名を要求することで特定のアプリケーションへのキーの使用を制限するのに役立ち、サービスプロバイダー(例:Google Maps)によって有効にすることができます。
不正アクセスを許可する可能性のあるキーについては、権限とロールを重要ではない機能に制限するか、認証済みAPIを通じてサービスを公開することが重要です。
セキュリティをさらに強化するために、APIには適切なアクセス制御とレート制限(rate-limiting)を設け、不正使用を防ぐためにキーを定期的にローテーションする必要があります。
リンク
- API Security Best Practices
- Best practices for securely using API keys
- CWE-200: Data Exposure
- CWE-259: Use of Hard-coded Password
- What Is AWS Secrets Manager?
- $450k Google Cloud API Key Compromise
標準
- OWASP_MASVS_L1:
- MSTG_STORAGE_1
- OWASP_MASVS_L2:
- MSTG_STORAGE_1
- CWE_TOP_25:
- CWE_798
- GDPR:
- ART_5
- ART_25
- ART_32
- HIPAA_CONTROLS:
- SECURITY251
- SECURITY212
- SECURITY213
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_2
- REQ_3_3
- REQ_3_5
- REQ_3_6
- REQ_3_7
- REQ_6_2
- OWASP_MASVS_v2_1:
- MASVS_STORAGE_1
- MASVS_STORAGE_2
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5