セッションハイジャックとは?具体的な特徴から対策をご紹介
現在はインターネットが進化し続けており、スマートフォンやパソコンを持っている人なら、さまざまなサービスが利用できます。 たとえば、ECサイト。 ECサイト上で商品購入の手続きを行えば、直接店舗に行かなくても買い物を済ますことが可能です。 しかし、このようなインターネットサービスには脆弱性(セキュリティの弱い部分)が潜んでおり、そこを狙ったサイバー攻撃が増えています。 その中でも近年危惧されているのがセッションハイジャックです。 この記事では、セッションハイジャックとは?と疑問に感じている人に向けて、セッションハイジャックの概要などを解説します。 あわせて対策方法もご紹介するので、気になる方はぜひ参考にしてください。
セッションハイジャックとは
セッションハイジャックとは、名前の通り、攻撃者によってユーザーのセッションIDが盗まれてしまうことを意味します。 セッションIDは、Webサイトが訪問してきたユーザーを識別するために発行する個人IDのような情報で、一時的に保存されます。 このセッションIDを悪用して、ユーザーに成りすまし、商品の購入や個人情報の取得などを行う行為がセッションハイジャックです。
セッションハイジャックの仕組み
ここでは、セッションハイジャックの仕組みを簡単に解説します。 仕組みを理解することで、対策すべきポイントが分かるので、これから対策を行う方はぜひ参考にしてください。
1:セッションIDの取得
セッションハイジャックの手順としては、まずターゲットユーザーが発行するセッションIDを盗みます。 セッションIDが発行されるタイミングは、ユーザーがサイトにログインする時です。 この時、攻撃者は盗聴やログ・やり取りを監視するなど何らかの方法でセッションIDを取得します。
2:利用者に成りすましてサイトにアクセス
ターゲットユーザーからセッションIDを取得したら、次はユーザーに成りすましてサイトにログインします。 パスワードを自動入力できるようサイト上に保存している場合、セッションIDとCookie(一時的に保存されたテキストデータ)を利用して簡単にアクセスされてしまうので注意しましょう。
3:情報の取得や悪質なプログラムの送信
サイトにログインしたら、その後は目的にそって悪意を行います。 サイト上に保存しているクレジットカード情報を利用して商品を購入したり、個人情報を抜き取り悪用するなど、さまざまな攻撃が考えられます。
セッションハイジャックに対するセキュリティ方法
上記でセッションハイジャックの特徴から仕組みまで解説しました。 ここでは、セッションハイジャックを防ぐための対策方法をご紹介します。
セッションIDを暗号化する
セッションハイジャックへの対策として、まずはセッションIDを推測困難なものにするのが有効です。 通常セッションIDは連番や時間情報など、シンプルなアルゴリズムで生成されています。 なので、暗号論的疑似乱数生成器などを活用し、セッションIDの値を複雑にする方法がおすすめです。
セッションIDをURLパラメータに格納しない
最近は少ないですが、セッションIDをURLパラメータに格納しないことが大切です。 URLパラメータにセッションIDを格納すると、簡単に攻撃者からセッションIDを特定されてしまいます。 基本的な事ですが、セッションIDなどの個人が特定される情報は見えないように管理しましょう。
HTTPS通信で使用するCookieの属性を変更する
ログインなどで使用されるCookieですが、属性というものを設定できます。 この属性を「secure」にすることで、HTTPS通信(データが暗号化されている通信)のみで利用することが可能になり、セキュリティを強化できます。 通信が暗号化されていないと、簡単に盗聴されてしまうので、必ずHTTPS通信でセッションを行うようにしましょう。
ログイン後に新しいセッションを発行
サービスによっては、前回発行したセッションIDと新しく発行したセッションIDが同じになっている場合があります。 ログインごとにセッションIDが切り替われば特定される可能性が減りますが、同じIDだと簡単に特定されてしまうでしょう。 ログイン後は既存セッションを無効化し、新しいセッションを始めるのが必要です。
セッションハイジャックの仕組みを理解して対策を実施
この記事では、セッションハイジャックとは何か概要から仕組み、対策方法をご紹介しました。 特にECサイトでのセッションハイジャックが多く、「知らないうちに多額の商品が購入されている」「個人情報が流出している」などのトラブルに巻き込まれる可能性があります。 セッションなどの通信では暗号化を行うなど、外部から盗聴される危険性を理解し、セキュリティ対策を行うようにしましょう。