公開日:2007年6月28日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年6月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
本稿では、セッション乗っ取り対策の一環として併せて行うのがよいと考えられる対策をいくつか取り上げている。それらの補助的な対策は「予防策」「検知策」「事後策」の 3種類に分かれる。
決定的な対策とは行かないが、攻撃者がセッション乗っ取りを行う機会をなるべく少なくするためには次のような補助的な予防策も併せて行う。
Webアプリケーションにはセッションタイムアウト機能を設ける。ユーザはログアウト操作をすることを忘れてしまうことがある。
Webアプリケーションエンジンによってはセッションタイムアウト機能を備えているので、それを利用できる。
Webアプリケーションには明示的なログアウトの機能を設ける。できれば、各ページでログアウト操作が行えると良い。
ユーザがログアウトの意思表示をした際、プログラムは次を行う。
これは、セッションをユーザが必要とする以上継続させないことで、攻撃者がセッション乗っ取りを行う機会を減らすものである。
クライアントから送られてくるリクエストの内容等について、正規ユーザと攻撃者の差異を見いだし、乗っ取りの兆候を検知できる場合がある。
セッションの途中でクライアントIPアドレスに変化が生じたらセッション乗っ取りを警戒する。
セッションの途中でUser-Agentリクエストヘッダの値に変化が生じたらセッション乗っ取りを警戒する。
たとえ、セッション乗っ取りが生じたとしても、すべての Webページのアクセスをユーザに許すのではないなんらかの歯止め策があれば、被害をある程度食い止めることができる。
パスワード変更画面においては、新しいパスワードのみならず、現在のパスワードの入力も求める。セッションを乗っ取ったものの、現在のパスワードを知らない攻撃者がパスワードを変更できないようにする。
パスワードの変更を許した場合、そのアカウントそのものが攻撃者に占有されかねない。
重要な会話処理を開始する際、まずパスワードの入力を求め、正しいパスワードが提示されなければ情報表示や処理を行わないようにする。例えば、次のような場面においてである。
重要な処理を行った際、その旨をあらかじめ登録されているユーザ本人のメールアドレスにメールで通知するようにする。例えば、次のような場面においてである。