【WordPress】対策済み?セキュリティ診断をしてみよう【チェック編】

【WordPress】対策済み?セキュリティ診断をしてみよう【チェック編】

こんにちはまるたけです。

ご覧いただきありがとうございます。
みなさまは、お使いのWordPressのセキュリティ対策はされていますか?
WordPressは便利なCMSですが、オープンソースということもあって外部から攻撃を受けることも。

そこで、本記事ではよくあるポイントをチェックリスト形式でご紹介。
特別なツールを入れずにご自身でセルフチェックいただけますので、ぜひご活用ください。

では、行ってみましょう!!


はじめに

セルフチェックをはじめる前に、以下の情報をお手元にご用意ください。



【用意するもの】
・インストール済みのWordPressサイト
・URL
・ログインアカウント



では、チェックに入っていきましょう!



セルフチェック

1.WordPress本体


見出しごとにチェックボックスを用意しました。当てはまるものにチェックを入れてきましょう!



【確認方法】
・1.WordPressにログインします
・2.ダッシュボードの表示を確認しましょう
 「WordPress 5.7 が利用可能です ! 今すぐ更新してください。」のようなメッセージがある場合は
 お使いのWordPressが最新バージョンでは無い状態です
図1-1-1.WordPressがNot最新バージョン


【対処方法】
・1.サイトの記事更新などをSTOP!
・2.利用状況・影響範囲を確認し、更新するタイミングを決めましょう
・3.「更新」ボタンを押し、新バージョンに切り替わったことを確認して完了です
図1-1-2.WordPress更新完了(例:バージョン5.7 Esperanza)

セキュリティ対策系の更新も多いので、
定期チェック&更新がオススメです。
過去のWordCampのセッションでも推奨されていました。



【確認方法】
・1.WordPressにログインし「プラグイン」メニューを開きます
・2.使っていないプラグインがあるか確認しましょう
・3.プラグインに「~●●が利用できます。~更新してください。」が表示されるものが古いバージョンです
図1-2.プラグインがNot最新バージョン、未利用プラグイン


【対処方法】
・1.使っていないプラグインがある場合は「停止」のうえ「削除」を!
・2.プラグインが古い場合は、影響範囲を確認したうえで最新バージョンへ更新しましょう

プラグインの脆弱性をついたアタックがあるため、
定期チェック&更新!不要プラグインは削除!



【確認方法】
・1.お使いのブラウザでサイトのURL+「/wp-login.php」を入れてアクセスします
 例)https://test.my-homepage.local/wp-login.php
図1-3.ログインURLが「wp-login.php」



【例】
・管理ユーザだけでなく、一般ユーザがログイン画面を表示できてしまう

ログインURLの変更や、ログインURLに認証を入れると効果的です。管理画面への入口が、関係者以外は訪れないようにしましょう。





2.ユーザ/アカウント関連



【例】
・「root」「admin」など、同じユーザIDを複数人で利用している
・管理者アカウントが1つだけである

推測されやすいIDはログインされる可能性が高く要注意。
ひとり1アカウントにすることで、新規参画・離任時にも利用者ごとの管理が可能です。



【例】
・初期パスワードとして、複数ユーザに同じパスワードを配布している
・共通パスワードのまま、変更していない

パスワードが当てられた場合、他ユーザへのログインを許してしまうため初期パスワードがある場合はすぐに変更しましょう。
共通パスワードを利用せず、ひとりひとり固有のパスワードを設定しましょう。



【例】
・桁数の少ないパスワードを利用(12桁未満)
・「pass」「password」「1234」など
・「半角英数」「大小文字」「記号」を織り交ぜていない

【対処方法】
・1.桁数 :8→10→12→それ以上に桁と増やす(12桁以上がオススメ)
・2.文字種:半角英字(大文字)× 半角英字(小文字)× 半角数字 × 記号 を含める

桁数と文字種パターンを増やし、総当たり攻撃によってパスワードが当てられないように!
共通パスワードを利用せず、ひとりひとり固有のパスワードを設定を!
以下の参考URLをチェックしてパスワードの理解を深めよう。

【参考URL】

マンガポスターは、こっ恥ずかしくなるストーリーでしたが、パスワードの重要さがバッチリ伝わってきます!


3.XML-RPC、REST API


 XML-RPC経由で外部から記事情報への書込みやユーザ情報のハッキングの恐れがあります。


【例】
・WordPressインストール後に設定変更などをしていない
・プラグインなどでXML-RPCを無効化していない
・「xmlrpc.php」へのアクセス制限をかけていない

【確認方法】
・1.「お使いのサイトURL」+「/xmlrpc.xml」へブラウザからアクセスします
   例)https://test.my-homepage.local/xmlrpc.php

・2.ブラウザ表示を確認します
 「Forbidden」や「404」など・・・ブロックできている!
 「XML-RPC server accepts POST requests only.」・・・「POST送信で送ってね」のため3へ進む

・3.チェックサイトへアクセスします
  チェックサイト:WordPress XML-RPC Validation Service
  https://xmlrpc.eritreo.it/

・4.ご自身のサイトURLを入力し、送信ボタンをクリック!
   例)https://test.my-homepage.local/

・5.結果をチェック!
   対策済みの場合は以下のようなメッセージが表示されます
   「405 このサイト上では XML-RPC サービスが無効になっています。」
   利用可能状態の場合は、次回の記事の【対策】をご覧ください。

【解説】XML-RPCとは
・XMLエンコードを使った遠隔手続き呼び出し(Remote Procedure Call)
・外部(スマートフォンなど)からサイトとの連携に利用するものです
・WordPressのXML-RPCでは、記事情報の閲覧や書き込みなどが可能です

【参考URL】
 wp_xmlrpc_server | Class | WordPress Developer Resources
 https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/

xmlrpc.phpはWordPressへのインストールディレクトリにあります。次回記事で対策方法を紹介します!


XML-RPCと同様にREST-API経由で外部から記事情報への書込みやユーザ情報のハッキングの恐れがあります。


【確認方法】
・1.ブラウザのアドレスバーへURLを入力します。
   お使いのドメインの後ろに「/wp-json/wp/v2/users」を続けて入力しましょう。
  例) https://test.my.homepage.com/wp-json/wp/v2/users

・2.URLへアクセスします。
図3-1.XML-RPC経由でユーザ情報を表示


【解説】REST-APIとは
・外部からWebシステムを利用するためのAPI
・セッションや状態管理は行いません(RESTful API)
・RESTはREpresentational State Transferの略です
・外部(スマートフォンなど)からサイトとの連携に利用するものです
・WordPressでは認証方式が3種容易されています(クッキー認証、OAuth認証、アプリケーションパスワード/Basic認証)

【参考URL】
 Reference | REST API Handbook | WordPress Developer Resources
 https://developer.wordpress.org/rest-api/reference/

xmlrpc.phpはID&パスワードをxml形式で送信して利用しますが、REST-APIは認証方式が3種用意されておりよりセキュアな利用が可能です。
コチラも次回記事で対策を紹介します。


診断結果



まとめ

チェック結果はいかがでしたか?
どれもセキュリティ上、重要なものなので1つ以上当てはまった場合は要注意!

大切なコンテンツを守るためにもぜひ対策を!
今回お伝えしきれなかった内容は
次回【対策編】で紹介予定です。
 ※近日公開予定

関連記事

本記事はいかがでしたか?

まるたけ
Follow まるたけ:

株式会社システムサポート BS事業部 2016年中途入社。 Webシステムの構築を得意とし、現在はプリセールス領域でも活動中! お仕事の後は、「カラオケ部長」になることも。