情報セキュリティスペシャリスト平成26年秋期 午前T 問14

問14

Webアプリケーションにおけるセキュリティ上の脅威と対策の適切な組合せはどれか。
  • OSコマンドインジェクションを防ぐために, Webアプリケーションが発行するセッションIDを推測困難なものにする。
  • SQLインジェクションを防ぐために,Webアプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。
  • クロスサイトスクリプティングを防ぐために,外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。
  • セッションハイジャックを防ぐために,Webアプリケーションからシェルを起動できないようにする。
  • [出典]
  • 応用情報技術者
    平成26年秋期 問40と同題

分類

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

正解

解説

問題文に登場するそれぞれの攻撃手法は次のようなものです。
OSコマンドインジェクション
ユーザの入力をもとにOSのコマンドを発行して処理を行うWebアプリケーションに対して、不正なコマンドを渡すことで任意のファイルに対する読出し,変更,削除やパスワードの取得などを行う攻撃方法。OSコマンドの呼出しに使われる関数は、C、Perl、PHPのexecsystem、入力値としてコマンドを許しているPerlのopen関数などがある
SQLインジェクション
Webアプリケーションに対してデータベースへの命令文を構成する不正な入力データを与え、Webアプリケーションが想定していないSQL文を意図的に実行させることで、データベースを破壊したり情報を不正取得したりする攻撃
クロスサイトスクリプティング
動的にWebページを生成するアプリケーションのセキュリティ上の不備を意図的に利用し、サイト間を横断して悪意のあるスクリプトを混入させることでユーザのクッキーを盗むなどの攻撃を行う方法
セッションハイジャック
認証が完了してセッションを開始しているブラウザとWebサーバの間の通信において、CookieやセッションIDなどのセッション情報を盗むことで、対象セッションを通信当事者以外が乗っ取る攻撃方法
  • セッションハイジャックを防ぐための対策です。
  • 正しい。バインド機構は、SQL文中の変数部分にプレースホルダと呼ばれる特殊文字を割り当てたSQLの雛型を用意し、実行時にユーザからの入力値を変数に割り当てて最終的なSQL文とする仕組みです。ユーザからの入力値は文字列または数値として扱われるため、SQLインジェクションを狙った文字が含まれていたとしてもエスケープ処理され、単なる文字列として認識されるため安全性が高まります。
  • ディレクトリトラバーサル攻撃を防ぐための対策です。
  • OSコマンドインジェクションを防ぐための対策です。
© 2014-2023 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop