ロリポップユーザーを中心に、「WordPressが乗っ取られた」「ハッキングされた」「改ざんされた」というトラブルが発生しているようです。私はあまりセキュリティ周りのことは詳しくないのですが、そんな私でもスグに実装できるWordPressのセキュリティ対策の基本を、この機会にまとめておきます。
1:パスワードは自動生成ツールで複雑なものを生成する
今年の4月頃から話題になっていた「ブルートフォースアタック」を防ぐには、パスワードを複雑なものにするのが最も基本的な対策だと思います。
■ブルートフォースアタックとは?
Brute Forceとは「力ずくで、強引に」という意味で、文字どおり力ずくで暗号を解読して、パスワードを取得する攻撃手段のことを指す。
セキュリティ用語事典[ブルートフォースアタック]
WordPressの場合は、ユーザー名とパスワードを手当たり次第に試して、管理画面にログインしようとすることを指します。ちなみに、この記事を書くまで「ブルートゥースアタック」だと思っていたことは内緒です。これだとオードリー春日のギャグみたいになってしまいます・・・。
私の場合はID・パスワードの管理に「ロボフォーム」を使っていますので、ロボフォームの「パスワード自動生成機能」でパスワードを生成しています。WordPressに限らず、Amazonとか楽天とかクレジットカードを登録しているサイトのパスワードは、全てランダムで複雑なパスワードを設定するようにしています。
ロボフォームだけでなく、パスワードを自動生成できるサイトもたくさんあります。簡単に覚えられるようなパスワードを使っている場合は、WordPressに限らずランダムなパスワードに変更したほうが良いと思います。
参考:いつものウェブサイトへワンクリックでログイン「ロボフォーム」
参考:パスワード自動生成サイト (Automated Password Generator)
2:ユーザー名にadminを使わない
これも4月のブルートフォースアタック騒動時に呼びかけられていました。「adminを使うことは問題ではない。重要なのはパスワードだ」説もありますが、adminよりも余計に推測されやすいユーザー名に変更しない限り、こちらも変更しておいたほうがより安全だと思います。
adminを使っている場合は、WordPress管理画面の「ユーザー」→「新規追加」から新規ユーザー名を追加して、管理者権限を与えて、adminユーザー投稿を割り当ててから削除すれば、新しいユーザー名に変更できます。
参考:WordPress のユーザー名 admin を変更してみる | 8bitodyssey.com
3:WordPress本体&プラグインは最新バージョンを使用する
WordPressのバージョンアップは、機能性の向上だけではなくて、セキュリティの向上や修正を含むバージョンアップが多いです。それなのに、うかつにバージョンアップすると、「画面が真っ白になってログインできなくなった!」というトラブルも発生しやすいため、ついつい後回しにしがちです。
ですが、セキュリティに問題がある状態で使い続けるほうが危険ですので、遅くてもレンタルサーバーの自動インストール機能が最新のWordPressに対応したら、同様に最新版にアップデートするべきだと思います。
私の場合は、レンタルサーバーの対応は待たずに、まずは同じプラグインを使っているテスト用サイト・サテライトサイトで試してから、最後にメインサイトを最新版にバージョンアップするようにしています。
現在のWordPressのバージョンは管理画面の右下に表示されています ↑
4:使用しなくなったプラグインは停止ではなく「削除」する
これはどういう理由からなのかわかりませんが、よく言われていることです。おそらく、前述の最新版へのバージョンアップ作業を「使用していないから」という理由で放置したままだと脆弱性が高まるので、その予防策なのかなと思っています。
使わないなら削除したほうが更新作業の手間が減りますので、私は使わなくなったプラグインは全て「削除」するようにしています。
5:ファイルのアップロード時には「FTPS」で暗号化する
FTPソフトを使ってサーバーに何かファイルをアップロードする時は、FTPではなくて暗号化された「FTP over SSL(FTPS)」を使うことで、FTPパスワードの抜き取られるのを防止できます。この対策はWordPressに限らず、HTMLサイトのアップロードでも同様です。私はFTPソフトは「NextFTP4」を使っています。
NextFTP4の場合は、該当のホスト→「編集」→「高度な設定」から暗号化設定できます。
参考:Next FTP 4 – ツリー表示対応 FTP over SSL対応のFTPソフト
6:パーミッションが安全性の高い値になっているか確認する
FTPソフトで、パーミッション設定が「777」や「666」(書き込み可)になっていないか、特に「wp-config.php」が書き込み可になっていないかどうかを確認します。もし、「書き込み可」になっていた場合は「400」に変更します。
●パーミッションの変更方法
NextFTP4の場合は、該当のファイルを右クリックすると
「パーミッションの変更」という項目がでてきますので、そこから変更します。
また、「.htaccess」のパーミッションもロリポップのサイトで「604」を推奨していますが、WordPressを自動インストールした場合は「644」になっていましたので、「604」に変更しています。
参考:サイト改ざんへの対策をお願いいたします – ロリポップ!レンタルサーバー
7:「Simple Login LockDown」で不正なIPをロックする
「Simple Login LockDown」とは、同じIPから連続してログインの失敗を検知すると一定期間、管理画面にログインできなくなるプラグインです。デフォルト設定では「5回」失敗したら「60分」ログインできないようになっています。
プラグインをインストール後、WordPress管理画面→「設定」→「表示設定」から設定できます。
参考:WordPressへの不正アクセスから身を守るSimple Login Lockdown – SEOのホワイトハットジャパン
8:「狂骨」で不正なIPが侵入を試みていないか監視する
WordPress のログイン履歴を保存する「「狂骨」(Crazy Bone)」というプラグインがあります。ログイン・ログアウトした履歴だけではなくて、ログインに失敗した履歴も見れるので、何度もログインエラーをしているIPは「WP-Ban」でBANしてやると、不正ログインを未然に防止できます。
プラグインをインストール後、「ユーザー」→「ログイン履歴」から確認できます。ただし、当ブログは後述する国外IPのブロック設定をしていることもあるせいか、不正ログインは一件も確認できませんでした。
参考:WordPressへの不正アクセスログを記録して見せてくれるプラグイン Crazy Bone – 頭ん中
9:WordPress管理画面に「Basic認証」をかける
「WP Admin Basic Auth」というプラグインを使うと、管理画面にのみBasic認証をかけることができます。管理画面に二重にロックがかかるので、不正アクセスの侵入障壁を高めることができます。
参考:WordPressのログイン・管理画面にBasic認証をかけるプラグイン「WP Admin Basic Auth」を作りました | Stocker.jp / diary
10:WordPress管理画面を「Google2段階認証」にする
これは設定と毎回のログインが面倒くさくて私はやっていないのですが、管理画面にワンタイムパスワードを設定できるGoogle2段階認証を実装すると、強力なセキュリティ対策になります。
参考:Googleの中の人も使ってるらしいWordPressでGoogle2段階認証を使うプラグイン | アンギス
参考:【画期的!!】1分でWordPressにGoogle認証システムをいれる簡単な方法 | More Access! More Fun!
また、「魍魎(もうりょう・みずは)」というプラグインを使うと、面倒なGoogle2段階認証を使わずに二段階認証が可能になるようです。
参考:WordPress で二段階認証を可能にするプラグイン「魍魎」 | dogmap.jp
11:管理画面の「国外IPアクセス制限」機能を使う
「ブルートフォースアタック」を仕掛けてくるのは、ほとんどが海外の変な人の犯行です。なので、日本国外のIPアドレスの接続を拒否してしまうのが確実です。この「国外IP制限機能」があれば、海外から管理画面への接続自体不可能になりますので、当記事でご紹介したどのブルートフォースアタック対策よりも強力な気がします。
安心と信頼の「エックスサーバー」系列は全てこの機能に対応済みです。他には、ミニバード、ファイアバードを運営する「ネットオウル」系列も対応済みです。
当メシオプレス公式サイトはロリポップで運営していたのですが、1週間前に「エックスツーサーバー」に乗り換えたばかりです。ロリポ利用時より管理画面も軽くなりましたし、この「国外IPアクセス制限」機能もありますので安心です。何も設定しなくてもデフォルトで有効化されています。
参考:「WordPressの管理ツール」に対するセキュリティ向上を目的とした国外IPアドレスからのアクセス制限の実施および「WordPress国外IPアクセス制限」機能の追加について
以上、最後の国外IP設定はサーバー会社に依存しますが、それ以外の項目は今すぐ対策できますので、必要なものは対策しておくと良いと思います。
ロリポップのWordPress大規模攻撃の原因は?
2013年8月28日に発生したロリポップへの大規模攻撃の原因は、当記事を書いている2013年8月30日AM8時時点では、ロリポップの公式サイトに下記のように書かれています。
[2013/08/29 10:57 時点]
大規模な攻撃によりWordPressをご利用中のお客様の管理画面から不正アクセスにより、データの改竄や不正ファイルの設置がされた。
「管理画面からの不正アクセス」ということは、やはりブルートフォースアタック?かと思ったら、
[2013/08/29 22:40 時点]
WordPressのプラグインやテーマの脆弱性を利用し、不正なファイルがアップロードされました。またそのファイルを利用し、wp-config.phpの設定情報が抜き出されることにより、データベースの書き換えが行われ、WordPressサイトが改ざんされました。
「WordPressのプラグインやテーマの脆弱性を利用」とありますので、ブルートフォースアタックではなかった模様です。ブルートフォースアタックの場合は脆弱性があろうとなかろうと、IPのアクセス制限をかけていない限り、総当り攻撃でユーザー名とパスを突破されたら管理画面に入られてしまいますので。
ということは、今回の場合は、
2:ユーザー名にadminを使わない
7:「Simple Login LockDown」で不正なIPをロックする
9:WordPress管理画面に「Basic認証」をかける
10:WordPress管理画面を「Google2段階認証」にする
11:管理画面の「国外IPアクセス制限」機能を使う
↑これらは直接関係はなくて、
6:パーミッションが安全性の高い値になっているか確認する
↑ここの対応ができていなかったということでしょうか?
実際に被害にあった人たちが、どういう状況で運営していたいのか気になるところです。
結局、現段階では何が原因だったのかハッキリしませんが、今回被害に合わなかったロリポップユーザーの人も、他社サーバーの人も、
- WordPressとプラグインが最新バージョンになっているか
- パーミッション設定が安全性の高い値になっているか
この2点は今すぐ確認したほうが良いと思います。
なお、冒頭でもお伝えしましたが、私はセキュリティ周りのことは専門家ではありません。今回の記事でも何か的外れなことを書いているかも知れませんので、ロリポップの公式情報を事態が収束するまでチェックし続けたほうが良い(※)と思います。
ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について
●本日のまとめ
WordPressは非常に便利で初心者でも使いやすい反面、セキュリティ面が弱いのが唯一にして最大のデメリットなので、WordPress本体やプラグインは最新バージョンに保つなど、各自でセキュリティ対策はしっかりやっておくことが大切。
※2013年9月10日追記
ロリポップから大規模攻撃について最終結論が出たようです。
改ざん要因に対する初期対応として、短時間に大量アクセスを引き起こすブルートフォースアタックとWordPressの脆弱性に原因がある可能性と対処方法を掲載いたしました。しかし、引続き調査をおこなった結果、攻撃の要因が未インストール状態のWordPress とサーバーのパーミッションの設定不備にあることが判明いたしました。
つまり、ブルートフォースアタックだけでなく、WordPressの脆弱性も今回の騒動の原因とは関係なかったようです。ただし、当記事でご紹介したセキュリティ対策方法は、すぐにできる基本的な対策ばかりですので、今回の件に関わらず必要なものは取り入れておくことをおすすめします。
この記事へのコメント
この記事へのコメントはありません。