ホスティング調査

どのサイトにも、運営を支えている会社の痕跡が公開された形で残っています。この調査はその痕跡を、ドメイン名からサーバーを持つネットワークまでたどり、さらにトップページを読んで、裏で動いているソフトの手がかりを探します。

例: wordpress.org, bbc.com

名前から会社へ

ドメイン名はAレコードでIPアドレスを指します。IPアドレスはブロック単位で割り当てられ、各ブロックは1つのネットワークがインターネットに広報しています。そのネットワークには自律システム番号(ASN)があり、ある組織の名前で登録されています。この鎖をたどると、次のようになります。

example.com  →  151.101.1.6  →  AS54113  →  Fastly, Inc.

この調査は名前を解決し、公開のIP-ASNデータベースにネットワークとその登録名を問い合わせ、アドレスの逆引きDNS名を読みます。逆引き名にはプロバイダー自身のドメインが入っていることがよくあります。そのうえで、Amazon Web ServicesやHetznerからSquarespaceやKinstaまで、約60のホスティング会社、クラウドプラットフォーム、サイト作成サービスのリストと照合します。どれにも当てはまらなければ、ネットワークの登録名をそのまま表示します。たいていはそれで検索すれば十分です。

結果に表示される5枚のカード

ホスティング
IPアドレスの持ち主です。アドレス、逆引き名、AS番号、ブロックが登録されている国も表示します。
CDN
各ネットワークは配信するレスポンスに独自のヘッダーを加えるので、それで見分けます。Cloudflareならcf-ray、Amazon CloudFrontならx-amz-cf-id、Fastlyならx-served-by、ほかにx-vercel-id、Netlifyのx-nf-request-id、Azure Front Doorのx-azure-refなどです。見つからなければServerとViaのヘッダーを使います。
プラットフォーム
まず<meta name="generator">タグを、次にHTML内の痕跡を見ます。WordPressなら/wp-content/、Shopifyならcdn.shopify.com、Webflowならdata-wf-site、Next.jsなら__NEXT_DATA__というように、16のシステムを見分けます。WordPressの場合はページビルダー(Elementor、Divi、WPBakery、Beaver Builder、Bricks、Oxygen、ブロックエディター)も特定します。ヘッダーからわかれば、ウェブサーバーとPHPのバージョンも表示します。
DNS
ドメインのネームサーバーと、それが属するプロバイダーです。たとえばns-123.awsdns-45.comならAmazon Route 53です。
メール
MXレコードと、その裏にあるメールサービスです。Google Workspace、Microsoft 365、Proton Mail、Zohoなど。メールサーバーとウェブサイトのIPアドレスが同じ場合は、そのことも表示します。

答えがCDNだったとき

コンテンツ配信ネットワーク(CDN)は本物のサーバーの前に立ち、代わりに応答します。見えるIPアドレスはCDNのもので、判定は「Cloudflareの背後にあり、本当のホスティング先は隠されています」となります。何もおかしなことは起きていません。オリジンサーバーのアドレスは、攻撃がCDNを迂回できないように、わざと非公開にされているのです。

自分のサイトでオリジンを知りたい場合は、CDNのアカウント内のDNSレコード、ホスティングの請求書、CDNを通らないサブドメインを見てください。mail.、ftp.、cpanel.といった名前はサーバーを直接指していることが多く、それもこの調査にかけられます。

結果に追加されることがある2つの注意

更新が終わったPHPバージョン。X-Powered-Byヘッダーが8.1より古いPHPを示している場合に表示されます。それらのリリースには、もうセキュリティ修正が提供されません。ほとんどのコントロールパネルでは、1つの画面でバージョンを切り替えられます。先にバックアップを取り、切り替えた後にサイトをテストしてください。

サーバーがバージョン番号を見せている。自動スキャナーも同じヘッダーを読んで、既知の脆弱性がある標的を選び出します。隠すにはそれぞれ1行で済みます。

ServerTokens Prod        # Apache
server_tokens off;       # nginx
expose_php = Off         # php.ini

外からは見えないこと

  • 小さなホスティング会社の多くは、大手からマシンを借りています。地元の制作会社が販売しているサイトでもHetznerやAmazonと表示されることがありますが、アドレスの持ち主がそこなので、それで正しいのです。
  • 国は、IPブロックの登録上の国です。大きなネットワークはデータセンター間でアドレスを移すので、有力な手がかりとして受け取ってください。
  • 読むのはトップページだけで、アドレスが複数ある場合は最初の1つだけです。
  • オーダーメイドのサイトや、generatorタグと痕跡を消しているサイトは「独自開発または不明」と表示されます。

ホスティング先はドメイン登録事業者とは限りません。ドメイン名を貸している会社はまったく別のこともあり、ドメイン健康診断でその名前がわかります。

よくある質問

ウェブサイトのホスティング先を調べるには?

ドメインのIPアドレスを調べ、次にそのアドレスを持つネットワークを調べます。このページは両方を行い、知っているネットワークなら、登録名をその会社のふだんの呼び名に置き換えて表示します。

ホスティング会社とドメイン登録事業者は同じですか?

必ずしも同じではありません。登録事業者は名前を貸し、DNSプロバイダーはそのレコードを公開し、ホスティング会社はサーバーを動かします。1社が3つともこなすこともありますが、別々の3つのアカウントであることもよくあります。ドメイン依存関係マップで1枚にまとめて見られます。

本当のホスティング先ではなくCloudflareと表示されるのはなぜですか?

サイトが通信をCloudflare経由にしているので、公開されているIPアドレスはCloudflareのものです。その奥のサーバーはわざと隠されていて、外からは読み取れません。

サイトがWordPressで動いているか見分けるには?

ページのソースで、/wp-content/や/wp-includes/を含むパス、またはWordPressと書かれたgeneratorタグを探してください。プラットフォームのカードがそれを報告し、わかればページビルダーも追加します。

表示される国は、サーバーが物理的にある場所ですか?

IPブロックが登録されている国です。1つの国で営業しているホスティング会社なら同じことです。世界規模のクラウドやCDNでは、あなたに応答しているマシンは別の場所にあるかもしれません。

自分のホスティングのログイン情報をなくしました。役に立ちますか?

古い請求書やメールボックスで探すべき名前、つまりホスティング会社、DNSプロバイダー、メールサービスがわかります。どれにも、登録されているメールアドレスから始めるアカウント復旧の手続きがあります。