Windows Updateの不都合な現実、再び──IE向け緊急パッチの混乱その知識、ホントに正しい? Windowsにまつわる都市伝説(146)

2019年9月の第4週に「Internet Explorer(IE)」の緊急レベルのセキュリティパッチがMicrosoft Updateカタログを通じてダウンロード提供され、その翌日にオプションの累積更新プログラムがWindows Updateで配布される、そして10月初めにさらに新しい累積更新プログラムが自動配布されるという、とてもユーザーを混乱させることがありました。緊急レベルのセキュリティパッチは、9月の公開時になぜにWindows Updateで自動配布されなかったのでしょうか、振り返ってみましょう。なお、IEの脆弱性問題は、10月8日(米国時間)のセキュリティ更新でも解決されています。

» 2019年10月16日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

品質更新プログラムのリリースサイクルについて再確認

 本連載の第115回や筆者の別連載「山市良のうぃんどうず日記」で何度も取り上げていますが、「Windows 10」と「Windows Server 2016」の品質更新プログラムのリリースサイクルについて簡単に説明します。なお、第115回に説明した「差分(Delta)パッケージ」は、2019年4月を最後に廃止されました(当初の予定は2月でしたが2カ月延長)。

 Windows 10とWindows Server 2016以降の品質更新プログラムは、「累積的な更新プログラム」であり、過去の修正に新たなセキュリティ修正やバグ修正を累積した形で提供されます。品質更新プログラムは、Windowsと.NET Framework 4.8で別々に提供されます(バージョン1803以前の.NET Framework 4.7.2以前はWindowsの累積更新に含まれる、バージョン1809の.NET Framework 4.7.2からは別の更新として提供)。より新しい累積更新プログラムがインストール済みの場合(Windowsの場合は詳細なビルド番号、14393.xの「.x」部分で判断可能)、それより古い累積更新プログラムをインストールすることはできません。

 「B」リリースとも呼ばれる毎月第2火曜日リリースの品質更新プログラムは、セキュリティ修正を含む、累積的な更新プログラムです。そして、その翌週または翌々週に新たなバグ修正のみを累積した(新たなセキュリティ修正は含まない)累積更新プログラムがオプションで提供されます。

 翌週のリリースが「C」リリース、翌々週のリリースは「D」リリースと呼ばれています。オプションとは、Windows Updateの自動更新では配布されず、「更新プログラムのチェック」をクリックすることで検出、インストールされることを示しています。いわば、翌月のBリリースで予定されているバグ修正のプレビューです。

 この累積的な更新プログラムの提供方法は、2016年10月以降、「Windows 8.1」および「Windows Server 2012 R2」以前のサポート対象OS(Windowsと.NET Framework、まれにInternet Explorer 9/10/11のそれぞれの更新プログラム)についても採用されています(Windows Server 2008は2018年11月から採用)。

 Bリリースは「セキュリティマンスリー品質ロールアップ」、CまたはDリリースは「マンスリー品質ロールアップのプレビュー」としてWindows Updateを通じて配布され、更新プログラムのプレビュー(オプション)である後者は明示的にユーザーが選択しない限りインストールされません。

 B、C、D以外に、緊急のセキュリティ修正が必要な場合や、Bリリースに重大な問題があった場合など、定例外で更新プログラムがリリース(“Out-of-Band”リリース)され、Windows Updateで自動配布されたり、「Microsoft Updateカタログ」からダウンロード提供されたりする場合があります。

ダウンロード提供のみの緊急セキュリティパッチと翌日にWindows Updateで配布されたオプション更新

 2019年9月の品質更新プログラムのリリースは、少々、ユーザーを混乱させるものでした。9月のBリリースは11日(日本では時差の関係で第2火曜日の翌水曜日)、CまたはDリリースは25日(バージョン1903のみ27日)でした。混乱の元は、Cリリース(Dリリースの週ですが、後述するようにMicrosoftは25日の更新をCリリースとしています)の前日、9月24日に定例外でリリースされた「Internet Explorer(IE)」向けの以下のセキュリティパッチです。

 このIEの脆弱(ぜいじゃく)性は、最も深刻度の高い「緊急(Critical)」(既定で有効な「IEセキュリティ強化の構成」があるWindows Serverについては深刻度「警告《Moderate》」)と評価され、脆弱性の悪用についてもレベル0〜4の中で最優先に対策すべき「0 - 悪用の事実を確認済み」のものです。ゼロデイ攻撃のリスクの高い脆弱性ですが、このセキュリティパッチはMicrosoft Updateカタログからのダウンロード提供のみでリリースされました(画面1)。

画面1 画面1 IEのセキュリティパッチ(正確には9月のBリリースの内容+セキュリティパッチ)は、Microsoft Updateカタログからのダウンロード提供のみ

 2018年12月20日に内容も深刻度も上記と同等のIEの脆弱性が公表され、セキュリティパッチが提供されたことがありました。このときは、Windows Updateで自動配布されました。2018年12月と2019年9月でセキュリティパッチの扱いが異なるのはどういうことなのか、疑問に思いました。2019年9月のセキュリティパッチがダウンロード提供のみというのを見て、最初、緊急度はそれほど高くないと思いましたが、実は最も深刻度の高いレベルの脆弱性でした。

 そして、セキュリティパッチの翌日には、Cリリースの累積更新プログラムがWindows Updateのオプションで提供されました(画面2)。Windows 10 バージョン1903向けにはさらに2日遅れの27日にDリリースとして提供されました。

画面2 画面2 セキュリティパッチの翌日、Cリリースの累積更新プログラムがWindows Updateでオプション提供された。これにもIEのパッチは累積されているが、その他のバグ修正も多数含まれる

 ユーザーの中には、CリリースがIEのセキュリティパッチだと勘違いした、あるいはいまだにそう信じている人も多いと思います。Windowsの品質更新プログラムは累積的なので間違いではありませんが、その他のバグ修正(翌月のBリリースに向けたプレビュー用)も多数含むものです。

 セキュリティパッチのインストールの翌日に、また更新プログラムをインストールしたというユーザーもいるはずです(どちらも再起動を要求されます)。最小限の更新で安定運用を心掛けている、CリリースやDリリースを避けている人にとっては、余計な時間と手間を取られたということになります。

 CリリースやDリリースはあくまでも、ユーザーにとっては“翌月の修正を先行的に評価するためのもの”、Microsoftにとってはフィードバックや情報収集が目的のものです。IEの脆弱性に対策したいのであれば、ダウンロード提供のセキュリティパッチだけでよいのです。

Windows message centerでのアナウンス

 ここで、9月末時点の「Windows Release Information」の「Windows message center」ページを見てみましょう(画面3)。このページでは、更新プログラムのリリースに関するアナウンスを確認できます。

画面3 画面3 9月中旬以降のWindows message centerのアナウンス。CリリースとIEのセキュリティパッチのアナウンスが前後していることもユーザーを混乱させる原因になったかもしれない

 Microsoftの内部的な呼び名だと思うため、筆者は数年前から繰り返し解説していますが、CリリースやDリリースという表現を、最近はMicrosoft自身もためらいなく使っているように感じます。中には「9C update」(9月のCリリースの更新プログラムという意)というさらに簡素化した表現も見受けられます。

 9月中旬以降のアナウンスを見ると、9月19日(米国時間)でWindows 10 バージョン1903およびWindows Server, version 1903を除くWindows向けのCリリースが間もなく利用可能になることが予告されています。おそらくCリリースの週に公開することを目標に作業していたのでしょう。

 しかしながら、そのCリリースはDリリースの週である9月24日(米国時間)に公開されました。Cリリースとして準備していたため、DリリースではなくCリリースと呼び続けているのだと思います。Windows 10 バージョン1903およびWindows Server, version 1903向けは、もともとDリリースとして準備が進められ、26日(米国時間)にリリースされました。

 そして、Cリリースが少し遅れたのは、IE向けの緊急のセキュリティパッチを提供するためなのでしょう。ここまでIE向けの緊急のセキュリティパッチと表現してきましたが、Windowsの更新プログラムは累積更新プログラムであり、実際には9月のBリリースの内容に、IEのセキュリティパッチを新たに累積したものです。

 CまたはDリリースには、新たなセキュリティ修正は含まれないというルールがあるので、そのルールに従うためにはCまたはDリリースとは別に(先に)リリースする必要があったのだと想像します。

 まだ、IEのセキュリティパッチ(を含む累積更新プログラム)が自動配布されなかったのかという疑問が残っています。前述したように2018年12月には同種の脆弱性を解決するために、更新プログラムが定例外でWindows Updateを通じて自動配布されました。

 実は、2018年12月は、ホリデーシーズンであることを理由にCやDリリースが提供されなかったという、今回とは異なる事情があります。今回のセキュリティパッチのリリース日がCやDリリースとあまりにも近過ぎたのかもしれませんが、緊急のセキュリティ問題にどう対応すればよいのか、多くのユーザーが混乱したと思います。

 今回の緊急のセキュリティパッチが自動配布された場合、Windows Updateの自動更新に任せているユーザーには自動的にダウンロード、インストールされるので、脆弱性にすぐに対策できたでしょう。

 しかし、毎日のように「更新プログラムのチェック」をクリックするユーザーは、タイミングによっては、2つの更新プログラムが別々に検出、インストールされることになります。今回の場合、2日続けての更新と再起動ということになります。一方、今回のように緊急のセキュリティパッチが自動配布されなかった場合、自動更新に任せきりで「更新プログラムのチェック」をクリックしないユーザーには、翌月のBリリースまで脆弱性が放置されてしまいます(実際には後述するように10月初めに定例外で自動配布されました)。

 なお、「Windows 10 Enterprise 2015 LTSB」にはCまたはDリリースは提供されませんでした。そのため、緊急のセキュリティパッチをダウンロードしてインストールするか、後述する回避策で対応しない限り、しばらく脆弱性が放置されることになります。

累積更新プログラムの“累積”とは? セキュリティパッチの実サイズは数MB

 繰り返しになりますが、Windowsの品質更新プログラムは累積的です。そのため、そのファイルサイズは次第に大きくなっていきます(修正後のバイナリがコンパクトになれば全体のサイズは縮小することもあります)。

 現在、最も大きなサイズになっているのは、64bit版Windows 10 バージョン1607(Windows 10 Enterprise 2016 LTSB)とWindows Server 2016用で、1.4GBに近づいています。以下の画面4は、Windows 10 バージョン1607およびWindows Server 2016向けの9月の累積更新プログラム一覧(各更新プログラムのサポート情報ページからCSV形式でダウンロード可能)に記載された64bit(x64)用コンポーネントを、日付(Date)列で降順に並べ替えたものです。

画面4 画面4 左から9月のBリリースのKB4516044、定例外の緊急セキュリティパッチの「KB4522010」、Cリリースの「KB4516061」の更新対象ファイルの一覧

 画面4は左からBリリースの「KB4516044」、IEの緊急のセキュリティパッチを含む定例外の「KB4522010」、Cリリースの「KB4516061」の一覧です。

 定例外のKB4522010に新たに累積されたものは、5つのIEのコンポーネントファイル(x86とx64のJscript.dll、x86とx64のNetsetupshim.dll、Netcfgnotifyobjecthost.exe)で、そのサイズは実ファイルサイズで2.3MB程度です。CリリースのKB4516061には、確かに5つのIEのコンポーネントファイルも含まれますが、それ以外の更新も数多く含まれるのが分かるでしょう。

 IEの脆弱性修正ファイルは事実上、2.3MB程度のものです。しかし、緊急セキュリティパッチのKB4522010でIEの脆弱性に対策しようとすると、1.4GB近くの巨大な更新プログラムのファイル(Microsoft Updateスタンドアロンパッケージ、.msu)をMicrosoft Updateカタログからダウンロードする必要があります。

 また、ダウンロード後のインストールは一瞬で終わるわけではなく、たとえ9月のBリリースまで更新された状態だとしても、「%Windir%\SoftwareDistribution\Download」ディレクトリへの展開、更新対象を決めるためのシステムのスキャン、インストール、更新プログラムのデータストアの更新(DataStore.edb)など、通常の更新プログラムと同様の処理が走るため、わずか5つのファイルを差し替えるのに長い時間を要します。そして、更新プログラムのインストール後には再起動が要求されました。筆者のテスト環境ではインストールに1時間、再起動に30分かかりました。

 Windows 10とWindows Server 2016以降のIEの更新は、Windowsの累積更新プログラムに含まれて提供されます。Windows 8.1以前とWindows Server 2012 R2以前も、定例のB、C、Dリリースについては、Windowsの累積更新プログラムに含まれますが、IEのみの累積更新プログラムが提供されることもあります。

 今回のIE向け緊急セキュリティパッチは、Windows 8.1以前とWindows Server 2012 R2以前にはIEの累積更新プログラムとしてダウンロード提供されました。そのサイズは12.7〜54.8MB程度であり、Windows 10およびWindows Server 2016以降と比べると扱いやすいサイズです(画面5)。インストールも早く、ダウンロードからインストール、再起動を含めても20分以内に完了しました。

画面5 画面5 Windows 8.1以前およびWindows Server 2012 R2向けのIEのセキュリティパッチは、よりコンパクトなIEの累積更新プログラムとして提供された

容易に停止できない運用環境には代替の回避策で対応できることも

 Windows 10およびWindows Server 2016以降の累積更新プログラムは、修正すべきコンポーネントは小規模でも、緊急性の高い修正を配布するには、極めて非効率的だと思いませんか。

 また、今回は自動配布されなかったため、IEの脆弱性に素早く対応できたのは、何らかの方法(MicrosoftのセキュリティアドバイザリやIT系メディアのニュースなど)で脆弱性問題を認知できたユーザーに限られたでしょう。“9月末”の時点で今回のIEの脆弱性は、次の4つのいずれかの方法で対策できました。

(1)9月の定例外の「緊急」(Windows Serverは警告)のセキュリティパッチをインストールする(Microsoft Updateカタログからのダウンロードとインストール、再起動が必要)

(2)Windows Update(またはその他の更新管理ツール)でオプションであるCまたはDリリースの更新プログラムをインストールする(再起動が必要、プレビューの修正も同時に受け入れる必要あり)

(3)10月のBリリースをインストールする(再起動が必要、脆弱性を長く放置することになる)

(4)CVE-2019-1367のセキュリティアドバイザリで説明されている「回避策」を実施する(再起動不要、ただし後に回避策の解除が必要)


 (1)および(2)の方法は、その後、「Print Spooler」サービスに継続的な問題が発生して印刷が中止または失敗する、またはRPCエラーが発生するという問題があることが報告されています。特に(1)のセキュリティパッチは、IE向けのわずかなセキュリティ修正のはずなのに、このような影響が出るとは何とも不思議な話です。

 (4)の回避策は、コマンドプロンプトで数行のコマンドラインを実行するだけの簡単なものでした(画面6)。Windows Serverなど、対策のためのメンテナンス時間をすぐに取れない場合は、この回避策が有効だったと思います。対策は数秒で完了し、OSの再起動も必要ありません。1つだけ注意点があるとすれば、次に新しい累積更新プログラムをインストールする前に、実施した回避策を解除する必要があることです。

画面6 画面6 IEの脆弱性にパッチで対応できない場合は、回避策を実施することでシステムを停止することなくリスクを軽減できた

 ここまでは“9月末”時点、正確には10月初めまでの時点の話です。ここからまたややこしい話が始まります。

10月3日(米国時間)になって、IE向け緊急パッチは定例外で自動配布に

 2019年10月3日(米国時間)、Microsoftはサポートされている全てのWindowsに対し、9月と同じ「CVE-2019-1367」に対する緊急のセキュリティパッチをブロード展開するという名目で、“より新しい累積更新プログラム”を定例外でリリースし、Windows Updateによる自動配布、Microsoft Updateカタログでのダウンロード提供、Windows Server Update Services(WSUS)への提供を行いました。

 今回の更新プログラムには、9月の更新プログラムで報告されていた「Print Spooler」サービスの問題に対する修正も含まれます。Windows 10およびWindows Server 2016以降向けにはWindowsの累積更新プログラムとしての自動配布です。

 Windows 8.1およびWindows Server 2012 R2以前向けには「2019-10 セキュリティマンスリー品質ロールアップ」という名前で自動配布されるものを受け入れるか、IEの累積更新プログラムとしてのダウンロード提供されたものをインストールするかを選択できました。

 なお、Windows Server 2012についてはセキュリティマンスリー品質ロールアップとIE 11の累積更新プログラムが自動配布され、Windows Server 2008についてはIE 9の累積更新プログラムのみが自動配布されました(セキュリティマンスリー品質ロールアップの提供はなし)。

 10月3日の累積更新プログラムおよびセキュリティマンスリー品質ロールアップは、Windows Updateで更新する場合、差分のみのダウンロードで済みますが、オプションであるはずの9月のCまたはDリリースの修正内容も含まれます。

 プレビューという位置付けの修正を含む累積更新プログラムを、自動配布するのは筋違いのような気がしてなりません。しかも、5日後には10月のBリリースが控えています。もしかすると、9月時点で緊急のセキュリティパッチがどうシステムに影響するか判断が難しく、ダウンロード提供と、その直後のCまたはDリリースをオプションで配布して、様子をうかがっていた(情報収集を行っていた)とも考えられます。

 「Print Spooler」サービスの問題はありましたが、それを修正して、他に大きな問題はないと判断しての自動配布だったのでしょうか(インターネットインフォメーションサービス〈IIS〉のレガシーなJScriptプログラムをホストするASP〈Active Server Pages)サイトに影響するという非公式の情報もあります)。CまたはDリリースの修正内容が含まれてしまうことには少々納得いきませんが、累積更新プログラムという仕組みを導入してしまった以上、それしか方法がないのかもしれません。

 最後に、より新しい品質更新プログラムがインストールされている環境に、後から9月の緊急のセキュリティパッチの存在に気付いてインストールしようとしても、「この更新プログラムはお使いのコンピューターには適用できません」と表示され、“ダウンロードするファイルを間違えたかな”と混乱する人もいるでしょう。もう一度繰り返しますが、その理由はWindowsの品質更新プログラムが累積的だからです。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。