コンテンツにスキップ

Remote Command Execution

リモートコマンド実行

概要

コマンドインジェクションは、脆弱なアプリケーションを介してAndroidオペレーティングシステム上で任意のコマンドを実行することを目的とした攻撃です。コマンドインジェクション攻撃は、アプリケーションがユーザーから提供された安全でないデータ(フォーム、Cookie、HTTPヘッダーなど)をシステムシェルに渡す場合に発生する可能性があります。この攻撃では、攻撃者が提供したオペレーティングシステムコマンドが、通常、脆弱なアプリケーションの権限で実行されます。コマンドインジェクション攻撃は、主に入力検証が不十分なために可能となります。

推奨事項

コマンドインジェクションの脆弱性を軽減するには、以下の推奨事項を考慮してください:

  • 可能な限り、ユーザー入力からシステムコマンドを構築することを避けてください。
  • パラメータ化されたクエリを使用して、安全な方法でクエリまたはコマンド文字列にパラメータを渡してください。
  • 入力検証を使用して、ユーザーが提供したデータが無害化され、期待される値のみが含まれていることを確認してください。

以下は、生の文字列連結ではなく、パラメータ化されたクエリを使用してシステムコマンドを実行するコード例です。

val cmd = listOf("ls", "-al", "/path/to/directory")
val pb = ProcessBuilder(cmd)
val process = pb.start()
ProcessResult result = await Process.run(
      "ls",
      ['-al', '/path/to/directory'],
      includeParentEnvironment: false,
      environment: {});

リンク

基準

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_20
    • CWE_78
  • GDPR:
    • ART_5
    • ART_32
  • PCI_STANDARDS:
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_3_4
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
    • SECURITY255