開設:2017年12月11日
簡単インストール機能などでもご提供しているブログアプリケーション『WordPress』において、管理画面への不正アクセスによりホームページが改ざんされたり、脆弱性を突いたデータベースの不正操作などの被害が報告されています。
当社では、ご契約のサーバーに対する不正アクセスには十分な監視体制と注意を払っておりますが、Webアプリケーションに対するセキュリティ対策は、本ページの情報をご確認の上、お客様にて実施をお願いします。
被害の実例
- WordPress管理画面のユーザー名/パスワードが漏洩し、不正に操作されてホームページが改ざんされた。
- WordPressやテーマ、プラグインの脆弱性が利用され、SQLインジェクションなどの被害に遭った。
- 大量のコメントスパムが投稿され、リンク先にフィッシングサイトが含まれていた。
不正ログインへの対策
ユーザー名/パスワードに関するセキュリティ対策
WordPressに関する被害事例で多いのが、ユーザー名/パスワードの漏洩による管理画面への不正ログインです。
ホームページの改ざんの大半は、この不正ログインによるものですので、ログイン情報は正しく設定/管理する必要があります。
パスワードを再設定する

WordPress管理画面へのログインパスワードを、
複雑なものに変更してください。

パスワードには、
強度が「強力」になるものを設定してください。
以下のような容易に推測可能なパスワードは設定しないでください。

ドメイン名の一部

辞書に登録されているような単語

短い文字列

安易に推測できるもの(admin、passwordなど)
ユーザー名を設定する
ユーザー名が漏洩すると、パスワードだけの総当り攻撃で突破される可能性が上がるため、ユーザー名にも注意する必要があります。
ユーザー名「admin」は利用しない
ユーザー名「admin」は、WordPressのインストール時に初期設定されていることが多く、不正ログインを試みる第三者もほぼ間違いなく「admin」でのアタックを試みます。
管理画面のユーザーに「admin」が存在している場合は、可能であれば削除しておきましょう。
投稿者アーカイブを利用しない
ユーザー名は、(WordPressで構築されたホームページのURL)/?author=(任意の数字)で表示される「投稿者アーカイブ」のページのURLから簡単に推察が可能です。
投稿者がクローズアップされる必要がなければ、投稿者アーカイブを利用しないこともセキュリティ対策となります。
投稿者アーカイブは、テーマのファイルを編集するか、プラグイン「Yoast SEO」などで無効にすることが可能です。
投稿者名をユーザー名以外のものに隠蔽
投稿者アーカイブを利用する場合は、プラグイン「Edit Author Slug」などを利用し、URLに表示される投稿者名をユーザー名以外のものに隠蔽します。
ユーザー名/パスワードの運用について

セキュリティの観点から、以下のような運用をご検討ください。

パスワードはブラウザに保存せず、ログインごとに入力する。

「ログイン状態を保存する」を使用しない。

「認証用ユニークキー」を利用する。
認証用ユニークキーとは…
「ログイン状態を保存する」を設定していても、以下の手順で認証用ユニークキーを変更すると、すべてのユーザーに対して再ログインを強制することができます。
パスワード変更と合わせて実施することで、不正利用を締め出すことが可能になります。
1. サーバーにアクセスし、以下のファイルをダウンロードします。
ファイル:/(WordPressインストールディレクトリ)/wp-config.php
2. ダウンロードした「wp-config.php」ファイルをテキストエディタで開き、『define('AUTH_KEY'~』から『define('NONCE_SALT'~』の行を、
こちらで表示されている内容に変更します。
3. 編集が完了したら、サーバーのファイルを上書きします。
ログイン画面へのアクセス制限
WordPress管理画面への不正アクセス自体を防止するため、ログイン画面に対してアクセス制限を実施します。
アクセス制限の設定手順

ログイン画面(wp-login.php)へのアクセス制限は、以下の手順で実施します。
1. サーバーにアクセスし、以下のファイルをダウンロードします。
ファイル:/(WordPressインストールディレクトリ)/.htaccess
2. ダウンロードした「.htaccess」ファイルをテキストエディタで開き、以下の内容を追記します。
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 000.000.000.000
</Files>
※ 「000.000.000.000」の部分は、お客様環境のIPアドレスを指定してください。
※ お客様環境が固定IPアドレスでない場合は、IPアドレスによる指定はできません。
※ 記述の最後は必ず改行を入れてください。
※ アップロード後にWordPressへのアクセスに問題がないかをご確認ください。
3. 編集が完了したら、サーバーのファイルを上書きします。
セキュリティ対策プラグインの利用
簡単インストール機能を利用してWordPressをインストールすると、セキュリティ対策プラグイン「SiteGuard WP Plugin」も同時にインストールされます。主に管理画面へのアクセスを管理し、不正アクセスを防止するプラグインです。
ファイル・プログラムへの対策
環境設定ファイル「wp-config.php」へのパーミッション設定
WordPressのインストールディレクトリには、WordPressの環境設定を行う重要なファイル「wp-config.php」が存在します。
「wp-config.php」には、データベースにアクセスするためのIDやパスワードなども記述されているため、不正に操作されるとデータの漏洩などの危険性があります。

サーバーにアクセスし、以下のファイルのパーミッションを、標準の「644」から「
400」に変更します。
ファイル:/(WordPressインストールディレクトリ)/wp-config.php
※ 変更方法はFTPソフトの機能などをご利用ください。
※ 他のWordPress関連のファイルも、必要に応じてパーミッションを変更することが可能です。詳細は以下をご参照ください。
プログラムの更新
WordPressを利用する上で、プログラムの更新は重要です。
WordPressを最新版に更新する

WordPressのマイナーバージョンアップ(4.9 → 4.9.1 など)は、脆弱性対応が含まれる場合が多く、自動的に適用されます。

WordPressのメジャーバージョンアップ(4.8.4 → 4.9 など)にも脆弱性対応が含まれる場合がありますので、手作業で適用が必要です。
テーマやプラグインを最新版に更新する

管理画面上で更新が表示されているテーマやプラグインは、早めに更新する。

何年も更新されていないプラグインやテーマは、脆弱性が放置されている可能性があるため利用しない。

使用していないテーマやプラグインを削除する。
通信経路上における情報漏洩への対応
管理画面のユーザー名、パスワードやデータベースの情報は、通信経路上から漏洩する可能性も考えられます。
ホームページ全体を常時SSL化する
管理画面へのログインの操作が暗号化されない状態で通信されると、経路上からパスワードが漏洩する可能性があります。
WordPress全体を常時SSL化することで、すべての操作が暗号化されます。
ファイルの転送時にFTPSを利用する
WordPress関連のファイルを転送したり、FTP経由でバックアップする際には、FTPS(FTP over SSL/TLS)で通信の暗号化を行います。ZenlogicではFTPSを標準でご提供しており、FTPソフトの設定だけでご利用いただけます。
コメントスパムへの対策
際限なく増え続けるコメントスパムには、以下の方法で対応します。
WordPress管理画面で対応する

WordPress管理画面の「設定」→「ディスカッション」で、無制限に投稿ができないように、運用に応じて設定します。
以下は設定例です。

コメントを管理者の承認制にする。

ユーザー登録しないとコメントを投稿できないようにする。

必要な投稿のみコメントを受け付ける。
プラグイン「Akismet」で対応する
WordPressに同梱されているコメントスパム対策プラグイン「Akismet」を利用します。
「Akismet」は、コメントスパムをフィルタリングしてくれるので、選別がやりやすくなります。
※ 個人のホームページの場合は、無料でご利用いただけます。
※ 詳細のご利用方法は、上記の公式ホームページなどをご参照ください。
インストール時の注意事項
WordPressをインストールする際の注意事項
ここまではすでにインストール済みのWordPressを中心とした内容をご案内してきましたが、今後、WordPressを新規インストールする場合は、以下の点に注意して作業を実施してください。
インストールディレクトリに注意する
WordPressで開設するホームページのディレクトリ直下にインストールするのではなく、「wordpress」などのサブディレクトリにインストールします。
データベースの設定に注意する

データベースのユーザー名/パスワードは、WordPressのユーザー名/パスワードと同様、推察されにくいものを設定する。

「テーブル接頭辞」には、初期設定の「wp_」以外のものを設定する。
管理者の設定に注意する

ユーザー名には、初期設定の「admin」以外のものを設定する。

パスワードには、強度が「強力」になるものを設定する。