Wordpress初心者や最近放置している人に絶対してほしいアタック対策

今日の文章は、Wordpressを導入しているけど使い慣れていない人、セキュリティについてよく分からない人を対象にしてあります。緊急セキュリティ対策を重視した為、理解しやすさを重視した為やや大ざっぱなところがありますが、ご了承ください。 f:id:nakakzs:20171016135033p:plain  

Wordpressブログにものすごい勢いで不正ログイン試行

ここのところ、どのブログも諸事情(まあぶっちゃけ仕事の多忙なのですが)で放置状態になっておりました。それにより、ブログを毎日は監視できない状態になっていたのですが、Wordpressで構築しているブログ各種をたまに見るとどうも異常事態が多い。その際たるものは、「よくサーバ(VPS)が落ちるようになった」ということ。

実は、その原因の目星はついておりました。というのは、セキュリティ用に導入したプラグインで、「Limit Login Attempts 」というものがありまして、これは、ログイン認証において、何回目かのミスがあると一定時間ロックをしたり通知をしてくれるというセキュリティ用のプラグインなのですが、これについているメール通知機能において、「Too many failed login attempts」という警告メールが頻繁に来るようになったのですね。自分は同一ドメインより3回ログイン認証まちがえると30分ログインできなくなり、それを3回続けるとほぼ数ヶ月遮断&メールにしておいた(つまり9回アタックで長期遮断)、それで該当したのが以下の通り。実際はこれの何倍もあります。

ブログへのアタック通知

つまりは自分以外のだれかがログインを試みては失敗して、ロックされているのが繰り返されているというものです。今年からポチポチはあったのですが、夏より急激に増加した感じがします。

 

古来から使われてきた不正ログイン手法「ブルートフォースアタック」

この犯人は、「ブルートフォースアタック」というものと推測されます。

セキュリティ用語事典[ブルートフォースアタック]

つまりはBOTで総当たりでくりかえしアタックをかけ、侵入を試みるというもの。これはもうだいぶ昔からある手なのですが、最近ではWordpressの広まりにともなって、狙ってくる例が増えているようですね。

さて、最近Wordpressへのブルートフォースアタックですが、自分のところとネットの情報を調べた結果、以下の傾向が見られました。同時に考えられる理由も記します。

・国、IPアドレスなど様々(おそらくアタックで乗っ取られたPCから、さらにブルートフォースアタックを発信している)

・多くが「admin」での不正ログイン(これは昔のバージョンのWordpress初期ユーザー名が「admin」で、パスワードも数文字の自動生成だった為)

・ドメイン名をユーザー名としてログインを試みる場合もある。

・その他分からないユーザー名(定番かランダム)で入り込んで来る場合もあり(「root」など)。

 

参考までに、、「Limit Login Attempts」で表示された自分のアタックされたログです。「admin」のほかに、このブログのドメインである「nakakzs」なども混じっていますね。

LimitLogin

ここ最近急増したのは、おそらくは乗っ取られたパソコンから更に発信され、 それが急増しているせいと思われます

というわけで、逆に言うと、Wordpressを以下の状態にしている人は、そのうち不正アタックを成功させられる、もしくは既に乗っ取られている可能性が高いと言えます。

 

・ユーザー名に「admin」を残している(普段使っていなくても)。

・「root」「administrator」など定番のものをユーザー名にしている。

・ドメイン名をログインユーザー名にしている(例えばnakakzs.comのうちの場合「nakakzs」)

・エントリー下部などに表示される執筆者名をログインユーザー名にしている。

・最近やけに落ちる。もしくは重い(特に無用な発信アクセスが多い場合、すでに乗っ取られている可能性も)。

・パスワードが8文字以下(インジケータで「強力」以下)。

・セキュリティプラグインを導入していない。

・ブログ停滞などで放置してそのまま。

 

といったものです。これらのどれかに当てはまる場合は、ブログがアタックを食らっていないか、もしくはすでに乗っ取られていないか、早急な見直しが必要と思われます(正直、ちょっとした企業で使っているWordpressで、実は詳しい人がいない場合などが一番危なさそうな気が)。

 

不正ログインの確認方法

このように、ブログレンタルなどのWebサービスなどより、サーバに直接触れる性質の強いWordpressが個人に広まったことにともなって、もはや個人でも不正アクセスの恐れが高くなったと言えるでしょう。

ではどうやって見直すか、というと、慣れている人ならサーバに直接監視ツールを導入してそれを見たりするでしょうが、今日はあくまでもそこまで詳しくない人向けなので、簡単にWordpressプラグインを使って確認するのが一番簡単でしょう。

使うのは「Crazy Bone」というプラグイン。

Crazy Bone — WordPress Plugins

※追記(2017/3/8):一時期脆弱性が発見されて非公開になっていましたが、現在復活しています。

これをインストールして、ダッシュボードの「ユーザー」のところにある「ログイン履歴」に入り、上のフィルタから「全て」を選ぶと、今までのログイン履歴(失敗も含む)を表示してくれます。

Crazy Bone

上のはうちのですが、存在しない(消してある)「admin」に、海外から何度もアタックをかけられては失敗しているのがわかりますね。これが重くなる原因でもあり、万一侵入されると自分のところのセキュリティ問題だけではなく、踏み台として他のユーザーに迷惑をかける恐れも出てきます(たぶん上のアタック元も大半は乗っ取られたところと予想)。

ちなみに前述の通り、他にもドメイン名などありそうなところでアタックをかけてきている例もありました。

 

不正ログイン対策方法

では、いよいよ本番。これらをどう防ぐか、になります。

ユーザーから「admin」を消す

もし、現在でもユーザー名に「admin」を残している方がいたら、大至急消して、別のユーザーアカウントに管理者権限を移行してください。特に昔のWordpressのように、ランダムで生成された初期パスワードのままにしてある場合はなおさらです。権限を落として「購読者」で残してある人も、購読者での不正ログインが成功してしまうので、消してください。

消し方は、まず新規ユーザーで管理権限のあるユーザーを作るか、既存のユーザーに管理者権限を移し、それで新規アカウントにログインしなおしてから消すことになります。消すときに該当名の投稿を全部消すか、他のアカウントにアサインするかの選択があるので、アサインしてださい(選択を間違えて消すと後悔するので、バックアップを取ってからすることをおすすめします)。

 

ユーザー名をドメイン名と同じにしない

新規ユーザー名を作るときですが、注意が一つ。それはドメイン名と同じにしないということ。というのは、ドメイン名をユーザー名としてアタックしてくるケースが多いからですね、。また、ユーザー名は表示が選択できますが。そのままイコールユーザー名とするのは不正ログインのヒントを与えるので危険です。表示も別のものにしておきます。

ユーザー名の表示を日本語にするというのは、セキュリティ上よいと思われます(自分の場合「中杜 カズサ」と表示するようにしています)。

 

パスワードを強度インジケータが「強力」とするものに変える

ユーザーのパスワードを設定する時、最近のWordpressでは、パスワードの強さを測定するインジケータがついています。それが「強力」になるものを作成しましょう。最低でも10文字はほしいところです。

長いパスワードを考えるのがめんどくさい場合は、とりあえず普段よく使っているふたつのパスワードを連結してしまい、文字数を増やすという手段があります。とにかく原則長いほどパスワードのセキュリティは高くなります。

 

セキュリティプラグインの導入

前述したものの繰り返しになりますが、改めてプラグインの紹介。

「Crazy Bone」……ログイン履歴管理。怪しいログインがあったか、それが侵入したか見ることが出来る。

Crazy Bone — WordPress Plugins

「Limit Login Attempts」……ログイン制限設定。失敗した時にメールで連絡させることも可能。

WordPress › Limit Login Attempts « WordPress Plugins

■日本語化:Limit Login Attemptsの日本語化をしてみた

ほか、セキュア系のプラグインは数多くあるのですが、ここでは割愛します(理由は、これらのプラグインは導入時にまれに不具合が生じるので、初心者向けとしたここで話をやっかいにしたくないので)。とりあえず不正ログイン対策を施したら、導入を検討してください。

 

こまめにアップデート

まあこれはブルートフォースアタックに限らないのですが、利用者の増えたWordpressはすぐにセキュリティホールが発見され、それを攻撃する人も出てきます。故にたとえ最近書いてないとしても、アップデートだけはこまめにしておきましょう。

 

まとめ

ここに書きましたのは、とりあえず、の手段です。

分かる方でしたら、Wordpressの2段階認証を導入する、もしくは.haccessでしつこいIPを個別に封じるという追加手段もありますので、よりセキュリティを高めたい方は試してみてください。自分も.haccessでのアクセスコントロールは、これから様子を見ながら導入してゆこうと思います。