情報処理安全確保支援士令和7年春期 午前Ⅰ 問14

問14

Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。
  • SQL文の組立ては全てプレースホルダで実装する。
  • シェルを起動できる言語機能を利用した実装を避ける。
  • 直接メモリにアクセスできる言語機能を利用した実装を避ける。
  • 利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
  • [出典]
  • 応用情報技術者
    令和7年春期 問42と同題

分類

テクノロジ系 » セキュリティ » セキュリティ実装技術

正解

解説

OSコマンドインジェクションは、ユーザー入力をOSに発行するコマンドの一部として使用するWebアプリケーションに対して、OSコマンドを含む不正な入力を与えることで、サーバ上で不正なOSコマンドを実行させる攻撃手法です。本来は許可されないコマンドが実行されることにより、不正なファイル操作、外部プログラムの実行、重要情報の窃取などの被害が発生するおそれがあります。
多くのプログラミング言語には、引数として指定された文字列をOSのシェルに渡して実行させる関数等が存在します。例えば、PHPのexec、Perlのopen、Pythonのsubprocess.callなどが該当します。外部からの入力値を適切に検証せずにこれらの関数を使用している場合、攻撃者に任意のコマンドを実行されるリスクがあります。
  • SQLインジェクション対策です。
  • 正しい。OSコマンドインジェクションは、OSコマンドの実行が可能な関数等を利用している場合に生まれる脆弱性なので、これらのシェルを起動できる言語機能を利用しないことが根本的な対策となります。
  • バッファオーバーフロー対策です。
  • ディレクトリトラバーサル対策です。
© 2014- 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop