1 ポイント 投稿者 GN⁺ 2024-01-16 | 1件のコメント | WhatsAppで共有
  • Windows 10向け KB5034441 は BitLocker 回避脆弱性を防ぐためのセキュリティアップデートだが、一部のPCではインストール段階で失敗する
  • 問題の核心は WinRE 回復パーティション にあり、標準的な Windows 10 インストール環境のパーティションサイズではアップデートを処理するのに不足する可能性がある
  • インストール失敗時には 0x80070643 が表示されることがあるが、実際の原因は CBS_E_INSUFFICIENT_DISK_SPACE に該当する 回復環境サービスの失敗 の可能性がある
  • Microsoft の暫定的な回避策は、管理者コマンド プロンプトで WinRE を無効化し、回復パーティションを削除・再作成する方法で、一般ユーザーには危険である
  • ユーザーはこの手順について「技術的すぎて怖い」と反応しており、Microsoft が自ら修正版を出すべきだという不満が強まっている

KB5034441 のインストール失敗と回復パーティション問題

  • Microsoft は 2024年1月9日に Windows 10 21H2 と 22H2 向け KB5034441 を配布した
    • 目的は Windows Recovery Environment、つまり WinRE を使って BitLocker 暗号化を回避できる脆弱性を防ぐことだった
  • 一部のユーザーはアップデートのインストール中に 0x80070643 エラーに遭遇した
    • このコードは一般的なインストール失敗メッセージに近く、Microsoft によれば「エラーコード処理ルーチンの不具合」のため、実際の原因を正確に示さない可能性がある
  • 実際の原因は 回復パーティションの空き容量不足 の可能性がある
    • Microsoft が示した実際のエラーメッセージは Windows Recovery Environment servicing failed. (CBS_E_INSUFFICIENT_DISK_SPACE) である
    • 標準的な Windows 10 インストールPCの回復パーティションは、このアップデートを処理するのに十分な大きさではない可能性がある

危険な手動回避手順

  • Microsoft はディスク容量問題に直面したユーザーに対し、KB5028997 に従って回復パーティションを直接調整するよう案内している
    • 管理者権限の コマンド プロンプト を開く必要がある
    • WinRE を無効化した後、回復パーティションを削除して再作成するコマンドを実行しなければならない
    • 不慣れなユーザーがミスしやすい手順である
  • ソーシャルメディアでは問題が広く発生しており、ユーザーは Microsoft の回避策を適用することに消極的な雰囲気である
    • 一部のユーザーは手順を「技術的すぎて怖い」と表現している
    • 別のユーザーは「Microsoft が自分で直すべき問題だ」と述べている
    • さらに別のユーザーは、ユーザーが Microsoft のミスを修正する必要はなく、アップデートを保留すれば Microsoft が今後修正版を配布するだろうと述べている
  • Microsoft は1月16日に関連する公開文書を更新した
    • ただし ガイド自体は変更されていない
    • 「解決策に取り組んでおり、今後のリリースでアップデートを提供する」と明らかにした

1件のコメント

 
GN⁺ 2024-01-16
Hacker Newsの意見
  • 更新プログラムのインストール中、一部のユーザーには 0x80070643 エラーが表示されるが、Microsoftによると「エラーコード処理ルーチンのエラー」のため、実際のエラーではない可能性があるとのこと
    エラーのためのエラーコード用コードが、エラーのせいでエラーのエラーコードを誤って表示している、というわけ
    エラーコード処理コードをどれだけ頻繁にいじっているから、ずっと前に直されていないエラーが残っているのか気になる。本来は一度作って忘れてもよさそうな種類に見えるけど、昔からあったのに目立たなかったのだとしたら、エラーコード用コードの品質保証にもエラーがあったように思う

    • だから例外やエラーパスを扱うコードを書くとき、あるいはレビューするときは、より厳格かつ入念に見る
      正常系のコードよりも単純で、ばかばかしいほど理解しやすく、結合度が低くあるべきだと思っている。継承も抽象化もなく、依存関係ツリーも浅いべき
      例外処理のバグでシステムが落ちたことをあまりにも何度も経験した。例外パスはそもそもほとんどテストされないか抜け落ちることが多く、例外は定義上、予期しない場所から飛び出してくる傾向が強い
    • 年がばれる話だけど、昔使っていた OS/2ビルドでは、ときどき「このエラーメッセージは削除されました」と表示された
    • 1年ほど前に担当したバグは、結局ロギングコードの例外が原因だった
      例外処理コードが投げた例外を記録する、まさにその場合にだけ、ロギングコードでさらに例外が発生していた。社内ツールだったので、変更ログの項目をわざとできるだけ紛らわしく書いて楽しんだ
    • いちばん好きだったメッセージは、小さな文字で「Something Happened」、そしてまた「Something Happened」だった
  • 案内どおりにやってみたし、一部のユーザーにはかなり負担に見えるかもしれない点も理解できる
    コマンドラインの代わりに Windows Disk Management でパーティションを縮小し、必要な領域を作った
    この手順用のスクリプトがないのは驚きだが、それだけ複雑でミスの余地が多いという意味のように見える。だから単にダブルクリックで終わるスクリプトがない理由も、作業自体が難しいからだと思う
    多くの人が期待していた素早いWindows Updateでの修正も楽観しにくいが、近いうちにサードパーティ開発者がこの手順を自動化するスクリプトやプログラムを出してきそう

    • ディスクやパーティションの自動変更は、深刻なデータ損失のリスクがかなり高そう
    • 今は PowerShellスクリプト が出ているようだが、パーティションサイズを変更するものではなさそう。使った人がいるのか気になる
      https://support.microsoft.com/en-us/topic/kb5034957-updating...
  • 「攻撃者がWindows Recovery Environment(WinRE)を利用してBitLocker暗号化を回避できる脆弱性」という部分があるけど、以前から回復環境が自動復号されたシステムドライブに SYSTEM権限 でアクセスできるように見えて、ずっと変だと思っていた
    何年もそうだったし、ログインパスワードを失くしたマシンの内容をダンプするのにも使えた。たぶん本来意図された動作ではなかったのだろう

    • TPM PIN を使っていない、またはTPMが2.0未満の場合に限った話
      PINを併用するBitLockerのTPM方式では、TPMに問い合わせずにハードドライブのキーを知る方法はなく、TPMはPINを要求する。ブルートフォース対策とロックアウトも組み込まれている
    • 記憶では、WinREは回復作業の前にローカル管理者パスワードを要求しなかったっけ?
      だから「自動ロック解除」は一般に大きな注記が付く機能で、可能ならPIN、パスワード、ネットワークロック解除が推奨される理由のひとつでもある。ただし更新のたびにノートPCの面倒を見て、再起動のたびにロックを解除しなければならないという欠点がある
  • Microsoftは無給の Insiders に任せる代わりに、まともな品質保証部門を作り直せないのか? Flavor-Aidを飲んで、Microsoftがコードを一つも書き間違えるはずがないと信じている人たちに依存しているように見える

    • フィードバックコミュニティを見ると、Insiders全体をそう見るのは正確ではなさそう
      ただ、従来型の品質保証部門をなくしてからもうほぼ10年になり、その部門は外部ユーザー検証の活用以上の役割を担っていた。正直、その前の10年に比べてWindowsがより頻繁に壊れているとは言いにくいが、過去20年間に医療システムのような場所でパッチ問題によって発生した障害の統計は、実際の数字で見てみたい
  • 修正方法は怖く見えるとはいえ、それでも何かしら出してきたことはありがたいと思う
    数年前、更新プログラムが少なくない人たちの ReFSアレイ を壊したときは、ロールバック以外の解決策は提示されず、結局その更新が必須になって削除も不可能になり、アレイを一から作り直さなければならなかった

    • 何かを出したのは確かだが、それでも大事故だ
      有料製品で残りかすでも投げてくれたからといって感謝するようなことではない。もし意図と違って読めたなら申し訳ない
      Microsoftがインストールを壊し、中途半端な修正策を出したことについて責任を問うべきだ。複雑な問題だとしても、デスクトップOS市場のリーダーであり、それで莫大な金を稼いでいる会社なら、もっときちんとやるべき
  • 問題は回復パーティションがないか、十分な大きさではないこと
    Win10の仮想マシンでは回復パーティションが不要だったのでインストール後に削除したが、今ではそのインストールを更新できなくなった

    • 回復パーティションを無効化する案内に従ったし、そもそも領域を割り当てていなかったようだ
      再起動後にWindows 11へアップグレードできたし、後でさらに大きな問題が起きないことを願っている。次のステップとして案内されたシステムパーティションのサイズ変更は、本当に触りたくなかった
      ケースバイケースだろうが、偶然遭遇したこのバグがHacker Newsのトップページに上がったのは面白い
  • 「簡単な問題を1つ直すためにコマンドラインに行きたくないからWindowsを使っている」という話があるが、すでにその仲間入りをしていたということ
    数年前、Windowsが突然、私のユーザーディレクトリにアクセス権がないと判断し、Explorerとタスクバーが妙に壊れたシステムになったことがある
    直すには管理者コンソールに入り、新しいユーザーを作り、以前のアカウントのファイルを新しいアカウントへ移したうえで、所有権と権限を変更する必要があった。だからGUIだからWindowsは簡単だという考えはナンセンス
    どうせ変な失敗モードに陥ってコマンドを打ちながら復旧しなければならないなら、そのまま LinuxとNetBSD を使い続ける

  • 元Windows開発者として、Windowsアップグレード にはかなりイライラした記憶がある
    インストールフォルダーにはもはや安定して書き込めなくなり、レジストリに書かせるようにしたかと思えば、データフォルダーや別の場所に分けて書かせるようになった。そのためインストールを「十数カ所」に分割してデータの場所を管理しなければならず、HKEY_LOCAL_MACHINE、HKEY_CURRENT_USERなどを扱ったうえで、インストール時の権限昇格を要求する必要があった
    インストールフォルダーのファイルを削除したのに、Windowsがバックグラウンドでそのファイルの古いバージョンを復元するバグをデバッグした記憶もぼんやり残っている。c:\program filesは仮想化され、もはや本物のディレクトリのようには動作しなかった

    • インストールフォルダーに安定して書き込めなくなったのは、おそらく Windows XP のころに入った変更で、良い変更だったと思う
      ユーザープログラムに実行ファイルだらけのフォルダーへ書き込ませるのは、セキュリティ上ひどいことだ
  • すべてのアップデートを公開直後にすぐインストールしないほうがよい、という判断もあり得る

    • macOSとiOSでは少し待つ形で使っているが、Windowsでは自動アップデートを望まないと説明する方法を見つけられなかった
      特に夜通し走る計算処理の途中でアップデートされるのは困る
    • Microsoftはそれを変えたのか、それとも Windows 10 Home は今でもユーザーに最新アップデートの即時インストールを強制するのか?
    • GoogleがAndroidやChrome OSでやっているように、Microsoftもこうしたアップデートを社内で先にドッグフーディングしているのか?
  • 記者がLinuxを使ったことがあれば、ランダムな数字に見えるエラーコードよりずっとましな エラーメッセージ を表示することを知っていただろう

    • 文字どおり誤ったエラーメッセージを表示した状況ではないのか?
      Microsoftによると「エラーコード処理ルーチンのエラーのため」、このエラーは正しいエラーではない可能性があるとされている
    • Windowsを使いやすくするのはエラーメッセージではなく、ワンクリック解決
    • 終了コード139か、ふむ
    • その通りだが、ときどき有用なメッセージは dmesg でしか見つからない