とあるエンジニアの備忘録

SE・コンサルタントの備忘録

Webアプリケーションの脆弱性について

◯OSコマンドインジェクション

 概要:

   ・リクエストパラメーターに OS コマンドを含めることで、Web アプリ

    ケーション内で OS コマンドを実行

 

 原因:

   ・Webアプリケーション内でOSコマンドの全部、もしくは一部を外部か

    らの入力パラメータを使用して構築している。その際改竄可能な要素

    を適切に無効化していない

 

    典型的な例

     1.コマンドラインの引数にそのまま外部入力を使用

                      "nslookup [HOSTNAME]" 

 

     2.実行する関数名に外部入力を使用

       "exec 関数([COMMAND])"

 

 影響:

   ・許可されていないコードやコマンドの実行

      DoS、crash / exit / restart

   ・ファイル・ディレクトリの読み込み・改竄

   ・データの読み込み・改竄

   ・ウィルスなどのマルウェア感染

   ・他サイトへの踏み台

 

 対策:

   ・シェルを起動可能な言語機能の利用を避ける 

       利用する場合:利用可能なコマンドのみを許可するホワイトリスト

   ・外部からの入力文字列をコマンドラインの引数に渡さない

 

 参考

  ・CWE-78

  ・OSコマンド・インジェクションと対策 | Webセキュリティの小部屋

  ・OSコマンドインジェクション

  ・狙われるWebアプリケーション - インジェクション系攻撃への防御の鉄則

 

 ※間違いなどありましたらご指摘よろしくおねがいします