1.ドメイン/サブドメインの脆弱性

1.ドメイン/サブドメインの脆弱性

調査はsubjack、Amass、dnsreconなどで行える。

1.1. Subdomain Takeover

サブドメイン乗っ取りはサブドメインがDNSに登録されているが、対応するサービスやホスティング先が存在しない場合、攻撃者がそのホスティングを再取得してサブドメインを乗っ取れる脆弱性のこと。

一番多い例だとCNAMEレコードで指定されているドメインを攻撃者が取得することにより、対象組織のサブドメインを攻撃者が乗っ取れる。

例: blog.example.com が CNAMEレコードで GitHub Pages(exampleuser.github.io)に向けられているが、GitHub 上に該当するリポジトリが削除されてる場合に発生する

上記の場合、攻撃者はexampleuserのアカウントを作成することでサブドメインを乗っ取ることができる。

考えられる悪影響は以下の通り。

  • Cookieの窃取
  • CORSのByPass
  • セッションの乗っ取り
  • フィッシングサイトとして悪用

1.2. Dangling DNS / Orphaned DNS

Dangling DNSはDNSで設定されている外部サービスのリソースが削除されているにもかかわらず、DNSレコードが残っている状態を指す。

1.3. DNSの誤設定による脆弱性

1.3.1. ワイルドカードサブドメインの誤設定

*.example.comのようにすべてのサブドメインを受け入れるように設定されているが、適切なフィルタリングや認証が行われていないもの。

考えられる悪影響は以下の通り。

  • 任意のサブドメインでの攻撃(XSS,Cookieスコープの悪用)
  • ホストヘッダインジェクション

1.3.2. CNAMEの設定ミス

CNAMEレコードが存在しているが、リンク先が適切に保守されていないか、第三者のサービスになっている場合に発生。

1.3.3. サブドメインでのオープンリダイレクトの悪用

サブドメイン上の/redirect?url=https://evil.comのようなリダイレクト機能を悪用され、外部のフィッシングサイトに誘導されるもの。

1.3.4. Session/Cookie スコープの誤設定

.example.comに対してCookieを設定すると、a.example.comb.example.comからもそのCookieが読み取れてしまうもの。

サブドメインが攻撃者に乗っ取られているとセッションハイジャックされる可能性がある。

1.3.5. DNSリバインディング攻撃

一見すると正規のドメインに見えるが、内部IP(例: 127.0.0.1, 192.168.x.x)に名前解決されるようにして、内部リソースへアクセスさせる攻撃。

1.3.6. ドメインの失効と再取得

一度使われたカスタムドメイン(例: oldcompany-service.com)が期限切れで失効した場合、第三者が再取得できてしまう。