ケースタディ!

プログラミングやITに関する知識、私なりの様々な学習方法、読書感想などを綴っていきます!

セキュリティ対策について語ります!(セッションハイジャック編)

前回までの「XSS編」「SQLインジェクト編」に続き、新たなセキュリティ対策の説明を続けていきます。今回はセッションIDの乗っ取りを行う「セッションハイジャック」に関するお話です。 

前回の「SQLインジェクト編」の記事はこちら⬇️でございます。

kstudy.info

f:id:keisuke-studyingIT:20200805144849p:plain

セッションハイジャックの定義

再び、Wikipediaで調べて見ましょう。

 

セッションハイジャックとは、コンピュータネットワーク通信におけるセッション(特定利用者間で行われる一連の通信群)を、通信当事者以外が乗っ取る攻撃手法である。

引用元:Wikipediaセッションハイジャックhttps://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%8F%E3%82%A4%E3%82%B8%E3%83%A3%E3%83%83%E3%82%AF

つまり、セッションをハイジャックする➡️セッションを乗っ取ることです。

セッション(session)とは通信の開始から終了までの流れのことを指します。そのセッションを管理することをセッション管理と言い、その管理方法の一つとして通信中の利用者を識別するためにセッションIDを生成して、Webサービスの利用者に付与します

この他人のセッションIDを文字通り乗っ取ってしまう攻撃手段です。今回は分かりやすい意味ですね。

セッションハイジャックによる3つの攻撃手段とその対策

方法は色々とある様ですが、今回は3つ紹介いたします

1.セッションIDの推測

セッション管理において、セッションIDを生成する際の規則性から、悪意を持った人が他人のセッションIDを推測して悪用する手法です。日時、ユーザーID、メールアドレスと言った様々な要素から組み合わせてセッションIDを生成する方式では、規則性が生まれてしまう訳です。この中でも日時やユーザーIDは外部の人でも参照出来るため、悪意を持った人はそこを狙ってセッションIDを推測します

これはセッション管理機構の脆弱性を突いた攻撃に当たりますので、対策手段にはセッションIDの生成を独自の管理機構で行うのではなく、Webアプリケーション開発ツールが持つセッション管理機構を利用することが推奨されています。理由は開発ツールによるセッションIDの生成だと、第三者に推測されてしまう危険性がほぼなくなるためだと言われています。

2.セッションIDの盗み出し

ネットワーク通信に脆弱性が見られる場合、Webサイトとサーバ間でデータ通信が行われる際にセッションIDの情報が外部から取得できてしまうことがあります。これがセッションIDの盗み出しという手法です。

今回の場合、ネットワーク通信への脆弱性を狙った攻撃ですので、対策として外部から情報が取得出来ないようにネットワーク通信を暗号化させます

ネットワーク通信を暗号化させる仕組みは「SSL(Secure Socket Layer)」と言います。個人情報などを含む重要な通信を行う際に必ず用いたい仕組みですね。

3.セッションIDの強要

セッションIDの強要とは「セッションIDの御膳立て」とも呼ばれる手法です。悪意を持った人が、まずは狙ったWebサイトの「お客様」として自分自身のセッションIDを取得します。そのIDを別の第三者に「強制的に自分自身が作成したセッションIDでログインさせます」。自分が作成したIDを使わせることから「御膳立て」という呼び方が出来た訳ですね。

三者に自分自身のセッションIDでログインさせる流れとしては、まず自分が作成したセッションIDによるログイン用のメールを第三者に送る(俗にいうスパムメールです)。そのメールをクリックしてしまった第三者が標的のWebサイトにログインしてしまう。その結果として悪意を持った方が、同じセッションID情報を共有させられている被害者となった第三者になりすますことが出来る訳です

対策方法としては、三者がログイン後に「セッションIDを変えてしまう」方法があります。セッションIDが変わってしまっては、元々のIDを発行した悪意を持った者であっても再度同じIDでログインすることが出来なくなります。その手続きにはログイン後にセッションを新たに作成する(再発行する)など様々な方法がございます。

3の強要に関しましてはユーザー自身の自己防衛が必要となりますね。本当に厄介な手口だらけです・・

セッションハイジャックによる過去の被害の事例

Apache」サーバー不正アクセス事件

scan.netsecurity.ne.jp

送られてきたURLに以前説明したXSS(クロスサイトスクリプティング)が含まれていて、クリックしてしまった結果、管理権限を含んだセッションを乗っ取られたという恐ろしい話です。更に恐ろしいことに、この手のスパムメールは日常でも溢れてます。次の被害者になってしまわない様に教訓とすべきですね。

 

しばらく私自身の備忘録も兼ねたセキュリティ対策の記事が続きましたが、次回の「CSRF(クロスサイトリクエストフォージェリ)」⬇️の記事を持ちまして、セキュリティ関連の記事は一旦終了とします。

kstudy.info