検索
連載

これだけは知っておきたいセッション変数の基礎もいちどイチから! HTTP基礎訓練中(8)(3/4 ページ)

前回の「基礎のキソ、エブリバディ・セッション管理!」に続き、セッション管理の基本を解説します。宿題の解答編もありますので、クイズを解く感覚でぜひ皆さんも挑戦してみてください(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

セッション変数で気を付けるべき“セッションフィクセーション”

ナツ 「さて、ここまではパラメータの受け渡しの話なんだけど、セッション変数の場合、それ以外にも気を付けないといけないことがあるんだよね」

クウ 「なんと」

ナツ 「セッション変数に格納された値自体の漏えいは大丈夫か、というとこだね」

クウ 「セッション変数に一度格納されれば、サーバ側の管理になるから大丈夫なんじゃ?」

ナツ 「んー。そういいたいところなのだけど、あと2つ考えないといけないかな」

クウ 「まだ2つも!」

ナツ 「1つ目は、セッションフィクセーションっていう脆弱性だね」

クウ 「……むむむ」

ナツ 「セッションフィクセーションは、セッションIDが攻撃者に知られてたら、入力した内容が確認画面とかで見られちゃうかもしれないってこと」

クウ 「まず、セッションフィクセーション自体があんまちゃんと理解できてないからいまいちピンとこないのです……」

ナツ 「ふむ……。じゃあ、セッションフィクセーションの話も含めて説明だね」

クウ 「お願いします><」

 セッションフィクセーションという脆弱性は、攻撃者がユーザーに指定したセッションIDを利用させることで、ユーザーのセッション状態を乗っ取ることができてしまうという問題である。この脆弱性を突くための条件として、攻撃者が指定したセッションIDをユーザーに利用させることが必要であるが、ほかの脆弱性との組み合わせ(例えば、レスポンスヘッダインジェクションなど)で攻撃が容易に成功してしまう場合が存在する。

【関連記事】

もいちどイチから! HTTP基礎訓練中(5)

レスポンスヘッダ+改行コード=脆弱性?!

http://www.atmarkit.co.jp/fsecurity/rensai/httpbasic05/httpbasic01.html


 特に、ログインなどの機能では、ログイン状態が乗っ取られてしまうと致命的な問題となるため、ログイン成功時に既存のセッションIDを破棄し、初期化して新しいものを発行するという仕組みが多くのサイトで取り入れられている。

図4 セッションフィクセーションの攻撃例
図4 セッションフィクセーションの攻撃例

 この脆弱性は、ログイン状態を例として解説される場合が多いため、ログインのみの問題と認識されていることが多いが、ログイン処理がないようなサイトでもセッション変数を利用した作りの場合、同様のことが起きてしまう危険性を秘めている。

 例えば、新規登録を行うような機能の場合、ユーザーが情報を入力する前にセッションIDが初期化されていない場合、攻撃者が同じセッションIDを利用して確認画面などで入力情報の確認ができてしまう危険性が残されている。

 hiddenを用いた新規登録ではこのようなことは起こらないため、これが仕組みが異なるため考慮すべき点が異なっている例の1つといえる。

セッション変数、どこに格納する?

クウ 「ふむふむ……。なんか難しそうですけど、理屈的には攻撃できちゃうねってことなのですね」

ナツ 「そうだねー。ちょっと考えないと思いがいたらないから難しいところかもしれないけどね」

クウ 「もう1個の考えなきゃいけないことはどんなのなんですか?」

ナツ 「2つ目は、セッション変数の格納先はちゃんと管理されてるか」

クウ 「……格納先ですかぁ。考えたこともなかったかもです。システムがよきに計らってくれてるとしか〜」

ナツ 「セッション変数の格納先については、いろんなパターンがあるけど、ファイルとかだと、そのファイルって誰がアクセスできるかっていうのがあいまいになってる場合が多いんじゃないかな」

 セッション変数は、サーバ側で管理されている状態になるため、何らかの方法で情報を保管しておく必要が出てくる。揮発性の高い状態で保管されている場合にはさほど問題とはならないが、ファイルのような形で保存されている場合、そのファイルの保管状態について考慮する必要がある。

 例えば、ユーザー名、住所、クレジットカード番号などを入力するようなアプリケーションでセッション変数を用いていれば、たとえユーザーが確認画面までで処理をやめてしまったとしても、その情報がファイルとして保存されたままになってしまうような例も存在する。

図5 実際のセッションファイルの見え方
図5 実際のセッションファイルの見え方

クウ 「そうなのかぁ〜。実は結構ちゃんと把握しておかないとダメかもですね」

ナツ 「まあ、使いやすいように隠ぺいされている部分も多いから把握が難しいこともあるけどね」

クウ 「表面的な動きだけじゃなくって、裏側で何が起こってるかも把握しないとダメなのですね〜」

ナツ 「お。もうこんな時間だね。そろそろ帰ろう」

クウ 「おおっ。帰りましょー」

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「Appleの暗号化アルゴリズム」を盗用し、2カ月以上検出されなかったステルス型マルウェアの正体とは
  2. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  3. 2025年、LLMの脆弱性が明確になるなど、セキュリティとクラウドに関する8つの変化
  4. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  5. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  6. Google Cloud、2025年のサイバーセキュリティ予測を発表 AIがサイバー攻撃にもたらす影響とは?
  7. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  8. 経営層の約7割が「セキュリティ対策は十分」一方で6割以上がインシデントを経験、1位の要因は?
  9. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  10. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
ページトップに戻る