2026年7月11日
2026年7月11日
WordPressのバックドアを発見・除去する方法
はじめに
WordPressは世界で最も人気のあるオープンソースCMS(コンテンツ管理システム)であり、その柔軟性と機能の豊富さから多くのWebサイトが利用されています。一方で、その広範な利用や複雑な構造を悪用して攻撃者がバックドアを作成し、非公開の手段でサイトにアクセスすることがあります。そのため、定期的にセキュリティチェックを行い、不正なファイルやコードを発見・除去することは非常に重要です。
症状・背景
このテーマが必要になる主な場面:
- サイトが予期せず大量のトラフィックを受けた
- ログイン情報が漏洩した可能性がある
- WordPressプラグインやテーマを更新後、サイトに変更点があった
- 不明なファイルやコードがサーバー上に存在する
手順・設定方法
ステップ1: サイトのバックアップを作成
# WordPressデータベースのエクスポート
mysqldump -u [DB_USER] -p[DB_PASSWORD] [DB_NAME] > wp_backup.sql
# ファイルとフォルダのバックアップ(wp-contentディレクトリを対象)
rsync -avz --delete /var/www/html/wp-content/ /path/to/backup/
ステップ2: WordPressファイルの最新版に更新
# 更新する前のサイト構造を確認
ls -la /var/www/html/
# WordPressを一時的に停止(必要であれば)
wp core stop-network
# WordPressのアップデート実行
wp core update --force
# プラグインとテーマも最新版に更新
wp plugin update --all
wp theme update --all
ステップ3: 不明なファイルやコードをスキャンする
# wp-cliを使用して不審なファイルを検出
wp security-check --scan-files
# ファイルのハッシュ値とWordPress標準値との比較
find /var/www/html/wp-content/ -type f | xargs sha1sum > file_hashes.txt
diff file_hashes.txt /path/to/clean/file_hashes.txt
ステップ4: セキュリティ設定を強化
# FTPやSSHを通じた直接ファイル編集を禁止
chmod 755 -R /var/www/html/wp-content/
chown www-data:www-data -R /var/www/html/wp-content/
# ファイアウォールのセキュリティルールを確認・更新
sudo ufw status verbose
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
注意事項
- バックアップは常に最新で: 機密情報を含むファイルやデータベースも含めて、定期的なバックアップを取る。
- セキュリティプラグインの使用: 入侵検知システムやウイルス対策プラグインを導入し、サイトの安全性を向上させる。
- ユーザー権限の適切な管理: ユーザーとファイルの所有権およびパーミッション設定は厳格に管理する。
- SSHアクセスの制御: 多くの場合、HTTPSやFTPよりも安全であるため、可能ならばSSHアクセスのみを許可し、その他のアクセス手段は閉じる。
まとめ
1. バックアップ: 定期的なバックアップがサイト保護の基本です。データの復旧に時間がかからないように、頻繁に行うことが重要です。
2. 最新化: WordPressとそのプラグイン、テーマを定期的に更新し、セキュリティ上の脆弱性に対応します。
3. スキャン: 不審なファイルやコードは早期発見が肝心。自動スキャンツールを使用して定期的なチェックを行うようにしましょう。
4. 設定強化: ファイルパーミッションの調整やファイアウォールルールの最適化など、システム全体のセキュリティレベルを引き上げることが求められます。
5. 監視と教育: セキュリティ対策は一時的なものではなく、継続的にサイトを監視し、スタッフに対して常識的なセキュリティ意識を持たせることが必要です。
関連記事: