インターネットの基盤を揺るがすBIND 9の脆弱性:専門家も驚いた5つの教訓

インターネットの基盤を揺るがすBIND 9の脆弱性:専門家も驚いた5つの教訓

DNS(ドメインネームシステム)は、私たちが日常的に使うインターネットの根幹を支える、重要でありながら見過ごされがちなインフラです。その中でも、DNSソフトウェアとして世界で最も広く利用されているものの一つがBIND 9であり、そのセキュリティはインターネット全体の安定性に直結しています。

しかし、最近明らかになった一連の脆弱性は、この基盤技術が直面しているセキュリティ課題について、いくつかの驚くべき、そして直感に反する事実を浮き彫りにしました。この記事では、これらの発見から得られた最もインパクトのある教訓を、明確で分かりやすいリスト形式で解説します。

目次

驚異的な影響範囲:1つの欠陥で70万台以上のサーバーが危険に

インターネットスキャンを手がけるCensys社の調査によると、CVE-2025-40778として追跡される単一の脆弱性だけで、世界中で706,000を超えるBIND 9インスタンスが危険に晒されていることが判明しました。

この「キャッシュポイズニング」と呼ばれる脆弱性を悪用すると、攻撃者は偽のDNSデータをサーバーに注入し、インターネットトラフィックを悪意のあるサイトへ誘導することが可能になります。

さらに、この数字はファイアウォール内や内部ネットワークに存在するサーバーを含んでいないため、実際の総数はこれを上回る可能性が高いと見られています。この一つのデータポイントが示すのは、抽象的だった脆弱性が、企業、ISP、政府機関にとって具体的かつ広範囲にわたる現実のリスクへと変わったという事実です。

プロトコルのジレンマ:DNSの最大の強みが最大の弱点に

DNSが数十年にわたりスケールアップできた設計思想そのものが、特定の攻撃に対して脆弱であるという逆説。

「KeyTrap」(CVE-2023-50387)やNSEC3関連の問題(CVE-2023-50868)など、近年の多くの脆弱性は、プロトコルにリソース使用量の上限が明示的に定められていない点を悪用するサービス妨害(DoS)攻撃です。

ISC(Internet Systems Consortium)の記事が指摘するように、DNSプロトコルの初期の設計者たちは、意図的にCNAMEチェーンの数やDNSKEYの数などにハードコードされた制限を設けませんでした。これは、インターネットが将来にわたってスケールできるようにするためでした。この柔軟性こそがCDN(コンテンツデリバリーネットワーク)のような技術革新を可能にした一方で、攻撃者がサーバーを騙して「過剰で不必要な作業」を行わせるという、新たな脆弱性のクラスを生み出す原因となったのです。

この問題が数十年前から予見されていたことは、1987年のDNS仕様書の以下の記述からも明らかです。

The recommended priorities for the resolver designer are:

  1. Bound the amount of work (packets sent, parallel processes
    started) so that a request can’t get into an infinite loop or
    start off a chain reaction of requests or queries with other
    implementations EVEN IF SOMEONE HAS INCORRECTLY CONFIGURED
    SOME DATA.

ロジックへの攻撃:コードの破壊ではなく、ルールの悪用

前述した、厳格な制限よりもスケーラビリティを優先するというこの基本的な設計思想こそが、攻撃者がコードそのものではなく、プロトコルのロジックを悪用するための土壌を生み出しています。

多くの深刻なBINDの脆弱性は、従来の「ハッキング」とは異なり、ソフトウェア自身のロジックやルールを巧みに悪用するものです。

CVE-2025-40778はその典型例です。このキャッシュポイズニングの欠陥は、BINDが「要求されていないリソースレコードを過度に寛容に処理する」ために発生します。攻撃者はシステムに侵入するのではなく、本来サーバーが信頼すべきではないデータを送信し、ロジックの欠陥によってそれを受け入れさせているのです。

同様に「KeyTrap」(CVE-2023-50387)も、標準に準拠したDNSSECバリデータが、1つのレコードを検証するために膨大な数の組み合わせを試すよう仕向けられ、自己のリソースを枯渇させてしまうというロジック攻撃です。これらの例は、プロトコル標準への深い理解が攻撃と防御の両方で不可欠となる、より巧妙なセキュリティ脅威の存在を浮き彫りにしています。

最新機能がもたらす新たな脅威:進歩が新たな攻撃対象を生む

DNSに新しいセキュアな機能を追加することが、意図せずして新しいタイプの脆弱性を生み出すことがあります。

DNS-over-HTTPS(DoH)に関連する脆弱性、CVE-2024-12705は、この点を明確に示すケーススタディです。DoHは、DNSクエリを暗号化することでプライバシーとセキュリティを強化するために設計された最新機能です。

しかし、この脆弱性に関する勧告によれば、この新しい実装が悪用され、攻撃者は細工したHTTP/2トラフィックをサーバーに大量に送りつけることでCPUとメモリを圧倒し、正規ユーザーに対するサービス妨害を引き起こすことが可能になりました。この事例は、単に「新たな機能は新たなリスクを生む」という一般的な教訓に留まりません。より深く分析すると、DNSの核となる設計思想との間に生じた「インピーダンス・ミスマッチ」が露呈しています。本来、軽量かつステートレスなトランザクションのために設計されたDNSの上に、ステートフルでリソース集約的なHTTP/2のセッション管理を重ねることで、これまで存在しなかった全く新しいリソース枯渇の攻撃ベクトルが生まれてしまったのです。これは、機能追加のコードだけでなく、プロトコル間の根本的な設計思想の衝突が脆弱性を生むことを示す強力な事例と言えます。

終わりのない競争:単純な欠陥とパッチサイクルの現実

DNSのセキュリティ確保は、基本的な欠陥が繰り返し現れる、終わりなきプロセスです。

CVE-2025-40775は、トランザクション署名(TSIG)フィールドに含まれる単純な無効値が、BINDサーバー全体を「アサーション失敗」でクラッシュさせる脆弱性です。これは「未定義値の不適切な処理」という、いわば初歩的とも言える古典的な脆弱性です。KeyTrapのようなプロトコルの設計思想そのものを突く高度なロジック攻撃と、この単純な無効値の処理漏れを並べてみると、DNSセキュリティの戦いが二つの戦線で同時に繰り広げられていることが分かります。一つはプロトコルの深淵を理解した高度な攻撃者との戦い、もう一つはソフトウェア開発における単純で根強いヒューマンエラーとの戦いです。この事実は、私たちに謙虚なリマインダーを与えてくれます。

ISCが公開している広範な「BIND 9 Software Vulnerability Matrix」の存在自体が、この現実を物語っています。絶えず更新されるこの長いリストは、最近の脆弱性に関するある分析が指摘するように、DNSセキュリティは攻撃者と防御者の間の継続的な「いたちごっこ(cat-and-mouse game)」であり続けることを示しています。

おわりに

DNSのようなインターネットの基盤インフラのセキュリティは、プロトコルが元々持っていた柔軟な設計と、現代のサイバー脅威という厳しい現実との間で、複雑なバランスを取り続ける行為です。今回見てきたように、その課題は技術的なバグ修正だけでなく、プロトコルの思想そのものにも根ざしています。

最後に、読者の皆様に一つの問いを投げかけたいと思います。「インターネットが進化し続ける中で、私たちはその成長を可能にした柔軟性を犠牲にすることなく、どのようにしてその中核により大きな回復力(レジリエンス)を組み込んでいけるのでしょうか?」

参考文献

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次