uClibc の DNS に深刻な脆弱性:IoT/Router デバイスへの影響が懸念される

Unpatched DNS bug affects millions of routers and IoT devices

2022/05/03 BleepingComputer — 広範な IoT 製品に利用される、一般的な  C standard library の DNS コンポーネントに存在する脆弱性により、数百万台のデバイスが DNS ポイズニング攻撃のリスクにさらされる可能性が生じている。この脆弱性の悪用に成功した脅威アクターは、DNS ポイズニングや DNS スプーフィングにより、彼らが管理するサーバー上の IP アドレスでホストされる、悪意の Web サイトへと被害者たちをリダイレクトすることが可能となる。

対象となるライブラリは uClibc であり、OpenWRT チームのフォークである uClibc-ng も同様の問題を持つ。どちらの亜種も、Netgear/Axis/Linksys などの大手ベンダーや、組み込み用途に適した Linux ディストリビューションなどで広く利用されている。Nozomi Networks の研究者によると、現時点において uClibc の開発元からは修正プログラムが提供されていないため、最大で 200社のベンダーの製品が危険にさらされているという。

この脆弱性の詳細は?

uClibc ライブラリは、組み込みシステム用の C standard library であり、対象となるのデバイス上の機能や設定で必要とされる、さまざまなリソースを提供している。そして、このライブラリに含まれる DNS の実装は、ルックアップ/ドメイン名と IP アドレスの変換などの、DNS 関連のリクエストを実行するための仕組みを提供している。

Nozomi Networks によると、uClibc ライブラリを介して接続されたデバイスが実行する、DNS リクエストのトレースを確認したところ、内部ルックアップ関数に起因する、いくつかの特異な現象が発見されたという。さらに調査を進めた結果、DNS ルックアップ・リクエストのトランザクション ID が予測可能であることが発見された。それにより、特定の条件下では DNS ポイズニングが発生する可能性があるとのことだ。

DNS lookup function4s in uClibc
DNS lookup function4s in uClibc (Nozomi)

欠陥の意味

オペレーティング・システムがソース・ポートのランダム化を使用していない場合において、また、それを使用していても 16-Bit のソースポート値を、攻撃者がブルートフォース攻撃できる場合において、uClibc を使用するデバイスに送信される特別に細工された DNS レスポンスにより、DNS ポイズニング攻撃が誘発される可能性がある。

DNS ポイズニングとは、実質的にターゲット・デバイスを騙して、任意に定義したエンドポイントを指し示し、そのエンドポイントとネットワーク通信を行うものである。それにより、対象となるトラフィックを、攻撃者の制御下にあるサーバーへとリルートさせることが可能になる。

Nozomi Networks は、「その結果として、攻撃者は、ユーザーが送信した情報を盗み出し、操作し、それらのデバイスに対して別の攻撃を仕掛け、完全に危険にさらすことが可能となる。ここでの主な問題は、DNS ポイズニング攻撃が、認証されたレスポンスを強制する方法となる」と述べている。

緩和策と修正

Nozomi Networks は、この欠陥を 2021年9月に発見した後に、CISA へと報告している。そして、2021年12月には、CERT Coordination Center に報告し、最終的には 2022年1月に、影響を受ける可能性のある 200社以上のベンダーに脆弱性を開示した。前述のとおり、現時点において、この脆弱性 CVE-2022-05-02 対する修正プログラムは存在しない。

現在、すべての関係者により、実行可能なパッチ開発ための調整を進められており、コミュニティが重要な役割を果たすことが期待されている。このパッチは、ファームウェアのアップデートに、新しいバージョンの uClibc を実装することで適用されるため、エンドユーザーに届くまで時間がかかると予想される。

さらに、エンドユーザーは自信のデバイスに対して、ファームウェア・アップデートを適用する必要があるため、セキュリティ欠陥の修正を遅らせる原因になっている。Nozomi Networks は、「この脆弱性は対しては、現時点でパッチが適用されていないため、コミュニティの安全を考慮し、私たちがテストした特定デバイスを公開することはできない」と述べている。

ただし、「最新バージョンのファームウェアを搭載した、有名な IoT デバイスであり、すべての重要なインフラに導入されている可能性が高い。したがって、IoT デバイスや Router デバイスのユーザーは、ベンダーからリリースされる新しいファームウェアに注目し、最新のアップデートが提供され次第、適用する必要がある」と付け加えている。

組み込みシステム用の C standard library である、uClibc の DNS コンポーネントの脆弱性であり、少なくとも Netgear/Axis/Linksys などの IoT/Router デバイスなどで、使われているような感じです。また、現時点において uClibc の開発元からは修正プログラムが提供されていないため、最大で 200社のベンダーの製品が危険にさらされているとのことです。なお、文中の CVE-2022-05-02 は、ちょっと不思議な表記です。とりあえずの、暫定的な CVE なのでしょうかね?

%d bloggers like this: