Windows DNS サーバーに「ワームレベル」の脆弱性が露呈、17 年間存在

Windows DNS サーバーに「ワームレベル」の脆弱性が露呈、17 年間存在

脆弱性の紹介

SigRed の脆弱性はワーム化可能であるため非常に危険です。つまり、ユーザーの介入なしに自己増殖して脆弱なデバイスに拡散し、認証されていないリモート攻撃者がターゲット サーバーのドメイン管理者権限を取得して、組織の IT インフラストラクチャを完全に制御できるようになります。

脆弱性の仕組み

攻撃者は、Windows DNS サーバーに悪意のある DNS クエリを送信して SigRed の脆弱性を悪用し、任意のコードの実行を実現し、ハッカーがユーザーの電子メールやネットワーク トラフィックを傍受して操作し、サービスを使用できないようにし、ユーザーの電子メールを収集する可能性があります。

DNS サーバーが特定のドメイン名 (www.google.com など) の IP アドレスを解決できない場合、クエリは権限のある DNS サーバー (NS) に転送されます。これを転送クエリと呼びます。

このクエリ ロジックを悪用するには、SigRed はまず、ドメイン (「deadbeef.fun」) の NS リソース レコードを悪意のあるネーム サーバー (「ns1.41414141.club」) を指すように構成し、次にターゲット DNS サーバーのドメインをクエリして、ドメインまたはそのサブドメインに関連する後続のすべてのクエリに対するネーム サーバーからの解決応答を取得する必要があります。

これらの設定が行われていると、攻撃者は 64 KB を超えるサイズの SIG レコードを送信できます。これにより、割り当てられた小さなバッファーで約 64 KB の制御されたヒープ バッファー オーバーフローが発生し、悪意のある DNS クエリがトリガーされ、転送されたクエリに対する受信応答を解析する関数 ("dns.exe!sigwirelead") で整数オーバーフローの脆弱性がトリガーされる可能性があります。

つまり、この脆弱性は、リソース レコードのメモリ割り当てを担当する関数をターゲットにしています。65535 を超えるバイト数が生成されると、整数オーバーフローが発生し、割り当てが小さくなります。ただし、DNS メッセージは UDP では 512 バイト (サーバーが拡張メカニズムをサポートしている場合は 4096 バイト)、TCP では 65535 バイトに制限されているため、長い署名を持つ SIG 応答だけではこの脆弱性を誘発するには不十分です。ただし、攻撃者は DNS 応答の DNS 名圧縮機能を巧みに悪用し、上記の操作を使用してバッファ サイズを増やし、バッファ オーバーフローの目的を達成することができます。

さらに、SigRed は、Internet Explorer や Chromium ベースではない Microsoft Edge ブラウザなど、特定の状況下でブラウザを介してリモートでトリガーされる可能性があります。攻撃者は、Windows DNS サーバーの接続再利用とクエリ パイプラインのサポートを利用して、管理下の Web サイトにアクセスしたときに、HTTP 要求ペイロード内の DNS クエリをターゲット DNS サーバーに「秘密裏に転送」することができます。 write what where 機能を実装し、さらに脆弱性を悪用してメモリ アドレスをリークし、攻撃者が実行フローを乗っ取って予期しない命令を実行できるようにすることも可能です。

驚くべきことに、DNS クライアント (「dnsapi.dll」) は同じバグに対して脆弱ではないため、研究者は「Microsoft が DNS サーバーと DNS クライアント用に 2 つの完全に異なるコード ベースを設定し、それらの間で脆弱性パッチを同期しなかった」と疑っています。 ”

緩和

Windows DNS サーバーは、コア ネットワーク コンポーネントです。DNS サーバーが漏洩すると、非常に深刻なセキュリティ問題となります。ほとんどの場合、攻撃者は組織全体を破壊する寸前まで追い込まれます。企業はこれに注意する必要があります。マイクロソフトは、脆弱性が悪用されたという証拠はないが、ユーザーにセキュリティパッチを直ちにインストールすることを推奨している:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350

さらに、ユーザーは、バッファ オーバーフローの可能性を排除するために、DNS メッセージ (TCP 経由) の最大長を「0xFF00」に設定できます。

これで、17 年前の Windows DNS サーバーの「ワームレベル」の脆弱性に関する記事は終了です。Windows DNS サーバーの脆弱性の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Windows Server 2008 で DNS サーバーをインストールして構成する方法
  • Windows Server 2008 R2 DNS サーバー構成のグラフィック チュートリアル
  • Windows Server 2012 で DNS サーバーをインストールして構成する方法の詳細な説明
  • DNS サーバーの構築方法を説明します (グラフィック チュートリアル)

<<:  CentOS7でMySQL 5.7をアンインストールする方法

>>:  React.js フレームワーク Redux 基本ケースの詳細な説明

推薦する

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

dockerでsshd操作を有効にする

まず、docker に openssh-server をインストールします。インストールが完了したら...

よくある Linux 英語エラーの中国語翻訳 (初心者必見)

1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...

MySql が常に mySqlInstallerConsole ウィンドウをポップアップする問題の解決策

MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...

MySQL テーブルパーティションの使用法と基本原理の詳細な説明

目次パーティションテーブルとはパーティションテーブルの適用シナリオパーティションテーブルの制限パーテ...

Vue で className として空の文字列を使用することはなぜ推奨されないのですか?

目次空の文字列 '' と null を比較するケース1: 空の文字列を使用する &#...

MySQL 結合テーブルと ID 自動増分の例の分析

結合の書き方左結合を使用する場合、左側のテーブルが必ず駆動テーブルになりますか? 2 つのテーブルの...

HTML で相対パスを使用してディレクトリのすべてのレベルのファイルを取得する方法の詳細な説明

相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...

MySQLの一般クエリログとスロークエリログの分析

MySQL のログには、エラー ログ、バイナリ ログ、一般クエリ ログ、スロー クエリ ログなどが含...

Mac で MySQL バージョン 5.6 のパスワードを設定する方法

MySQLはインストール時に設定できますが、それより低いバージョンは設定できないようで、インストール...

Nginx タイムアウト設定の詳細な説明

最近、プロジェクトで nginx を使用し、バックエンドで Java を使用しました。バックエンドで...

Brotli圧縮アルゴリズムを有効にするNginxの実装プロセスの詳細な説明

序文Web アプリケーションでは、トラフィックを節約し、転送データのサイズを縮小し、転送効率を向上さ...

要素テーブルの多層ネスト表示の実践

複数の注文を含むリストが必要です。各注文は一意にすることも、複数の注文を結合することもできます。各注...

MySQL ifnull のネスト使用手順

MySQL ifnull のネストされた使用ifnull をネストする方法があるかどうかオンラインで...

MySQL データベースの Binlog 使用法の概要 (必読)

MySQL データベースにとって binlog バイナリ ログがどれほど重要であるかについては詳し...