WordPressは世界的で最も利用されているCMSとして有名だけれど、ユーザが多い分それを標的にする攻撃が多いことも知られている。
そのため、全くの無対策で運用を始めてしまうと
- 不正アクセス(ブルートフォース攻撃など)
- Webサイト改ざん(SQLインジェクションなど)
だったりの標的になってしまう。
こうなってしまうと、サイトがぶっ壊されたり、データが盗まれたり、最悪の場合閲覧者が被害を被ったりしてしまうため、注意が必要となる。
今回はWordpressの初心者向けに、プラグインのみでセキュリティ対策する方法を紹介する!
※いちおう各プライグインの役割がなるべく被らないようにチョイスしています
不正アクセスへの対策
管理者ログインページのURL変更
WordPressは管理ページのログインを実施するための要素は以下の3つとなる。
- ログインページのURL
- ログインID
- ログインパスワード
実はWordpressは初期設定がと必ずログインページへの接続が
- https://hoge○○.com/wp-admin/
- https://hoge○○.com//wp-login.php
でログインページへ遷移できるようになっている。
既にこの時点でキーとなる項目が1つバレてしまっている状態になる。
ここではシンプルにログインページのURLを変更するプラグイン、WPS Hide Loginを利用する。
このプラグインをインストール&有効化すると管理ページの[設定]→[一般]の一番下の方にWPS Hide Loginの設定メニューが出てくるので、ここに新しいログインページを入れればOK。
これで、次回のログイン以降は新ログインURLのみからログインできるようになる。(新URLは忘れないように!)
ログインIDの漏洩対策
実はWordpressのログインIDは、何も考えないでそのまま運用を始めると、簡単にバレてしまう。
具体的に言うと、
- 投稿した記事
- 投稿者アーカイブのURL
にユーザ名としてログインIDが表示されてしまう。
この状態だとログインURLへのアクセスが成功してしまった場合に、残るキーはパスワードのみとなってしまい、パスワードが推測されやすいものの場合は最悪ログイン可能となる。
記事に表示されるユーザ名については管理ページから変更が可能で、[ユーザ]からユーザ一覧に飛んで、対象のユーザをクリック→「ニックネーム」「ブログ上の表示名」をそれぞれログインIDが推測出来ないようなものへ変更することで対策できる。
ただ、これだけど投稿者アーカイブの変更はできないため、プラグインEdit Author Slugを利用する。
このプラグインをインストール&有効化すると先ほどのユーザページの下部に「投稿者スラッグ」という項目が表示される。
ここのカスタム設定に任意の文字列(hogehogeとか)を入力して設定完了すると、投稿者アーカイブのURL部がカスタム設定した文字列になる。
これで、ログインIDの漏洩対策が完了となる。
XML-RPCの無効化
XML-RPCて何?って感じだけど、これはXMLという形式を利用したデータやりとりの規格になる。
WordPressではスマートフォンアプリからの記事投稿する時の認証時に利用されていたりする。
で、この規格を駆使して攻撃してくる輩がとても多いのが問題になってくる。
最近だとWordpressの初期設定の時点で未許可になっていることが多いようだけれど(インストール方法によって異なる)、人によっては許可設定になっているかもなので、ここで取り扱う。
今回はその他の対応も一緒に行えるWordfence Securityを利用する。
このプラグインをインストール&有効化すると管理ページに[Wordfence]のメニューが出てくるので、そこから[Login Security]→[Settings]タブからDisable XML-RPC authenticationにチェックを入れればOK。
因みにこれをするとWordPress アプリ等のXML-RPCを利用している外部機能は利用できなくなるので注意。
ただ、あんまり困る人はいないような気はしている。
2段階認証の設定
今までなんだったんだって言うくらい最強の不正アクセス対策。
ログイン時のユーザID、パスワードの認証OK後に指定した端末でワンタイムパスワードを表示し、それを入力することで認証完了とするもの。
2段階認証を導入することで、最悪ログインに必要な情報がすべてバレても、ワンタイムパスワード入力で止めることができる。
ちょっと設定は面倒(難しくないけど、手順が長い)だし、利用するときも手間が1つ増える分面倒だけど、絶対にやっておいた方がいい。
なんとこれもWordfence Securityを利用することで設定できる。マジ便利。
設定方法についてはこちらのページで網羅的に説明されているので参考になる。
Webサイト改ざんへの対策
こちらについても、Wordfence Securityを利用することになる。
[Wordfence]→[ファイアウォール]と進んで、以下設定をして学習モードにする。
これをすると、指定の日が来たタイミングでファイアウォールの最適化が完了し、ファイアウォールが有効となる。
ファイアウォールの最適化が完了すると、
- SQLインジェクション(データベース上のテーブル破壊してくるやつ)
- クロスサイトスクリプティング(Webページに悪質なスクリプト仕組んでいたずらするやつ)
などを対策をしてくれる。
Wordfenceがつよつよであまり書くことがなくなってしまったけれど、ここの設定が一番大事。
このへんは個人じゃどうにもならんので、過去の攻撃データをいっぱい持っている企業におまかせするべき。
その他にやること
WordPressの最新化
よく言われている話ではあるけれど、
- WordPress自体の更新
- プラグインの更新
- テーマの更新
についてはこまめに確認しておこなうこと。
プラグインについては自動更新をすることもできるので、設定しておくとラク。
利用していないプラグイン、テーマの削除
不要なものを残したままする意味はない。
特にプラグインについては放置しておくことで管理の目が行き届かず、気が付いたら最終更新からだいぶ経ってセキュリティ対策がされていない状態でサーバ上に鎮座することになりがち。
あれこれ入れてどれが不要でどれが必要か分からない!みたいにならないよう、プラグインについては役割を良く確認した上で導入したい。
まとめ
今回紹介したプラグインは以下の3つ。
- WPS Hide Login(不正アクセス対策)
- Edit Author Slug(不正アクセス対策)
- Wordfence Security(不正アクセス対策、Webサイト改ざん対策)
特にWordfence Securityで可能になる、ログインページでの2段階認証と、ファイアウォールは自分としては必須だと思っているので、特にこだわりがないのであれば、導入してほしい。
最後に
今回はいつもと比べて比較的まじめな感じになりました。くやC。
プラグインのみではない部分もあるけれど、管理画面でできる範囲ならセーフ!