Wordpressというのは、記事を書いて、投稿すると、その記事をコンテンツとしてWEBページに表示できるというWEBアプリケーションのことで、記事や画像などのコンテンツを管理できるシステムであることからコンテンツマネージメントシステムと呼ばれます。
簡単で便利で、カスタマイズも敷居が低いので、多くの人が利用しています。それ故に、脆弱性を突いた事件が多発して、ものすごくバージョンアップが早いソフトウエアでもあります。
もともとはブログ用のシステムとして開発されましたが、現在では企業のホームページやECサイト、ポートフォリオサイトなど幅広い用途に活用されています。
WordPressの特徴
- 無料で利用可能(オープンソース)
- 豊富なテーマとプラグインで簡単にデザインや機能をカスタマイズできる
- 直感的な管理画面で初心者でも使いやすい
ワードプレスで作成したサイトは、管理画面から記事を投稿できるようになる。ブログ記事を投稿するようにページを追加できる。ページは、あらかじめ固定ページをカスタマイズしておいたり、カテゴリを決めてカテゴリごとに一覧や記事ごとのカスタマイズページを用意しておくことで、目的にあったテーマとしてサイト全体をつくることもできます。
ここからは、セキィリティリスクを考えていくため、ワードプレスのデメリットを掘り下げていきます。
デメリット
⚠️ セキュリティリスクがある
人気のCMSなので、攻撃の標的になりやすい。定期的な更新やセキュリティ対策が必要。この記事はワードプレス最新のバージョン6.8で書いていますが、見ている部分はワードプレスではないのです。Laravelで書いたシステムがワードプレスのDBから記事を取得して表示しています。
⚠️ 設定やカスタマイズを把握していなくてもいじれてしまう
あまりよくわかっていない人でも使えてしまうので、把握できていない箇所がセキュリティホールを生み出してしまう可能性もあります。
⚠️ プラグインの互換性問題
異なるプラグインを組み合わせると、競合して動作しないことがある。
⚠️ ページの表示速度が遅くなることがある
プラグイン自体のデータ構造の問題や、画像・動画へのアクセスするためのSQLの問題などで処理時間がかかりサイトが重くなる場合もある。
⚠️ 定期的なメンテナンスが必要
WordPress本体やプラグインの更新、バックアップの管理などをしないと不具合が発生する可能性を高める。
WordPressは柔軟性が高くて便利ですが、運用には管理能力と適切な対処能力が必要です。また、デザイナやコーダーだからといって、セキュリティに関して無頓着ではいけません。
プログラミング技術が低い人でもカスタマイズはできてしまいますが、そこからセキュリティホールになる可能性は非常に高いです。
セキュリティホールが生まれる主な原因
🔹問題のあるプラグインをインストールする
プラグインの中には適切に管理・更新されていないものもあります。特に公式ではないプラグインを使うと、悪意のあるコードが含まれている可能性は非常に高い。
🔹 テーマやプラグインを最新にしない
古いバージョンには既知の脆弱性が含まれることがあり、攻撃者に狙われる原因になります。
🔹 適切な権限管理をしない
管理者と一般ユーザーの権限を適切に分けず、すべてのユーザーに編集権限を与えてしまうと、不正な変更を許してしまうことがあります。
🔹 簡単なパスワードを設定する
パスワードの強度が低いと、ブルートフォース攻撃(総当たり攻撃)により簡単に突破される危険があります。
🔹 ファイルやディレクトリの権限設定ミス
WordPressの「wp-config.php」などの重要なファイルに適切なアクセス権限を設定しないと、外部から読み取られる可能性があります。
例えば、Linux上へのファイル転送をFTPで行っているなど、それ自体も問題です。FTPは暗号化されていないので、セキュリティ的にかなりリスクがあります。
FTPを使うことの問題点
🚨 暗号化されていない
- FTPはデータを平文で送信するため、通信を盗聴されるとログイン情報やファイルの内容が丸見えになります。
🚨 パスワードが容易に盗まれる
- もしWi-Fiや公衆ネットワークでFTP接続すると、悪意のある第三者にログイン情報を簡単に取得されてしまう可能性があります。
🚨 アクセス権限の管理ミス
- ファイルのパーミッション(アクセス権)の設定を間違えると、重要な情報が外部に漏れることも。
🚨 バックドアを設置される可能性
- 攻撃者がサーバーに侵入すると、バックドア(隠しアクセス経路)を設置されることがあり、気づかないうちにサイトが乗っ取られる危険も。
安全な代替方法
🔹 SFTP(Secure FTP)を使用する → SFTPはSSHを利用して暗号化通信をするため、セキュアにファイル転送が可能。
SSH自体を利用できるIPを制限したり、認証鍵をつかうなどセキュリティをたかめた運用が要求されます。
FTPを使うのは非常に危険なので、セキュリティを意識して安全な方法に切り替えたほうがいいですね。
そもそもFTPなんて、最近のOSにはインストールしてないし、そもそもFTPがインストールされているサーバってどういうことだよ?
確かに、今どきFTP(File Transfer Protocol)がインストールされているサーバってちょっと気になりますね。FTPは古くから使われているプロトコルですが、セキュリティ的には脆弱性が多いため、現代のサーバ環境ではSFTPやFTPSを使うのが一般的です。
FTPがインストールされているサーバの可能性
- レガシーシステム
- 古いサーバ環境では、依然としてFTPを使っているケースがある。
- 以前の慣習でFTPを使い続けている企業も少なくない。
- 初期設定でインストールされている
- 一部のVPSやレンタルサーバでは、デフォルトでFTPサービスがインストールされていた時代がある。
- ユーザーが手動でインストール
- FTPを使い慣れたユーザーが、自分の作業環境に合わせて意図的にFTPを導入しているケース。
- メンテナンスされていないサーバ
- 設定の見直しをしていないため、不要なサービスが動き続けている可能性がある。
さて、安心、安全に、ワードプレスをつかって運用していくためには
古いバージョンには脆弱性が存在する可能性があるため、必ず最新のものを使用。
信頼できるテーマ・プラグインだけを使用する
- 不明な開発元のプラグインやテーマを使用すると、バックドアやマルウェアが含まれている可能性がある。
- 公式のWordPressプラグインディレクトリからダウンロードするのが安全。
強力なパスワード & 二要素認証(2FA)を導入
- 管理者アカウントに強力なパスワードを設定し、推測されにくいものを使用。
- 二要素認証(2FA)を追加することで、不正ログインを防ぐ。
WordPressの権限管理を適切に設定
- 管理者権限を必要な人だけに付与し、不要なアカウントは削除。
- ユーザーに適切な最低限の権限を与え、誤った変更を防ぐ。
セキュリティプラグインを導入
- WordPressのセキュリティ強化のために、以下のプラグインを導入。
- Wordfence Security(ファイアウォール & マルウェアスキャン)
- Jetpack Protect(脆弱性チェック & ブルートフォース対策)
- Sucuri Security(不正アクセス監視 & セキュリティハードニング)
定期的なバックアップを取る
- WordPressのデータが破損したり、攻撃を受けても復旧できるようにバックアップを設定。
- UpdraftPlusやDuplicatorを使って自動バックアップを実行。
- サーバーだけでなく、クラウドや外部ストレージにも保存しておくと安全。
FTPは使わずSFTPやSSHを利用
- FTPは暗号化されていないため、SFTPまたはSSHを使用。
WordPressの重要ファイルを保護
wp-config.phpのアクセス権限を適切に設定:chmod 600 wp-config.php
xmlrpc.php を無効化してブルートフォース攻撃を防ぐ:# XML-RPCを無効化する
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
WAF(Webアプリケーションファイアウォール)の導入
- CloudflareやAWS WAFを活用し、外部からの攻撃をブロック。
- WordfenceやSucuriにも内蔵WAFがあるので有効化すると効果的。
WordPressの運用で最も重要なのは、定期的な更新・バックアップ・適切な権限管理です。 また、不審なファイルやアクセスがないか、ログを確認するのも大切です。