WordPressのセキュリティ対策ってどうすればよいかわからなくないですか?
セキュリティ対策といっても色々とあって、どう対処すれば充分なのか不安になるかと思います。
今回は、WordPressのセキュリティ対策について考察していきたいと思います。
そもそもWordPressにどのような機能があるのか知りたい方は以下を参照してください。
■目次(読みたいタイトルをタップ、クリックすることで移動できます)
はじめに
WordPressではどの様なセキュリティに対する脅威があるのかを洗い出し、その脅威をもとに対応策を整理していきたいと思います。
想定されるWordPressのセキュリティ脅威
まずは、WordPressでブログを運営するにあたってのセキュリティ脅威について洗い出しを行います。
WordPressを運営すると、以下のセキュリティ脅威にさらされていると考えられます。
管理画面への不正アクセス
自身が運営するWordPressに対して不正アクセスされる可能性があります。
悪意のあるユーザーに管理画面へアクセスされた場合は、そのWordPress上のほぼ全ての設定を変更することが可能となり、いわゆる乗っ取られた状態となってしまいます。
そうならない為にも、管理画面への不正アクセスを許さないことが第一前提となりますし、乗っ取られた場合でもすぐに気付くことができるような対策が必要となります。
WordPressの脆弱性に対する攻撃
WordPress自体のバージョンが最新でなかったり、導入しているテーマやプラグインのバージョンが古かったりした場合は、脆弱性が存在する可能性があります。
その脆弱性を利用して悪意のあるユーザーがハッキングを行ったりウィルスを仕込んだりする可能性があります。
ウィルス感染や悪意あるコードの埋め込み等のファイル改ざん
ウィルスに感染したり、マルウェア等の悪意あるコードを埋め込まれた場合はファイルが改ざんされます。
SQLインジェクション、クロスサイトスクリプティング攻撃
ブログサイトにWEBアクセスする際に、不正なURLを使用して行うSQLインジェクションやクロスサイトスクリプティング攻撃される可能性があります。
スパム攻撃
多くの迷惑なコメントを送り付けたり、そこに自身の不正サイトへのリンクを張り付けたりする攻撃にあう可能性があります。
スニッフィング攻撃
通常のWEBアクセス通信を盗聴して、ユーザー、パスワード情報やクレジットカード等の個人情報を盗むことをスニッフィング攻撃といいます。
セキュリティ脅威に対して考えられる対策
次に、それぞれのセキュリティ脅威に対して考えられる対策について整理しました。
管理画面への不正アクセス
管理画面への不正アクセスに有効な対策として考えられることは以下の通りです。
国外IPアドレスからのアクセス遮断
不正アクセスのほとんどは海外から送信されているという結果が統計情報から明らかにされています。
海外へ発信しているサイトでなければ、国内IPアドレスからのアクセス以外は遮断しておいたほうがいいでしょう。
ログインユーザーの操作ログを収集
管理画面にログインしたユーザーの操作ログを収集しておきましょう。
操作ログを収集しておくことで、万が一不正ログインされた際に何をされたかがわかりますので、事後対応が可能となります。
不正ログインされたけど、何をされたかがわからない場合は調査に時間がかかる可能性が高いため、長期間にわたってブログサイトを停止する必要性が出てきてしまうかもしれません。
可能な限り操作ログを収集しておきましょう。
不要な管理者アカウントはむやみに作らない
管理者アカウントを複数作成すると、それだけ不正ログインされる可能性があるアカウントを増やすことにつながります。
なるべく必要最低限の管理者アカウントを作成しましょう。
一人でWordPressを管理する場合は、一つの管理者アカウントで十分です。
例複数でブログ運営を行う場合は、ユーザーそれぞれに管理者アカウントを作成した方が、誰がどの様に操作したかが追跡可能となるのでいいと思います。
ただそこまではいいのですが、ユーザーがブログ運営から脱退して管理者アカウントが不要となってしまう場合があります。
そうなった場合は速やかに管理者アカウントを削除したほうがいいでしょう。
脱退したユーザーアカウントとパスワードが情報漏洩して不正ログインされる可能性もあるかもしれません。
パスワードは複雑化されたものを利用
推測されやすいパスワードを使用していると、簡単にパスワードを当てられてしまう可能性があります。
ランダムで長い文字列を使うなど、可能な限り複雑化しておきましょう。
画像認証、二段階認証
ログイン画面に画像認証や二段階認証を導入しましょう。
そうすることでコンピュータ等を使って自動的にログイン試行を行うような攻撃から管理画面を守ることができます。
ログイン試行回数の制限
ログイン試行回数に制限を設けましょう。
試行回数の上限を上回った場合はそのアカウントをロックすることで、コンピュータ等を使って何回もログイン試行を行うような攻撃から管理画面を守ることができます。
ログイン通知
ユーザーがログインしたことをメールで通知するようにしておきましょう。
不正アクセスされた場合にほぼリアルタイムで気付くことができます。
WordPressの脆弱性に対する攻撃
脆弱性攻撃に有効な対策としては以下が考えられます。
WordPressのセキュリティ状態を確認し対策を提示
WordPressのセキュリティチェックを実施し、セキュリティの状態を確認しましょう。
WordPressの推奨するセキュリティ対策で、実施出来ていないものが分かります。
WordPressのバージョン情報を隠す
WordPressのバージョン情報がわかると、そのバージョンに存在する脆弱性がわかるため、その脆弱性を攻撃される可能性が高まります。
バージョン情報がわかられないよう隠すようにしましょう。
WordPressのデータベースのテーブル接頭語(Prefix)を変更
WordPressのデータベースのテーブル接頭語(Prefix)はデフォルトのインストールでは全て一緒となるので、デフォルトから変更しておきましょう。
脆弱性スキャンを検知して管理画面をロック
可能であれば、脆弱性スキャンと思われる404エラーを検知して管理画面をロックしましょう。
XMLRPC防御
XML RPCと呼ばれる攻撃から防御しましょう。
詳細説明は時間のある時に説明したいと思います。
更新通知
WordPressやプラグインのバージョンアップを通知してくれます。
ファイルやフォルダのアクセス制限
WordPress上のセキュリティ的に重要なファイルやフォルダへのアクセスを可能な限り禁止しましょう。
ウィルス感染や悪意あるコードの埋め込み等のファイル改ざん
ファイル改ざん対策に有効な対策としては、以下が考えられます
WordPress上にファイルの変更を検知し、定期的にメールやログ画面で変更履歴を通知
ファイルが改ざんされた場合は、メールやログで変更履歴を通知してくれます。
データの定期バックアップ
WordPressのデータは定期的にバックアップをとっておきましょう。
ファイルが改ざんされた場合にリストアを実施すれば、改ざんされる前の状態に復旧か可能となります。
ウィルスチェック
可能であればウィルスチェックを実施しましょう。
ウィルスに感染しているかが確認できます。
SQLインジェクション、クロスサイトスクリプティング攻撃
SQLインジェクションやクロスサイトスクリプティング攻撃に有効な対策としては、以下が考えられます。
WAF機能を使用
WAF機能を使用することで、不正なURL等を使用した攻撃を防いでくれます。
スパム攻撃
スパム攻撃に有効な対策としては、以下が考えられます。
スパム対策
スパムコメントを遮断してくれます。
スニッフィング攻撃
スニッフィング攻撃に有効な対策としては、以下が考えられます。
WEBサイトのSSL化
WEBサイトのデータ送受信をSSLによって暗号化し、容易にWEBページを解読できない様にしてくれます。
セキュリティ対策を実現する方法の考察
それでは、それぞれのセキュリティ対策を実現する方法について考察して整理していきたいと思います。
まず整理するにあたり、色々なアプローチで対策が可能かと思われますが、ものぐさSE的には以下の方針で整理していきます。
- なるべく、手動ですぐに対応できてしまうものについては手動で対応を実施することで、プラグイン等の実行負荷及び運用負荷をなるべく低減する
- そうは言っても、ツールを使用する方が手間が省けて便利な部分については、プラグインを導入する
- 導入するプラグインについては、運用負荷を考慮して日本語のツールを優先して使用する
- 運用上問題が出てしまうようなセキュリティ対策については、実施しない方針とする(IPアドレスによるアクセス制限は使用するIPアドレスを絞ることができない等)
以上の方針にもとづいて整理した結果を表にまとめてみました。
想定される脅威 | セキュリティ対策 | 対策方法 |
---|---|---|
管理画面への 不正ログイン (ブルート フォース攻撃) | 国外IPアドレスからの アクセスを遮断する | レンタルサーバを利用 |
ユーザーの操作ログ を収集する | プラグインを利用 | |
推測されやすい「admin」 のユーザーネームとユーザーID の番号を変更 | 手動で対応 | |
管理者アカウントをむやみに 作らない | 手動で対応 | |
パスワードは複雑化された ものを利用 | 手動で対応 | |
WordPressのログイン画面 を変更して ログイン画面を他者から隠す | プラグインを利用 | |
画像認証、二段階認証 | プラグインを利用 | |
ログイン試行回数の制限 | プラグインを利用 | |
ログイン通知 | プラグインを利用 | |
脆弱性攻撃 | WordPressのセキュリティ の状態を確認し対策を提示 | プラグインを利用 |
WordPress の バージョン情報を隠す (管理者以外) | プラグインを利用 | |
WordPressのデータベース のテーブル接頭辞(Prefix) を変更 | 手動て対応 | |
脆弱性スキャンと思われる 大量の404エラーを検知して 管理画面をロック | プラグインを利用 | |
XMLRPC防御 | プラグインを利用 | |
更新通知 | プラグインを利用 | |
ファイルやフォルダ へのアクセス禁止 | プラグインを利用 | |
ウィルス感染や 悪意あるコード の埋め込み ファイルの 改ざん攻撃 | サーバー上にあるファイル の変更を検知し、定期的に メールやログ画面で変更履歴を通知 | プラグインを利用 |
データの定期バックアップ | プラグインを利用 | |
ウィルスチェック | プラグインを利用 | |
SQL インジェクション 攻撃 クロスサイト スクリプティング 攻撃 | WAFを使用 | レンタルサーバを利用 |
スパム攻撃 | スパムコメントを遮断 | プラグインを利用 |
スニッフィング 攻撃 | SSL化 | プラグインを利用 |
まとめ
セキュリティの脅威からセキュリティ対策および方法までを整理していくと、一連のセキュリティ対策が網羅されていて何をやればいいかがわかりやすいですね。
WordPressのセキュリティ対策をしては以下を実施することを推奨します。
レンタルサーバー側で設定するセキュリティ対策
- 国外IPアドレスからのアクセスを遮断
- WAF機能の使用
手動設定で実施するセキュリティ対策
- 新規の管理者ユーザーを作成し、デフォルトの管理者ユーザー(Admin)は削除する。
- 不要な管理者ユーザーを作成しない
- ユーザーのパスワードを複雑化する
- WordPressのデータベースのテーブル接頭辞(Prefix)を変更
パスワードの管理方法の詳細については以下で詳しく説明していますので、参考にしてください。
WordPressのプラグインによるセキュリティ対策
- 上記以外を全てプラグイン導入により対策する
プラグインで行うセキュリティ対策の詳細については以下で詳しく書いているので、こちらも参考にしてください。
次回は、実際に上記のセキュリティ対策を実施していきたいと思いますのでお楽しみに