b20150205nz

みなさんこんにちは。
今回は、弊社でも採用しているCMS(コンテンツマネージメントシステム)である
「WordPress」のセキュリティなどについて少しお話したいと思います。

最近WordPressのサイトを狙った攻撃が増えています。
WordPressは、現在世界で一番のシェアを誇るCMSです。
世界中でCMSと呼ばれるシステムで作られたサイトのうち、
約60%がWordPressとも言われています。

参考:W3Techs http://w3techs.com/

これだけ普及しているということは、何か困ったときに情報が沢山出てきたり、
欲しい機能を実現するプラグインが沢山あったりというメリットがある一方、
悪いことを企む人にとっても狙われやすいという側面もあるのです。

よくある攻撃

WordPressに対するよくある攻撃方法としては次のものが挙げられます。
(WordPressだけに限ったわけではありませんが)

ブルートフォースアタック(総当たり攻撃)

自動プログラムを使って様々なパスワードの組み合わせを延々試し続けたらいつかヒットするであろう、
という単純な攻撃ですが、パスワードが単純なものだったりすると、突破されてしまいます。

SQLインジェクション

SQLを使ってデータベースを不正に操作します。

・クロスサイトスクリプティング(XSS)

悪意のあるスクリプトを埋め込みます。

・ピンバック機能を悪用したDDoS攻撃

元々WordPressに備わっている機能で、自分の投稿に貼られたリンクを知らせるものですが、
これを悪用してDDos攻撃(大量にアクセスを集中させる攻撃)の踏み台にされる。

http://www.atmarkit.co.jp/ait/articles/1403/13/news133.html

などなど他にも色々とありますが、主にはこんなところでしょうか。

どのような対策が効果的か

Webにサイトを公開している以上、攻撃を100%防ぐことは難しいかもしれませんが、
いくつか気をつけることで安全性を上げる事は可能です。

様々な手法がありますが、テーマ制作者や開発者ではなくユーザーとしてやっておいたほうがいいのは次のものがあります。

WordPressやプラグインを最新バージョンに保つ

基本中の基本ではありますが、PCなどもWindowsアップデートをしないと危険性が増えていきます。

WordPressも同じく、本体やプラグインのアップデートがあれば最新版に保つことで脆弱性などのリスクを無くすことが出来ます。

SQLインジェクションやXSSなどは、古いWordPress本体やプラグインやテーマの脆弱性をつくことが多いので、最新版にすればこれらの危険性が下がります。

(追記)大きくバージョンアップをする際はバックアップを取るようにしましょう。

管理画面やログインへの海外からのIPを制限する

例えば「CrazyBone」などのプラグインがお薦めですが、これはログイン履歴を保存しておくことが出来るプラグインです。
ログインに失敗した履歴も取れるので、どこからのアクセスかも知ることが出来ます。

これを見ると、圧倒的に海外からのアクセスが多いんです。

なので、ログインURLや管理画面への海外からのIPアドレスでのアクセスを制限すれば、かなり防ぐことが出来ます。

↓実際にログイン履歴を見てみると、このように海外からログインエラーの履歴がありました。
この例は中国ですが、他にも世界各国からアクセスがあります。

loginerror

パスワードを複雑で予想しずらいものにする

銀行のパスワードなんかも、電話番号や誕生日にはしてませんよね?
もし、WordPressのログインパスワードを簡単なものにしていたら、ぜひ変更してください。

管理画面→ユーザー一覧から変更が出来ます。

また、下に「強度表示器」というものがあって、パスワードの強度を知らせてくれます。
出来ればこれが「強力」になるようにしてください。

例えば、英語4文字のパスワードなどは、「1秒以下」で解読されると言われています。

参照:独立行政法人 情報処理推進機構「パスワードの最大解読時間測定 【暗号強度別】」
http://www.dit.co.jp/service/report/security-threat_v3.html

10桁以上で大文字・小文字・数字などを組み合わせると「約6年」となります。最低でもこれ以上のパスワードにした方がいいです。
※最短のものはzip暗号化ファイルにしたものの解読時間です。

それと、なるべく他のサービスとパスワードは同じにせずに
別のパスワードを設定してください。
同じにしてしまうと一個突破されると芋づる式に不正ログインされてしまいます。

「そんないくつもパスワードなんて覚えられないよ」という声もよく聞かれます。
確かに複雑なパスワードをいくつも覚えておくことは難しいです、
そういう時はパスワードの管理ツールなどの導入を検討してはいかがでしょうか。

1Password、ID Managerなどのツールだと、複数のサイトやサービスなどのIDやパスワードを一元管理できるのでお薦めです。

万が一の時に備えてバックアップを定期的に取っておく

もし、不正アクセスを受けたり、改竄されてしまった場合、最悪の場合はサーバーを初期化する必要があります。
その場合、バックアップデータがあると復旧することが出来ます。
定期的にデータをコピーしておいたり、データベースのバックアップを取る事をお薦めします。

プラグインでもそのようなものがありますので、ぜひ導入をご検討ください。

BackWPup https://wordpress.org/plugins/backwpup/
WP-DBManager https://wordpress.org/plugins/wp-dbmanager/
など

他にも最近ホスティング会社さんなんかもお薦めしてるのが、「SiteGurad WP Plugin」ですが、
これは色々と自分のサイトに合わせたセキュリティ施策が選べるので結構便利でいいなーって思います。

http://www.jp-secure.com/cont/products/siteguard_wp_plugin/index.html

まとめ

WordPressのセキュリティについて色々と書きましたが、

「アップデートをして動かなくなったらどうしよう」
「バックアップを取っても復旧はどうすれば?」
「よくわからないから任せたい」

と言った声が多いのも事実です。

そこで、現在弊社では、制作しましたWordPressサイトの保守・メンテナンスを
代行するサポートプランを作成中です。


詳細に関しましては、現在調整中ですので、決定しましたら再度ブログで告知いたします。

※サーバーの仕様やWordPressのバージョンや他社様の制作サイトなどによっては、
初期費用を頂いたり対応自体が出来ない場合もございますので、予めご了承ください。

この記事を書いた人

野末 泰裕
野末 泰裕制作課 テクニカルディレクター

制作部では更新やマークアップやWordPressの実装などを担当。
WordPressと酒と音楽とガンダムとももクロが好きです。
実は音大卒でピアノとトランペットやってました。
【WordPressコミュニティ活動歴】
WordFes Nagoya 2014 – 2016 副実行委員長
WordFes Nagoya 2013 実行委員長