BLOG

情報発信

WordPressのセキュリティ対策7選

投稿者

小川匡教

サムネイル画像

なぜWordPressのセキュリティは弱いと言われてしまうのか?

今回はWeb制作者なら知っておくべきセキュリティ対策をまとめました。お客様から「WordPressってセキュリティが弱いって聞いたんだけど大丈夫?」と聞かれることもありますが、弊社では「セキュリティ対策をしっかりと行なっておりますのでご安心ください。」と言えるよう普段から設定をしています。
WordPressのセキュリティが弱いと言われてしまう理由を3つまとめてみました。

  • 世界で一番使用されているCMSだから攻撃の対象にされやすい(2019年時点で全サイトの34%がWP)
  • オープンソースのためソースの中身が見れるから(だからすぐに脆弱性が発見されるということはない。公式のテーマやプラグインであれば審査も通っている。)
  • 利用者のリテラシーが低い(パスワードが普通に弱かったりするから)

弱いと言われる理由は、WordPressの必ずしも構造上にあるのではなく、利用者のリテラシーが低く、攻撃されやすいため相対的に問題が発生するリスクが高いからだと考えています。
WordPressは誰でも簡単に構築できる便利なCMSだからこそ、セキュリティに関するリテラシーが高くない方でも開発できる、しかしサーバー周りは自分達で管理する必要があるからセキュリティリスクが発生しやすい。
そういった面でShopifyなどSassプラットフォームはサーバー周りを良きように設定してくれていますので、WordPressよりもセキュリティが高いと言われており、より誰でも簡単に安全なWebサイトが作れるようになりました。
しかしだからと言ってWordPressはダメだ!と結論づけてしまうのではなく、きちんとセキュリティ対策すれば、まだまだ使用できるシステムだと考えています。
前置きが長くなりましたが、次のセクションから対応方法をリストアップしましたので見ていきましょう。

対策1:管理画面のパスワード複雑化

当たり前すぎる対策なのですが、まずは管理画面のパスワードは複雑なものに設定しましょう。
reddit←の記事はパスワードが破られるまでの時間を調査したものがまとめられています。小文字のみ8文字のパスワードだと5秒で破られてしまう、数字のみだと文字数が多くなっても一瞬で解析できてしまうという結果です。
「小文字+大文字+記号」を含めたパスワードが推奨されています。
パスワード生成はパスワード生成サイトを使用したり1passwordを使うのがおすすめです。


また、パスワードほど重要ではありませんが、WordPressのログインIDも「admin」など、よく使用されており、予測しやすいものにするのは危険と言われていますので、独自のIDを設定するようにしましょう。

対策2:WordPress、テーマ、プラグインは常に最新バージョンに

WordPressのダッシュボード画面でテーマもプラグインも全て最新状態になっていることがベストです。
WordPress、テーマ、プラグインは定期的にアップデートしましょう。しかし、WordPressのメジャーバージョンアップ(バージョン番号の1桁目、2桁目のアップデート)は注意が必要で、WordPressの更新にプラグインの更新が追いついていない場合があり、サイトが動作しなくなってしまう危険性があります。
WordPressのメジャーバージョンアップする際は

  • テストサイトに同じ環境を作り、そこで試してから本番サイトを更新する
  • 更新する前にpublic_html以下のフォルダおよびDBのバックアップを取る

と安全です。

プラグインはインストール数が多く、更新頻度が高いものに絞ってインストールしよう

そもそもプラグインを多用しているサイトはセキュリティに注意がより必要になります。プラグインの脆弱性をついて攻撃を受けてしまう可能性があります。
プラグインを選定する際は、

  • 更新頻度が高いもの
  • インストール数が多いもの

を選択するようにしましょう。
また根本的な話になりますが、プラグインに頼らずに開発できるようになることも重要だと考えています。
プラグインは開発を非常に便利かつ効率化してくれますが、

  • セキュリティリスクになりうる
  • サイト速度低下につながる

という理由から、弊社ではできるだけプラグインを使用せずに独自で機能を開発するようにしています。
1サイトにつき10以上インストールしていると、少し多いな...という感覚です(もちろんサイト規模や機能によりますが)。

対策3:ログインURLを変更する

WordPressのログインURLは基本設定では

  • http://xxx.xxx/wp-login
  • http://xxx.xxx/wp-admin

でログインが面が開くようになっており、サイトのURLが分かればログインURLが分かってしまうことになります。
それで対策1で書いた通り、IDやパスワードが脆弱なものだとすれば...考えただけでぞっとしますよね。。
そのためWordPressではセキュリティ対策できるプラグインが用意されています。弊社ではSiteGurad WP Pluginというプラグインを使用しています。
機能としては、管理画面ログインURL変更の他に

  • 管理画面ログイン画像認証
  • ログインロック
  • ログインアラート

などがあり、これでインストールしてプラグインを有効化するとデフォルトで有効になっています。

ログインURLの変更設定方法は、
「管理画面メニュー>SiteGurad>ログインページ変更」を開き、
下記の画面の上部にON、OFFのボタンがありますので、「ON」に変更。
オプションの「管理者ページからログインページへリダイレクトしない」にもチェックを入れておくと安全です。

対策4:FTPではなく、SFTP or SFTPを使用する

対策4,5,7はWordPressのセキュリティ対策に限った話ではなく、一般的にもとても大切な対策を挙げています。
Webサイトの作成後FTPクライアントツール(FileZilla、Cyberduckなど)でテストサーバーや本番サーバーへファイルをアップロードするかと思うのですが、この時にどのFTPクライアントツールでもプロトコル(Protocol)というものを選択できるようになっています。こちらでFTPを使用している方もいらっしゃるかもしれないのですが、こちらは暗号化されていない通信規格となっており、ID、パスワード、ファイルなどのデータが簡単に盗み取られてしまう状態でファイルを転送していることになります。
これを防ぐためにFTP TLS(FTPS)やSTFPという通信規格を選択するようにしましょう。STFPが最もセキュリティが高いのですが、鍵認証の設定が必要で少し複雑な設定が必要なため、最低限FTP TLSを使用するようにしましょう。

対策5:スパムメール対策 reCAPTCHAを導入する

WordPressにはお問合せフォームを作成できるプラグインがいくつか用意されていますが、作成しただけではセキュリティに弱く、「スパムメールが頻繁に来るようになってしまった」などお客様からのクレームのもとになってしまう可能性があります。そのようなスパムメールを防止するのがreCAPTCHAという技術です。以下の画像が表示されていれば、reCAPTCHAが設定されている証拠です。


Contact form 7プラグインではデフォルトでreCAPTCHAの設定が可能で、弊社が主に使用しているMW WP Formというプラグインでは、reCAPTCHA for MW WP Formというプラグインを追加で入れて設定します。設定方法は検索するとたくさん記事が出てきますので、ぜひ設定してみてください。

対策6:WordPress設定ファイルのパーミッションを変更する

パーミッションとはファイルにアクセスできる権限のことを指すのですが、これが設定によっては誰でも見れる状態になってしまっていたために、サイトを改竄されてしまうという事例も過去にあるようです。
ファイルは

  • wp-config.php
  • .htaccess

の設定を変更しましょう。特にwp-config.phpはデータベース情報なども記載している重要なファイルですので、特に注意が必要です。
FTPツールからpublic_htmlフォルダを開き、ファイルを右クリックすると、FileZillaであればパーミッションの変更というメニューが表示されます。私が使っているForkliftというツールであればGet Infoというメニューがありますのでこちらをクリックします。
下記のようにパーミッションを変更できる画面が開くのですが、いづれのファイルもOwnerのみRead、Writeにチェックを入れ、数字が600となるように設定しておきましょう。
これでファイルのオーナー(所有者)のみ読み書きできるようになり安全です。

対策7:WAFを設定する

WAFとはWeb Application Firewallの略で、ファイヤーウォールというのはパソコンの設定でも聞いたことがあるかと思います。それをWebで行う仕組みのことです。
こちらはWordPressからの設定ではなくレンタルサーバーのサーバーパネルからの設定します。書きはエックスサーバーの設定方法ですが、「さくらのレンタルサーバ」や「ロリポップ」などでも設定可能です。
エックスサーバーではサーバーパネルを開いた右下にありWAF設定という項目がありますので、こちらをクリック


設定するドメインを開くと各設定項目画面が開きます。
基本的に全てONにしましょう。
(XSSやSQLインジェクションは非常に重要なセキュリティ用語ですので、Web制作始めたての方はぜひ調べてみてください。)


※SQL対策をONにするとページを開いた時に403エラーが発生する現象が発生しましたので、現在OFFにしています。

さいごに

今回はセキュリティ対策の方法についてまとめました。もちろんこれ以外にも色々なセキュリティ対策がありますが、制作の予算の関係でどこまでセキュリティ対策にコストを割くかは案件次第になってくるかと思います。
その中でも手軽かつ重要なものをリストアップさせていただきましたので、できる限り対応していければと考えています。
この記事をきっかけにセキュリティの重要性が少しでも広まれば幸いです。
セキュリティ対策などにお困りの方は弊社までいつでもご相談ください。
お問合せはこちら

参考文献
「WordPressセキュリティ大全」吉田哲也著、秀和システム、2019年10月25日


この記事を書いた人

この記事を書いた人

小川匡教

Webディレクターとフロントエンド開発担当。得意領域はJSアニメーション実装やWordPressのバックエンド開発。システムエンジニアだった経験から業務アプリケーションの開発も行う。

CONTACT

お問い合わせ

Contact