セッションハイジャック

セッション管理の不備

ウェブアプリケーションによっては、セッションIDをユーザーに付与することで、 管理を行っているサイトもあり セッションIDに不備がある場合、悪意のある第三者に不正に取得され、その利用者に なりすま し、利用されてしまう可能性があります。

これをセッションハイジャックといいます。

発生する可能性のある脅威

  • ログイン後の利用者のみが利用可能なサービスの悪性

  • ログイン後の利用者のみが編集可能な情報の改ざん

  • ログイン後の利用者のみが閲覧可能な情報の閲覧

実装例

        sub getNewSessionId {
        my $sessid = getLastSessionId ('/tmp/.sessionid');
        $sessid++;
        updateLastSessionId ('/tmp/.sessionid', $sessid);
        return $sessid;
        }

上記のプログラムでは、セッションIDが連番となり第三者からの推測が容易となります。

セッションIDが連番である場合、悪意を持ったユーザーが取得した1つ前のセッションが 有効である可能性があるため、ひとつ前のセッションIDを利用することで、他の利用者の セッションを乗っ取ることが可能となります。

解決方法

できるだけ、推測が可能となる値をセッションIDとして利用しないようにする。

(乱数等を利用したほうが安全)