Internet

カリフォルニア大学アーバイン校と清華大学の研究者チームは、条件付き DNS (CDNS) リゾルバーをターゲットにし、TLD のトップレベル ドメイン全体を侵害する可能性がある、「MaginotDNS」という名前の新しい強力なキャッシュ ポイズニング攻撃を開発しました。

この攻撃は、さまざまな DNS ソフトウェアおよびサーバー モード (再帰リゾルバーとフォワーダー) でのセキュリティ チェックの実装に一貫性がないために可能となり、すべての CDNS サーバーの約 3 分の 1 が脆弱なままになっています。

研究者らは今週初めにBlack Hat 2023でこの攻撃と論文を発表し、特定された問題がソフトウェア レベルで修正されたと報告しました。

DNSキャッシュポイズニングの背景

DNS (ドメイン ネーム システム) は、インターネット リソースとネットワークの階層的分散命名システムであり、人間が判読できるドメイン名を数値の IP アドレスに解決してネットワーク接続を確立できるようにします。

DNS 解決プロセスでは、UDP、TCP、および DNSSEC を使用してクエリを実行し、応答を受信します。これは反復的かつ再帰的であり、ルート サーバー、TLD サーバー、権限のあるサーバーとの複数の手順や交換、途中でのレコードのキャッシュなどを伴います。

DNS キャッシュ ポイズニングの概念は、偽造された回答を DNS リゾルバー キャッシュに挿入し、サーバーがドメインに入ったユーザーを誤った IP アドレスに誘導し、ユーザーが知らないうちに悪意のある Web サイトに誘導される可能性があります。

このタイプの攻撃は過去に数多く実証されており、たとえば、データ検証の欠如 (バイリウィック ルール) を利用した 1997 年のカシュプレフ攻撃や、情報源の不在を利用した 2008 年のカミンスキー攻撃などがあります。ポートランダム化システム。

ベイルウィックチェック
ベイルウィック チェック(BlackHat)

これらの攻撃は、リゾルバーの実装に防御機能を追加することで軽減され、オフパス攻撃を困難にしています。

ただし、「MaginotDNS」攻撃は、パス上またはパス外から CDNS の転送モードを攻撃することで、これらの防御を突破できます。

DNS ポイズニング攻撃のタイムライン
DNS ポイズニング攻撃のタイムライン(BlackHat)

マジノDNS攻撃

CDNS リゾルバーは、再帰クエリ モードと転送クエリ モードの両方をサポートしており、ISP や企業がコストを削減し、アクセス制御を向上させるために使用されます。

CDNSリゾルバーの機能
CDNSリゾルバーの機能(BlackHat)

研究者らは、ベイリウィック チェックが再帰モードで適切に実施されていることを発見しました。ただし、フォワーダーは脆弱です。

この 2 つは同じグローバル DNS キャッシュを共有しているため、フォワーダー モードに対する攻撃は再帰モードを突破する道を開き、本質的に DNS キャッシュ保護境界を突破する可能性があります。

研究者らは、BIND9 ( CVE-2021-25220 )、Knot Resolver ( CVE-2022-32983 )、Microsoft DNS、Technitium ( CVE-2021-43105 ) などの著名な DNS ソフトウェアのベイリウィック チェックでの不一致を特定しました。

特定のケースでは、すべてのレコードがルート ドメインの下にあるかのように扱われる構成があり、非常に脆弱な設定であることが指摘されました。

研究者らが BlackHat のプレゼンテーションで紹介した例には、パス上攻撃とパス外攻撃の両方が含まれており、後者はより複雑ですが、脅威アクターにとってはるかに価値があります。

オフパス攻撃の図
オフパス攻撃の図(BlackHat)

これらの攻撃の場合、脅威アクターは、リクエストの生成時にターゲットの再帰 DNS サーバーによって使用されるソース ポートとトランザクション ID を予測し、悪意のある DNS サーバーを使用して正しいパラメータを含む偽のレスポンスを送信する必要があります。

送信元ポートの推論とトランザクション ID の推測は、ブルート フォースまたは SADDNS (サイドチャネル攻撃された DNS) を使用して行うことができます。

SADDNS を介したポートの推論
SADDNS (BlackHat)を介したポートの推論

BIND9 の場合、両方のパラメーターは 3,600 クエリ ラウンド後に正常に取得できますが、Microsoft DNS の場合、これは 720 ラウンドに低下します。

成功の可能性を高めるために、攻撃者は悪意のある DNS 応答の応答時間を制御して、偽装された応答が正規の応答よりも先に被害者のサーバーに到達するようにする必要があります。

研究者らは、Microsoft DNS に対する MaginotDNS 攻撃を実証する次のビデオを共有しました。

脆弱な CDNS のスキャン

研究者らがインターネットをスキャンしたところ、1,200,000 個の DNS リゾルバーが見つかり、そのうち 154,955 個が CDNS サーバーでした。

次に、ソフトウェア フィンガープリントを使用して脆弱なバージョンを特定したところ、54,949 台の脆弱な CDNS サーバーが見つかりました。そのすべてがオンパス攻撃の影響を受けやすく、88.3% がオフパス攻撃の影響を受けています。

上記の影響を受けるすべてのソフトウェア ベンダーは欠陥を確認して修正しており、マイクロソフトはその報告に対して研究者に報奨金を授与しました。

ただし、問題を完全に軽減するには、CDNS 管理者がパッチを適用し、ベンダーが提供する正しい構成ガイドラインに従う必要があります。