← 記事一覧

セキュリティ

3 つの国別レジストリが乗っ取られ、正規の Google 証明書が発行された。連鎖のどこにも故障はなかった

攻撃者は .gh、.sl、.as を運用する第三者事業者を侵害し、権威 DNS レコードを書き換え、その支配を使って Google と YouTube のドメイン向けに公的に信頼される HTTPS 証明書を取得した。Google は自社システムも発行元の認証局も誤りを犯していないとしている。問題はまさにそこにある。

MAI
Chrome のホームページ(google.com)に掲載されている Google Chrome の公式プロモーション画像。

Google の Chrome Secure Web and Networking チームは 10 月 6 日、攻撃者が 3 つの国別コードトップレベルドメイン — .gh(ガーナ)、.sl(シエラレオネ)、.as(米領サモア)— を、それぞれを運用する第三者事業者を侵害することで乗っ取ったと公表した。これらのゾーンの権威 DNS レコードを掌握した攻撃者は、自分が所有していないドメイン向けに、公的に信頼される有効な HTTPS 証明書を取得した。そのうち複数は Google のドメインだった。

注目すべきなのは証明書が誤発行されたこと自体ではない。判明している事実の範囲では、連鎖のどの部分も故障していなかったという点である。

今回の事案に Google のシステムの侵害は含まれていない。[...] 攻撃の性質上、該当する証明書を発行した認証局(CA)に不適切な行為があったと考える理由はない。

Google のシステムは手つかずだった。認証局は求められている検証を実施し、その検証は通った。攻撃者は、その検証が参照する位置を占めただけだ。

何が発行されたのか

Google は証明書を一件も特定していない。The Hacker News は 10 月 7 日に Certificate Transparency ログを調べ、9 月下旬の 6 日間に発行された、7 つのドメインを対象とする少なくとも 12 件を見つけた。

ccTLD証明書数発行日
.gh(ガーナ)29 月 22 日
.sl(シエラレオネ)69 月 25 日
.as(米領サモア)49 月 27 日

11 件は Let's Encrypt、1 件は ZeroSSL の発行だった。.gh の 2 件と ZeroSSL の 1 件は 9 月 26 日に、残る 9 件は 10 月 1 日に失効処理された。対象の名前には google.com.gh、google.sl、google.as のほか、YouTube のプロパティが含まれる。検索された名前が限られていたため、実際の総数はこれより多い可能性が高い。Let's Encrypt は自身のコミュニティフォーラムで発行を認め、スタッフエンジニアの Matthew McPherrin はこう書いている。

はい、Google と YouTube 向けの証明書は発行され、すでに失効させてあります。

ドメイン検証は、DNS への問いかけにすぎない

公開ウェブ上のほぼすべての証明書は、ただ一点を問うドメイン制御検証を経て発行される。申請者がその名前を制御していることを示せるか — 通常は CA が指定した値を DNS に公開することで示せるか — という問いだ。この検証は意図的に安価で、完全に自動化されている。HTTPS が 10 年でごく一部のトラフィックからほぼ全体へ広がった理由であり、設計上の欠陥ではない。

しかしそれは、名前に対する権限が DNS に対する権限のある場所にそのまま置かれることを意味する。単一のドメインではなくレジストリを侵害すれば、検証の観点では、その配下にあるすべての所有者になる。国単位の名前空間がまるごと、所有者が何年もログインしていない防御的登録まで含めて手に入る。影響範囲が Google をはるかに超えて広がるのはそのためだ。Google は CT データを精査した結果、「よく知られた世界的ブランドや広く使われているオンラインサービス」を含む他の被害組織を見つけ、それらの証明書も Chrome でブロックしたとしている。

Chrome が行ったこと、そして自ら認める限界

Chrome は不正な証明書を緊急ブロックリストである CRLSets に投入し、Chrome 以外のクライアントにも恩恵が及ぶよう発行元 CA と失効処理を進め、さらなる発行がないか CT ログを走査した。Google は、Chrome 利用者が何かをする必要はないと明言している。

二つの穴についても同じくはっきり書いている。「分析によってすべての影響ドメインを特定できたとは保証できない」こと、そして CRLSets が守るのは Chrome だけだということだ。

ブラウザ側の介入を、利用者を守る手段として頼るべきではない

ドメイン所有者が実際にできること

Google の助言は、休眠中の名前や地域別の名前も含めたポートフォリオ全体での CT 監視と、特定の ACME アカウントと検証方式に紐付けた厳格な CAA レコードの公開である。どちらも実施する価値がある。どちらも予防ではない。Google 自身、攻撃者が DNS を掌握している間は CAA が発行を止められないと認めている。その価値は事後に現れる。正当な制御が回復したあとで、キャッシュされた検証の再利用を拒めるという点だ。

そこに居心地の悪い結論がある。レジストリ単位の乗っ取りの最中、ドメイン所有者に予防手段は一切ない。防げるのはレジストリ運用者だけであり、被害を受けたブランドの多くはその事業者のセキュリティ態勢を評価したこともなく、影響を与えることもできない。だからこそ Google がほのめかす構造的な処方 — Chrome Root Program を通じた証明書有効期間の短縮と、キャッシュされたドメイン検証の再利用の削減 — は、乗っ取りそのものへの対策ではない。DNS が戻ったあとも乗っ取りがどれだけ稼ぎ続けるか、その期間への対策である。

まだ分かっていないこと

誰が実行したのか、3 社の事業者がどのように侵害されたのか、レジストリは現在安全なのか。3 者のいずれも声明を出していない。いずれかの証明書が通信の傍受に使われたという証拠も公表されていない。ただし、大半が Google の主要プロパティへリダイレクトするだけの名前の集合では、悪用が観測されていないことの意味は他の場合より小さい。Google は可能な範囲で他の被害組織に連絡したとしているが、名前は一つも挙げていない。

実務的な教訓は狭いが、行動に値する。.gh、.sl、.as の下に名前を保有しているなら — 防御目的で登録して忘れていたものも含めて — 自分の CT ログで 9 月下旬の記録を読むことだ。

Sources: Chrome's Response to Recent ccTLD Registry Hijacks — Google Security Blog · Attackers Hijack .gh, .sl, and .as Registries to Obtain Certificates for Google Domains — The Hacker News · Attackers hijacked top-level domains, minted fake security certs for Google and other orgs — The Register · Hackers hijack Google domains after breaching ccTLD registries — BleepingComputer · Hackers hijack three country-code domain registries — Help Net Security · Chrome's Response to Recent ccTLD Registry Hijacks — Let's Encrypt Community

続けて読む