Web教材一覧情報倫理・セキュリティ

CSRF(リクエスト強要攻撃)/セッション・フィクセーション

キーワード

CSRF(リクエスト強要攻撃)、セッション・フィクセーション、セッションID、セッション変数


事前知識

CSRF

CSRF(Cross Site Request Forgeries)(forgeryは偽造の意味)とは、利用者が感染したパソコンから正規のサイトを閲覧したとき、利用者が意図していない悪意のメッセージを含む情報を正規サイトへ強制的に送信する手口です。会員資格やクッキー情報などを悪用しているので、正規サイトで多様な操作ができてしまいます。

利用者が攻撃者サイトを閲覧するなどによりCSRFに感染すると、CSRFはセッション変数に攻撃者による悪意の情報を付け加えます。
 CSRFに感染した利用者パソコンから正規サイトにアクセスすると、利用者が意図していない情報を含むセッション変数が正規サイトに送られます。正規サイトは、正規の利用者からの情報だと認識しているので、悪意のある指示を実行してしまいます。
・正規サイトが銀行サイトや販売サイトだと、不正な取引をされてしまう。
・SNSなどで閲覧限定している自分のページを不特定多数に公開されてしまう。
・投稿サイトに第三者への脅迫、犯罪予告などを投稿されてしまう。
 (これにより、閲覧者が誤認逮捕され、社会問題になったことがあります)

セッション・フィクセーション

セッション・フィクセーション(Session Fixation)とは、攻撃者が生成したセッションIDを利用者に強制的に使わせることにより、ユーザーのセッション状態を乗っ取る手口です。

このようにして、攻撃者は利用者に成り代わって正規サイトを利用でき、利用者の個人情報の閲覧・変更、投稿などができてしまいます。
 CSRFは、利用者を介して正規サイトを攻撃するのに対して、セッション・フィクセーションは攻撃者が自分で攻撃します。そのため、高度(深刻)な被害を与えることが可能になります。また、双方とも利用者がログオンしている間に攻撃することが多いのですが、特にセッション・フィクセーション攻撃はログオン中に限定されることが多いのです。

攻撃への対策

●利用者側の対策
・こまめにクッキーを調べて、不審なクッキーを削除する。
・ログインしてからログオフするまでの時間を短縮する。
・ログオン中に、他のサイトの閲覧などをしない。
などが必要ですが、現実的には面倒だし、抜本的な対策にはなりません。「注意はするがお手上げ」な状態です。

●正規サイト側の対策
クロスサイトスクリプティングは、攻撃スクリプトがブラウザ上で動くのに対して、CSRFやセッション・フィクセーションではサーバ側で動作するのが特徴です。そのため、利用者側よりも正規サイト側の対策が重要になります。
・クッキーの発行や消去の工夫をする。
・セッションID以外に他者が推定困難な照合情報を加える。
・セッション変数の値の暗号化、ハッシュ値の併用をする。


本シリーズの目次へ