令和7年度 春期 ITストラテジスト試験 システムアーキテクト試験 ネットワークスペシャリスト試験 ITサービスマネージャ試験 情報処理安全確保支援士試験 午前Ⅰ 問題【共通】 問14

Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。

解答・解説

正解: イ. シェルを起動できる言語機能を利用した実装を避ける。

OSコマンドインジェクションとは、Webアプリケーションの脆弱性を突いて、外部からOSのコマンドを不正に実行させる攻撃手法です。
この攻撃を防ぐためには、Webアプリケーション内でOSのコマンドを直接呼び出すような実装を避けることが最も効果的です。したがって、シェルを起動できる言語機能を利用した実装を避けるという対策が適切です。

各選択肢の解説

  • ア:SQL文の組立ては全てプレースホルダで実装する。
    データベースを不正に操作するSQLインジェクションに対する有効な対策です。
  • イ:シェルを起動できる言語機能を利用した実装を避ける。
    正解です。OSコマンドインジェクションを防ぐための対策となります。
  • ウ:直接メモリにアクセスできる言語機能を利用した実装を避ける。
    想定外のメモリ領域を上書きされるバッファオーバーフローなどの脆弱性に対する対策です。
  • エ:利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
    非公開のファイルに不正アクセスされるディレクトリトラバーサル(パストラバーサル)に対する対策です。

Spineチーム