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 基本ケースの詳細な説明

推薦する

HTML で色を表すには、6 桁の 16 進コード、RGB、またはキーワードを使用します。

HTML で色を表す方法は 3 つありますが、最もよく使われるのは 6 桁の 16 進コード表現です...

Centos6.5 の rpm パッケージから mysql5.7 をインストールするときに発生する初期化エラーの解決策

1. rzをサーバーにアップロードして解凍する rz [root@mini2 アップロード]# ta...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

W3C標準に準拠したHTML標準で注意すべき点を詳細に解説

XML/HTML コードコンテンツをクリップボードにコピー<!DOCTYPE html PUB...

JS ES 新機能テンプレート文字列

目次1. テンプレート文字列とは何ですか? 2. 複数行のテンプレート文字列2.1 式付きテンプレー...

Angularの動的コンポーネントの詳細な説明

目次使用シナリオ達成方法1. 動的コンポーネントを配置する場所2. コンポーネントのインスタンスを取...

MySQL 8.0の新機能、隠しフィールドの詳細な説明

序文MySQL バージョン 8.0.23 では、新しい機能「Invisible Column (In...

Vue Element UIの使用時に遭遇した問題をまとめる

目次1. DateTimePickerの日付選択範囲は現在時刻とそれ以前です2. DateTimeP...

Dockerfile に基づいて Tomcat イメージを構築する方法

Dockerfile は Docker イメージを構築するために使用されるファイルです。コマンドパラ...

XML構文の詳細な説明

1. 文書化ルール1. 大文字と小文字が区別されます。 2. 属性値は引用符(一重引用符または二重引...

Linux システムで httpd の自動インストールと構成を Ansible で実装する方法

1. Ansibleのプレイブックを使用してhttpdを自動的にインストールする1) まず、Ansi...

私の CSS フレームワーク - base.css (ブラウザのデフォルト スタイルをリセット)

コードをコピーコードは次のとおりです。 @文字セット "utf-8"; /* @...

CSSを使用してAndroidシステムの読み込みアニメーションを実装する

Web には一般的な読み込みアイコンが 2 つあります。1 つは iOS の「菊」、もう 1 つは ...

HTML コマンドラインインターフェースの実装

HTML部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

IE8 開発者ツール メニューの説明

<br />この記事では、開発者ツールのさまざまなメニューについて簡単に説明しました。こ...