ご存知の方も多いとは思いますが、WordPressは攻撃者によく狙われます。
毎月のようにセキュリティパッチが出て何らかの「脆弱性の対応を行いました。」という記述があります。
では、それだけ脆弱性の多いプログラムなのでしょうか?
WordPressの脆弱性が大問題となることが数年に1度発生しています。直近では、2017年の1月末に公開された脆弱性の影響で、世界中の数百万サイトが改竄の被害にあったようです。
しかし、WordPressはオープンソースとして運営されているため、リリースまでに何人ものスペシャリストのチェックが入っているため、一般的なシステムに比べても堅牢なシステムとして構築されています。
ただ、逆にオープンソースであることと、世界中で広く使われているが故に、世界中の多くの悪意ある人が脆弱性を探し、隙が出来ることを虎視眈々と狙っている状態です。
手軽に導入できることがメリットのWordPressなので、個人ブログや中小企業のホームページに使われていることが多く、完璧なセキュリティ対策をする時間や予算がないのが普通だと思います。
そんな中でも、これだけやっておけば取り敢えずは大丈夫でしょう!というものを集約しました。
Contents
絶対にやっておきたい対策
重要情報を保持しない
1つ目が技術的な話ではなくて申し訳ないですが、個人情報等、万が一の事態があると影響の大きい情報はWordPressに登録しないようにしましょう。
どうしても重要情報の保存が必要な場合、セキュリティ対策専門の会社によるチェックを受ける、該当部分のみセキュリティを売りにしているASPサービスでデータを保持してAPI等で取得するような設計にする等の対策をしっかり行いましょう。
WordPress本体、プラグインを最新バージョンに保つ
ログインしてアップデートの通知が来ていれば更新するようにしましょう。
利用しているプラグインやカスタマイズ内容によっては、更新で動かなくなってしまう可能性もあるため、事前にバックアップの取り方、バックアップへの復旧のさせ方は調べておきましょう。
また、企業サイト等、少しでもサイトが見れなくなるリスクを回避したい場合、ステージング環境として別の場所に本番と同じ環境を用意して、事前にアップデートをかけて良いか確認するようにしましょう。
管理画面のID/PWの管理を行う
管理画面のパスワードをランダムな英数字記号を混ぜたランダムな文字列にしましょう。
WordPress自身にパスワードのランダム文字列を発行する機能が付いているので、そこで作られた文字列であれば大丈夫です。
定期的に変更する必要はありませんが、企業サイトの場合、ID/PWを知っている人が退職する場合等は新しいパスワードに変更するようにしましょう。
世界中のハッキング事件の大半はソーシャルハッキングと言われる、ID/PWの漏洩や生年月日等からパスワードを推測する方法による被害です。
サイト管理用PCのセキュリティ対策
FTPや管理画面にアクセスするサイト管理用のパソコンのセキュリティ対策をしっかり行いましょう。
ウィルス対策ソフトを入れるのは当然として、SFTPまたはFTPSで接続をする、FTPツールのマスターパスワードの設定を行う(またはパスワードをツールに保存しない)といった内容です。
管理画面や入力フォームのSSL化
WordPressのセキュリティを強化しても、通信経路が暗号化されていないと途中でデータを覗き見られてしまい、情報漏洩が起こるリスクもあるため、SSL化して情報を守りましょう。
SSLは3種類ありますが、大きな企業の場合やガラケー対応等の特殊な要件がなければ、安さ優先で選択して問題ありません。
SSLの種類
最近のレンタルサーバは無料のSSL、Let’s Encryptが利用できます。
特に理由がなければ無料の恩恵を受けましょう!
無料のSSL Let’s Encryptが使えるレンタルサーバ
ファイルのパーミッション設定の確認
レンタルサーバーを利用する場合は、ファイルのパーミッション設定も重要です。
ホスティング会社自体がサーバを適切に設定できていれば、利用者の設定ミスをカバーしてくれることもあります。
基本的には、下記のような設定にしておくことをオススメします。
- wp-config.php → 400
- その他のファイル → 604 または 606
- ディレクトリ → 705 または 707
可能であれば対応しておきたい対策
バックアップをとっておく
万が一、攻撃により改竄された場合、元の状態に復旧させるために、定期的なバックアップは取得しておきたいところです。
サイト改竄に気づくまでの最長の期間分は残しておかないと、バックアップも全て改竄された内容しか残っていないという事態になってしまうので、アクセス頻度が低い場合は注意しましょう。
管理画面にアクセス制限をかける
外出先からのアクセスが不要な場合で、固定IPからのアクセスに限定できる場合はIP制限をかけてしまうのがベストですが、BASIC認証でも十分効果があります。
WordPress管理画面へのBASIC認証の設定
セキュリティ対策プラグインの導入
目的にあったセキュリティ対策プラグインを導入して適切に設定・運用しましょう。
数多く入れると、プラグイン同士が競合したり、サイト自体が重くなるリスクもあります。
主要なものとしては、コメントスパムの防止、管理画面への不正アクセスの防止、管理画面での操作履歴の取得、バックアップなどの機能を持ったプラグインがあります。
管理者IDを非公開にする
ユーザ単位でのアーカイブページを使わない場合に使える対応になります。
WordPressの管理者IDを非公開にする
使用していないプラグインの削除
これ自体はセキュリティ対策ではありませんが、こまめにプラグインの一覧画面を開くことで、不正アクセスを早期発見しやすくなります。
パフォーマンス的にも不要なプラグインが存在しないほうが有利ですし、利用していないプラグインの脆弱性が理由で攻撃されるとかあったらイヤですよね。。。
セキュリティ対策プラグイン自体に脆弱性が潜んでいる可能性があります。
過去には、All in One SEO Packや狂骨などでXSSの脆弱性がありました。
ほとんど効果の見込めない対策
ネット上にあるセキュリティ対策の中には、効果の見込めない対策も見かけます。
- wp-config.phpを .htaccess でアクセス不可に設定する
- データベーステーブルのプレフィックスを変更する
詳細は割愛しますが、一定の条件下では役に立つ対応なので、やってはダメという訳ではありません。
まとめ
「セキュリティ対策=費用と時間がかかる」ということを認識し、サイトにあった対策をしっかりしましょう。
とは言っても、セキュリティ対策の基本、脆弱性の管理(=WordPressやプラグインの最新化)とID/PWの管理が出来ていれば簡単には攻撃の被害にはあいません。
大規模サイトや有名企業のサイトなど、閲覧者が増えるサイトほど標的にされるリスクが上がり、もっと細かなセキュリティ対応が求められることになっていきます。