2026年10月1日
2026年10月1日
WordPressのOWASPガイドラインに基づくセキュリティ対策
はじめに
WordPressは、世界中で最も人気のあるオープンソースのコンテンツ管理システム(CMS)です。その普及と便利さゆえに、セキュリティ上の脅威も高まっています。この記事では、OWASP(Open Web Application Security Project)ガイドラインに基づいてWordPressサイトを保護するための手順を紹介します。
症状・背景
このテーマが必要になる主な場面:
- <場面1>: WordPressサイトが攻撃を受けた
- <場面2>: サイトの脆弱性スキャンで危険な結果が出た
- <場面3>: ユーザーからのセキュリティに関する問い合わせが増えた
- <場面4>: 新しい法律や規制により、サイトのセキュリティ強化が求められた
手順・設定方法
ステップ1: WordPressファイルとデータベースのバックアップ作成
# バックアップディレクトリーを作成する
mkdir -p /var/backup/wp/
# wp-config.phpを含むWordPressディレクトリー全体を圧縮バックアップ
tar czvf /var/backup/wp/wordpress_backup_$(date +%Y%m%d).tgz /var/www/html/wordpress
# MySQLデータベースの全テーブルダンプを作成する
mysqldump -u root -p wordpress > /var/backup/wp/database_backup.sql
ステップ2: 不要なプラグインとテーマを削除
# WordPressの管理画面から不要なプラグインとテーマを一覧表示
wp plugin list --status=inactive
wp theme list --status=inactive
# 無効化されたプラグインとテーマを完全に削除
wp plugin delete <plugin_name>
wp theme delete <theme_name>
ステップ3: ファイアウォールとウェブアプリケーションファイアウォール(WAF)の設定
# iptablesを使用して不必要なポートを閉じる
iptables -A INPUT -p tcp --dport 21 -j DROP
iptables -A INPUT -p tcp --dport 80 -j DROP
# Cloudflare WAFルールを作成
curl -X POST "https://api.cloudflare.com/client/v4/zones/<zone_id>/firewall/access_rules/rules" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data '{"configuration":{"target":"ip","value":"<bad_ip>"},"notes":"Automatically blocked by WAF.","paused":false,"mode":"block"}'
ステップ4: WordPressとPHPのアップデートを定期的に行う
# WordPressコア、プラグイン、テーマの更新チェック
wp core update --minor-check
wp plugin update --all --dry-run
wp theme update --all --dry-run
# 必要な場合、更新を実行
wp core update
wp plugin update <plugin_name>
wp theme update <theme_name>
# PHPバージョンの確認と必要に応じてアップデート
php -v
yum update php* -y
注意事項
- <実践的な注意点1>: バックアップを定期的に作成し、安全な場所に保管する
- <実践的な注意点2>: 外部からアクセスできるポートは最小限に絞る
- <セキュリティ上の注意>: WordPressの管理者アカウント名をデフォルトの"admin"から変更する
- <パフォーマンス/運用上の注意>: WAFが誤って正当なトラフィックをブロックしないように定期的にレビューする
まとめ
1. バックアップ: 定期的なファイルとデータベースのバックアップを作成し、安全な場所に保管します。
2. プラグイン管理: 不要なプラグインとテーマを削除し、最新バージョンを使用します。
3. ファイアウォール設定: 不必要なポートを閉じ、WAFルールを適用して不正アクセスを防ぎます。
4. アップデート: WordPressコア、プラグイン、テーマの定期的な更新を行い、PHPも必要に応じて更新します。
5. ユーザーアクセス管理: 管理者ユーザー名を変更し、パスワードポリシーを強化します。
関連記事: