メインコンテンツへスキップ

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

この記事は約 2 分で読めます

セッションハイジャック (Session Hijacking) とは、ユーザーのセッション ID を窃取し、そのユーザーになりすましてサービスにアクセスする攻撃です。セッション ID はログイン後にサーバーが発行する識別子で、これを奪われるとパスワードを知らなくても認証済みの状態でサービスを利用されてしまいます。 OWASP の調査では、セッション管理の不備は Web アプリケーションの主要な脆弱性の一つに挙げられています。

現場での使用例

「脆弱性診断で、ログイン後にセッション ID が再生成されていないことが判明しました。セッション固定攻撃のリスクがあるため、認証成功時に新しいセッション ID を発行するよう修正を依頼しています。」

セッション窃取のフロー

ユーザーがログイン
セッション ID 発行
攻撃者が ID を窃取
なりすましアクセス

攻撃手法

XSS (クロスサイトスクリプティング)を利用して Cookie からセッション ID を窃取する方法、ネットワーク上の通信を傍受してセッション ID を盗む方法、セッション固定攻撃で事前に用意したセッション ID を使わせる方法などがあります。Web セキュリティの書籍 (Amazon)で攻撃手法と対策を学べます。

具体的な被害シナリオ

よくある誤解は「ログアウトすれば安全」というものです。実際には、サーバー側でセッションを無効化しないログアウト処理では、窃取済みのセッション ID が引き続き有効な場合があります。たとえば、カフェの公共 Wi-Fi でオンラインバンキングにログインした際、中間者攻撃でセッション ID が傍受されると、攻撃者はそのセッションを使って残高照会や送金操作を行えます。また、ブラウザに保存された Cookie がマルウェアによって抜き取られ、攻撃者が別の端末からログイン済みの状態でアクセスする「 Cookie 窃取」も増加しています。

対策

HTTPS の使用、 Cookie の Secure 属性と HttpOnly 属性の設定、セッション ID の定期的な再生成が基本的な対策です。サービスごとに固有の強力なパスワードを設定し、二段階認証を有効にしておけば、セッションが乗っ取られた場合でも重要な操作には追加の認証が求められるため被害を軽減できます。Web 開発セキュリティの書籍 (Amazon)も参考になります。

関連用語

この記事は役に立ちましたか?

Xはてブ