ネットワークスペシャリスト 平成26年秋期 午前T 問14

午前T 問14

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

分類

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

正解

解説

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

Pagetop