セッションID固定化攻撃とは?仕組みから対策方法まで徹底解説|サイバーセキュリティ.com

セッションID固定化攻撃とは?仕組みから対策方法まで徹底解説



さまざまなWebサービスでは、ログインすることであなた専用のサービスを受けることが可能です。その際に利用される「セッションID」を固定化することで、あなたになりすます攻撃があることをご存知でしょうか。セッションID固定化攻撃によってあなたになりすますことで、場合によっては金銭面での被害を受ける可能性もあります。

今回は「セッションID固定化攻撃」の概要から仕組み、「セッションハイジャック」との違いとあわせて、対策方法を解説します。

セッションID固定化攻撃とは

セッションID固定化攻撃は、正規ユーザー(あなた)のセッションIDを乗っ取り、正規ユーザーになりすます攻撃手法です。「セッションフィクセーション」や「セッションIDの強制」とも呼ばれます。

正規ユーザーは、Webサービスにログインする際にセッションIDを発行しますが、そのセッションIDを事前に用意して、正規ユーザーに使わせることによってセッションの乗っ取りが行われます。セッションの乗っ取りによってあなたになりすますことで、次に挙げるような被害を受ける可能性があるのです。

  • クレジットカード番号の盗み出し
  • ネットショッピングサイトなどで無断の買い物をする
  • 他ユーザーへの迷惑行為
  • 犯罪行為

ネットショッピングサイトを利用するなかで、クレジットカード番号などを登録している人も多いのではないでしょうか。あなたになりすますことで、それらの情報が盗み出せるようになり、無断で買い物することも可能となります。

SNSなどのコミュニティにおいては、他のユーザーへの迷惑行為や犯罪予告などが、あなたになりすましておこなわれるため、あなた自身の社会的信用の失墜に繋がる可能性もあるのです。

セッションID固定化攻撃の仕組み

はじめに、セッションIDを盗み出す手口としては、次の3つが考えられます。

  • セッションIDの推測
  • セッションIDの盗み出し
  • セッションIDのお膳立て

セッションIDの推測では、Webサービスで利用されているであろうセッションIDを複数生成し、試行錯誤を繰り返すことで利用可能なセッションIDを推測することです。セッションIDの盗み出しは、ネットワーク盗聴や盗聴用のスクリプトを使って、正規ユーザーのセッションIDを盗み出します。

セッションIDのお膳立てでは、特定のWebサービスで有効なセッションIDを攻撃者が用意し、それを正規ユーザーに使わせることで正規ユーザーになりすますことができます。このセッションIDのお膳立てこそ、セッションID固定化攻撃であり、事前に用意したセッションIDをあなたに使わせることで成立するのです。

セッションIDの管理原則としては、セッションIDはWebサーバー側で発行します。発行したセッションIDをブラウザに渡し、Webサーバーにアクセスするたびに与えられたセッションIDをブラウザが返すことでユーザーを識別し、管理しています。しかし、Webサーバーの中には、ブラウザ側で発行したセッションIDを使用可能とする機能を有効化しているものもあります。

セッションID固定化攻撃では、この機能を悪用するのです。まずは攻撃者が生成したセッションIDを含んだURLなどを正規ユーザーに送りつけます。正規ユーザーがそのURLからログインすると、同じセッションIDを使って攻撃者も正規ユーザーと同じようにサイト内を徘徊することが可能となるのです。

セッションID固定化攻撃とセッションハイジャックの違い

セッションID固定化攻撃と同じような攻撃手法に「セッションハイジャック」がありますが、この2つはセッションIDの乗っ取り方に違いがあります。

セッションID固定化攻撃は、攻撃者が事前に用意したセッションIDを正規ユーザーに利用させることで成立します。しかし、セッションハイジャックは正規ユーザーが利用中のセッションIDをネットワークの盗聴などによって、奪うことで成立するのです。

先ほどお話したセッションIDを盗み出す手口でいえば、セッションID固定化攻撃は「セッションIDのお膳立て」であり、セッションハイジャックは「セッションIDの盗み出し」となります。結果としては、どちらも正規ユーザーになりすますことができる攻撃ですが、なりすますまでにセッションIDを盗み出す方法が異なることを覚えておきましょう。

セッションとは

ここまで「セッション」という単語を多く利用してきましたが、そもそも「セッション」とは何でしょうか。簡単に説明すると、セッションとはWebサービスやWebアプリケーションにログインしてからログアウトするまでの一連の手続きを表します。

通常、WebサービスやWebアプリケーションを動かすWebサーバーとユーザーの関係は、1対多の関係であり、Webサーバーから見るとユーザー1人ひとりは識別していません。しかし、ユーザーごとに提供するページや情報が異なる場合は、Webサーバーはユーザーを識別する必要があります。

その際にセッションを使ってユーザーを識別しているのです。ユーザーにログインIDとパスワードを確認することで識別し、識別したユーザーだけに提供する情報を渡すためにセッションが用いられます。Webサーバーは、非常に多くのユーザーと通信を行うため、識別したユーザーだけに渡す情報に印をつけることで、お互いに正しい情報を受け渡しすることができます。その際に利用されるものが「セッションID」です。

セッションには、厳密に言えば他にも意味がありますが、ここでは「ログインからログアウトまでの一連の手続き」と覚えてください。

セッションID固定化攻撃への対策

セッションID固定化攻撃への対策は、ユーザー側では対策しきれません。主にWebサーバー側での対策方法を紹介しますが、最後にユーザー側での対策方法も記載していますので確認してみてくださいね。

ログイン後にセッションを新規に作る(セッションIDの再発行)

セッションID固定化攻撃は、名前の通りセッションIDを固定化する攻撃です。そのため、ログイン後にセッションを新規に作成することで、セッションIDを再発行する対策が有効となります。

攻撃者が用意したセッションIDと異なるセッションIDを用意すれば、攻撃者は正規ユーザーになりすますことができません。

たとえば、ログインを家に入ること、セッションIDを鍵と考えてみましょう。同じセッションIDを使うということは、複製した同じ鍵を利用することと同じです。ログイン後に新しい鍵に変えてしまえば、もともと利用していた鍵は利用できなくなるため、家に入ることはできません。

セッションID固定化攻撃に対しては、セッションIDの再発行が最も有効です。

セッションIDとは別に認可されたことを証明する情報を付加する

Webサーバーの環境によっては、セッションIDを再発行することが難しい場合があります。その場合は、セッションIDとは異なる認証情報を付加することで対策ができます。

たとえるなら、セッションIDとは別に鍵を用意することといえるでしょう。仮にセッションIDという鍵を使われたとしても、もう一つの鍵を手に入れることができなければ、なりすましはできません。

セッションIDと一緒に別の認証情報を使ってユーザーを識別することで、セッションID固定化攻撃の対策が可能です。

不審なURLはクリックしない

ユーザー側としては、不審なURLをクリックしないことが最も重要です。セッションID固定化攻撃では、攻撃者が用意したセッションIDを含むURLをクリックさせることから始まります。攻撃者が用意したセッションIDを利用しなければ、セッションID固定化攻撃の標的とはなりません。

メールのリンクや攻撃者が用意したWebサイトのリンクなど、さまざまな方法が考えられますが、不審なURLはクリックせず、公式サイトへ直接アクセスするように気をつけましょう。よく利用するWebサービスは、お気に入りに登録しておくことも対策となります。

まとめ

セッションID固定化攻撃は、攻撃者が用意したセッションIDを正規ユーザーが利用することで、正規ユーザーになりすますことができる攻撃です。場合によっては、金銭的な被害を受ける可能性があり、インターネットを利用する上で気をつけるべき攻撃の一つといえるでしょう。

対策としては、ほとんどがWebサーバー側で行われるべき対策となりますが、ユーザー側としても不審なURLをクリックしないといった対策が可能です。リンクはさまざまな場所で利用されていますが、本当にクリックしても問題ないか、一度確認する習慣を身に着けてはいかがでしょうか。


SNSでもご購読できます。