WordPress セキュリティパッチのみ自動適用するには

 WordPressのセキュリティパッチに関して検討および対処してきましたが、多数のプラグインの利用とWordPressのパッチリリースのスタンスや情報公開の仕方を考慮してパッチリリース状況の監視と適用の手順を見直しました。
 セキュリティパッチのみを適用するということが、WordPressの場合は「セキュリティ修正が含まれているのにメンテナンスパッチ」となっていたり、「プラグインのセキュリティ問題の対処をセキュリティ修正としない」とされていたりする状況からあまり妥当でないとなっていると判断しました。

つまり、ポイントは次の2点です。
・WordPressがいうところのメンテナンスリリースとセキュリティリリースとを区別して別の取り扱いをする意味はあまりない。メンテナンスリリースとされていてもセキュリティの対処が含まれている場合がある。
・ メンテナンスリリースとセキュリティリリースのどちらも適用しないと問題があるかどうかを確認できない場合がある。

以上の状況から、つぎのようにします。

「テスト用サイトを立ち上げておいて、テスト用のサイトについてはパッチを自動適用する設定にしておく、パッチ適用のメールが来たら動作確認を行い、本番環境に適用するかどうかを吟味し適用手順を確立したうえで適用作業を行う。」

具体的なサイト移行作業を始めます


2019年9月18日時点で本サイトはBizMWのサービスを利用していますが、2019年12月27日でBizMWのサービスが終了するため、本サイトを他のホスティングサービスへの移行作業を行います。移行先については事前調査済みですが、再度、最新の状況を調査して移行作業を行います。
 移行先に関しておすすめなどの情報があればコメントをください。

次の観点で試行確認を行い、移行を進めていきす。

・基本機能確認
– メール、設定
– Web 設定

・WordPressコンテンツの移行
・DBデータ移行

移行先の検討その後


以前に、書いた移行先の検討ですが、 ”代替サービスの案内を郵送” はまだですがメールとWebでの案内がありました。その情報を先に公開した移行先の情報に反映しました。この結果から移行先の検討絞り込みをし、移行に向けて試行検討を開始します。


1)代替サービスについての資料の受領。 2019/8/下旬→ 9/10メール受領、郵送分は9/17時点で未受領。

2) 移行スケジュールの確定。 2019/8/25→暫定で以前のスケジュールで作業中。
3) これ以降のスケジュールは、代替サービスの案内書類の受領時期により見直しする。
3-1) 書類レベル調査完了 2019/8/30→ほぼ済だが郵送待ち(9/17時点)
   ここまでに代替サービス案内を入手済みと仮定。未入手ならスケジュール見直し
3-2) 移行先候補 最大3つまでに絞り込み 8/31
3-3) 実地調査 9/1-9/15 実サイトを仮運用して調査
3-4) 移行先確定 9/16
3-5) 申し込み環境構築 9/17-9/20
3-6) バックアップ・復旧、定期実行パッチ等の運用操作の動作検証 9/20-9/30
3-7) 現行サイトからのサイトデータの仮移行 10/1-3
3-8)移行後の環境の動作検証 10/3-10
3-9) 移行後環境の操作手順等手順書類更新作成 10/11-10/15
3-10) ドメイン切り替え依頼 10/16
3-11) 現行サイトからのサイトデータの移行(仮本番) 10/17-20
3-12) プロバイダによるドメイン切替作業&反映 10/16-10/30
3-13) 新クラウドサーバでのドメイン運用開始 11/1
3-14) 新クラウドサーバでのmic.or.jpドメイン運用検証 11/1-15
3-15) 現行サイトからのサイトデータの移行(本番) 11/1-2
3-16) 検証期間予備 11/16-11/30
3-17) ドメイン移行期間予備 12/1-12/27
  

スケジュールの項番3以降は、前回公開したスケジュールと同じです。

なお、移行先等は移行先検討のページに記載しています。

WordPress 5.2.3 セキュリティパッチの適用

2019年9月5日にリリースされたセキュリティ&メンテナンスパッチWordPress5.2.3について書きます。 wp-config-sample.phpが更新されていましたが、動作に影響がある変更はなく実質的には気にする必要はありませんでした。5.2.1のように白画面になることもありませんでした。
 しかし、” Page Visit Counter ”がエラー(具体的に何のエラーなのか情報がない)で止まっていました。この停止問題はプラグインを設定ページで有効化することで解決しています。

WordPress 5.2.3 で対処された脆弱性について確認します。 WordPressのサイトの情報では1件ごとに明確にされるべき影響度とか影響範囲の情報がなく、問題検出者への感謝?の公開の場でしかありません。何とかしてほしいが、他のサイトで確認してみましょう。 9/12時点でJVNのほうにはまだ登録されていないように見えます。NVDの情報では、つぎの7件がWordPress5.2.3で対処されたことが分かります。

CVE-2019-16223WordPress before 5.2.3 allows XSS in post previews by authenticated users.
CVE-2019-16222WordPress before 5.2.3 has an issue with URL sanitization in wp_kses_bad_protocol_once in wp-includes/kses.php that can lead to cross-site scripting (XSS) attacks.
CVE-2019-16221WordPress before 5.2.3 allows reflected XSS in the dashboard.
CVE-2019-16220In WordPress before 5.2.3, validation and sanitization of a URL in wp_validate_redirect in wp-includes/pluggable.php could lead to an open redirect.
CVE-2019-16219WordPress before 5.2.3 allows XSS in shortcode previews.
CVE-2019-16218WordPress before 5.2.3 allows XSS in stored comments.
CVE-2019-16217WordPress before 5.2.3 allows XSS in media uploads because wp_ajax_upload_attachment is mishandled.

9/11にDBに登録されたばかりで影響範囲など詳しい情報はまだありませんでした。

想像ですが、9/12時点で過去バージョンに対してセキュリティ修正のみ(WordPress5.1.2?)を提供しようと準備しているように見えます。5.2.3のリリースには「In addition to the above changes, we are also updating jQuery on older versions of WordPress. This change was added in 5.2.1 and is now being brought to older versions. 」の記述があります。しかし明示的には5.1.2について特にアナウンスしているようには見えないので、本当にリリースされるかはわかりません。どうしても欲しければチームに入って推進すればよいかもしれません。

移行先の検討について 


以前に、利用しているホスティングサービスのサービス終了に伴い移行先の検討すると書きました。一通り情報収集もおわりそれぞれのサービス内容の把握もほぼできました。後は動作検証によって移行先を最終的に選定を行うだけですが、窓口に問い合わせた結果、”代替サービスの案内を郵送”の時期は8月下旬という回答がありました。この時期を反映して、つぎのようにスケジュールを見直しします。

最終的な判断は資料が届いてからにするとして、本格的に情報収集を始めます。
 また、これまでに仮決めしていた移行スケジュールは2019年10月に移行先決定でしたが、現行サービス終了から逆算してスケジュールを決めなおすことにします。※ 現在の運用状況だと、1か月並行運用、1か月切り替え期間、1か月予備期間くらいをとらないと余裕を持った作業ができなさそうです。

1)代替サービスについての資料の受領。 2019/8/下旬

2) 移行スケジュールの確定。 2019/8/25
3) これ以降のスケジュールは、代替サービスの案内書類の受領時期により見直しする。
3-1) 書類レベル調査完了 2019/8/30
   ここまでに代替サービス案内を入手済みと仮定。未入手ならスケジュール見直し
3-2) 移行先候補 最大3つまでに絞り込み 8/31
3-3) 実地調査 9/1-9/15 実サイトを仮運用して調査
3-4) 移行先確定 9/16
3-5) 申し込み環境構築 9/17-9/20
3-6) バックアップ・復旧、定期実行パッチ等の運用操作の動作検証 9/20-9/30
3-7) 現行サイトからのサイトデータの仮移行 10/1-3
3-8)移行後の環境の動作検証 10/3-10
3-9) 移行後環境の操作手順等手順書類更新作成 10/11-10/15
3-10) ドメイン切り替え依頼 10/16
3-11) 現行サイトからのサイトデータの移行(仮本番) 10/17-20
3-12) プロバイダによるドメイン切替作業&反映 10/16-10/30
3-13) 新クラウドサーバでのドメイン運用開始 11/1
3-14) 新クラウドサーバでのmic.or.jpドメイン運用検証 11/1-15
3-15) 現行サイトからのサイトデータの移行(本番) 11/1-2
3-16) 検証期間予備 11/16-11/30
3-17) ドメイン移行期間予備 12/1-12/27
  

スケジュールの項番3以降は、前回公開したスケジュールと同じです。

なお、移行先等は移行先検討のページに記載しています。

WordPress脆弱性の再現方法 再現検討

脆弱性 CVE-2019-8943対処済みなのかどうか情報がふにゃふにゃしているので再現検証してみようかと少し調べてみました。 
NVDによる再現方法などの情報があるブログにあるということで、それを参照してみました。

このサイトの再現確認状況の情報は影響バージョンは4.9.9と5.0.1でが未対処の情報しかなく最近の情報がないようにみえます。以下翻訳文面です「 影響範囲: この記事で説明されている脆弱性は、バージョン4.9.9と5.0.1のセキュリティパッチによって悪用されないようにされました。ただし、Path Traversalはまだ可能で、現在パッチは適用されていません。不適切なPost Metaエントリを処理するプラグインがインストールされているWordPressサイトは、悪用を依然として可能にします。私たちは、WordPressのセキュリティ月の準備中に、過去何百万ものアクティブなインストールを含むプラグインがこの間違いをしているのを見ました。 WordPressのダウンロードページによると、このソフトウェアはインターネット上の全Webサイトの33%を超える割合で使用されています。プラグインが問題を再導入し、古いサイトなどの要素を取り込む可能性があることを考慮すると、影響を受けるインストールの数は依然として数百万にのぼります。 テクニカル分析 パストラバーサルとローカルファイルインクルージョンの両方の脆弱性は、ボタンをクリックするだけでスキャン時間3分以内に当社の主要なSASTソリューションRIPSによって自動的に検出されました。しかし、一見したところバグは悪用できないようでした。脆弱性の悪用ははるかに複雑ですが可能であることが判明しました。 」


 煮え切らない情報の原因は、つぎの複合で発生しているように思われます。

・検出者が、具体的にどのバージョンで対処されているかのをレポートしていない。→”2019/2/14:WordPressがパッチ提供し、そのパッチで対処済みであることを確認した”ししかなく、対処されたWordPressの特定バージョンでの検証悔過を公開していない。
・検出者は単純な?再現方法を公開していない。→誰でも検証できる状態になっていない?
・WordPressが2019/2/14よりあとにリリースしたセキュリティパッチは5.1.1しかないが、パストラバーサルの対処をしたと明言していない。→脆弱性はWordPress自体ではなくプラグイン側のAPI使用方法にあると考えているのが原因かもしれません。
・WordPress単独では脆弱性を悪用されることはなく、ある機能を不適切に使用したプラグイン(該当するプラグインは複数(多数?)ある)を組み込んでいる場合に脆弱性を悪用される。

このように脆弱性の作り込み原因の責任がどこにあるのか不明確な状態であるためこのような状態になっているといえます。WordPress側で対処したのだから明確に情報公開をするべきでしょう。

WordPress 5.2.2の後に特に情報なし?

WordPress 5.2.2はセキュリティ修正のようなリリースのされ方でしたが、7/4時時点でWordPressのサイトでは5.2.2はメンテナンスリリースとしかかかれていません。ほかのOSSの情報公開のタイミングを参考にして後から公開されるものとして書いていました。ここでは、過去のWordPressセキュリティ公開タイミングを再確認して、5.2.1、5.2.2がどうなのかを推測してみます。

 直近のセキュリティ修正5.1.1と5.0.1についてみます

 WordPress5.1.1
WordPressサイトでの5.1.1リリース日 2019/3/12
WordPressサイトでの5.1.1セキュリティ情報公開日 2019/3/12
JVNへの5.1.1(CVE-2019-9787)の情報登録日 2019/4/10 約1か月後

 WordPress5.0.1
WordPressサイトでの5.0.1リリース日 2018/12/13
WordPressサイトでの5.0.1セキュリティ情報公開日 2018/12/13
JVNへの5.0.1(CVE-2019-8942)の情報登録日 2019/4/1 約3か月後

その他(CVE-2019-89435.0.3まで?))
・→ まだパッチが公開されていないとされている(2019/7/4時点)

パッチ公開とほぼ同時に脆弱性情報が公開されるパターンもあれば、パッチがない脆弱性情報が公開されるパターンもあります。 CVE-2019-8942 についてはWordPressサイトの セキュリティ情報公開日 しているものがWordPress5.0.1のリリース日でしかなく、JVNへの登録日の直前に情報公開されたのなら、パッチリリルースの3か月後に脆弱性情報が公開されたことになる。このようにいろいろなパターンがあるので、5.2.1も5.2.2もいずれも今後セキュリティ情報が公開される可能性がまだ残っているということになりそうです。  もしもそうなら、CVE-2019-8943 は5.2.1で修正されていたということなると推測します。


サーバー移行先検討のページを更新しました。

 
移行先検討の件です。現在、各サービスについて調査しており、ここまでの結果を移行先の検討のページに反映・更新しました。代替サービスの案内の資料はまだ届いていないので、代替サービスの部分は空欄です。最終的な判断は資料が届いてからにします。ほかによいサービスがあるなどコメントなどあれば情報をくださいお願いします。
 また、移行スケジュールは来週決める予定です。

ついに来た。サービス停止の案内。移行先検討を本格的に開始します。

 ようやく明日、梅雨入りとなる見込みで当分水やりの手間ははぶけそうです。

さて、以前に移行先の検討すると書きましたが、ついに2019年12月27日にサービス終了する旨のメールが来ました。後日代替サービスの案内を郵送すると記載されていました。最終的な判断は資料が届いてからにするとして、本格的に情報収集を始めます。
 また、これまでに仮決めしていた移行スケジュールは2019年10月に移行先決定でしたが、現行サービス終了から逆算してスケジュールを決めなおすことにします。※ 現在の運用状況だと、1か月並行運用、1か月切り替え期間、1か月予備期間くらいをとらないと余裕を持った作業ができなさそうです。

WordPress 5.2.2の修正内容 と脆弱性  

WordPress5.2.2のことを書く前に、以前に書いたWordPress脆弱性で完結できていないものを再確認します。
まず以前に書いたCVE-2017-6514について書きます。JVNのDBには2019/6/6に登録されています。これは私がここに投稿した日より2週間ほど遅い。JVNの情報から修正内容など新たに分かる情報はありませんでした。最近の動きは6/14にある脆弱性チェックツールで検出できるように強化されたことが情報公開されています。このタイミングでの情報公開なのでWordPressの修正コードなどの情報をもとにチェックルールを作成したものと推測されます。まだWordPress側では脆弱性情報が公開されていません。現在関係機関と公開に向けて調整しているのではないかと推測します。
つぎに、WordPress5.2.1の修正情報の再チェックです。前回チェックしたときに内容チェックに終始して、後で更新されることは想定していませんでした。ぱっと見た範囲では、変わっていません。この状況だと更新される可能性がありそうです。
さて、本題のWordPress5.2.2の修正内容についてです。13件のバグ修正とWordPress5.2で追加したサイトヘルス機能をちょっと更新したとリリース情報には記載されています。

#45094 #46289 #46997 #47227 #47429 #47558 #47475 なし

#46749 4.3

#46881 #46957 #46960 #47070 #47158 5.2

作り込みバージョンの記載がないもの7件、4.3が1件、5.2が5件です。
バージョンの記載がないものの修正内容は次ように、脆弱性に関係しそうな記述はありませんでした。
#45094 ダッシュボードのいくつかのエレメントでフォーカスされない
#46289 メディアモーダルでのナビゲーションアローのリンク先間違い
#46997 テーマの更新でリンクが動作しない
#47227 サイトヘルスタブの文字列修正 → 5.2での強化分の修正
#47429 更新パッケージ
#47558 更新ページのアップデート → 5.2.2で勝手にアップデートした件でしょう
#47475 typoの修正

脆弱性に該当しそうな修正内容の情報はありません。5.2.2は”セキュリティ更新”として更新が自動適用されたり、修正公開の事前情報など脆弱性対処をしたりした状況と推測される状況なので、セキュリティ修正がリポジトリには登録されたソースコードはあるが、公開された修正項目には情報がないという状態だと思われます。
 以上の状況から、別途公開済みの5.2.2か5.2.1で修正された脆弱性情報が後日公開されるものと推測されます。


それから、サービス停止を引き起こしかねないアップデートを勝手に適用するというはそれ自体がDOSの脆弱性と言ってしまってもよいのではないでしょうか。サービス停止したことを自動検知して自動リカバリするとかいろいろな対処がありそうです。