
WordPress 4.7と4.7.1で見つかったセキュリティの脆弱性で特に深刻なものは、REST APIに関連したものです。このWordPressのセキュリティ脆弱性については、以下の記事の中でWordPressが発表した4.7.2 追加セキュリティー脆弱性対策の開示記事の全訳などを含めて詳しく取り上げております。
https://www.blogging-life.com/wordpress-security-vulnerability/
今回発見されたWordPressのセキュリティ脆弱性についての詳しい話を知る切っ掛けとなったのは、wpbegginerからのメールでした。メール内にサイトオーナーのSyedさんが過去2週間で5万以上のWordPressのウェッブサイトがハックされたこと、まだアップデートしていない場合は、早急に4.7.2に更新するようにと推奨していることでした。さらに、メールにはREST APIを無効にすることを勧めていました。
WordPress 4.7と4.7.1のREST API関連のセキュリティ脆弱性について
4.7.2でセキュリティ対策を行った4つの脆弱性の中で、最もリスクが高く、危険と思われるのがREST API関連のものです。この脆弱性は、4.7.2発表時には見つかっておらず、後から追加されたものです。この脆弱性を発見、指摘したSucuriのMarc Alexandre Montrasさんが投稿したContent Injection Vulnerability in WordPressから冒頭部の概要を訳して紹介します。
Content Injection Vulnerability in WordPress
セキュリティ関連の会社Scuriは、Sucuri Firewall (WAF)の脆弱性調査のプロジェクトの一環として、複数のオープンソースプロジェクトのセキュリティ問題を検査していました。WordPressと共同で作業を行っている間に、我々はREST APIに関連する深刻なコンテント インジェクション(privilege escalation)の脆弱性を発見しました。この脆弱性は、承認を受けていないユーザーが、ワードプレスサイト内のどの投稿やページのコンテンツを編集することが可能となるものでした。
我々は脆弱性のことをWordPressのセキュリティ・チームに通知しました。チームはそれを非常に適切に対応しました。彼らは我々と密接に作業を行い、公開する日時のコーディネーション、出来る限りの多くのホストとセキュリティプロバイダーに周知させて、一般にこの件が明らかになる前にパッチを行いました。
この対応策は、他のそれ程深刻ではない問題とともに、バージョン4.7.2に密かに含まれていました。全ての人がパッチを行う時間を得るため意図的に公開を遅らせました。今、我々は、殆どのWordPressユーザーはサイトのアップデートを行うのに十分な時間が得られたと思われるため、詳細を公開します。
Are You At Risk?
このprivilege escalation(権利昇格・特権取得)の脆弱性は、WordPress 4.7.0でデフォルトで追加され使用可能となったWordPress REST APIに関わるものです。
あるREST エンドポイントは、(APIを介して)投稿を見たり、編集したり、削除したり、作成することを許可します。この特定のエンドポイント内において、ちょっとした僅かなバグによって、訪問者がサイトのどの投稿も編集することが認められて(可能となって)しまいます。
REST APIは、WordPress 4.7.0と4.7.1を使用した全てのサイトでデフォルトで有効となっています。もし、あなたのウェッブサイトがWordPressのこれらのバージョンの場合、このバグのために(セキュリティ上)脆弱になっています。
概要の訳は以上です。
以降、テクニカルな詳細の説明がされています。ここでは割愛させて頂きます。
REST APIを無効にする方法
Simplicityの場合
REST APIを無効にすることについて、Simplicityの製作者わいひらさんに質問した所、直ぐにお返事を頂きました。
僕が運営しているサイトでは、Simplicityのテーマカスタマイザー機能(その他項目)からREST API機能を無効にしています。たまにREST API機能を利用するプラグインはあるようですが、テーマ自体は利用していないので無効にしてOKです。というかしたほうがいいかも。 https://t.co/YLP5rQ572n
— わいひら@寝ログ (@MrYhira) February 14, 2017
Simplicityでは、カスタマイザーの[その他項目]からREST API機能を無効にすることができます。(デフォルトでは有効になっています。)”REST APIを有効”のチェックボックスのチェックを外します。
以上で作業完了です。
プラグイン Disable REST API を使用してREST APIを無効にする
Disable REST APIをインストールして、有効化します。
以上で無効化できます。
追記
バージョン 4.7.2では、REST APIはデフォルトで無効になっているか、ホスト側で追加の対策パッチが入れられている様です。バージョン4.7.2になっていれば、今回の問題は大丈夫だと思います。
本サイトと運営するサイトは念のため、REST APIを無効にしました。
コメントを残す(承認後表示されます)