WordPressはCMSシェア6割以上の世界で一番使われているCMSです。
初心者でも使いやすい、プラグインなどで簡単に実現したい機能が追加できる、といった多くのメリットがあるため、ブログサイトとしてはもちろん、今ではコーポレートサイトや大学サイト、メディアサイトでも多く利用されています。
そこで、今回はそんな
WordPressでやるべきなのに意外とできていないセキュリティ対策
をギュッと凝縮して紹介していきます。
WordPress本体のセキュリティ対策
1.WordPress最新版へのアップデート
アップデートはWordPressなどのオープンソースソフトウェアを利用する上では必須事項です。
WordPressについては、機能追加がメインのメジャーアップデートと、セキュリティアップデートがメインのマイナーアップデートの2種類があります。
例えば、バージョン5.1.2の場合、真ん中の1の部分がメジャーアップデートです。そして、末尾の2の部分がマイナーアップデートを指します。
※WordPressバージョン一覧はこちらからご確認ください!
▶WordPressバージョン一覧
また、アップデートに関しては、手動で行うか自動で行うかでも違いが出てきます。
手動の場合は、WordPressの管理画面から更新ボタンを「ポチッ」と押しますが、自動の場合はWordPressやKUSANAGIの機能を利用して設定をすることで実施できます。
2.WordPressログイン画面を守る
WordPressのログイン画面は、通常はURLの末尾に /wp-admin や /wp-login.php と追加してアクセスすると確認できます。
しかしそれでは、公開サイトとしては家の扉の前まで来られたようなものでとても危険です。
WordPressのログイン画面についてはあまり気にされる方も多くはないと思いますが、次の3つの設定のいずれか、または組み合わせで防ぐのがやりやすい方法です。
1.IPアドレス制限
/wp-admin や /wp-login.php へのアクセスは、
決まったIPアドレスからしか許可しないようにWebサーバー側で設定してしまうのが良いです。
決まったIPアドレスとは、例えば以下が該当します。
- 自社の固定IPアドレス
- 協力会社の固定IPアドレス
- 固定IPアドレスを取得しているWi-Fiルーター など
このIPアドレス制限はとても強力でセキュリティ上もとても良いのですが、決まった場所以外からログインして記事の編集や投稿をしたい(例えば移動中や出張中など)場合に困ってしまうことがあります。
リモートワーク中や外部のライターさんにそのままWordPressの管理画面での投稿を依頼している場合などは柔軟性に掛ける対策です。
その場合は、2の対策を行いましょう。
2.管理画面へのアクセスにベーシック認証を追加
次の方法としてはベーシック認証を導入するというものがあります。多くのサイトで行なわれている対策方法です。
これは、/wp-admin や /wp-login.php へのアクセスを行った際に、ログインページに行くためのIDとパスワードを求められるものです。
つまり、WordPressの管理画面に入るために2段階の認証にしてしまうというものです。
これも、ご利用のWebサーバーでの設定を行えば実現できます。
もしくはレンタルサーバー等の場合は、レンタルサーバーの管理画面からブラウザで設定ができるものもあります。
ベーシック認証のユーザー名とパスワードを入力する表示は、お使いのブラウザによって少し異なりますが、入力するものは同じです。
3./wp-admin のURLの変更(気になる方)
管理画面へのURLが、/wp-admin や /wp-login.php というのがあらかじめわかっているためにセキュリティが危ないのであれば、そのアクセスURLを変えてしまおうというやり方です。
通常は、https://www.example.co.jp/wp-admin になるところを、例えばhttps://www.example.co.jp/securityadmin としてしまえば攻撃側も簡単にはたどり着けないということです。
基本的な考え方としては、以下の順番で検討するのが良いです。
1.IPアドレス制限ができるかどうか
2.ベーシック認証(IPアドレス制限が運用上難しい場合)
3.URL変更(1,2どちらもできない、もしくはものすごく心配な場合)
3.管理画面からのテーマファイル編集を行わないようにする
管理画面からテーマの編集を行っている人は多いのではないでしょうか。
じつはこれはとても危険なことです。
というのも、管理画面にログインできさえすればPHPファイルまで簡単に書き換えることが可能になってしまうからです。
そこで、なるべく、というより以下を徹底させましょう!
テーマファイルの編集はローカルで編集したものをFTPクライアントでアップロードするか、SSHでログインを行い直接サーバーで編集すること。
KUSANAGIのように、はじめからテーマファイルの編集をさせないような機能がついている環境を利用するのも手です。
FTPクライアント
FTPクライアントは、様々なものがあります。有名どころはこちらです。
わかりやすいようにFTPクライアントと記載いたしましたが、細かくはFTPではなくSFTPというセキュリティが担保された通信を利用してファイルのアップロードをしましょう。
4.wp-config.phpの配置に注意する
wp-config.phpというファイルにはデータベースの接続情報などの重要情報が記載されています。
デフォルトの設定ですとDocumentRootの下の階層に配置されていますので、これでは実は、重要情報が不特定多数にWebで閲覧されてしまう可能性があります。
そこを防ぐために、DocumentRootと同じ階層に移動させましょう。
5.パスワードに気をつける
パスワードは推測されにくい、なるべくランダムで複雑なものにしましょう。
攻撃者は、パスワードを突破する際に辞書攻撃(パスワードに使用されることの多い単語や人名を組み合わせ、繰り返しログインを試行すること)などを仕掛けてくることもあります。
内閣サイバーセキュリティセンターが出している『インターネットの安全・安心ハンドブック』によると、英大文字小文字+数字+記号で 10 桁以上が望ましいようです。
パスワードに関しては、特にしっかり守りましょう。
▶インターネットの安全・安心ハンドブック 内閣サイバーセキュリティセンター
パスワードの文字数は100文字以上でも問題なく、スペースやスペース、!#$%&:;<=>?@[]^_'()*+-./`{|}~などの一般的な記号は利用できますのでランダムで意味のない組み合わせを利用しましょう。
ちなみにWordPressの管理画面へのパスワードは、数字やアルファベット1文字(例えば「a」や「1」)でも登録できてしまいます。
その際にはパスワードを設定する時に強度インジケータによって「非常に脆弱」というアラートを出してくれます。
「非常に脆弱」なパスワードは「脆弱なパスワードの使用を確認」チェックボックスにチェックを入れれば利用可能ですが、大変危険ですので使わないようにし、「強力」と認識されているパスワードを利用しましょう。
同じ文字をいくつも入れても、単純な文字と数字の組み合わせも「非常に脆弱」となります(「1111111111111111」や「1a1a1a1a1a1a1a1a1a1a」など)。
非常に脆弱なパスワード 強力なパスワードWordPressのCodex「管理画面/ユーザー/あなたのプロフィール」では、以下の条件を推奨しています。
より強固なパスワードを作るには、長さを7文字以上にする、大文字と小文字のアルファベット、数字や! ” ? $ % ^ & ) などの記号を組み合わせて使うことなどが効果的です。
弊社のセキュリティ顧問徳丸浩氏も、パスワード管理とアップデートが最も大事だと言っております。
プラグイン、テーマのセキュリティ対策(特にプラグイン)
1.最新版へのアップデート
プラグインやテーマについてもアップデートが発生した場合はなるべくアップデートを行いましょう。特にプラグインについては注意が必要です。
実際にプラグインが問題でサイトのセキュリティが脅かされたというパターンの方が、WordPress自体の問題よりも数としては多いようです。
また、アップデートができていないためにWordPressのバージョンやPHPのバージョンと、プラグインのバージョンの間で齟齬が出てしまい機能が動かなくなるということもありますので、アップデートを行う際には注意が必要となります。
2.公式ディレクトリにあるプラグインのみを利用する
プラグインについては、執筆現在55,172個がWordPressの公式ディレクトリ プラグインに登録されています。
また、テーマに関しても数千のテーマがあります(WordPress公式ディレクトリ テーマ)。
ところが、オープンソースソフトウェアのWordPressには、企業や個人が独自に作成して公開しているプラグインやテーマも数多くあります。
しっかりとサポートされているのであれば問題ないのですが、中にはアップデートもされずに放置されている、いわゆる野良プラグインなどと呼ばれているものもあります。
そのようなリスクを防ぐためにも、原則テーマやプラグインはWordPressの公式ディレクトリから選ぶようにしましょう。
公式ディレクトリにあるものは、一定の基準をクリアしたプラグインやテーマですので、比較的安心してご利用いただけます。
プラグインの目安としては、以下となりますので参考にしてください。
・更新頻度の頻繁なもの(数ヶ月以内が望ましい)
・利用しているWordPressに対応していること
・有効インストール数が多いこと
・評価が低くないこと
3.プラグインをむやみに多用しない
プラグインは非常に便利ですし、試したい機能があればどんどん導入をすることもあると思います。しかし理想を言えば「最低限」の数に止める方がよいでしょう。
セキュリティの面から言うと、プラグインを多く使っている場合はアップデートがそれだけ大変になります。
場合によってはアップデートを忘れてしまうものもあるかもしれません。
これはセキュリティ上大変危険です。
また、プラグインの中には非常に多機能のものもあります。すると、WordPress自体の動作も遅くなってしまうのでいいことがありません。
4.権限を変更したりファイルへ書き込む系のプラグインは特に注意する
使用するプラグインの機能にも注意しましょう。
できるだけ、そのプラグインがどういった機能を持っていて、どういった動作を内部で行っているのかを把握しておくと良いでしょう。どんな機能が隠れているかわからないので意外な落とし穴がないようにしたいものです。
権限を変更したり、ファイル書き込み処理が走るプラグインは特に注意して問題ないかを確認した上で利用しましょう。
サーバーのセキュリティ対策
1.OS、ミドルウェアのアップデート
OSは、WordPressの場合多くがCentOS7を利用しています。
別のOSを利用しているサイトもありますが、いずれの場合でもアップデートは発生します。また、PHPやApache、Nginxといったミドルウェアについても脆弱性が発見されたら随時アップデートが必要になります。
つまり、WordPress同様にサーバー側のセキュリティについてもしっかりと気を遣っていかければならないということになります。
OS、ミドルウェアのアップデートは、レンタルサーバーなどでは自分で行うのは難しいのですが、お使いのサーバーがVPSやクラウドサーバーであればサーバーにログインし、yum update コマンドでなどアップデートすることが可能です。
2.WAFなどのファイアウォール導入
ファイアーウォールの導入も有効な手段です。
特に最近はWAFというウェブアプリケーションの脆弱性を悪用した攻撃から保護するファイアーウォールが人気です。
各社様々なWAFサービスを提供していますので、調べて導入してみると良いでしょう。
クラウド型のWAFであれば、導入や運用が簡単ですのでその軸でいくつか製品を探してみると良いです。
3.脆弱性スキャンツール、IDS・IPSなどのセキュリティツール導入
脆弱性スキャンは、サイトをスキャンすることでセキュリティホールの発見などをサポートしてくれるものです。
またIDS(不正侵入検知システム)で通信を監視したり、IPS(不正侵入防止システム)で異常な通信を防ぐような施策も有効です。
その他の対策
1.常時SSL化
今や、サイトのすべてのページをSSL化させる「常時SSL化」が必須の時代となりました。
誰でも簡単に公共のアクセスポイントにアクセスでき、情報のやり取りができてしまうため、セキュリティの観点ではすべてのページをSSL化(暗号化)させることで通信の盗聴や改ざんを防ぐことが重要です。
また、SEOの面からもGoogleの発表にあるように常時SSL化されたサイトは検索エンジンのランキングに良い影響が出るということです。
2.phpMyAdminをよりセキュアに使う
phpMyAdminは、簡単にブラウザ上でデータベースを操作することができるサービスです。
わざわざデータベースにログインし、SQLコマンドを打つ必要がないため非常に便利なのですがその反面セキュリティリスクが格段にあがってしまうことはおさえてほしいところです。
データベースのデータを第3者に操作されるリスクは避けなければなりません。
そこで、使用する場合はphpMyAdminのアクセス部分だけは特定のIPアドレスからのアクセスしか許可しないようにIPアドレス制限をかけましょう。そうすることで、外部からアクセスをされることを防ぐことができます。
まとめ
WordPressと言っても構成要素としてはPHPなどのミドルウェア、プラグイン、テーマなどですので検討すべきところはたくさんあります。
そして、意外と忘れがちなのがWordPressはオープンソースソフトウェアで、無料で使えるということです。
無料ということは利用者各々の理解やモラルが非常に重要ということです。
紹介してきた対策は、一つひとつ行っていき、継続的な運用を行うことでWordPressサイトを安全に運用できるようになります。
とはいえ、これをすべて自社で行うのはかなり難しいのではないでしょうか。
多くの企業では、Webのシステム面やセキュリティ面で専任の担当者がいたとしても、滞りなく対応ができているという場合は非常に少ない印象です。
そこで、プライム・ストラテジーでは、超高速CMS実行環境 KUSANAGI を開発し、セキュリティ対策を施した、高速環境にてWordPressを運用できるサービスを提供しています。
KUSANAGIというのは、パフォーマンスチューニングを行い、企業サイトレベルにも対応できるようなセキュリティ対策を施したLAMP(LEMP)環境のことです。
Microsoft AzureやAWSなどのクラウドサーバーや、ConoHa、さくらのVPSといったVPSサービスで利用することができ、KUSANAGIの利用料は原則無料で、企業様の本番環境としてご利用頂く場合には保証をつけたBusiness Edition以上のライセンスをご購入いただくことをお願いしています。
しかし、そんなWeb環境を自社リソースだけで対応するのは難しいという方向けに、KUSANAGIマネージドサービスという保守サービスを提供しています。
KUSANAGIマネージドサービスでは、フルマネージドでWordPressのセキュリティ対策からサーバー側のセキュリティ対策(PHPなどのミドルウェアアップデートなど)まで行い、お客様には実益になるコンテンツへの人的資源投下を行っていただけるようになります。
今まで述べてきた対策はすべてKUSANAGIマネージドサービスであれば対応できるものとなっております。
ご興味あれば是非お問い合わせください!
▶KUSANAGI公式サポートサービス
実際にKUSANAGIの環境で WordPressを利用している例としては、
- [コーポレートサイト]
株式会社セガホールディングス
株式会社サンリオ - [大学サイト]
國學院大學
金沢大学 - [メディアサイト]
The Japan Times
Mercedes-Benz LIVE!
など多くの企業様、大学様がございます。
- WordPressのセキュリティ対策方法を知り、自社サイトを安全に運用していきたい
- そもそもWordPressを企業のWebサイトに使うCMSとして選択して良いのかの判断がつかない
といったお話は弊社にご相談いただく内容としては非常に多くなっておりますので是非ご相談ください!