いまさら聞けないセッションハイジャック

 2016.12.01 Secure Enterpriseポータル

Webサイト/Webサービスの不正利用を主な目的としたサイバー攻撃である“セッションハイジャック”という攻撃手法をご存知でしょうか?

Webアプリケーションの中には快適なサービスを提供するため、ユーザー毎にセッションIDやCookie情報を生成するものがあります。

セッションハイジャックとはいわば、何らかの方法でこれら情報を取得し、正規ユーザーに成りすますという攻撃手法です。

近年LINEといったSNSアプリケーションにおいて“アカウント乗っ取り事件”が多発しましたが、これはセッションハイジャックによるものだと推察されます。

今回はセッションハイジャックの仕組みなどについて解説しつつ、WAF(Web Application Firewall)による対策について紹介します。

セッションハイジャックの仕組み

正規ユーザーに成りすますセッションハイジャックは、主に以下の3つの攻撃手法を用いて実行されます。

セッションIDを推測した不正利用

例えばセッションIDが連番や日時などを含んだ推測可能な文字列で構成されている場合、攻撃者が正規ユーザーのセッションIDを不正利用することは難しくありません。

攻撃者はまず正規経路でWebサイト/Webサービスに幾度かアクセスし、その度生成されるセッションIDを見て文字列の法則を見つけ出します。

法則さえ掴めれば正規ユーザーがログインしたタイミングを見計らい、同じセッションIDを利用して成りすますことができるのです。

あるいはセッションIDを推測せずとも、複雑でないIDであれば総当たり(ブルーフォート)攻撃を用いて比較的簡単に割り出すことができます。

セッションIDを盗難した不正利用

ユーザーとWebアプリケーション間のネットワークを傍聴していたり、ユーザーを不正Webページへと誘導することでセッションIDやCookie情報を盗難し、不正利用するというケースも存在します。

例えば、クロスサイトスクリプティングという攻撃手法を用いてWebアプリケーションに不正プログラムを組み込めば、ユーザーがWebサイト/Webサービスを利用した際にセッションIDやCookie情報が表示されるという不正Webページを作成することができます。

攻撃者はこうして秘密裏に正規ユーザーのセッションIDやCookie情報を盗難し、その後ユーザーに成りすますことで様々な被害を生み出すのです。

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

セッションフィクセーション攻撃”とも呼ばれるこの攻撃手法は、攻撃者が正規に取得したセッションIDを何らかの形でユーザーに強制的に利用させます。

当該セッションIDを利用してユーザーがWebサイト/Webサービスにログインすると、攻撃者も同セッションIDを用いて不正ログインを行うという方法です。

基本的にユーザーはセッションIDの強制に気付くことがないため、Webアプリケーション側での対策が重要になります。

セッションハイジャックで想定される被害

セッションハイジャックによって、ユーザーや企業はどのような被害を受けるのでしょうか?

正規ユーザーのみが使用できるサービスを悪用

例えばECサイトにクレジットカード情報を登録している場合、セッションハイジャックによりユーザーに成りすませば不正な商品購入を行うだけでなく、クレジットカード情報を悪用した被害が想定できます。

また、個人情報を登録してる場合、情報流出といった被害は免れないでしょう。

正規ユーザーのみが編集できる内容の不正更新

SNSやブログサービスといったWebアプリケーションの場合、正規ユーザーに成りすまし誹謗中傷の対象となる投稿を行う可能性もあります。

また、正規ユーザーに成りすますことで繋がりのある人間に対し“振り込め詐欺”を行うといった事件も確認されています。

正規ユーザーのみが閲覧可能な情報の不正閲覧

非公開求人情報を掲載してるWebサービスやコミュニティ会員専用のWebサイトなど、正規ユーザーのみが閲覧可能な情報を不正閲覧することで、金銭的な利益に繋がる情報搾取を行うことが可能です。

特に、ブラウザ上でグループウェアや社内SNSなど機密情報が集約するサービスを利用している企業においては、個人情報やプロジェクト情報などが流出する可能性もあります。

これら被害はあくまでユーザーが受けるものであり、企業は間接的に多大な被害を受けます。

サイバー攻撃を許したことでの信頼性失墜や、ユーザーへの補償による経済的損失など失うものは計りしれません。

セッションハイジャックへの対策

ここではセッションハイジャックへ有効的な対策をいくつか紹介します。

セッションIDを推測困難なものにする

前述したようにセッションIDが連番や日時情報を含むような簡単なものだと、攻撃者が推測し不正利用される可能性があります。

従ってセッションIDは原則推測困難なものにすることが基本的な対策の一つです。

セッションIDを固定的にしない

ユーザー毎に生成するセッションIDが固定的な場合、時間経過に関係なく攻撃者に悪用される可能性があります。

また、セッションIDのアルゴリズムを解析されると瞬く間に被害が拡大するので非常に危険です。

必ずユーザーのログインごとにセッションIDを発行し、固定化しないよう注意しましょう。

ログイン成功後に新たなセッションを開始する

また、セッションIDを推測困難にしたり変動的にしたとしても、盗難により不正利用される可能性は十分にあります。

従って、ログイン成功後に新たなセッションを開始するという対策が有効的です。

ログイン前にセッションIDを継続的に使用すると盗難による被害が発生しやすくなります。

Cookie情報の有効期限を短くする

Cookie情報は有効期限が切れるまでブラウザ上で保持されるため、クロスサイトスクリプティングなどによりCookie情報を搾取されると攻撃者の不正利用を許してしまいます。

このためCookie情報の有効期限を短めに設定し、必要以上ユーザーのブラウザ上に保持されないよう対処しなければなりません。

SSL暗号化通信でセッションIDを難読にする

SSL暗号化通信とは、ユーザーとWebアプリケーション間のデータ通信を暗号化し、攻撃者による盗難を防ぐための技術です。

セッションIDも暗号化できるため、難読など暗号化通信で攻撃者による推測や盗難を効果的に防ぎます。

WAFによるセッションハイジャック対策

WAFとは、ファイアウォールやIPS/IDS(不正通信防御/検知システム)といった従来型のセキュリティ製品では防ぎ切れない、Webアプリケーションの脆弱性を狙ったサイバー攻撃を総合的に防御するためのセキュリティ製品です。

セッションIDの推測という脅威は、管理者側の設定により推測困難なアルゴリズムを採用することで確実に防ぐことができます。

しかし、セッションIDの盗難やセッションIDの固定化攻撃に関してはまた別の話です。

上記2つの攻撃手法に対してはそもそも盗難や固定化を許さない対策が何よりも重要になります。

これに対しWAFは、盗難や固定化の原因でもあるクロスサイトスクリプティングやSQLインジェクションといった、Webアプリケーションへの攻撃を防ぐことができます。

従って攻撃者によるセッションIDやCookie情報の不正利用を許さず、Webサイト/Webサービスを確実に保護することができるのです。

シマンテックが提供する「シマンテック クラウド型WAF」は、こうしたWAFによるセキュリティ環境をWebベースで提供します。

専用ハードウェアの設置やソフトウェアインストールは不要なため、初期コストを抑えつつ“最短1週間の迅速導入”も実現可能です。

また、「シマンテック クラウド型WAF」ではSSL暗号化通信機能も提供しているため、セッションハイジャックによる被害を多角面から阻止します。

まとめ

いかがでしょうか?Webサイト/Webサービスを狙ったサイバー攻撃はSQLインジェクションやDDoS攻撃など認知度が高いものだけでなく、様々な攻撃手法が存在します。

セッションハイジャックではその中でも管理者が攻撃に気付きにくく、被害が拡大しやすいものですので早急な対策が必要です。

管理者の負担を軽減しつつ確実にWebアプリケーションを保護するためにも、WAFを導入し堅牢なセキュリティ環境を構築していきましょう。