wordpressを標準設定で使用しているとメチャクチャにハッキング攻撃を食らいます。メチャクチャです。
WordPressハッキングの手口で最多を誇るのがログインページから投稿者スラッグを利用してログインIDを割り出し、適当なパスワードを放り込んで無数に繰り返すブルートフォースアタック(総当たり攻撃)です。
このブログは投稿者スラッグを変更しているのでハッキングされたことはありませんが、それでも1日だいたい50~80回くらいの攻撃を受けています。
なんだかハッキングというと中国だと思われがちな偏見が渦巻いていますが、僕が管理しているwordpressサイトを全体的に見ても、圧倒的に多いのがフランス、アメリカ、ウクライナですね。
もくじ
WordPressハッキングの手口とは?
WordPressはログインページのURLが決まっていて、デフォルトだと
http://●●●.com/wp/wp-login.php
というURLになっています。
ドメイン名はアドレスに表示されているし、インストールディレクトリ(上記だと/wp)はブログ中の画像のURLでもチェックすれば分かります。
問題はこのwp-login.phpというログインページのURLが攻撃の糸口になってしまう点にあります。
対策をしていない限り、ログイン認証は何度失敗してもロックがかからないので何度でもログインを試みることができてしまい、スクリプトを組んで何百何千何万と試行するうちにログインできてしまうこともあります。万回やっても一晩で終わるかもしれません。
そしてログインIDは、何も対策をしていないとバレバレだったりします。
wordpressで記事を書くと記事末に投稿者名が付与されます。
これはその投稿者の投稿一覧ページへ遷移できるようになっていて気が利くなぁ、と思ったら大間違い。
なんとここに表示されているのはデフォルトだとユーザーIDと同一になっているため、これをすっぱ抜かれてハッキングされます。
これは投稿者スラッグと言いますが、何の対策もしていないブログがかなりあります。
WordPressのセキュリティ対策:まずはログインURLを変更しよう
ハッキリ言ってこれだけでWordpressの不正アクセスの99.99%くらいがブロックできます。
.htaccessを書き換えてプラグインを使わずに実装する方法もありますが、プラグイン使ったほうが初心者でもわかりやすいのでプラグインを使うやり方を解説します。
今回利用するのは
Login rebuilder
というプラグイン。
これは簡単にログインページのURLを変更できる便利なプラグインです。
インストールして有効にすると、メニューの「設定」に「ログインページ」という項目が現れるのでそちらをクリックします。
Login rebuilderの設定
「ログインページ」をクリックしてLogin rebuilderの設定を行います。
無効なリクエスト時の応答
「サイトトップへリダイレクト」でいいです。
これで、デフォルトのwp-login.phpにやってきたマヌケなやつらは根こそぎサイトトップへぶっ飛ばされます。
ログインファイルキーワード
設定ページを開くたびに自動生成されるのでそのままでOK。
新しく生成されるログインページと連携をするためのキーワード?かな?
新しいログインファイル
これが新たなログインURLとなるファイル名。
好きなファイル名でいいですが、推測されづらく且つ自分でわかりやすいものにしておこう。
ちなみに忘れてしまっても、ftpでWordpressをインストールしたルートディレクトリを参照すれば、ここで入力したログインファイル名でファイルが存在しているので確認できます。
第2ログインファイル
グループで運営していて、管理者と編集者を分けたい場合などに。
あんまり使う機会がないなぁ。
ステータス
プラグインの機能を有効にする場合は「稼働」にチェック。
当然、稼働にチェックを入れます。
ログ保存
どうでもいいです。
気になる人は「無効なリクエスト時のみ」にチェックくらいでいいかなと。
著者ページへのアクセス
投稿者ページへのアクセスをどうするかという設定。
「404ステータス」にしておけば安全ですが、グループで運営している場合など、投稿者スラッグで一覧を見たりできるので残しておきたい場合もあると思います。
投稿者スラッグを変更する方法があるので後述を参照してください。
oEmbed
これでハッキングしてきたやつをまだ見たことありませんが。
ソーシャルとかそういうコンテンツをブログに埋め込む際にユーザーIDを推察できるような情報が付いている場合があるので、それをシャットアウトするための設定です。
「レスポンスデータの投稿者名とURLを隠す。」
「head要素内のリンクとレスポンスデータを出力しない。」
どちらでもいいと思います。
その他
これはもう蛇足みたいな設定ですが。
僕は「登録フォームを拒絶する。」だけチェックしてます。
設定を変更したら保存して、試しにログアウトして先ほどの新しいURLでログインページが表示されるかチェックしてみよう。
ログアウトしたくないなら、ブラウザのシークレットモードで新しいURLを開いてログインを試すといいです。
また、元のwp-login.phpへアクセスしてみて、トップへリダイレクトされるかもチェックしておこう。
WordPressのセキュリティ対策:投稿者スラッグを変更する
Edit Author Slug
というプラグインを導入します。
Edit Author Slugをインストールして有効にしたら、メニューの「ユーザー」にある「あなたのプロフィール」をクリック。
ちなみにこのメニューはEdit Author Slugを入れていなくても元からあります。
Edit Author Slugを導入すると一番下に新たに項目が追加されます。
ここでカスタム設定の空欄に好きな投稿者スラッグを記入します。
たぶん英数字限定にしたほうがいいです。
これで、記事末尾にある投稿者名のリンクが、ここで入力したスラッグに変わります。
ということで、ログインページのURL変更+投稿者スラッグ変更をやっておけばハッキングされることはまずありません。プラグインで簡単に設定できるのでぜひ導入しておきましょう。
ログインページのURLは推測されづらいものにして、投稿者スラッグも実際のIDとはかけ離れたものにしておくことをおすすめします。