左坊のメモ帳

WordPress など

*

WordPress REST APIを無効にするプラグイン

      2017/02/06

WordPress4.7.2で脆弱性(ぜいじゃくせい)は修正されています

WordPress、更新版で深刻な脆弱性を修正 安全確保のため情報公開を先送り

という記事にあるとおり、REST APIを悪用して、記事改ざんされたりする危険性がありました。

スポンサーリンク

記事の解説

WordPress4.7.0、4.7.1には、危険なセキュリティホールがあったが、1月26日に更新されたWordpress4.7.2で危険性を無くしました。
通常のWordpressのアップデートでは、新しいバージョンを公開した時点で、どのようなアップデートをしたのか、どのようなバグ・危険性を修正したのか合わせて公表するのですが、今回に限っては、このセキュリティホールがあまりにも危険なため、より多くのWordpress利用者が4.7.2に更新し終わるまで、「危険であったこと」を公表しませんでした、ということです。(2月1日に公表されています)

つまり、

・WP4.7.0 危険(脆弱性あり)
・WP4.7.1 危険(脆弱性あり)
・1月26日 WP4.7.2 安全(脆弱性解消、でもダマ)
・2月1日「実は危険でした」と公表

ということです。

REST APIとは

別のサーバーなどから、リモートで、Wordpressの情報(投稿、ユーザー情報など)を取り出したり、書き込んだりできる機能です。
Wordpress4.7.0、4.7.1に存在していた今回のバグは、認証情報不要で、誰でも、読み書きできてしまう状態だった、ということです。

rest apiに関する技術的な詳しい説明は、ネット上にいろいろありますので、そちらをご参考ください。

DISABLE REST APIプラグイン


このプラグインは、未ログインのREST APIアクセスに対して、認証エラーを返す、というものです(Wordpress4.7の場合)。また、WP4.4~4.6の場合は、 rest_enabled filterを使ってAPIを無効にします。

WP4.7.2でバグは修正されていますので、4.7.2にアップデートされている場合はこのプラグインを利用してもしなくても同じではあります。

プラグインのインストール

このプラグインは公式プラグインなので、「Disable REST API」で検索して、インストールできます。

特に設定は不要で、有効化するだけでOKです。

手動でインストールする場合は、以下のサイトからダウンロードできます。

安全確認方法

以下のURLにブラウザからアクセスしてみると、分かりやすいかもしれません。

http://サイトURL/wp-json/

WordPressのサイトにログインせずに上記URLをブラウザで表示すると

{“code”:”rest_cannot_access”,”message”:”Only authenticated users can access the REST API.”,”data”:{“status”:401}}

と表示されます。

WordPressにログインした状態で、同じURLを表示すると、もっと多くの情報が表示されます。

ちなみにChromeのエクステンションで、jsonを見やすく表示してくれるものがあります。

Chromeウェブストア「JSONView」

今回のセキュリティホールが悪用されたと思われる事例など

こちらのページにざっとまとめられています。

もし改ざんされてしまった場合

対策としては、

  • ワードプレスを4.7.2にアップデート、もしくは上記プラグイン有効化
  • 改ざんされた該当記事を削除
  • ログイン情報の変更

をやっておくのが良いと思います。

また、月額350円からWebセキュリティサービス(予防、改ざん復旧など)もありますので、検討してみてもよいでしょう。



このサービスでは、以下の作業を行なってくれます。

・Webサイトの不正改ざんを見つける
・Webサイト内のマルウェアを見つける、駆除する
・Webサイト内の不正コンテンツを見つける、削除する
・WordPress/Movable Typeなどアプリの脆弱性を見つける
・SQLインジェクションの脆弱性を見つける
・XSS(クロスサイトスクリプティング)の脆弱性を見つける
・SSLの有効期限切れを監視する など

また、こちらの記事もあわせてどうぞ。

 - WordPress, プラグイン