Windows Server 2016は2016年9月30日にリリースされました。残念なことに、マイナスのイノベーションはプラスのイノベーションとともに発生しました。 Windows 10 Anniversary UpdateからのエラーがWindows Serverに正常に転送され、FARマネージャーからローカルパス\\ tsclientにアクセスするとリモートサーバーがクラッシュしました。
この問題の最初の現れから、私はマイクロソフトの注意を引き付けようとしましたが、何の役にも立ちませんでした。 今のところ解決策はありません。
更新 このエラーは、Windows 10およびWindows Server 2016の両方で2017年3月14日にアップデートの一部として修正されました。修正されたrdbss.sysドライバーのバージョンは10.0.14393.953(03/04/2017)です。
問題
その過程で、リモートデスクトップ経由でリモートコンピューターにアクセスしなければならないことがよくあります。 ファイルを前後にコピーする必要がある場合があります。 \\ tsclient \ dという形式のパスに沿ってRDPクライアントからコンピューターのディスクにアクセスすると非常に便利です。 また、私はFAR Managerの使用に慣れていることに言及する必要があります。
2016年8月にリリースされたWindows Anniversary Updateの後、Microsoftがいくつかのエラーを修正することを望んでいましたが、逆のことが起こりました。 FAR経由でパス\\ tsclient \ dにアクセスすると、リモートマシンがブルースクリーンに陥り始めました。 rdbss.sysドライバーは特に有罪であることが判明しました。
この問題は1〜2、3、4で繰り返され、オペレーティングシステムがゼロから提供された仮想マシンでさらにテストがうまくいきました。 コアダンプを表示すると、犯人がはっきりと見えました。
BugCheck 27, {fcb0027c, ffffd5073f279eb8, ffffd5073f279af0, 0} Page c920 not present in the dump file. Type ".hh dbgerr004" for details Probably caused by : rdbss.sys ( rdbss! ?? ::FNODOBFM::`string'+1f09 ) nt!KeBugCheckEx rdbss! ?? ::FNODOBFM::`string'+0x1f09 ( RxSelectAndSwitchPagingFileObject) rdbss!RxCommonClose+0x126 rdbss!RxFsdCommonDispatch+0x55b rdbss!RxFsdDispatch+0x86 rdpdr!DrPeekDispatch+0x203 mup!MupStateMachine+0x1dc mup!MupClose+0x8c FLTMGR!FltpLegacyProcessingAfterPreCallbacksCompleted+0x1a6 FLTMGR!FltpDispatch+0xb6 nt!IopDeleteFile+0x12d nt!ObpRemoveObjectRoutine+0x78 nt!ObfDereferenceObjectWithTag+0xc6 nt!ObCloseHandleTableEntry+0x28f nt!NtClose+0xcb nt!KiSystemServiceCopyEnd+0x13 0x00007ffa`8c925034
対応
さて、私はマイクロソフトに頼ろうと思った。 同様の機会にメッセージを送信するためのフォームが見つからなかったため(有料のサポートリクエストを開始したくなかった)、 technetフォーラムでトピックが作成されました。 メッセージでは、問題の再生シーケンスを説明し、WinDBGからのWindowsダンプの分析を添付しました。
その結果、モデレーターから応答を受け取りました。
分析によると、問題は「rdbss.sys」に関連しています。 これは、リダイレクトされたディスクバッファリングサブシステムのドライバーです。 問題はどのマシンでも観察されるため、ドライバーはWindows 10 RDPの機能と互換性がないと思われます。 これは、このソフトウェアの開発者に確認してください。
Windows 10のrdbss.sysモジュールの開発者がMicrosoftであることを示す試みは成功しませんでした。 「開発会社に連絡してください。 これを確認する機会はありません」とモデレーター、マイクロソフトの従業員は書いています。
ここで、私は問題が(本当に)特権のないユーザーにも繰り返されると思い、マイクロソフトセキュリティレポートに書き込むことにしました。 マイクロソフトはこのようなメッセージを真剣に送信します。24時間以内に回答される暗号化されたレター(Microsoftキーを使用したS-MIMEまたはOpenPGP)を電子メールで送信する必要があります。
実際、答えは次のとおりです。
どうやら、この問題はWindows 10ではなくFAR Managerにあります。ただし、これはセキュリティの問題とはみなせません。システムにアクセスでき、マシンでコードを実行できるためです。
特権のないユーザーがBSODを呼び出すことができるかどうかが正常かどうかを尋ねられたとき、答えはありませんでした。
この問題が再発したWindows Server 2016のリリースビルドが登場したとき、私は別の手紙を送り、サーバープラットフォームでこれが許容できないことに注意を促しました。 答えは似ていました。
追加情報をありがとう。 残念ながら、これはまだFAR Managerの問題のようです。 また、ローカルで認証されたユーザーによるDOS攻撃の可能性もありますが、セキュリティタスクのサポートを提供するには不十分です。
分析
興味のために、私はこの問題が他のバージョンのWindowsで現れるかどうかを調べました。 Windows 10 1511でもWindows Server 2016 TP5でも、それは観察されませんでした。
WinDBGのコードの簡単な概要から、非常に興味深いことが明らかになりました。 実際、バグチェック0x27の原因となったRxSelectAndSwitchPagingFileObject関数は、Windows 10 1511と比較してあまり変化しませんでした。しかし、以前のバージョンでは、エラーが検出されると単に無視され、KeBugCheckEx呼び出しは明示的に新しいバージョンに追加されました。 どうやら、開発者はバグを修正することができず、「ブラジルのシステムに従って」動作することを決定しました-その場合、システムは単にクラッシュし、いくつかの内部エラー(そしておそらく致命的ではない)の原因を見つけることが可能になります。
しかし、現実は奇妙な状況です。ユーザーはこのエラーを見つけて、その再現の順序を説明します。技術サポートは障壁です-「これは私たちの問題ではありません」。 情報が開発者に届かないと思う。
ところで、Windows Server 2016 TP5では、この機能はまったくありませんでした。 ただし、リリースバージョンではWindows 10 Anniversaryのように表示され、絶対にブルースクリーンが発生します。 Windows Anniversary Updateのリリース以降、rdbss.sysモジュールにいくつかの更新がありましたが、この問題は解決していません。
FARマネージャーの一部では、状況はネイティブAPIを積極的に使用し、ディレクトリ操作では従来のkernel32モジュール関数(FindFirstFile / FindNextFile)ではなく、ntdllモジュール関数(NtQueryDirectoryFile)を使用します。 おそらくここでは、rdbss.sysの開発者が考慮しなかったパラメーター/呼び出しの予期しない組み合わせを取得します(開いているファイルオブジェクトのクリーニング中にシステムがNtCloseにクラッシュします)。
この記事がシステム管理者に新たな不幸を警告し、リモートサーバーの予期しないクラッシュを回避するのに役立つことを願っています。 また、HarbahabrにいるMicrosoftの代表者が、「技術サポート」の壁を通じてrdbss.sys開発者に必要な情報を提供するという哀れな希望を大切にしています。