- 公開日: 2018年03月13日
WordPressの脆弱性対策として必ず知っておくべき10のこと
「WordPressの脆弱性、自分には関係ない」そう思われている方も少なくないのではないでしょうか。
私もWordPressでWebを3年ほど運営していますが、脆弱性に対してはほぼ無知のまま運営してきました。
しかし、現状のWordPressを取り巻くセキュリティ環境を知ると「これは理解しておかないと、やっておかないとヤバイな」という項目ばかり。
今WordPressでWebサイト作っている方、これから作ろうと考えている方、開発を依頼しようとしている方必見の「WordPress脆弱性対策」をまとめます。
WordPressの脆弱性対策として必ず行っておくべき10個のこと
WordPressとセキュリティ
WordPressは、ノン・プログラマでも簡単に本格的なWebサイト、Webアプリを開発することができるソフトとして2003年に公開。 オープンソース型のコミュニティを特徴とし、無料で利用できるとあって世界中で6,000万人以上の人、世界の約3割のWebサイトがWordPressを使っているという現実があります。 しかしその一方で、同一ソフト特有の同一構造はハッカーに狙われやすく、Webサイトの乗っ取りや改ざんなどの被害が発生中。 せっかく作ったWebサイトをハッカーから守るためにもWordPressの脆弱性対策を行っておきたいですね。
WordPress 公式サイト https://wordpress.org/
WordPress 開発サイト https://github.com/WordPress/WordPress
【実際にハッキングされる様子 4min】
ユーザー名、パスワードが第三者でも閲覧可能に!!
【脆弱性対策をしなかった場合のリスク】
- Webサイトの改ざん
- Webサイトの乗っ取り
- 不正ファイルのダウンロードを誘発
- Webサイトのトラフィック数低下
- Webサイトの検索順位低下
最悪の場合、「ログインできない」「データが消えた」「ユーザー情報が盗まれた」「知らぬ間に有害サイトになっている」ということも考えられます。
【主な侵入経路】
Webの世界は、お城や迷路のような有機的な物質がないために、プログラミング初心者では「どうやってハッカーが侵入してきているか」「どこを通って侵入してきているか」分かりにくいです。
WordPressサイトの侵入経路は主に以下の3つがあります。
- WordPress本体
- プラグイン
- テンプレート
- データベース
この中でもプラグインの脆弱性は吐出していて、52%のプラグインが既知の脅威に対して脆弱、とレポートされています*。
ちなみにプラグインの次に脆弱性を含んでいるものはWordPress本体(37%)ですが、依然として脆弱な旧バージョンを使っている方が多いです。
画像出典:WordPress Versions
冒頭ハッキングされる様子をご紹介した動画は、2015年にリリースされたWordPressのバージョンも対象です。 WordPress本体の更新がどれだけ重要か、わかりますね。
それではここから脆弱性への対策をご紹介します。
ソフトの更新
これは脆弱性対策として基本的なことですが、「レイアウトの崩れ」や「バグのリスク」からWordPress本体の更新を止めている方もいらっしゃると思います。 可能な限りバージョンアップを行って、ハッキングリスクを減らしたいですね。 またWordPress本体には自動更新機能がついていますが、プラグインには「自動更新機能」がついていません。
更新忘れや手間を省くには、本体やプラグインの更新を制御できるプラグイン『 WP Auto Updater』などいかがでしょうか。 これからWebサイトを作ろうとしている方は、WordPress本体とプラグイン、テンプレートの更新ありきでデザインや機能を設計したいですね。
不正なログイン対策①
分かりにくいユーザー名とパスワードの設定
WordPressを設計する中で「管理人を admin」「ユーザーを user」など分かりやすい名称にすると、ログインを突破されるかもしれません。 第3者には分かりにくい「ユーザー名」や「パスワード」に設定する必要がありますね。 ハッカーはランダムに「ユーザー名」「パスワード」を入力するプログラムで攻撃してきますよ。
不正なログイン対策②
ログインページのアドレスを変える
WordPressの管理画面の入り口は、一律して http://●●●.com/wp-admin です。 強固なユーザー名、パスワードに設定したとしても、ハッカーがログイン画面に辿りつけない方がよりセキュアな環境でしょう。 ●●●.com/wp-admin は、プラグイン『WPS Hide Login』や『All In One WP Security & Firewall』でアドレス変更可能。 さくらのレンタルサーバーでは、All In One WP Security & Firewallを標準搭載しているプランもあるんですね。
不正なログイン対策③
ログイン要件を変える
通常ログインには、ユーザー名とパスワードが必要です。 しかし、この2つの要件ではどこか頼りないような。。。 そんな時はログイン要件に「秘密の質問」を設けると、より強固なログイン設定になるでしょう。
参考プラグインとして『WP Security Question』がありますね。
他にはユーザー登録機能などを設ける場合は、ボット対策としてキャプチャを設けたりする方法も有効でしょう。 有名なプラグインとして『Login No Captcha reCAPTCHA』がありますね。
不正なログイン対策④
2段階認証
お金の管理を伴うWebページやWebアプリでよく見かける2段階認証。 この機能もプラグインを活用することで簡単に実装することができます。 メールやSMS、Googleの認証アプリなどお好みの2段階認証を設定可能。 Google AuthenticatorやShield Security for WordPressが有名です。
怪しいユーザーのコメントはブロック
画像出典:Akismet Anti-Spam
デフォルトで設定されているWordPressのコメント機能。 ユーザーとの交流に非常に有力ですが、悪意をもったコメントが投稿される可能性も。 例えば、有害サイトへの導入を狙ったリンクの書き込みなど。
インターネット上では悪意持ったユーザーのIPアドレス、メールアドレスは共有されて、投稿される前にブロックすることも可能です。 セキュリティソフトの中には、スパムコメントをブロックするものもありますが、問題は「精度」。 データが更新されないセキュリティソフトは、容易にスパマーの侵入を許してしまいます。 こちらはWordPressに標準搭載されているプラグイン「Akismet Anti-Spam」がいいですね。
攻撃されにくいデータベースに
ショッピング機能などを搭載する際に気になる「顧客データ」。 この顧客データはデータベースで管理されますが、その顧客データを狙う「SQLインジェクション」という攻撃も存在。 特にWordPressの場合、データベースのプレフィックス(wp_posts など)が同じなのでハッカーの侵入リスクが気になります。 このプレフィックスも万が一に備えて、変更しておくと安心できそうですね。 以前はインストール時にデータベースのプレフィックスを任意に設定できましたが、現在は wp_ に固定。 プレフィックスの変更には、SQLやPHPの基礎知識が必要ですね。
参考記事:rudrastyh.com
ディレクトリ構造を非表示にする
こちらは最新バージョンのWordPressであれば気にしなくていい項目ですが、旧バージョンを使っている方は要チェックです。 WordPressのディレクトリ構造は比較的分かりやすく、ダウンロードしているプラグインやテンプレートの情報も第3者に閲覧される可能性があります。 特に旧バージョンのプラグインなどを使用していることが判明されると、攻撃の対象に。 旧バージョンを使用される際は、 .htaccessファイル を変更して対応したいですね。
【.htaccessファイルの最後に次のコードを追加】
Options -Indexes
【チェック方法】
http://●●●.com/wp-content/plugins/プラグイン名
にアクセスして、プラグインフォルダの中が表示されれば「脆弱性あり」です。
HTTPS
WordPressの操作をカフェや駅など公共の場で利用される場合、通信の傍受対策として「暗号化」つまり「HTTPS化」があります。 WordPress初心者でもプラグインを使うことで容易に「HTTPS化」が可能。 プラグイン『Really Simple SSL』や『WordPress HTTPS (SSL)』などが有名ですね。
ブルートフォースアタックへの備え
ユーザー名やパスワードをランダムに入力しまくって、無理やりログインを実行しようとする「ブルートフォースアタック」。 これまでご紹介した脆弱性対策を行っていれば、わざわざブルートフォースアタックへの対策を講じる必要はナイかもしれませんが、専用のプラグインが存在します。 セキュリティ構造がなかなか決まらない方、参考にしてみてはどうでしょうか。
\一流デザイナーのスキルが身に付く/
まとめ
今回WordPressに関する脆弱性および対策できるプラグインをご紹介させていただいました。 プラグイン毎に対策できる範囲は違ってきますので、機能が重複しないようにベストな選択を考えたいですね。 またWordPressの脆弱性は、今後も継続して発生すると考えられますので、バックアップやセキュリティチェックなどもオススメ。
WordPressとかそれを構成するPHPとかがそもそもよく分かっていない、という方はCodeCampで基礎学習いかがでしょうか? 無料体験も行っていますのでオンラインのマンツーマン・レッスン、ご体感下さい。
- この記事を書いた人
- オシママサラ