サイト運営していると心配なのがセキュリティー対策。Wordpressに限ったことじゃありませんが、Wordpressは使用しいるユーザー数が多いので攻撃対象になりやすいのは仕方ないところ。
セキュリティー対策と聞くと、ちょっと難しいイメージがあるかもしれませんが、万が一に備えてやっておくか、やらないかの違いだけです。
WordPressの脆弱性を狙ったサイバー攻撃
脆弱性とはシステムの欠陥のことです。人が作ったシステムには必ず脆弱性があります。特にWordpressでは沢山のプラグインが公開されているので、Wordpress本体よりもプラグインから攻撃を受ける可能性の方が高いです。
サイバー攻撃を受けると、個人情報の抜き取り、サイト内容の改ざん、踏み台サーバとして利用されるなどの被害を被ることになります。このブログのように小っちゃいサイトなんて誰も攻撃してこないと思うかもしれませんが、攻撃対象が不特定多数の場合も結構あります。
では実際にどのような方法で攻撃してくるのか、有名な攻撃方法を3つ紹介します。
- SQLインジェクション
- XSS(クロスサイトスクリプティング)
- ブルートフォースアタック(総当たり攻撃)
SQLインジェクション
問い合わせフォームなどから入力された情報はデータベースに格納されます。しかし、問い合わせ内容にデータベースを動かすSQL言語で書かれた命令を受信してしまうと、問い合わせをしてくれたお客さんの個人情報が引き出されたりします。
XSS(クロスサイトスクリプティング)
掲示板やtwitterの入力画面で悪意のあるスクリプトを埋め込んで、他のユーザーに実行させる攻撃です。スクリプトから他の怪しいサイトへ誘導したり、ウィルス感染させて個人情報などを抜き取ります。
ブルートフォースアタック(総当たり攻撃)
サイトの管理画面に入る際にログインIDとパスワードを設定しますが、これを想定される全ての掛け合わせを試して強引に不法潜入しようとする攻撃です。
WordPressサイトで行うべきセキュリティー対策3つ
このようなサイバー攻撃に備えてやっておくべきセキュリティー対策を3つに分けてを解説していきます。
- 最初にやっておきたい基本的セキュリティー対策
- 入れておきたいセキュリティープラグイン
- 運用中のセキュリティー対策
最初にやっておきたい基本的セキュリティー対策
できればサイトを作る段階でやっておきたい事ですが、まだ対応してなければ早急に対応した方がいいでしょう。※必ずバックアップを取ってから行いましょう。
使用する端末にセキュリティーソフトをインストール
サイト側でセキュリティー対策を行っていたとしても、使用しているパソコンがウィルス感染していたら元も子もありません。サイトに接続する可能性がある端末は全てセキュリティーソフトを有効化しておきましょう。
セキュリティーソフトはesetが安くて軽くておすすめです。パソコンだけじゃなく、Android、iosのスマホにも導入できます。
ログインID、パスワードの設定
管理画面に入る際のIDを簡単に推測される「admin」にしていたり、推測されやすいパスワードを使わないのは当然です。パスワードは10ケタ以上でアルファベット大文字、小文字、数字を掛け合わせたランダムなものを推奨します。
パーミッションの設定
パーミッションとはファイルへのアクセス権限の設定です。一般的に推奨されているファイルのパーミッションは「.htaccess」で604.「wp-config.php」は600.です。
参考記事:「All In One WP Security & Firewall」で簡単に行うパーミッション変更
DB接頭辞を変更
データベースのテーブル名の「wp_」の部分を接頭辞と言います。標準で「wp_」となっているのは知られている事なので、これを任意の名前に変更してデータベースにアクセスさせない設定です。
参考記事:「All In One WP Security & Firewall」で接頭辞(プレフィックス)の変更方法。ついでに手動も
パーミッションの設定とDB接頭辞を変更は「All In One WP Security & Firewall」のプラグインで対応できます。セキュリティー対策プラグインとしてもおすすめなので手動でやるよりも、初心者の人は「All In One WP Security & Firewall」で対応することをおすすめします。
ログインURLの変更
管理画面のログインURLはデフォルト状態で以下のようにいくつかの決まったものになっています。
- http://example.jp/wp-login.php
- http://example.jp/wp-admin
- http://example.jp/login
- http://example.jp/admin
- http://example.jp/dashboard
ログイン画面へのアクセスを防ぐことは非常に重要なセキュリティー対策なので変更しておきます。
ログインURLの変更はプラグインもしくは手動で変更する方法がありますが、プラグインの「SiteGuard WP Plugin」は画像認証や認証回数制限などの機能もあるのでおすすめです。
参考記事:ログインURL変更だけじゃない。「SiteGuard WP Plugin」でできる事
ピンバック機能の無効化
ピンバック機能とは記事内に他のwordpressサイト記事リンクを記載した際に、相手の管理者へ通達し、相手が承認すればお互いに相互リンクする仕組みです。他サイトと頻繁に交流するようなブログでは重宝しますが、そうでなければ必要のない機能です。ピンバック機能の脆弱性から踏み台サイトになってしまった事例もあります。
なので、ピンバック機能は基本的に無効化することをおすすめします。メニューから「設定」→「ディスカッション」を開きます。「デフォルトの投稿設定」のチェック項目を全て外して変更を保存します。
「SiteGuard WP Plugin」でも無効化設定できます。
入れておくべきセキュリティ対策プラグイン
様々なセキュリティープラグインがあるので、どれを使えばいいのか迷ってしまいます。私は「SiteGuard WP Plugin」と「Wordfence Security – Firewall & Malware Scan」を入れておけば十分だと考えています。あとはレンタルサーバ会社のWAF(Webアプリケーションファイアーウォール)で対応しています。
参考記事:1分で完了。サイトセキュリティーを劇的に高めるWAF導入方法
万が一、乗っ取られたり改竄されたとしてもバックアップから復元すればいいだけです。
コメント欄を開放しているなら「Akismet」は別途必要です。「Akismet」はコメント欄のスパム対策プラグインで最初から入っています。ちなみに、コメント欄を開放していないのに「Akismet」を有効にするのは意味ありません。
本当は入れたくないプラグイン
セキュリティー対策や便利な機能を簡単に実装できる便利なプラグインですが、できることなら入れたくありません。プラグインに脆弱性があったら攻撃対象の原因になりますし、プラグインの入れ過ぎはサイトの表示速度を遅くします。表示速度の低下はサイトの評価を下げる要因になり検索順位にも大きく影響します。
また、プラグインとテーマの相性、もしくはプラグイン同士の相性もあり、お互いの機能が邪魔し合って、機能しない事もあります。プラグインのバージョン管理も長くサイト運営していると面倒になってきます。
できることならWordpressのテーマで対応して、必要最低限のプラグインでサイト運営していくのが望ましいでしょう。
運用中のセキュリティー対策
運用開始しても定期的なセキュリティー対策は必要です。とは言っても、以下の事項は当然的なものばかりです。
使っていないプラグイン、テーマの削除
使用しないプラグインやテーマは削除しておくのが安全です。思わぬ影響を受ける場合や、サーバーの容量確保、バックアップの時のファイルサイズ縮小にもなります。また、全然更新されていないプラグインは危険なので、どんなに有名でも便利でも使わないのが正解です。
バックアップ
バックアップはWordpressサイトを運営するなら、どんなに忙しくてもやっておくべき最低限のセキュリティー対策です。
何かあった時でもバックアップがあれば元の状態に戻すことができます。しかし、バックアップデータが改ざんされた後のものだったりしたら意味がないので、バックアップデータは細目に保存しておくべきです。バックアップにはプラグインの「UpdraftPlus」がおすすめです。
参考記事:復元機能があるプラグイン「UpdraftPlus」でWordPressサイトをバックアップする手順
バージョンアップ
wordpress本体、プラグインは常に最新のものに更新するのが基本ですが、バージョンアップすることによる影響もあります。
セキュリティー対策だからと何でもバージョンアップするのは危険です。バージョンアップした途端にサイトが真っ白になる事もあります。これはWordpress本体とプラグインの整合性がとれていなかったり、バージョンアップ後のバグによるものです。
もし、本番環境でプラグインのバージョンアップ後に不具合が出たならば、FTPソフトでプラグインのフォルダ名を一時的に変更して無効にすることで対処する事もできます。プラグインのディレクトリは「wp > wp-content > plugins」になります。
WordPressサイトではバージョンアップ前にバックアップを取得してから行うのが定石です。さらに言うなら、ローカル環境で試してみてから行うのがベストです。
参考記事:Local by Flywheelで本番サイトをローカルパソコンにコピーするやり方
プラグインは手動でバージョンアップを行いますが、Wordpress本体はデフォルトで自動バージョンアップされます。※大規模な仕様変更があるメジャーアップデートは自動ではありません。
セキュリティー的はありがたい機能ですが、影響を考えると怖いところもあります。事前に影響の有無を確認したい時はWordpress本体の自動バージョンアップは止めることもできます。「wp-config.php」に以下のコードを追記するだけです。
define('AUTOMATIC_UPDATER_DISABLED', true);
現在のサイトの安全性を確認する方法
トップページが変わっていたり、怪しい広告が表示されていたりするなど一見して”やられた”と判断できるならいいですが、実際に攻撃を受けていたとしても、全く気付かない事もあります。
運営しているサイトの安全性を確認するには改ざんチェックとマルウェア感染チェックが必要です。
Webサービスのマルウェア検査は「VirusTotal」が有名です。Googleが買収したマルウェア検知サイトです。ファイルをアップロードするか、URLを入力して検査する事ができます。
プラグインなら「Wordfence Security – Firewall & Malware Scan」が有名です。
参考記事:改ざんチェック、マルウェア検知してくれるプラグイン「Wordfence Security – Firewall & Malware Scan」の使い方
だだし、どちらも検知するだけで、駆除はしてくれません。また、誤検知で問題のないファイルまで問題ありと判断されてしまう事があります。
基本的には検出されたファイル名やファイルの中身を確認して判断するしかありません。判断が難しいようであれば、バックアップファイルから復元するのが安全です。
【編集後記】
長々と書きました。どのようなセキュリティ対策をしたとしても100%安全とは言えません。
万が一、攻撃されたとしてもバックアップをちゃんとやっていればどうにかなるので、このブログのような趣味レベルならここまでする必要はないのかもしれませんが。