2010.03.19THU

「かんたんログイン」DNSリバインディング耐性のチェック方法

このエントリでは、ケータイ向けWebサイトがDNSリバインディング攻撃に対する防御耐性があるかどうかをチェックする方法を説明します。ケータイ向けに「かんたんログイン」機能をもつWebサイトをチェック対象とします。

基本的な前提として、検査対象のWebサイトの管理者が自ら検査することを想定しています。

用意するもの

  • チェック対象のWebアプリケーション(かんたんログイン機能あり)
  • 携帯電話(かんたんログイン可能なもの)
  • インターネット接続されたパソコン

ステップ0:IPアドレスの調査

検査対象のWebサーバーのIPアドレスを調べます。一例として、検査対象サーバーのホスト名が mobile.example.com の場合、以下のコマンドでIPアドレスを調べることができます。

C:>nslookup mobile.example.com
サーバー:  ns.example.com
Address:  192.0.2.1

権限のない回答:
名前:    mobile.example.com
Address:  115.146.17.185
C:>

上記の例では、WebサイトのIPアドレスは、115.146.17.185になります。

ステップ1:数値IPアドレスでログイン画面を閲覧

ケータイWebアプリケーションのログイン画面のURLに対して、ホスト名を数値IPアドレスに変更したもので、携帯電話ブラウザを使用してアクセスします。上の例では、ログイン画面のURLがhttp://mobile.example.com/login?guid=ONの場合、http://115.146.17.185/login?guid=ONにアクセスすることになります。

この結果、403 Forbiddenなどのエラーでログイン処理が継続できなくなった場合はチェックを終わります(耐性あり)。画面が正常に表示された場合はステップ2に進んでください。

ステップ2:かんたんログインの実行

携帯ブラウザ上でかんたんログインボタンを押下(あるいはリンクを選択)します。

この結果、403 Forbiddenなどのエラーが表示された場合はチェックを終わります(耐性あり)。ログインが正常終了し、ログイン後の画面が表示された場合はステップ3に進んでください。

ステップ3:URLのチェック

携帯ブラウザの機能を利用して、現在表示されている画面のURLをチェックします。ホスト名が数値IPアドレスのままになっている場合は、DNSリバインディング攻撃に対して脆弱です。アドバイザリを参考に対策してください。数値IPアドレスではなく、本来のホスト名に変更されている場合はステップ4に進んでください。

ステップ4:数値IPアドレスでのコンテンツ閲覧

先ほど確認したURLに対して、ホスト名を数値IPアドレスに変更したものでコンテンツを閲覧します。コンテンツが正常に表示された場合、DNSリバインディング攻撃に対して脆弱です。エラーになった場合は、DNSリバインディング攻撃への耐性がある可能性が高いと予想されます。

以上の内容をフローチャートにまとめました。

まとめ・注意事項

かんたんログインのDNSリバインディング脆弱性をサイト運営者が自らチェックできる方法を説明しました。この方法はあくまで簡易検査であり、疑わしい状況である場合や、対策方法が分からない場合は専門家に問い合わせることを推奨いたします。ステップ4まで進んではじめて結果が出た場合も不確かである可能性があるため、専門家に相談されることを推奨します。HASHコンサルティングへの問い合わせはこちらから。

免責

この情報は、読者の便宜のために、HASHコンサルティング株式会社が現状のあるがままの状態で提供するものです。この検査の引き起こす結果等について、HASHコンサルティング株式会社はいかなる保証もしません。また、この情報は事前連絡なく改定される場合があります。

また、この検査方法は、あくまで自分が管理するWebサイトについてのみ実施してください。

追記(2010/03/21)

水無月ばけらさんのはてなブックマークコメントにて、指摘を頂戴しました。

ほとんどの場合はこれでOK。しかし、「数値だと蹴られるが、でたらめな Host: だと受け入れる」という設定が実在するので油断大敵。

ご指摘ありがとうございます。当方で確認した範囲では、ModSecurity(Apacheのモジュールとして動作するWebアプリケーションファイアウォール)を導入している場合に、「数値だと蹴られるが、でたらめな Host: だと受け入れる」設定となる事象を再現できました。以下に、ModSecurity導入状態で、数値IPアドレスによるリクエストがエラーになっている画面例を示します。

すなわち、数値IPアドレスによるリクエストでエラーになる状況には以下の二通りがあることになります。

  1. ホスト名が本来のものでないことによるエラー
  2. 数値IPアドレスをエラーにしている

上記1の状況であれば問題ありませんが、2の状況であれば、DNS Rebindingに対して脆弱である可能性があります。携帯電話の画面内容から、上記の区別をつけることは簡単ではない場合があるため、正確な検査を実施するには、正式なドメインとは別に検査用のドメインが必要になります。

このような検査用ドメインを用意することが難しいお客様のために、HASHコンサルティング株式会社では、無償で検査用のドメインをご提供することに致しました。お問い合わせフォームより、「検査用ドメイン希望」とご連絡ください。以下に注意事項を記述いたします。

  • 検査対象サイトのホスト名(FQDN)をお知らせください
  • 弊社が所有する検査ドメインのサブドメインに、検査対象サイトのIPアドレスをセットしてお伝えします
  • ドメインの所有権を譲渡するわけではありません。
  • IPアドレスは固定です。DNS Rebindingそのものの再現はできませんが、脆弱性の簡易検査用途には十分です
  • 検査対象サイトの正当な管理者であることをメールアドレスのドメインなどを元に確認させて頂きます
  • 検査作業は上記手順によりお客様にて実施頂くことを原則としますが、お客様合意の元に、弊社からも簡単な検査を実施させて頂く場合があります
  • 検査作業や結果の判定、脆弱性の詳しい解説などをご希望される場合は別途ご提案させて頂きます
  • 検査用ドメインの提供は、原則として1社につき1サイトとさせていただきます。多数のサイトを検査希望される場合は別途ご提案させていただきますので、その旨ご連絡ください
  • 本サービスは予告なく応募を締め切る場合があります

別途キャンペーンとして告知したいと考えておりますが、サービスの提供は即日開始いたします。不明な点はお問い合わせください。

Blogs
back number
過去のブログ

see all blogs back number

Contact

まずはお気軽にお問い合わせください

Mail magazine

弊社徳丸の登壇情報はもちろん、セキュアなシステム開発を行うためのポイントや、
最近話題の脆弱性などについて配信しております。