コンテンツにスキップ

Insecure Shared Preferences Permissions

Shared Preferencesにおける安全でない権限設定

説明

Shared Preferencesをワールドリーダブル(誰でも読み取り可能)またはワールドライタブル(誰でも書き込み可能)などの安全でない権限で設定すると、共有設定に保存されている機密情報が悪意のある攻撃者による任意の読み取りや書き込みにさらされる可能性があります。

推奨事項

Shared Preferencesは、プライベートなプリミティブデータをキーと値のペアで保存するためのXMLファイルです。データ型には、ブール値、浮動小数点数、整数(ints)、長整数(longs)、および文字列(strings)が含まれます。

アプリ間で情報を共有するために明示的に要求されない限り、Shared Preferencesには決して MODE_WORLD_READABLE または MODE_WORLD_READABLE (誰でも書き込み可能)の権限を設定しないでください。

代わりに、共有権限は MODE_PRIVATE (デフォルトモード)に設定する必要があります。このモードは、Shared Preferencesを作成したアプリケーションのみがアクセス・変更できることを意味します。

  SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
  SharedPreferences.Editor editor = sharedPreferences.edit();
  editor.putString("language", "en-US");
  editor.apply();

リンク

基準

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_4
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_4
  • CWE_TOP_25:
    • CWE_276
  • GDPR:
    • ART_5
    • ART_32
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_7_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_PLATFORM_1
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_6_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY251
    • SECURITY221
    • SECURITY212
    • SECURITY213