Tech-Blog

Webサーバの脆弱性診断は必ずホスト名(FQDN/URL)指定で行う——IP直打ちを避ける理由

本記事は、Webをよくわからない状態で脆弱性診断をしている方向けの内容になります。
自信のない方は、本記事の内容を参考に診断ツールの設定を見直してみてください。

若手エンジニア志望者を募集!支度金あり

30秒でわかる要点

・結論:診断はFQDN/URLをスコープにするのが大原則です。
IP直打ちは誤判定・未到達・他社誤爆が起こり得ます。

・根拠:HTTP/1.1ではHostヘッダが必須です(同一IPで複数ドメインを区別できる)。
TLSではSNIで証明書を選びます。両者が噛み合って“正しいサイト”に届きます。

※本記事の想定は、Webサーバ(ミドルウェア)中心の簡易診断です。
Webアプリ診断ではURL・認証状態・キャッシュ等も含めた詳細な設計が必要になります。

技術的に“ホスト名指定”するべき理由

HTTP/1.1:Hostヘッダは必須

HTTP/1.1 では、すべてのリクエストで Host を送ることが必須です。
これにより、1つのIP上に同居する複数ドメイン(バーチャルホスト)をサーバ側で正しく選別できます。
Hostが無ければリクエストは正しく処理されず、多くの場合400エラーが応答されます。

TLS:SNIで正しい証明書を選ぶ

TLS標準は当初、接続先の「ホスト名(FQDN)」をサーバへ伝える仕組みが無く、1IP=1証明書が前提でし
た。これを解消するのがSNI(Server Name Indication)で、クライアントはTLSハンドシェイクの冒頭に
目的ホスト名を送り、サーバは一致する証明書を提示できるようになりました。

HTTP/2 , 3: :authority と Host の継続性

HTTP/2 以降は、Hostの役割を擬似ヘッダ :authorityが担い、
HTTP2→HTTP1を跨ぐ中継ではHostに正しく変換される設計です。

IP直打ちで起こる“典型的な失敗”3パターン

別サイトに当たる/デフォルトサイトが出る

SNIとHostが一致しないため、多くの実装では証明書名不一致で警告になるほか、
サーバのデフォルト証明書・デフォルトバーチャルホストにフォールバックする可能性が高いです。
ブラウザが続行しても、それは対象サイトではない可能性が高いです。

CDN/共有IPで“誰かのIP”に当たる

多くのCDNはAnycastで同一IPを多数の顧客で共有します。SNIとHost(:authority)で顧客を識別します。
IP直打ちはCDNの共通エラーページや別顧客のドメインに当たり、誤検出/未検出を招きます。

可変IPのLBで“再現性が崩壊”

よく利用されるクラウドLBのAWS ALBは固定IPを前提とせずDNS名での利用が想定されています。
運用中に返されるIPが入れ替わるため、IPをスコープにすると、途中で他の企業を診断してしまい、
異常な診断結果になってしまったりする恐れがあります。

まとめ

IP直打ちの診断によってわかることもありますが、診断の優先度としては高くありません。
まずはホスト名指定での診断が基本であり、精度を高める目的で、IP直打ち時の診断をすることになります。
IP直打ち診断をすると、意図しないコンテンツが表示されないか、証明書の異常がないかのチェックなど、
確認できることはありますが、診断によって判明する事は限定的です。
とりあえず、ホスト名指定で診断できているのかを確認するようにしましょう。

補足

脆弱性診断時に、ホスト名の指定と併せて、どのIPアドレスに接続しに行くのかを指定することができる
ツールがあります。例えば、ホスト名をwww.secuavail.comにして、接続先を全く関係のないIPアドレスに
するといったイメージです。
これは、CDNやクラウドWAFがオリジンの前段にある構成で、オリジンの通信の受け口がインターネット
向けに空いているような場合に、ホスト名は環境に合わせて設定し、接続先をオリジン側の受け口に向ける
ことで、CDNやクラウドWAFを迂回して、脆弱性診断をすることができます。
迂回を阻止するには、CDN側でカスタムHTTPヘッダを挿入し、オリジン側でヘッダのチェックを行ったり、
オリジン側で送信元IPアドレスをWAFだけに制限したりする対策が必要になります。

ただ、診断ツールを使わなくとも、Hostsファイルの編集やLinuxのコマンドなどで接続可否のチェックは
できるので、迂回されないか不安な方は試してみるとよいかと思います。

若手エンジニア志望者を募集!支度金あり

LogStare Collector 無償版

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

トラブルシューティング機能について前のページ

LSC v2.4.3 build 260106リリースノート次のページ

ピックアップ記事

  1. IoT機器「Raspberry pi」とLogStare Collectorで温…
  2. Zabbixヒストリデータのレポート生成について
  3. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  4. ログフォワーダー「okurun.jar」について

関連記事

  1. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について

    当記事では、SonicWall UTMにSyslog送信設定を追加する…

  2. Windows/Linux

    IIS アクセスログを収集する方法|ログの設定から収集まで

    WindowsのIIS にはアクセスログの記録を行う機能があります。I…

  3. NW機器

    Nutanixを監視したいときのメトリクス監視項目例(API v2)

    当記事ではLogStare Collector(以下、LSC)でのNu…

  4. Windows/Linux

    Microsoft Defender ファイアウォールのログをLSCにて収集する方法

    当記事では、Microsoft Defender ファイアウォールのロ…

  5. NW機器

    SonicWall UTMのログ活用事例

    当記事では、SonicWall社製UTMのログ活用事例としてSyslo…

  6. Windows/Linux

    Windows Server DNSのデバッグログをLogStare Collectorにて収集する…

    当記事では、Windows Server DNSのデバッグログをLog…

若手エンジニア志望者を募集!
LogStare Collector 無償版
クラウド活用の「困った」「焦った」事例
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  2. SNMPを触ってみた

    ログ分析・監視テクニック

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  3. デフォルト画像イメージ

    FortiGate

    FortiGateのSD-WAN設定について
  4. AWS/Azure

    AWSマーケットプレイス上から無償版のLogStare Collectorを試す…
  5. 実践記事

    DNSキャッシュポイズニングやってみた
PAGE TOP