Session Hijacking - How Attackers Steal Loginsとは

About 2 min read

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

現場での使用例

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

セッション窃取のフロー

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

攻撃手法

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

具体的な被害シナリオ

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

対策

HTTPS の使用、Cookie の Secure 属性と HttpOnly 属性の設定、セッション ID の 定期的な再生成が基本的な対策です。パスつく.com で強力なパスワードを設定し、二段階認証を有効にしておけば、 セッションが乗っ取られた場合でも重要な操作には追加の認証が求められるため 被害を軽減できます。web development security books (Amazon)も参考になります。

Related Terms