セッションハイジャックとは?

セッションハイジャックとは?

会員機能を保持するWebアプリケーションは、それぞれのユーザーに対して適切な応答を返すために、アクセスしてくるユーザーを追跡する機能を有しています。このユーザーを追跡する仕組みの総称をセッション管理と呼び、個々のユーザーごとに発行されて割り振られたIDのことをセッションIDと呼びます。

セッション管理で利用されるセッションIDは、利用者のWebブラウザのCookie領域やWebStorege領域などに保存されているため、利用者がその存在を意識する必要なくWebサービスを利用することができますが、このセッションIDがなんらかの理由で漏洩した場合、セッションIDに割り振られた利用者としてなりすまして、Webサービスを利用することができてしまいます。

なお、利用者を追跡する目的で発行されたセッションIDを知ることができれば、IDやパスワードを知ることなく発行元のWebサービスをなりすまして不正出来るた め、セッションID自体を狙う攻撃手法があります。このような何らかの方法で乗っ取る行為をセッションハイジャック(Session Hijack:セッションの乗っ取り)と言い、このような攻撃をセッションハイジャック攻撃と呼びます。

セッションハイジャックの仕組み

セッションハイジャック攻撃には大きく分けると以下の3種類の攻撃方法があります。

  1. セッションIDの推測
    セッションIDに割り振られる値が、ユーザーに関する情報(誕生日や登録名など)や規則性がある(連番や登録日など)場合に、攻撃者は有効なセッション IDを推測することが可能になります。
  2. セッション・フィクセーション
    セッション・フィクセーション(Session Fixation)とは、セッション固定化攻撃と言われ、ログイン前後でセッションIDが切り替わらないケースで起きうる問題です。攻撃者は何らかの方法で、ログイン前の状態のユーザーにセッションIDをセットすることで、ログイン完了後になりすましを行うことが可能になります。
  3. セッションの奪取
    クロスサイト・スクリプティングなどのその他の脆弱性を悪用して、利用者のブラウザ上に保存されているセッションIDを奪取することで、なりすましを行います。

被害事例

以下の通り世界的に利用されているWebサーバーソフトウェアであるApacheのバグトラッキングソフト「JIRA」でセッションハイジャックによるなりすましの被害事例が報告されています。

Apache

2010年にクロスサイト・スクリプティング攻撃を目的としたURL情報をメールで送付することで、気づかずにクリックした管理ユーザーのセッションIDが奪取されました。奪われたセッションIDを使うことで、なりすました攻撃者が勝手に管理ユーザーのパスワードを変更してしまったことから大きな騒ぎとなりました。

セッションハイジャックが起こる原因

それぞれのケースに応じて、以下のような理由で問題が発生します。

  1. セッションIDの推測
    セッションIDに指定する値が単純であることが原因で発生します。
  2. セッション・フィクセーション
    ログイン前後でセッションIDが切り替わらないことが起因して問題が発生します。
  3. セッションの奪取
    セッションIDを奪取することが可能な脆弱性が混入しているため問題が発生します。

セッションハイジャック攻撃への対策手法

それぞれのケースに応じて、以下のように対策することで問題の混入を防ぐことが可能です。

  1. セッションIDの推測
    規則性のない十分な長さを持った乱数などの値をセッションIDとして利用することが対策となります。
  2. セッション・フィクセ―ション
    ログイン前後でセッションIDが切り替わっていないことが原因で問題が発生するため、ログイン成功時にセッションIDを変更することが対策となります。
  3. セッションの奪取
    クロスサイト・スクリプティングなどのセッションIDの奪取に繋がる脆弱性を混入させないことが対策となります。

まずは手軽にツールで脆弱性診断

上述の対策手法が重要となる一方で、脆弱性が混入されていないかを検知する事も重要となります。そのためには脆弱性診断を受診する必要があり、セッションハイジャックの脆弱性についても脆弱性診断を通じて発見する事が出来ます。

脆弱性診断とは何かについて詳しく知りたい⽅は脆弱性診断とは(エンジニア向け)脆弱性診断とは(⾮エンジニア向け)もぜひご参照ください。

脆弱性診断ツール「Securify Scan」では、セッションハイジャックの脆弱性検知も対応しております。脆弱性検知やセキュリティレベルを強化したい企業様はぜひ弊社の脆弱性診断ツール「Securify Scan」を活用ください。

無償でのトライアル実施も行っておりますので、お気軽にお問い合わせください。

Webアプリケーションの
継続的セキュリティを簡単に実現
Securify

ブログ一覧へ戻る

サービスに関するご質問・ご相談など
お気軽にお問い合わせください