編集部からのお知らせ
宇宙ビジネスの記事まとめダウンロード
記事まとめ「テレワーク常態化で見えたこと」

サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性 - (page 2)

池田雅一(テクマトリックス)

2008-01-15 08:00

対策

 最も簡単な方法は、セッション管理機能を自作するのではなく、フレームワークやライブラリなどが用意している機能を利用することだ。これらは検証が十分されており、セッションIDの推測が容易ではないので、セッション管理機能を自作することと比較すると安全だ。

 しかし、セッションIDの推測が可能な脆弱性が発見されることもあるので、使用しているフレームワークやライブラリの脆弱性情報を常に知っておく必要がある。

セッションフィクサーション

 セッションフィクサーションとは、ログイン(セッション開始)前に使用されていたセッションIDが、ログイン(セッション開始)後にも同じ値で使用されている脆弱性だ。

 この脆弱性を利用した攻撃手法は次のようになる。

1. 悪意あるサイトやスパムメールにあるリンクをクリックすると何らかの方法を用いてセッションIDを設定する。

2. セッションIDを設定した後、ログイン画面を表示する。

3. 被害者がログインを行う。

4. 被害者がログイン中に攻撃者が1.で設定したセッションIDを使用して、脆弱性のあるサイトにアクセスする。この結果、攻撃者が被害者に成りすまして脆弱性のあるサイトを悪用できる。

検査方法

 この脆弱性の検査でも、第5回で説明したHTTP Proxyのような検査ツールを使用する。

 ログイン前に指定したセッションIDが、ログイン後のセッションIDと同じものが使われているかを確認することで、この脆弱性の有無が判断できる。この検査では、以下のような手順で確かめる。

1. ログイン画面にアクセスする。

2. ログイン画面で取得したセッションIDを記録する。たとえば、セッションIDを示すCookieの「sessionid」が「12345678」と設定されてHTTPレスポンスに含まれているとする。

3. 他のPC(他のIPアドレスをもつPC)で、セッションIDに2で記録したセッションIDの値を設定して(たとえば、sessionidを12345678と設定)、ログインを行う。

4. ログイン後に取得したセッションIDを確認する。3.で設定したセッションIDの値と同じであれば、脆弱性がある可能性が高い。たとえば、ログイン後の「sessionid」が「12345678」であれば、設定した値と同じであるため、この脆弱性がある可能性がある。

5. 実際にセッションハイジャックが可能であることを確認するために、2.で使用したPCで、取得したセッションIDを設定後、ログイン後の画面にアクセスする。アクセス可能であれば、脆弱性があると判断できる。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]