WordPress脆弱性・改ざん対策 − 2.あなたのWPユーザ ー情報丸みえですよ

NO IMAGE

▲10回シリーズの目次へ戻る

こんにちは宮川(@miyakawa2449)です。

10回に分けてWordPressの脆弱性・改ざん対策を記事にしています。

前回は「1.WordPress基礎のキソ。最新版にアップデート!」のお話でした。

今回はWordPressのユーザー情報の守り方の扱いについて紹介します。

2.あなたのWPユーザ ー情報丸みえですよ

ユーザー管理画面
ユーザメニューからadminが残っている場合は削除します。

WordPressユーザーであればご存知と思いますが、ユーザー名とパスワードの2つがあればWordPressの管理画面にログインできます。
他人にログインされ、パスワードを変更されてしまえば、例え元の管理者であってもWordPressの管理画面に入ることができなくなります。

※最悪、サーバーからファイルを全て削除、データベース(MySQL)もリセットして、バックアップから復元することになるかも。

■ユーザーIDがバレるだけでも危険!!

WordPressをウェブサーバーに設置した初期の状態では「admin」ユーザーが初期ユーザー(デフォルトユーザー)として存在します。

admin というユーザー名が残っているということは、「パスワード」だけ突破できればハッカーはログインが可能なんです。

adminユーザーはWordPress全体を管理できる「スーパーユーザー」です。

「スーパーユーザー」というのはマンションなど例えると、どの部屋も開けられる「マスターキー」のような存在です。

■adminユーザーは即削除してください

ログインユーザー名とパスワードの組み合わせも他人にバレてはいけないというのは理解していただけましたか?

「admin」というユーザーはハッカーに狙われやすいんです。

だから、adminユーザーは即削除しなくてはいけません。

ただし、初期ユーザーの「admin」のみで運用しているWordPressサイトの場合は、adminを「削除」することができません。
adminの削除前に新しい管理者を事前に登録しておきましょう。

■ユーザーIDを抜き出す方法

adminは削除しない限り、存在するユーザーです。

adminが残っていれば、ブルートフォースアタック(総当たり攻撃)でパスワードが抜かれてしまえば、乗っ取り改ざんなど自由になってしまいます。

ところが、admin 以外のユーザーIDが安全か!と言えば、そうではありません。

実は何の対策も施していないWordPressは共通して「ユーザーID」が丸見えにできるのです。

■REST APIを利用したユーザーIDを抜き出し方と対策

REST API という機能がWordPress 4.7 以降用意されました。
次のURLにアクセスすると情報が抜け出せます。

https://example.com/wp-json/wp/v2/users
※「example.com」はご自身のWordPressの環境に応じて変更してください。
※WordPressのインストール先の階層によってはURLが異なる場合があります

悪い例
対策されていない状態は上記のようにユーザーIDが丸見えになります。
author名がログインIDになりますすが、セキュリティ都合上隠しています。

このままではセキュリティ上問題があるため、この機能を向こうにする必要があります。

適切なプラグインがございますので、ご自身のWordPressにインストールを行って適応ください。

Disable REST API | WordPress.org

「https://example.com/wp-json/wp/v2/users」にアクセスすると下記のように何も情報が抜き出されない状態になります。
※セッションが無効になっている状態でアクセスしてください。

紹介したプラグインのアップデートなどには十分に気をつけてください。

良い例
対策が施されていれば、ユーザー情報が見えません。

 

■?/author=n によるユーザーID対策

「https://example.com/?author=n」にアクセスすると、「https://example.com/author/user-id/」に遷移し、ユーザーの記事一覧が表示される機能があります。
※「example.com」はご自身のWordPressの環境に応じて変更してください
※WordPressのインストール先の階層によってはURLが異なる場合があります

※「?author=n」の「n」には1以上の自然数が入ります

.htaccessに次の内容を書き加えて保護することができます。
ただし、.htaccessに書き加える際は次のルールをお守りください。

  1. WordPressのルートにある「.htaccess」に書き加える
  2. 「# BEGIN WordPress」より上の行に書き加える

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (^|&)author=.* [NC]
RewriteRule ^.*$ /? [L,R=301]
</IfModule>

「https://example.com/?author=n」にアクセスして、トップページにリダイレクトすれば終了です。

 

▲10回シリーズの目次へ戻る