どうも、ブルーです。秋ですね。
季節がめぐるごとに「WordPressがクラックされたので、セキュリティ対策について調べてみました」的なブログ記事がソーシャル上で出まわり、そのたびにWordPressを扱うデベロッパー層が「また無意味な対策がはてブされてる…」と嘆くのが恒例行事のようになっております。例えば…
「WordPressのバージョンを隠す」
「データベースのプレフィクスを変更する」
「サブディレクトリーにインストールする」
うん、気休め程度かな…
「2年以上放置されている怪しげなセキュリティ対策プラグインを入れる」
そっちのほうがこええよ!
「サーバーのディレクトリー一覧の非表示」
それ見えちゃってるサーバー管理者では、何しても不安だよ!
とはいえ、そう思いつつも「これが決定版だ!」的な記事を書くのは勇気がいるものです。特にセキュリティ業界は怖いお兄さんが多…うわ何をするやめr
気を取り直して。
というわけで、WP-DではWordPressに詳しい執筆陣が揃っております。そんな優しいお兄さんたちに相談して、どんな対策よりまず先にこれをやれ!という鉄板の対策を10個選びました。一応難易度と優先度を勘案した順となっております。それでは行ってみましょー。
1. 常にWordPressの最新バージョンを使う、がんばろう
ええ、これが高いハードルであることは分かります。しかし、バージョンを上げたら動かなくなるような開発力しか無いところに発注するのは、そもそもが危険だと思うのです。バージョンアップにはトラブルは付きものです。ローカル環境でバージョンアップのテストをして動いても、本番環境で不具合があったりすることは珍しくありません。しかし、放置すればするほど最新版との乖離が大きくなり、バージョンアップが大変になります。都度都度のバージョンアップに対応できるパートナーを見つけておくと安心できそうです。
また、きちんとWordPressについて把握しているデベロッパーは、非推奨となり将来的に削除される機能は使わないように配慮したり、新しいバージョンが出る前にどういうアップデートがあるのか調査していたりします。ディレクターとしても、こういう情報は追いかけておくとよいでしょうね。
目安としては、メジャーバージョンで2つ以上離れることは、やはり避けた方がいいと思います。もちろん、発見された脆弱性によってはすぐにバージョンアップした方がいい場合もあります。WordPressのアップデートにどのようなセキュリティフィクスが含まれているかは、公式ブログをチェックすると良いと思います。
2. まずパスワード強度を上げる、これ常識
WordPressのパスワード認証の仕組みは、十分にセキュアです。具体的には、データベースのユーザーテーブルの中身がもろばれでadminのパスワードをハッシュ化した後の値がバレている前提でもログインできないように考えられています(もっとも、この前提は個人情報の流出のほうが問題になるでしょうが…)。ブルートフォースアタックについて心配する記事も多いのですが、原理上ふつうのWordPressユーザーが心配する必要はまずないと思います。なので、WordPressのパスワード認証で心配するべきは「弱いパスワードを使わない」ということに尽きます。
パスワード強度は The Password Meter のようなサイトでチェックできます(どこかと通信するようなパスワードチェックプログラムは逆に危ないと思いますが、このサイトはそうではないので大丈夫だと思います)。桁数を上げるのがもっとも効果的ですが、単に桁数を上げればいいというものではなく、組み合わせによっても強度が変わります。
個人的には Password Generator を使って High Security 設定で16文字のパスワードを使うようにしています。これなら The Password Meter で100%を獲得できます。8桁英数字程度の強度では、adminのパスワードに使うのは不安ですね。
3. パスワードをきちんと管理する、対策は人だ
全員同じパスワード…とかもってのほかですし、複数のサイトで同じパスワードを使っているのもやめましょう。ひとつ漏洩すると芋づる式です。
また、オフラインの対策は重要です。目につくところにポストイットで貼ってあるとか、テキストファイルに保存してデスクトップにおいてあるとかもやめましょう。LastPassなどのサービスを使うほうがいいとおもいます。
退職した社員のアカウントを停止するのも、立派なセキュリティ対策です。意外と元社員がなにか恨みを抱いていてログインしてデータを消した系のトラブルは世の中にあるものです。
4. FTPよさようなら
2009年から流行したガンブラー系のウイルスによる、WordPressがクラックされた!マルウェア、バックドアを仕込まれた!系のトラブルを防ぐには、最も有効な手段のひとつです。未だにWordPressのフォーラムに同様のトラブルが書き込まれますので、この手口はしぶとく生き残っているようです。流行期は2010年くらいですが、その頃はまたか、というくらい複数のクライアントのサイトで感染が確認されました。
ガンブラーとはパソコンに感染するマルウェアで、感染するとFTP通信を傍受してサーバーのアクセス情報をゲット、正規の通信でサーバーにアクセスし、不正ダウンロードを行うコードをサーバー上のHTMLやPHPに埋め込みます。そのサイトを閲覧したユーザーのパソコンに感染すると同じことを繰り返します。この仕組みは非常に感染力が高く、ガンブラーは世界的に大流行しました。
FTPを使わないことがなぜ対策になるかというと、FTP通信は暗号化されず、パスワードも平文でサーバーに送られているからです。SFTPやFTPSを使うと、通信が暗号化されます。最近は価格帯の低いレンタルサーバーでも使えるようになって来ましたし、セキュリティ対策としてそもそもFTPサーバーを起動しないということも当たり前になってきたのではないかと思います。FTP通信が使えるサーバーであっても、使わないようにしましょう。
難しいのは、制作を受託している自分だけではなく、お客さんにもFTPを使わないようにしてもらうことです。最も安全なのは、お客さんはサーバーに直接アクセスしない!ファイルのアップロードは必ずWordPressのアップローダーを使ってもらうことです。安易にFTPでアップロードするような運用フローを提案しないことが必要ではないかと思います。
5. ウイルス対策ソフトを入れる、何でもいいわけじゃない
これもガンブラーなどWordPressをインストールしたサーバーにアクセスするパソコン自体がクラックされるのを防ぐために必要です。ガンブラー流行期は、ウイルスチェックソフトで検出されなかったことも被害を広げました。Web制作者は特に検出力の高いセキュリティソフトをインストールしておくべきでしょう。セキュリティソフトの性能は、AV-Comparativesなど第三者による検証を参考にすると良いと思います。
6. Timthumb Vulnerability Scanner プラグインを入れる
Timthumb Vulnerability Scanner は、Timthumb.php というライブラリの一部バージョンに存在する脆弱性をチェックするプラグインです。この脆弱性によるクラッキングもメジャーですので、まずはチェックしておくべきでしょう。
7. 管理画面をSSLにする
SSLを使うことでパスワードが暗号化されて送信されますので、通信の傍受による漏洩を防ぐことができます。Codex の Administration Over SSL ページに設定方法が記載されています。ただ、全てのサーバーでSSLが使えるわけではないので、この順位としました。
8. 管理画面にIP制限をかける
wp-adminとwp-login.phpにアクセスできるホストを信頼できるIPアドレスのみに制限する方法です。たとえパスワードがそのまま外部に流出したとしても、社外から管理画面に入ることができなくする対策です。ただ、これは自由にログインさせるコミュニティサイトでは無理ですし、そうでない場合でも利便性が低下しますので、ケース・バイ・ケースで行うべき対策でしょう。
9. exec-PHPプラグインを使わない
投稿や固定ページの本文に書いたPHPコードを実行できるようにするプラグインですが、存在自体がセキュリティホールです。全ユーザーが脆弱性のない完璧なPHPコードを書けるという特殊な状況でない限り使うべきではないでしょう。本文中で何か動的な要素を埋め込みたい場合は、ショートコードを使いましょう。
10. Theme-Check, Plugin-Checkプラグインでチェックする
Theme-Check プラグインは、テーマのコードを検索し、WordPressの品質ガイドラインに準拠しているか調べてくれるプラグインですが、不正なコードを発見するのにも使えます。Plugin-Check プラグインはそのプラグイン版です。WordPress本体が安全でも、テーマにセキュリティホールが存在する可能性はあります。使ったことがないテーマやプラグインをダウンロードして使用する際には、有効化する前にチェックしておくと良いと思います。
また、これらのプラグインの動作時にデバッグモードを有効にしますが、デバッグ情報が見えることは逆にリスクを高めます。普段は必ずこれらのプラグインとデバッグモードを無効化しておくか、ローカル環境でのみ試すのがよいでしょう。
信頼性の高いWordPressテーマを作るためのTheme-Checkのすすめ
プラグインの表示が開発者向けなので難易度を考慮して10番目にしましたが、できればこのプラグインによるチェックは必ずやるくらいでいいんじゃないかと思います。
以上、WordPress使いのためのセキュリティ対策をご紹介してきました。WordPress関係ない対策のほうが多くない?と思われるかもしれません。しかし、まずは自身のマシンとパスワードをしっかり管理することが必要だと思います。やはり最大のセキュリティリスクはWordPressを使っていることではなく、あなた自身、なのです。
そのうえで、意味もわからずにセキュリティ対策のブログ記事を鵜呑みにしてアヤシげなセキュリティ対策をしてしまわないようにしましょう。リスクをゼロにすることは不可能なのですから、その対策をしてどのような効果があるのか?何から守るための対策なのか?分かった上で行うことが重要です。例えば、ユーザーがファイルをアップロードできるようなコミュニティサイトをWordPressで構築している場合、外部からの攻撃よりユーザーの不正な操作に対する対策が優先度が高いでしょう。
また、過去に流行したクラッキングの事例は、いずれも気づきにくい、新しい手法であったことが流行の原因です。優秀なWordPressディレクターを目指すのであれば、ソーシャル上で流れるセキュリティ関連のニュースにも敏感になっておきましょう。より正確な情報を早く得たい場合はJVNのRSSを購読するのがおすすめです。
さらに詳しく:
- Codex :: Hardening WordPress … WordPressに特化したセキュリティ対策については、実はCodexに網羅されています。当記事を読んでさらに詳細なWordPressのセキュリティ対策について興味を持った方は、まずこちらを読んでみてください。
- Exploit Scanner プラグイン … マルウェアなどによるWordPressのコアファイルの改ざんを検知できるプラグインです。Googleから警告を受けるなどしておかしいな?と思ったら、まずWordPressのコアがやられているかどうか、判断できます。WordPress日本語版でこのプラグインを使うには、日本語版専用のハッシュファイルが必要です。
- Smashing WordPress :: Common WordPress Malware Infections … バックドア、ドライブ・バイ・ダウンロード、ファーマ・ハック、悪質リダイレクトに分けて詳細に対策を解説。
- ja.naoko.cc :: 怪しい WordPress テーマ・プラグイン・ブログ記事を見分けるための小ネタ
- Tokyo SOC Report :: WordPressを利用したWebサイトへの改ざん攻撃の増加
著者情報
- 辛口トークでお馴染みの不健康男子です
最新の投稿
- 考える。2013年7月12日WordPressのプラグインのセキュリティについて、少し真面目な話をします。
- 制作あるある2013年7月5日はてブで爆釣れする見積書の作り方
- 考える。2013年6月27日ウェブ制作の見積もりを金額付きで晒してやろうじゃないか!
- WordPress2013年4月1日WordPressで仕事ができるってどのレベルを言うんだい?