国のキャッシュレス・消費者還元事業 (2019/11 - 2020/5) で使用されていた cashless.go.jp が lame delegation 状態で放置されており、そのうち乗っ取られるかもしれません。
In addition, if you delete a hosted zone, someone could hijack the domain and route traffic to their own resources using your domain name.cashless.go.jp は以下のように jp からの委任が AWS の Route 53 に向いていますが、Route 53 に該当のゾーンは存在していません。(ある記録によれば 2021/11/10 以降消滅)
% dig ns cashless.go.jp @a.dns.jp +norec +noall +auth cashless.go.jp. 86400 IN NS ns-1470.awsdns-55.org. cashless.go.jp. 86400 IN NS ns-563.awsdns-06.net. cashless.go.jp. 86400 IN NS ns-319.awsdns-39.com. cashless.go.jp. 86400 IN NS ns-1799.awsdns-32.co.uk.
このため 2/28 に JPRS へ通報したところレジストラに伝えるという返事があり対応を待っていました。しかし動きが見えなかったため 3/8 に whois の登録担当者 (経産省) に直接メールをお送りしましたが今日に至るまでお返事がなくネームサーバの設定もそのままです。
ここに至ってはいつ乗っ取りが行われてフィッシングなどに使用されるかもしれないので、注意喚起としてここに公表することにしました。
なお、AWS が昨年の 5 月から削除されたゾーンと同じドメインには再度同じサーバは割り当てないという対策をしたという以下の情報があり、私もそうした制約の存在を実験で確認しています。
In May 2021, however, Amazon released the fix for this behavior by simply not assigning the same nameservers twice to the same DNS zone. This means that DNS takeover is mitigated on Route53.
しかしこれは緩和策であり根本対策ではありません。Route 53 のネームサーバは 4096 (1024組) ありますが、場合により再利用に支障がでる可能性はありますし、登録妨害の攻撃も考えられますから制約には期限があるのではないでしょうか。したがって引き続き lame delegation は危険と考えておいたほうがよいでしょう。もちろん初利用のドメインではゾーン作成前に委任を向けたら速攻で乗っ取り可能な状態になりますからくれぐれもドメインの運用開始時にはご注意ください。 (一般論からの思い違いをしていました。他のサービスとは違い Route 53 ではこれはなさそうです。ゾーンを作成しないと NS が決定しませんから。それでも間違った NS への委任は見られるので注意は必要です。)
なお、公表にあたり少しでも安全を期すために乗っ取り可能となり次第 protect.cashless.go.jp ゾーンを cashless.go.jp が委任されている 4 つのサーバに自動作成するスクリプトを稼働させました。これは乗っ取りではなく VISA 事件の際と同様の保護 (緊急避難) です。Route 53 では親子同居ができない制約があるのでこれで親ゾーンの乗っ取りが防げます。(保護は完全ではありませんがその説明は危ないので控えます)
参考: 共用 DNS 権威サーバの脆弱性 / 黒塗りの DNS -論文編-
p.s.
Route 53 以外にも危険なサービスやドメインは多く存在しています。lame delegation 乗っ取り一般に関しては、明日にでももう少し詳しい解説を書きたいと思います。
追記: 第一弾の解説書きました。
ドメインの乗っ取りを避けるために ■ lame delegation の危険性を知りましょう
やればできるじゃないですか。経産省へ手を回してくださった日本ハッカー協会の杉浦さんありがとうございました。
必要ないのに委任が消えず変更されていますが、お名前.com (GMO) では委任を消すことができないとのこと (本当?)。GMO とは手を切ったほうが良いと思いますけどね。GO.JP ゾーンを起こしてレジストリもレジストラもデジタル庁がやればよいのに。
追記: dnsv.jp も lame delegation です。現在のお名前.com の仕様では偽ゾーンの作成はできないようですが、本物の権威サーバが応答しない状況はキャッシュポイズニングのよいカモです。
~% dig ns cashless.go.jp @a.dns.jp +norec +noall +auth cashless.go.jp. 86400 IN NS 02.dnsv.jp. cashless.go.jp. 86400 IN NS 04.dnsv.jp. cashless.go.jp. 86400 IN NS 01.dnsv.jp. cashless.go.jp. 86400 IN NS 03.dnsv.jp. ~% ~% whois -h whois.jp cashless.go.jp [ JPRS database provides information on network administration. Its use is ] [ restricted to network administration purposes. For further information, ] [ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e' ] [ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'. ] Domain Information: [ドメイン情報] a. [ドメイン名] CASHLESS.GO.JP e. [そしきめい] けいざいさんぎょうしょう f. [組織名] 経済産業省 g. [Organization] Ministry of Economy, Trade and Industry k. [組織種別] 政府機関 l. [Organization Type] government agency m. [登録担当者] HS50003JP n. [技術連絡担当者] HS49860JP p. [ネームサーバ] 01.dnsv.jp p. [ネームサーバ] 02.dnsv.jp p. [ネームサーバ] 03.dnsv.jp p. [ネームサーバ] 04.dnsv.jp s. [署名鍵] [状態] Connected (2023/02/28) [登録年月日] 2019/02/14 [接続年月日] 2019/02/15 [最終更新] 2022/03/14 17:42:35 (JST)
ドメイン運用の危険性を知るにはまず DNS の仕組み、特に委任(委譲)について理解する必要があります。
特に重要なのは「DNS の設定」とか「ネームサーバの設定」とか呼ばれているものが二種類あることの理解です。これが意外と区別されておらずトラブルの元になっているように見えます。用語が統一されていないことも混乱の元なので利用するサービスにおける用語の区別を知る必要があります。(さらにパソコンにも別の意味の「ネームサーバの設定」なるものがありますがそれは置いておきます)
ドメインの運用開始に必要な「DNS の設定」の一つは DNS 権威サーバ (ネームサーバとも呼ばれる) でゾーンを稼働させることです。このゾーンがドメイン名と結びついた情報を応答してくれることになります。多くのレジストラは無料でそのためのサーバ/サービスを提供していますが、それらが危険な運用を生み出す元となっています。
DNS 権威サーバを設定したら世界からの問い合わせをそこへ誘導する必要があります。それに必要なのが「委任(委譲)」なのですがこれも「ネームサーバの設定」と呼ばれており混乱しないようにする必要があります。ルートサーバが jp ゾーンを運用するサーバ (以降 jp サーバ) へ委任を行い、jp サーバから example.jp ゾーンを運用するサーバ (例えば ns1.example.jp) へ委任が行われます。ドメイン名を検索するフルサービスリゾルバ (DNS キャッシュサーバ) はこの委任情報を頼りにあなたの設定したゾーンへたどりつくわけです(私のスライドを参照)。jp ゾーンを運用するのもネームサーバ、example.jp ゾーンを運用するのもネームサーバなのが紛らわしいので注意してください。
さて問題なのはこの二種類のネームサーバの設定順序です。ゾーンが稼働していないネームサーバが他人と共用のサーバだった場合、そこへ委任を向けてしまうと非常に危険な状況が発生します。ドメイン名に権利のない他人が勝手にその名前のゾーンを作れてしまうサービスが多く存在するからです。ところがサービスのメニューの上で「DNS の設定」「ネームサーバの設定」が何を指しているのかわかりづらく、あるいは適切に区別されておらず、知らず知らずのうちに危ない設定をしてしまっているケースが後をたちません。
基本としてゾーンが稼働していないネームサーバに委任を向けてはいけません! あるいは委任が向いているネームサーバからゾーンを消してはいけません! 悪意ある第三者にドメインが乗っ取られる可能性があります!
委任のことを英語で delegation、委任先が機能していない状態を lame delegation と呼びます。lame は任期切れ直前の役に立たない大統領を指す言葉レイムダック (lame duck) の lame ですね。lame delegation は乗っ取りの危険性があると覚えておいてください。
もっと詳しく書こうと思っていましたが長いと読まれないのでまずはこれくらいにして、ケーススタディなど後日また続きを書きたいと思います。
参考:
■ tm [JPRS化しないように、早めに続きをお願いします。]
GO.JP に存在する隠れオープンリゾルバを調査し、9/19 (ドメイン内部), 12/3 (追加), 12/22 (外部サーバ) 12/28 (日本学士院)と発見したものから随時 JPCERT/CC へ通報しました。しかしなかなか対策が進まないため注意喚起として「隠れオープンリゾルバを放置している日本のドメイン」 に GO.JP の調査結果を追加し公開しました。リストは毎朝自動更新しています。
対策は普通の組織ならルータかファイアウォールに数行のフィルタを書くだけなのですけどねぇ、、、
以下に本日時点の脆弱なドメインのリストを記載しておきます。
問題が内部にあると考えられるドメイン
(ネットワークが送信元詐称攻撃全般に脆弱である可能性があります)
脆弱な外部ネットワークのサーバを利用しているドメイン
(DDoS やキャッシュポイズニングなどの巻き添えを食う可能性があります)
参考
Copyright by T.Suzuki
Before...
■ itinoe [今のデジタル庁でやって大丈夫なのだろうか・・・]
■ tss [a. [ドメイン名] CASHLESS.GO.JP f. [組織名] ..]
■ tss [私の実験によればどうやら制約があるのは 3 ヶ月程度のようです。]