マネージドサービス時代のDNSの運用管理について考える～ DNSテイクオーバーを題材に ～ランチのおともにDNS

2020年11月26日
Internet Week 2020 ランチタイムウェビナー
株式会社日本レジストリサービス（JPRS）
森下 泰宏・小障子 尚太朗
Copyright © 2020 株式会社日本レジストリサービス

1オンラインでも「ランチのおともにDNS！」• 今年のInternet Weekはオンライン開催となり、このセミナーの名前も「ランチセミナー」から「ランチタイムウェビナー」に変わりました• 今年は残念ながらランチをご提供できませんが、DNSのお話に耳を傾けつつ、それぞれのランチタイムをお楽しみいただければ幸いです！

Copyright © 2020 株式会社日本レジストリサービス

2講師自己紹介• 森下 泰宏（もりした やすひろ）– 所属：JPRS 技術広報担当– 主な業務内容：ドメイン名・DNSに関する技術広報活動全般– 一言：2年振りに、ランチタイムに帰って来ました！

• 小障子 尚太朗（こしょうじ しょうたろう）– 所属：JPRS システム部– 主な業務内容：JP DNSサーバー・JPRSネットワークの運用– 一言：1年振りに、ランチタイムに帰って来ました！
Copyright © 2020 株式会社日本レジストリサービス

3本日の内容1. DNSテイクオーバーの概要と類似する攻撃手法との違い（話者：小障子）
2. 最近のインシデント事例と防止策（話者：森下）3. マネージドDNS時代のDNSの運用管理のあり方（話者：森下・小障子）

Copyright © 2020 株式会社日本レジストリサービス

4

1. DNSテイクオーバーの概要と類似する攻撃手法との違い

Copyright © 2020 株式会社日本レジストリサービス

5

DNSテイクオーバーとは?
• テイクオーバー（takeover）= 引き継ぐ• DNSの仕組みを利用して、登録者が意図しない形でドメイン名の利用を引き継ぐ行為• IETFで標準化された用語ではない

Copyright © 2020 株式会社日本レジストリサービス

6

DNSテイクオーバーの分類• 攻撃方法による分類

ドメイン名の状態

1. ドメイン名の登録情報を書き換える
2. DNSの設定ミスに付け込む
3. ドメイン名の更新ミスに付け込む• ドメイン名の状態による分類
a. 使用中のドメイン名

a. 使用中のドメイン名

b. 使用を終了した
ドメイン名

1. ドメイン名の登録情報を書き換える

1-a1-b

2. DNSの設定ミスに付け込む

2-a2-b

3. ドメイン名の更新ミスに付け込む

3-a3-b

攻撃方法

b. 使用を終了したドメイン名

DNSテイクオーバーの分類• 以降では、 DNSの設定ミスに付け込み、使用を終了したドメイン名の利用を引き継ぐ、サブドメインテイクオーバーとNSテイクオーバーに注目（分類表の2-b）
Copyright © 2020 株式会社日本レジストリサービス

7サブドメインテイクオーバーとは?
• 外部サービスの利用開始時に設定したサブドメインの設定が利用終了後も残ったままになっていることを利用し、そのサブドメインの引き継ぎ（テイクオーバー）を図る攻撃手法• 自ゾーンに残ったままになっている、CNAMEレコードやA/AAAAレコードが狙われる– 以下は、example.jpゾーンに設定されるCNAMEレコードの例
campaign.example.jp. IN CNAME cdn.example.net.
Copyright © 2020 株式会社日本レジストリサービス

8

NSテイクオーバーとは?
• 外部サービスの利用開始時に設定したネームサーバー設定が利用終了後も残ったままになっていることを利用し、そのドメイン名の引き継ぎ（テイクオーバー）を図る攻撃手法• 親ゾーンに残っているNSレコードが狙われる– 以下は、jpゾーンに設定されるNSレコードの例
example.jp. IN NS ns-99.example.net.
IN NS ns-999.example.org.
Copyright © 2020 株式会社日本レジストリサービス

9サブドメインテイクオーバーとNSテイクオーバーの共通点・相違点• 共通点：残ったままになっているDNS設定を利用し、使用を終了したドメイン名を使われる• 相違点：狙われるリソースレコードが異なる– サブドメインテイクオーバー：自ゾーンのCNAMEやA/AAAA– NSテイクオーバー：親ゾーンのNS
campaign.example.jp. IN CNAME cdn.example.net.
example.jp. IN NS ns-99.example.net.
IN NS ns-999.example.org.
Copyright © 2020 株式会社日本レジストリサービス

10Dangling records• こうした、利用終了後も残ったままになっている
リソースレコードは「dangling records」と呼ばれる– dangling = 宙ぶらりんの• DNS運用における脅威（threat）となる

CNAMEの参照先にcampaign.example.jpの実体が存在しない

campaign.example.jp. IN CNAME cdn.example.net.
example.jp. IN NS ns-99.example.net.
IN NS ns-999.example.org.
Copyright © 2020 株式会社日本レジストリサービス

NSの参照先にexample.jpゾーンが存在しない
11

DNSテイクオーバーと類似する攻撃手法との違い• ここでは、DNSテイクオーバーと以下の二つの攻撃手法との違いについて説明• ドロップキャッチ– 廃止したドメイン名が一時凍結期間を経て、誰でも登録できる状態になる瞬間を狙って再登録を図る行為• ドメイン名ハイジャック– ドメイン名の管理権限を持たない第三者が、ドメイン名を自身の支配下に置く行為
Copyright © 2020 株式会社日本レジストリサービス

12

DNSテイクオーバーとドロップキャッチの共通点・相違点• 共通点：いずれも、使用を終了したドメイン名が標的になる• 相違点：ドロップキャッチでは、ドメイン名の更新ミスに付け込む

ドメイン名の状態

a. 使用中のドメイン名

b. 使用を終了した
ドメイン名

1. ドメイン名の登録情報を書き換える

1-a

1-b

2. DNSの設定ミスに付け込む

2-a

2-b

3. ドメイン名の更新ミスに付け込む

3-a3-b

攻撃方法

DNSテイクオーバーの分類

DNSテイクオーバーは2-b
ドロップキャッチは3-bCopyright © 2020 株式会社日本レジストリサービス

13

DNSテイクオーバーとドメイン名ハイジャックの共通点・相違点• 共通点：いずれも、第三者にドメイン名を使われることを示す用語として使われている• 相違点：ドメイン名ハイジャッ
クは、使用中のドメイン名の管理権限を奪うというニュアンスで使われる場合が多いドメイン名の状態

a. 使用中のドメイン名b. 使用を終了した
ドメイン名

1. ドメイン名の登録情報を書き換える

1-a

1-b

2. DNSの設定ミスに付け込む

2-a

2-b

3. ドメイン名の更新ミスに付け込む

3-a

3-b

攻撃方法

DNSテイクオーバーの分類

DNSテイクオーバーは2-bドメイン名ハイジャックは1-a～3-a
Copyright © 2020 株式会社日本レジストリサービス

14

2. 最近のインシデント事例と防止策

Copyright © 2020 株式会社日本レジストリサービス

15インシデント事例①：iPhone当選詐欺• 画面に突然「iPhoneが当選した」旨の画面が表示• アンケートと共に、アカウント情報・クレジットカード情報などの入力を促し、情報を窃取• 検索で表示されたWebサイト（おとりサイト）から、複数回のリダイレクトを経由して、詐欺サイトに誘導
Copyright © 2020 株式会社日本レジストリサービス

16

おとりサイトの作成にサブドメインテイクオーバーを利用• 著名企業・自治体などのサブドメインをテイクオーバーし、検索結果に表示されるおとりサイトを作成– 作成には、サブドメインテイクオーバー以外も使われた模様• 著名なドメイン名や政府関係のドメイン名を使うことで、検索で上位に表示されることを期待していたと考えられる• 国内外の複数のドメイン名が被害に– 2020年7月までに、100件以上の被害事例を確認– 日本の上場企業のドメイン名も含まれている
Copyright © 2020 株式会社日本レジストリサービス

17インシデント事例②：偽サイトの作成• サブドメインテイクオーバーされたドメイン名：
demo.pref.███.lg.jp（ある県のLG.JPドメイン名のサブドメイン）• 被害に遭ったサイト：███.com（著名なゲームの攻略サイト）• 放置されたCNAMEレコードの参照先に、同じ名前でサイトを作られた
demo.pref.███████.lg.jp. IN CNAME ep-███████-local.azureedge.net.
• 攻撃者がMicrosoft Azure上に、同じ名前でサイトを作成

アフィリエイト情報付き• 攻撃者が本物のコンテンツをコピーして偽情報を混ぜ、偽サイトを作成– ゲームに登場するキャラクターの名前で検索した際に、偽サイトを本物より上に表示させることに成功
一時的に、 demo.pref.███.lg.jpが███████.comよりも上に表示される状態だった
Copyright © 2020 株式会社日本レジストリサービス

18

サブドメインテイクオーバーが発生する流れ（1/3）① キャンペーンなどで、期間限定のサイトを公開– 外部のCDN（Content Delivery Network）サービスを利用• cdn.example.netで運営されるCDNサービス上にサイトを構築、CNAMEレコードを設定– campaign.example.jpというドメイン名で、Webサイトを公開
CDN事業者のサーバー（cdn.example.net）

example.jp
権威DNSサーバー
campaign.example.jp. IN CNAME cdn.example.net.

CDNサービスを契約・設定
Copyright © 2020 株式会社日本レジストリサービス

campaign.example.jp
Webサーバー19

サブドメインテイクオーバーが発生する流れ（2/3）② キャンペーンが終了、CDNサービスを解約– 事業者側の設定を削除、Webサイトにアクセスできない状態に– 設定したCNAMEレコードは残ったまま• 削除の必要があることを認識していない or 削除を忘れている
CDN事業者のサーバー（cdn.example.net）

example.jp
権威DNSサーバー
campaign.example.jp. IN CNAME cdn.example.net.

CDNサービスを解約
Copyright © 2020 株式会社日本レジストリサービス

エラー
campaign.example.jp
Webサーバー20

サブドメインテイクオーバーが発生する流れ（3/3）③ 攻撃者が攻撃可能なサブドメインを発見、サブドメインテイクオーバーを実行– CDNサービス上に、同じドメイン名のサーバーを再設定– 設定したWebサーバー上で、コンテンツを公開
example.jp
権威DNSサーバー

CDN事業者のサーバー（cdn.example.net）

campaign.example.jp. IN CNAME cdn.example.net.

☠

!!
攻撃者が同じサーバーを再設定
Copyright © 2020 株式会社日本レジストリサービス

campaign.example.jp
Webサーバー21

サブドメインテイクオーバーのリスク• 使用していないサブドメインであっても、テイクオーバーされた場合のリスクは高い• 考えうるリスクの例– フィッシングサイトの作成– クッキーの改変– 成り済ましメールの発信– サーバー証明書の不正取得、など• 親ドメインのテイクダウンを狙った、Abuse行為もありうる– 親ドメインに対するDoS攻撃が可能になる
Copyright © 2020 株式会社日本レジストリサービス

22

NSテイクオーバーにも注意が必要• 使用休止中のドメイン名のネームサーバー設定を悪用– サブドメインテイクオーバーと同様の仕組みで、ドメイン名をテイクオーバー可能
jpゾーン
権威DNSサーバー

example.jpゾーン
権威DNSサーバー

example.jp. IN NS ns-99.example.net.
ネームサーバー設定が消されずに残っており、委任先としてDNS事業者の権威DNSサーバーが指定されたままになっていると、NSテイクオーバーされるリスクが生じる
攻撃者が同じゾーンを再設定

ns-99.example.net
Copyright © 2020 株式会社日本レジストリサービス

23

攻撃者は攻撃対象をどのように発見するのか?
• サブドメインテイクオーバー・NSテイクオーバーが可能な
状態は、外部からのDNS検索で発見可能• 攻撃対象を発見するためのツールがインターネット上で公開– 総当たり検索（enumeration）を高速に実行し、dangling recordsを発見する
ポイント：攻撃と同じ方法で、防御も可能になる
Copyright © 2020 株式会社日本レジストリサービス

24サブドメインテイクオーバー・
NSテイクオーバーの防止策（1/2）• 外部サービスの利用終了時に、利用開始時に設定したDNS設定も削除する– 自ゾーンのCNAMEレコード・A/AAAAレコードの削除– 親ゾーンのNSレコードの削除
CDN事業者のサーバー（cdn.example.net）

example.jp
権威DNSサーバー
campaign.example.jp. IN CNAME cdn.example.net.

解約時に不要なCNAMEも削除
Copyright © 2020 株式会社日本レジストリサービス

campaign.example.jp
Webサーバー25

サブドメインテイクオーバー・
NSテイクオーバーの防止策（2/2）• Dangling recordsがないかチェックする– 事業者が技術文書やチェックツールを公開している場合もある• 例：Microsoft Azureのサブドメインテイクオーバーに関する技術文書と、使用中のサービスにdangling recordsがないか確認するチェックツール
未解決の DNS エントリを防ぎ、サブドメインの乗っ取りを回避する<https://docs.microsoft.com/ja-jp/azure/security/fundamentals/subdomain-takeover>Find Dangling DNS Records<https://github.com/Azure/Azure-NetworkSecurity/tree/master/Cross%20Product/Find%20Dangling%20DNS%20Records>
Copyright © 2020 株式会社日本レジストリサービス

26

3. マネージドDNS時代のDNSの運用管理のあり方

Copyright © 2020 株式会社日本レジストリサービス

27

DNSサービスの変化• DNSサービスの提供・利用の形態は、インターネットそのものや、それを取り巻く状況の変化に対応する形で多様化・高機能化してきた• 権威DNSサーバーのサービスに注目し、これまでの状況を振り返る

Copyright © 2020 株式会社日本レジストリサービス

28

①セカンダリサーバーの外部委託• 商用サービス以前：セカンダリサーバーの持ち合い– いわゆる「お友達プロトコル」や、関係が深い組織同士の協力• JUNET時代の上流・下流サイトや、関連会社など• 商用サービスの時代を迎え、セカンダリサーバーを請け負うサービスが出現
DNSサービスの始まり
Copyright © 2020 株式会社日本レジストリサービス

29

②DNSインフラの外部委託• DNSのインフラと、そのオペレーションを外部に委託• サービスの例– より高い処理能力・大きなネットワーク帯域の提供・利用– IP Anycastを用いた広域分散
DNSの「器」を外部委託

Copyright © 2020 株式会社日本レジストリサービス

30

③DNSデータの外部委託• DNSデータの管理を外部に委託• サービスの例– コントロールパネルによるゾーンデータの管理– 複数のDNSサービスへのデータのデプロイ– ゾーンデータのDNSSEC署名– DNSSEC鍵の管理、など
DNSの「中身」を外部委託
Copyright © 2020 株式会社日本レジストリサービス31

④付加サービスの提供・利用• 事業者が提供する他のサービスとの連携・一体化• サービスの例– DNSを利用した広域ロードバランシング– CDNサービス・クラウドサービスとの連携、など
より高機能な「サービス」を提供・利用

Copyright © 2020 株式会社日本レジストリサービス

32

まとめ：DNSサービスの変化• 状況の変化に対応し、提供・利用されるDNSサービスの多様化・高機能化が進んだ① セカンダリサーバーの外部委託② DNSインフラの外部委託③ DNSデータの外部委託④ 付加サービスの提供・利用
多様かつ高機能なサービスを利用可能な、マネージドサービスの時代に
Copyright © 2020 株式会社日本レジストリサービス

33

DNSサービスの変化とサービス事業者と運用者の関わり• 提供・利用されるサービスの多様化・高機能化に伴い、各組織の運用者のサービスへの関わりも変化している• 運用管理における、権限と責任が分化– 運用管理の権限：外部に委託する– 運用管理の責任：各組織の運用者が持つ

Copyright © 2020 株式会社日本レジストリサービス

34

関わりの変化に起因する新たなトラブル・インシデント• 関わりの変化に伴い、サービス利用時・解約時の運用ミスや設定不備などに起因する、新たなトラブル・インシデントの発生が報告されるようになった• 本ウェビナーで紹介したサブドメインテイクオーバーやNSテイクオーバーは、その典型例

Copyright © 2020 株式会社日本レジストリサービス

35

トラブル・インシデントの発生要因• マネージドサービス時代を迎え、多様かつ高機能なサービスを、より手軽に利用できるようになった• しかし、運用管理の権限と責任が分化することで、運用者が自身の責任を果たせない状況が見られるようになった
運用者が責任を果たせるようにするためにはどうすればよいか？

Copyright © 2020 株式会社日本レジストリサービス

36

マネージドサービス時代のDNSの運用管理のあり方• 2018年のランチセミナーで提案– 運用体制を構築・強化する• DNS単体ではなく、組織全体のリスクマネージメントの一環として考える• それぞれの関係者・立場で、地道で継続的な活動を進める• 本ウェビナーで提案– 運用者が責任を果たせるマネージドサービスを提供・利用する– その実現のため、サービス事業者と運用者がそれぞれの立場で活動・協調する
Copyright © 2020 株式会社日本レジストリサービス

37

サービス事業者がすべきこと（1/2）• サービスモデルにおける、トラブル・インシデントのポイント：仕組みで防ぐリスク低減• DNSテイクオーバーにおける具体例– 例1：生成されるドメイン名（CNAME参照先）のランダム化• 同じドメイン名でサーバーを再設定しにくくなり、dangling recordsが存在しても、サブドメインテイクオーバーしにくくなる– 例2：利用者が設定するドメイン名の管理権限の確認• 例：Webサーバーの設定における、サーバー証明書の提出の必須化
Copyright © 2020 株式会社日本レジストリサービス

38

サービス事業者がすべきこと（2/2）• 運用者にとってわかりやすく、活用しやすい情報の発信や、ポイント：運用者の成長を促す支援ツールの提供• DNSテイクオーバーにおける具体例– テイクオーバーされた際のリスクの説明– テイクオーバーを回避するための設定例・運用手法の紹介– Dangling recordsをチェック・発見可能なツールの提供、など

Copyright © 2020 株式会社日本レジストリサービス

39

運用者がすべきこと• より安全な、トラブル・インシデントのリスクが低くなるサービスを、サービス事業者に提供させるための活動• 言い換えると・・・

ポイント：サービス事業者の成長を促す– サービス事業者が、安全なサービスを提供したくなる活動• 具体例– 例1：サービス事業者への積極的なリクエスト・フィードバック– 例2：より安全なサービス事業者の選択（そのためのスキルの取得）「物を言う利用者」になる
Copyright © 2020 株式会社日本レジストリサービス

40

サービス事業者と運用者のより緊密な連携・協調• サービス事業者と運用者における、より緊密な連携・協調• 具体例– 利用者コミュニティの設立・活動• サービス事業者によるもの• 運用者による自主的なもの

双方向性を持つ活動が望ましい

Copyright © 2020 株式会社日本レジストリサービス41

おわりに： マネージドDNS時代のDNSの運用管理のあり方• 本ウェビナーをご視聴いただいている、心あるDNS運用者の方々には「物を言う利用者」であってほしい• そして、サービス事業者の方々は一般の利用者に加え、そうしたDNS運用者にとっても安心して使え、共に高め合っていける、優れたマネージドサービスを提供してほしい
それが、DNSと30年関わってきた私の願いです
Copyright © 2020 株式会社日本レジストリサービス

42

最後までご視聴いただきありがとうございました！

<https://jprs.jp/tech/>@JPRS_official

JPRSofficial

Copyright © 2020 株式会社日本レジストリサービス

43