WordPressは世界で多くの利用者がいるオープンソースのコンテンツ管理システム(CMS)です。
管理画面のURLが決まっているなど、構造がわかりやすい、オープンソースで脆弱性が発見されやすいなど理由から攻撃対象になりやすいシステムでもあります。
僕が制作したサイトでも以下のような攻撃をされたことがありました。
-
実際にあった事例
- プラグインの虚弱性をつつかれ、スパムメールの発信元とされてしまった。結果サーバー会社から強制的に403対応とされる
- ユーザーID&パスワードが簡単すぎて.htacessを操作されYahoo!検索からのリンクのみ海外サイトへリダイレクト
ただし適切に設定&対応を行っていればWordPressも安心して利用することが可能です。
今回は比較的簡単な対応でセキュリティ強化&対策する方法をご紹介します。
通信経路の対策
・WordPress全体を常時SSL化し、httpにアクセスさせない
・ファイルの転送時にFTPSを利用する
・海外からはログインページへのアクセスを遮断する
・可能ならば海外からはフロントページへのアクセスを遮断する
・WAF(Web Application Firewall)を有効にする
ダッシュボードのログイン情報を複雑にする
不正ログインを防ぐために推測されやすかったり簡単そうなのは絶対に使っちゃダメです。
クライアントさんから「覚えにくいから簡単なものにして欲しい」ってリクエストがあった場合でもWordPressのリスクを説明して理解してもらいましょう。
- これは守ろう!
- 管理画面の「ユーザー名」には「admin」は使わない
- サイト上にユーザー名を表示しない
- Twitterのアカウント名と同じにしない
利用者ごとにユーザーを用意&管理者権限は一つ
ログイン情報を共用すると何かあった時に原因が探りにくいです。
管理者は一つにするのは、管理者以外のログイン情報が漏洩した場合は被害が少なくなるからです。
管理者以下の権限だった場合、ダッシュボードの操作やメニュー表示も制限することも良いかもしれないです。
ログイン画面の対策
Basic認証を設定する
WordPressのログイン画面は/wp-adminとは/wp-login.phpなどといった構造なのでアクセスするのは容易です。
セキュリティを高めるためにBasic認証を設置しましょう。
その他に以下のような対策もあります。
- 画像認証
- 二段階認証
- ログイン画面URLの変更
- ログイン画面にアクセスできるIP制限
- ログイン試行回数を制限
パーミッション(権限)を変更
サーバー上にあるファイルの書き込み権限を指定して、悪意のある攻撃者からファイルの書き換えなどを防ぎましょう。
.htaccess
「604」か「606」
.htaccessを書き換えられたらアウト。
wp-config.php
「400」
動かない時は「404」
その他のディレクトリ
「705」
その他のファイル
「604」
wp-config.phpに直接アクセスできないようにする
.htaccessに以下のソースコードを追記する
1 2 3 4 |
<files wp-config.php> order allow,deny deny from all </files> |
不要なものは削除
ファイル
WordPress のインストール時に含まれる以下のファイルは削除しましょう。
- readme.html
- license.txt
- wp-config-sample.php
その他、利用していないプラグイン・テーマを削除。
プラグインでセキュリティ対策
ぱっと思いつくプラグインになります。
Akismet
標準でインストールされているプラグインで、コメント・お問い合わせフォームを設置している場合は有効化しておきます。
スパムコメントをフィルタリングしてくれます。
All In One WP Security & Firewall
WordPressの総合的なセキュリティ対策が行えるプラグイン。
Acunetix WP Security
サイトの脆弱性をチェックし、セキュリティ対策を行うことができる。
SiteGuard WP Plugin
WordPressのダッシュボード・ログイン画面を保護するための無料プラグイン。
WordPressの運用開始後に行うべきセキュリティ対策
箇条書きでまとめますが、けっこう大事なことです。
- 定期的にバックアップをとる
- WordPressの自動更新を有効にして常に最新にする
- テーマ・プラグインの自動更新を有効にして常に最新にする
- 定期的にパスワードを変更
- 定期的にウィルススキャンをする
- WordPressを放置しない
まとめ
比較的簡単なものをまとめました。まだ対応されていないようでしたら実施するようにしてください。