近年個人が情報発信できるSNSが普及していくとともに、SNSのアカウント乗っ取り被害が増加していることはご存じでしょうか。SNSやWebサイトのアカウントを乗っ取る手段の1つとして「セッションハイジャック」というサイバー攻撃が存在します。企業の公式アカウントが乗っ取られたケースもあり、適切な対策を取らないと企業の信用低下につながります。今回はサイバー攻撃の1つである「セッションハイジャック」について解説します。
セッションハイジャックとは
「セッションハイジャック」とは、Webサイトとユーザー間の通信を乗っ取り、ユーザーになりすまして、個人情報の盗難やアカウントの不正利用を行うサイバー攻撃の手法です。
「セッション」とは、ユーザーがコンピュータシステムに通信を接続してから、切断するまでの一連のやり取りのことを言います。
Webサイトを閲覧する場合、Webサイトのリンクをクリックして接続を開始してから、閲覧を終えサイトを閉じるまでに交わされる通信がセッションです。接続から切断までの途中でユーザーのセッションを乗っ取り悪用するサイバー攻撃がセッションハイジャックです。
セッションハイジャックは、セキュリティリスクの中でも「識別と認証の不備」というカテゴリーに分類されます。「識別と認証の不備」は近年警戒するべきセキュリティリスクtop10(※)に常にランクインする代表的なサイバー攻撃です。
(※)参考 : OWASP Top10 2021
他のセキュリティリスクに関しては以下URL先の記事をご参考ください。
【ゼロからわかるサイバーセキュリティ入門】ーSQLインジェクションとはー
セッションハイジャックの仕組み
セッションハイジャックは、第三者の「セッションID」を何らかの方法で取得し、不正に知り得たIDを用いてセッションを乗っ取り、第三者になりすますという流れで起こります。「セッションID」とは、システムと通信中のユーザーを識別し、ユーザーにサービスを提供するための識別情報です。
ショッピングサイトを例に挙げると、
a.ユーザーがサイトにログインする。
b.ログインが承認された段階で、セッションIDが発行される。
c.セッションIDが使われることで、商品情報のページから購入のページに移動しても同じ ユーザーとして認識される。
上記のような手順でセッションIDが活用されています。
他人のセッションIDを盗む手法は以下の3種類が一般的に知られています。
①セッションIDの予測
②セッションIDの盗用
③セッションIDの固定化(セッションフィクセーション)
①セッションIDの予測
セッションIDの予測は、最も単純な方法で、他人であるユーザーが使用しているセッションIDを推測することで取得します。
アルファベットや数字の羅列であるセッションIDを推測することは不可能のようにも思えますが、セッションIDが規則的につけられている場合は簡単に推測できます。
セッションIDが
・連番(1234やabcdなど)
・日付や時間
・ログインした人のアカウント名
によってつけられている場合、簡単に推測することができます。
②セッションIDの盗用
セッションIDの盗用は、サイトの設計に何らかの問題がある場合に、その穴(バグ)をついた罠を仕掛けることで、セッションIDを盗み出す手法です。
サイトとユーザーの通信が暗号化されていない場合、通信を盗聴することでセッションIDを取得することができます。サイトにセキュリティ上の脆弱性がある場合も、その脆弱性をついて罠を仕掛けることでセッションIDを盗むことができます。
③セッションIDの固定化(セッションフィクセーションとも呼ばれます)
相手のセッションIDを先に指定することで、セッションIDを特定する方法です。
ハッカーがサイトにアクセスし、ハッカーのセッションIDを意図的にハッキングしてユーザーに送り込みます。ユーザーがサイトにアクセスすると、セッションIDはハッカーのもの
と同じになり、なりすましが行えるようになります。
参考 : 独立行政法人 情報処理推進機構(IPA)の安全なウェブサイトの作り方 – 1.4 セッション管理の不備
セッションハイジャックで起こりうる被害
・登録情報の漏洩・改ざん
サイトに登録している情報を不当に閲覧される事案が発生します。個人情報が改ざんされたり、退会手続きが勝手に行われているなどの事例もあります。クレジットカード情報や銀行口座情報などが流出すれば、金銭的な二次被害にもつながります。
・サービスの不正利用
ECサイトでの意図しない商品の購入、オンラインバンクでの不正送金などの被害例があります。あらゆる分野のサイトで不正利用が起こりえるため被害の種類は多岐にわたります。
・掲示板、SNSでの不適切な書き込み
掲示板やSNSでは、アカウントを他人に乗っ取られ、不適切な書き込みが行われるという被害例があります。企業の公式アカウントが乗っ取られ不適切な投稿が行われた場合、企業のイメージが大きく低下することになります。
代表的な事例を紹介しましたが、上記にあげた全ての被害に共通してセッションハイジャックを許してしまえば、サイトやアプリの信頼を著しく損なうという悪影響があります。
セッションハイジャックの対策
・推測が困難なセッションIDを設定する
①セッションIDの予測への対策です。セッションIDをランダムに生成するように設定することで、推測による個別IDの取得を防ぐことができます。
・セッションIDをURLに含めない
②セッションIDの盗用に対する対策の一例です。URLにセッションIDが含まれていれば、URLが暗号化されていない場合、通信盗聴によりセッションIDがすぐに特定できます。Cookie(※)を用いてセッションIDをサイト上で管理する方法への切り替えが必須です。
(※)Cookie:Webサーバーからユーザーのブラウザに送られるユーザーのデータを保存するファイル
・ログイン後に新たなセッションIDを発行する
③セッションIDの固定化に対する対策となります。ログイン後に新たなIDを発行することで、ハッカーが指定したIDを破棄し、ログイン後の画面にハッカーが入ることができなくなります。
上記3つの対策を全て行うことで、主要な手口を予防することができると言われています。
「②セッションIDの盗用」については、対策を行っても、サイトそのものに罠が仕掛けられる脆弱性がある場合は、穴(バグ)を利用されてなりすましが行われる恐れがあります。
脆弱性診断を行い、システムの具体的な弱点を発見することをお勧めします。
脆弱性診断については、以下URL先の記事をご参考ください。
【脆弱性診断とは?必要性や費用も解説】ー脆弱性診断でよくあるお悩みー
テスト専門会社GENZでは、セキュリティエンジニアが、プロの視点から脆弱性診断を実施し、セキュリティリスクを可能な限り軽減します。お客様のシステムにセッションハイジャック以外のサイバー攻撃にも耐性をつけることができます。
参考 : 独立行政法人 情報処理推進機構(IPA)の安全なウェブサイトの作り方 – 1.4 セッション管理の不備
まとめ
「セッションハイジャック」とは、Webサイトとユーザーとの間の通信を乗っ取りユーザーになりすまして、個人情報の盗難やアカウントの不正利用を行うサイバー攻撃の手法です。
セッションハイジャックの被害は、なりすましによる個人情報の不正入手やサービスの不正利用があり、被害を防ぐにはセッションIDを盗まれないための対策を講じることが必要です。
株式会社GENZでは、脆弱性診断も含めたITに関するお困りごとに幅広く対応しております。
サイバー攻撃の対策をしたいけれど何からしてよいかわからない、という場合でも大丈夫です。脆弱性診断の結果をもとに、お客様のシステムに合った対策を提案させていただきます。システムの機能面に不安があれば、システムテストと脆弱性診断を一括でご依頼いただくことも可能です。
GENZと共にお客様のシステムをより良いものにしてみませんか。