2018/04/25

GW 開けの WU では RDP 接続エラーに注意(というか予告)

5 月のパッチ リリース後に確認した上で、@IT さんの連載で書くつもりですが、5 月(日本だと 9 日の予定)の更新プログラムで CredSSP 認証に関係するポリシー設定の既定値(ポリシー未構成のときの挙動)の変更が予定されています(あくまでも、現時点では予定です)。PC の更新順のタイミングとか、サーバーとクライアントの更新サイクルが違う運用だとか、ここ数か月更新をさぼっている PC新規インストール直後の PCに対する、RDP 接続や CredSSP を使用するその他の接続(Hyper-V レプリカとか Hyper-V マネージャーとか WinRM とか PowerShell Remoting とか ISV アプリとかにも影響するかも)が失敗することになるので要注意です。

CVE-2018-0886 の CredSSP の更新プログラムについて(Ask the Network & AD Support Team、2018年4月20日)
[URL] https://blogs.technet.microsoft.com/jpntsblog/2018/04/20/cve-2018-0886/
CVE-2018-0886 の CredSSP の更新プログラム(Microsoftサポート、最終更新日:2018/04/17)
[URL] https://support.microsoft.com/ja-jp/help/4093492/
CVE-2018-0886 | CredSSP のリモートでコードが実行される脆弱性(セキュリティTechCenter、公開日:2018/03/13
[URL] https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/CVE-2018-0886
5/2 追記)
2018 年 5 月の更新プログラム適用によるリモート デスクトップ接続への影響
[URL] https://blogs.technet.microsoft.com/askcorejp/2018/05/02/2018-05-rollup-credssp-rdp/
6/4 追記)
SCVMM における CredSSP 脆弱性対策の影響について
[URL] https://blogs.technet.microsoft.com/systemcenterjp/2018/06/04/scvmm-credssp/

CredSSP 認証は、リモートデスクトップ接続のネットワークレベル認証(NLA)とかで使用されているもの。対象のポリシーは、2018 年 3 月、および 4 月の累積的な品質更新プログラム(ロールアップ品質更新プログラム)で追加された「Encryption Oracle Remendation Remediation」というポリシー。今はポリシーを設定しない限り脆弱性は解消しませんが、5 月になるとポリシーを設定しなくても...


5/10追記 5 月の累積品質更新(セキュリティロールアップ更新)のあとは、「暗号化オラクルの修復」というポリシー名になり、設定オプションは「緩和」「更新済みクライアントの強制」「脆弱」になります。

「Encryption Oracle Remendation Remediation」ポリシーは CVE-2018-088 の脆弱性に対応したもの(なぜこんなポリシー名なのかはよくわかりません)。3月の更新でその機能がポリシーとして実装されたものの、既定では有効化されていませんでした。パッチ済みでポリシーが未構成な場合、ポリシーが Vulnerable に設定されているのと同じ状態であり、ポリシーをいじっていなければパッチ済み/未パッチ間の接続を含めブロックされることはありません(ただし CVE-2018-0886 の脆弱性は放置された状態)。

これが、5 月の更新で「Encryption Oracle Remendation Remediation」ポリシーが未構成のときの既定が「Mitigated」に変更されるそうです(つまり、ポリシーを設定しなくても CVE-2018-0886 の脆弱性が解消された状態)。その場合、ポリシーをいじっていなくても、未パッチ(3 月、4 月、または 5 月の更新が未パッチ)のサーバーに対する、パッチ済み(5 月の更新による既定の変更)クライアントからの CredSSP がブロックされ、接続できなくなります。サーバーとクライアントの両方が、3 月または 4 月の更新がパッチ済みであれば、既定が変更になってもブロックされることはありません。

右のスクリーンショットは、Windows 10 バージョン 1709 (17299.371、つまりパッチ済み)で、5 月に予定されている更新後の状況を再現するためにポリシーを「Mitigated」にしてから、RDP クライアントで Windows 10 バージョン 1507(つまり未パッチ、EOS なのでパッチ予定なし)に接続したときのエラーメッセージ。最新の 17299.402 (KB4093105)の場合、なぜかエラー メッセージは出ずに(イベントログに LSA(LsaSrv)からの ID 6041 エラーは記録される)、何も言われず接続失敗しました(バグだと思う)。

で、サーバー側が未パッチでこの状況に遭遇してしまったら、クライアント側で例のポリシーを「Vulnerable」にすれば接続できるようになるはずです。クライアント側(Pro 以上なら、Home はレジストリ設定でいけるかもしれませんんが未確認)だけで対処できるので、サーバー側をあわてて更新する必要はありません。サーバーは最新パッチよりも安定稼働が大事なはず。なお、ポリシー名やポリシーの選択肢は、現在は英語ですが、そのうち日本語化されるかもしれません(現在は、%Windir%\PolicyDefinitions\ja-jp\CredSsp.adml の中のこのポリシーの部分が英語)。

4/26 追記)KB4093492 には、さまざまな組み合わせのケースで RDP クライアントに表示されるエラー メッセージについて英語で説明されていますが、確認できた日本語メッセージは以下のとおり。

"認証エラーが発生しました。要求された関数はサポートされていません
リモート コンピューター: <コンピューター名またはIPアドレス>"(3/13 のパッチの場合)

"認証エラーが発生しました。要求された関数はサポートされていません
リモート コンピューター: <コンピューター名またはIPアドレス>
原因は CredSSP 暗号化オラクルの修復である可能性があります。
詳細については、https://go.microsoft.com/fwlink/?linkid=866660 を参照してください。"
(4 /17 および5/8 のパッチの場合。下線部の"This could be due to CredSSP encryption oracle remediation." は、"このエラーの理由は、CredSSP 向けの「Encryption Oracle Remediation」ポリシーの可能性があります”と言いたいんだと思います)
"認証エラーが発生しました。
この関数に提供されたトークンは無効です。
リモート コンピューター: <コンピューター名またはIPアドレス>" (未パッチのWindows 7 の場合)
4/26 さらに追記) いつ出るかわからない Windows 10 バージョン 1803 ですが、Insider Preview ビルド 17134.1 の場合、最初から「Encryption Oracle Remendation Remediation」ポリシーが存在し、未構成のときの既定は「Vulnerable」の模様。

1 件のコメント:

  1. いまさらながら、RemendationではなくRemediationですよ…

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。