問7 Web の脅威と対策の組み

情報セキュリティ​マネジメント試験 令和5年度 公開問題、全15問のうちの問7。

出典:令和5年度 情報セキュリティマネジメント試験 科目A・B 公開問題 問7

Web アプリケーションにおけるセキュリティ上の脅威とその対策に関する記述のうち,適切なものはどれか。

  1. アOS コマンドインジェクションを防ぐために,Web アプリケーションが発行するセッション ID に推測困難な乱数を使用する。
  2. イSQL インジェクションを防ぐために,Web アプリケーション内でデータベースへの問合せを作成する際にプレースホルダを使用する。
  3. ウクロスサイトスクリプティングを防ぐために,Web サーバ内のファイルを外部から直接参照できないようにする。
  4. エセッションハイジャックを防ぐために,Web アプリケーションからシェルを起動できないようにする。
答えと解説を開く

正解はイです。

SQL インジェクションは、入力欄に SQL の断片を入れ、アプリケーションが組み立てる SQL 文の意味を変えてしまう攻撃です。プレースホルダは、SQL 文の形を先に決めておき、値を入れる場所を記号で空けておく方式です。入力の値は後からその場所に「値」としてだけはめ込まれるので、中に SQL の記号が含まれていても命令としては動きません。正解はイです。

ほかの選択肢が違う理由

  • アセッション ID を推測しにくい乱数にするのは、セッションハイジャックへの対策です。OS コマンドインジェクションは、シェルを起動しない作りにするなどで防ぎます。
  • ウWeb サーバ内のファイルを外から直接参照できないようにするのは、ディレクトリトラバーサルなどへの対策です。クロスサイトスクリプティングは、画面に出す文字をエスケープして防ぎます。
  • エシェルを起動できないようにするのは、OS コマンドインジェクションへの対策です。セッションハイジャックは、推測しにくいセッション ID や通信の暗号化で防ぎます。

仕組み

この問の選択肢は、脅威と対策の組を入れ替えて作られています。正しい組は、OS コマンドインジェクションとシェルを起動しない作り、セッションハイジャックと推測しにくいセッション ID、クロスサイトスクリプティングと出力のエスケープ、SQL インジェクションとプレースホルダです。

インジェクションの攻撃は、データとして扱うべき入力が命令として解釈されることで起きます。データと命令を分けて扱うのが根本の対策です。

この問に出る言葉