Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WordPress のセキュリティの基礎について/WordPress Meetup@KOBE

Avatar for YukinobuAsakawa YukinobuAsakawa
June 23, 2025
180

WordPress のセキュリティの基礎について/WordPress Meetup@KOBE

2025/06/22(日)
Kansai WordPress Meetup@KOBE
サーバーやWordPressのセキュリティについて話し合う会

浅川幸宣の資料

Avatar for YukinobuAsakawa

YukinobuAsakawa

June 23, 2025
Tweet

Transcript

  1. • 氏名:浅川 幸宣(あさかわ ゆきのぶ) • 1983年・大阪府泉大津市出身 • 経歴 ◦ 2005年新卒、IT業界に入り35才までの13年間は会社員として働く(今年で 20年目!) ◦

    2018年にフリーランスとして独立 ◦ 会社員時代から OSS(オープンソースソフトウェア)の活動を始める ◦ WordPress は、開発・サポート・翻訳・イベント運営スタッフなどの活動を行なっています。 ◦ 2025年2月〜WordPress.org サポートフォーラム(日本語版)のモデレーターとして活動 ◦ なお、OSS 活動を株式会社Webの相談所さんにスポンサー支援いただいています。 自己紹介 WordCamp2018 Osaka Photo by Atsushi Ando-San WordPress.org プロフィールページ
  2. 本日は、日頃のフォーラムでの回答経験も踏まえて、WordPressを安定して運 用するためにセキュリティーの基本知識や疑問点、つまづきやすいポイントなど を解説します。 Agenda 1. WordPress の基礎知識 1.1. WordPressサイトの特徴 2.

    定期的なアップデート(コア・プラグイン・テーマ) 2.1. 自動更新を設定する場合 2.2. 手動更新する時の工夫 2.3. エラーなどで特定バージョンを戻したい時 3. 基本的なセキュリティ対策 3.1. レンタルサーバーで実施できる対策 3.2. WordPress プラグインで実施できる対策 3.3. その他セキュリティー対策 4. WordPressアカウントの管理 4.1. 権限(ロール)の管理 5.1. ユーザーの新規追加・削除・停止 5.その他 5.1. 標準となるテーマやプラグインの選定 5.2. 開発環境の使い分け 5.4. FTPアカウントの運用について 5.5. おまけ
  3. Web コンテンツを構成するテキスト、画像、レイアウト情報などを 一元的に保存・管理し、サイトを構築・編集するソフトウェア( CMS)です。 • CMSとして世界 No.1のシェアを持ち、2023年5月現在、世界中のサイトの 43%が WordPress を使用しています。

    ※W3Techsによる調査結果https://w3techs.com/ • 普段目にしているサイトの多くも WordPress を使って構築されており、「ニュースサイ トの The Japan Times」や「女性向け情報サイト・マイナビウーマン」など、日本国内で も多くのサイトやサービスの構築に使用されています。 WordPressとは
  4. 「静的サイト」と「WordPressサイト(動的サイト)」のページ 表示の流れと、その違い 静的サイト WordPressサイト(動的サイト) HTMLファイルをそのまま返す (原則として、作った通りで、いつ・誰がみても同じ内 容が表示される) データベースから集めて毎回 HTMLを作る (ブログ一覧の自動生成、アクセス数に基づいた人気記

    事、予約投稿機能、下書きに戻すなどが設定できる) 速くてシンプル 柔軟で更新しやすいが少し遅い場合も プログラム不要 プログラム(PHP)とDB(MySQL)が必要 構築と運用にはコーディングのスキルが必要 ・管理画面から操作可能 ・ブロックエディターでノーコードで作成できる ・更新が必要のないサイト ・LP(ランディングページ)向き ・日々更新が必要なサイト (ブログ、メディアサイトなど)
  5. WordPressでのセキュリティー対策の基本① 1 WordPressのアップデート コア、プラグイン、テーマをアップデートしておく必要がある。 2 サーバーソフトウェアのアップデート PHPやデータベース(MySQL/MariaDB)も定期的に最新版 へ。 3 ファイル/ディレクトリのパーミッション管

    理 重要ファイルへの書き込み制限(例 : wp-config.php) 4 WordPressアカウント管理 強力なパスワード使用と定期変更と不要なアカウントや権限 の見直し 5 常時SSL化対応 サイト全体でSSLを有効化し、HTTPアクセスをリダイレクト 6 WordPressサイトのバックアップ wp-contentとデータベースのバックアップは最低限必要 7 その他 WAFによる不正アクセス対策、FTPアカウントの管理、サー バー契約管理 一般的なレンタルサーバーで、WordPressサイトを運用する場合、 以下の対策が必要です。
  6. WordPressでのセキュリティー対策の基本② ①WordPressのアップデート ・コア(本体) ・テーマ ・プラグイン ⑥WordPressサイトのバックアップ ②サーバーソフトウェアのアップデート ・PHPプログラム ・MySQLデータベース ③ファイル

    /ディレクトリのパー ミッション管理 ④WordPressアカウント管理 ⑤常時SSL化対応 ⑦その他 ・WAFによる不正アクセス対策 ・FTPアカウントの管理 ・サーバー、ドメイン契約管理 ・ログによる監視
  7. • 自動更新を設定する場合 ◦ 検証環境を自動更新をONに設定する ◦ 本番環境は、問題ないことを確認してから手動更新する ◦ WordPress コアのマイナーバージョン(セキュリティアップデート)の自動更新を ON

    • 手動更新する時の工夫 ◦ アップデートより前にバックアップを手動で行うこと ◦ ①コア、②プラグイン、③テーマの順番で行う ◦ 脆弱性が発見された時のアップデートを見逃さない工夫が必要(攻撃対象になるため) 自動更新・手動更新の場合の設定 追記: ・https://www.cve.org/ などのサイトの情報をウォッチする ・Wordfenceなどのセキュリティー関連の発信をしている Xアカウントをフォロー する
  8. 1. プラグインを使う方法 1.1. WP Downgrade | Specific Core Version 1.2.

    WP Rollback WordPressの本体、テーマ、プラグインのバージョンを下げ たい(戻したい時)① WordPress本体、テーマ、プラグインは、原則として最新版が望ましいですが、最新版にアップデート した後に、不具合やエラーなどで一時的に(暫定的に)前のバージョンに戻したい時があります。その ようなケースで有効です。
  9. 3. WP-CLIコマンドを使う方法 WP-CLI は WordPress を管理するためのコマンドラインインターフェースです。 プラグインの アップデートやマルチサイトのセットアップなど、多くのことをブラウザなしで実行できます。 --forceは上書きするという意味です。 WP-CLI公式サイト:

    https://wp-cli.org/ja/ 3-1.コアのアップデート(ダウングレード)をする場合 wp core update --version=<バージョン> --force 3-2.プラグインのアップデート(ダウングレード)をする場合 wp plugin install <プラグイン名> --version=<バージョン> --force 3-3.テーマのアップデート(ダウングレード)をする場合 wp theme install <テーマ名> --version=<バージョン> --force WordPressの本体、テーマ、プラグインのバージョンを下げ たい(戻したい時)③
  10. 一般的なレンタルサーバーでは以下の項目を設定可能です。本番環境では原則、以下のすべての項目を有効に することをお勧めします。 1.ネットワーク/サーバーレベルの防御 • DDoS攻撃の緩和 ◦ 大量アクセスによるサーバー負荷を軽減・遮断 • 不正アクセスの遮断( IP制限、国別制限など)

    ◦ ブラックリストIP、海外IPブロックなど • SQLインジェクション・XSS等の一般的なWeb攻撃の防御 ◦ アプリケーション層への悪意あるリクエストの検知・遮断 • 既知の脆弱性へのアクセスブロック ◦ 公開された脆弱性を突いた攻撃パターンの遮断 • ボット・クローラー対策 ◦ 不審なアクセスや自動化ツールの遮断 • SSL/TLS(HTTPS)強制/証明書の管理 ◦ 通信の暗号化、SSL証明書の自動更新 2.インフラ・システム運用 • サーバーOSやミドルウェアの脆弱性対策(パッチ適用など) • 自動バックアップやリカバリ(リストア)機能 • ファイアウォールなどのネットワーク制御 レンタルサーバーで実施できる対策
  11. 1.WordPressアプリケーション固有の防御 • ログインページの保護 ◦ reCAPTCHA導入、ログイン試行回数制限、2要素認証(2FA) • 管理画面(wp-admin)へのアクセス制御 ◦ IP制限、Basic認証追加 •

    ユーザー権限の管理 ◦ 不要なユーザーの削除・権限見直し • ファイル編集機能の無効化 ◦ wp-config.phpや管理画面からのテーマ・プラグイン編集禁止 • コア・プラグイン・テーマの脆弱性診断 ◦ 脆弱性のあるバージョン検知と通知 • WordPressバージョンやディレクトリ構造の露出防止 ◦ “readme.html” や “wp-config.php” など機密ファイルへの対策 • スパム対策 ◦ コメントスパム、フォームスパムのブロック • 管理者へのアラート通知 ◦ 不審なログインや変更発生時のメール通知 WordPressプラグインでカバーすべき範囲
  12. WordPressプラグイン(SiteGuard WP Plugin)で実施できる 対策 1. ログインページ変更 a. /wp-login.php を別のURLに変更し、ブルートフォース攻撃を軽減 b.

    管理画面URLが変わるので運用に注意が必要ですが、有効な対策です。 2. ログイン通知メール a. 管理者にログイン通知を送信 3. ログイン試行制限 a. 指定回数以上の失敗で一定時間ブロック 4. 画像認証(CAPTCHA) a. ログインやコメント投稿に画像認証を追加 b. 海外からの攻撃に対して非常に有効な対策と言えます
  13. WordPress の運用保守でログを活用する方法① WordPressサイト運用でよく使われる「サーバーアクセスログ」と「デバッグログ」につ いて、それぞれの仕組み・活用方法・注意事項を解説します。 1. サーバーでのアクセスログ • サーバー(ApacheやNginxなどのWebサーバー)が、Webサイトへのリクエスト(アクセス)があるたび に記録するログ。 •

    レンタルサーバーの管理コンソール画面から設定を行う。 (サーバー会社によって、設定方法が異なります。ご自分の設定を確認してみてください。) 参考: https://web-soudan.co.jp/topics/5227/ 2. デバッグログ(WordPressのデバッグログ) WordPressがエラーや警告、開発用の情報を記録するログ。 • プラグインやテーマ開発時の不具合調査 • サイトで発生するPHPエラーや警告、デプリケーションの検出 • サイト障害時の原因特定(本番環境では表示せずログ出力のみ推奨)
  14. WordPress の運用保守でログを活用する方法② 種類 仕組み 主な用途 注意事項 サーバーアクセスログ Webサーバーが記録 アクセス分析・攻撃検知 個人情報管理・容量管理

    デバッグログ WordPressがエラー等を記 録 バグ調査・原因解析 本番表示禁止・肥大化に注 意 まとめ 注意 セキュリティー対策としては、アクセスログがサーバー側で保存できる設定に なっているかが非常に重要です。アクセスログの記録がオフの状態だった時に は、不正アクセスの履歴などが確認できないためです。
  15. 権限(ロール)の管理 WordPress を運用する場合、サイト制作を行う方は「管理者」権限、投稿記事などを執筆する だけ(日常業務でブログの更新のみ)のユーザーの場合には、「編集者」権限にすることをお勧 めします。 • 管理者 (スラッグ: ‘administrator’) –

    シングルサイト内のすべての管理機能にアクセスで きるユーザー。 • 編集者 (スラッグ: ‘editor’) – 他のユーザーの投稿を含むすべての投稿を公開、管理できる ユーザー。テーマの変更やプラグインのインストール・削除などのサイト設定全体に関する 変更はできない
  16. ユーザーアカウントやパスワードの使い回しについて 1. 複数人で1つのアカウントを使い回すと … • 誰が何をしたのか分からない ◦ 記事を消した人や設定を変更した人の特定ができなくなります。 • 悪意があっても見抜けない

    ◦ 誰かが意図的にサイトを壊したり、情報を盗んだとしても、犯人が分からないままです。 • 退職者や外部の人に使い続けられるリスク ◦ 以前の担当者がアカウント情報を知っていたままだと、退職後や契約終了後もアクセスされる恐れ があります。 2. パスワードを他のサービスと同じにしていると … • どれか1つがバレたら、全部バレる ◦ 他のサービスが攻撃され、アカウント情報が漏れた場合、同じパスワードを使っている WordPress も不正ログインされる可能性があります。 ◦ 残念ながら、メジャーなクラウドサービスでも、アカウント情報の漏洩事例があります。 ◦ https://xtech.nikkei.com/atcl/nxt/column/18/00001/09539/
  17. ユーザーの新規追加・削除・停止について WordPress を運用する場合、退職や人事異動などで、業務が変わる場合には、必要に応じて ユーザーの削除や停止を行ってください。 1. 新規にユーザーを追加する場合 必要以上の権限を付与しないようにする。 ブログやページの更新だけであれば、編集者権限を付与。 2. 削除する場合

    WordPressユーザーを削除する場合には、そのユーザーが作った コンテンツを他の方へ引き継ぐ 3. 削除したいが、執筆者情報などを掲 載している場合 記事下に執筆者などを表示している場合(WPユーザーから出力し ている場合)には、該当のアカウント削除して他の方に引き継いでし まうと、この執筆者の部分も変わってしましまうため、権限グループ を「 このサイトでの権限なし」に変更する。 参考:https://web-soudan.co.jp/topics/4967/
  18. 本番・ステージング環境の使い分け • ローカル開発環境 ◦ デザイナーさん、エンジニアさんが制作・開発段階で利用する環境 ◦ 開発者の方のPCの中に、WordPressサイトを構築する環境 ◦ Local が有名:

    https://localwp.com/ • ステージング環境 ◦ (レンタル)サーバー側で構築する環境 ◦ テストサイト用のドメインで運用して、ベーシック認証などで第三者が閲覧できない仕組みにすることが 多い ◦ 表示確認、動作テストなどで利用する • 本番環境(プロダクション環境) ◦ 実際に公開している本番環境 ◦ サイトの設定変更や更新作業に関しては、管理者権限を持っている方のみが行うのが一般的
  19. FTPアカウント運用の注意点(個人アカウントの発行) 1. アクセス権限の分離と制限 • アカウントごとにアクセス可能なディレクトリを制限 できる(例:/public_html/wp-content/themes/your-themeのみ にアクセスさせる)。 • 誤ってコアファイルや他のディレクトリを変更されるリスクを下げられる。 2.

    操作のトレーサビリティ(責任の所在明確化) • 誰がいつどのファイルにアクセスしたかは直接的には記録されませんが、 問題発生時に関係者の特定が容易 になります。 3. セキュリティ管理の効率化 • 外部スタッフや一時的な業務委託者など、プロジェクト終了時に その人専用のFTPアカウントを削除すれば即座にアクセス遮 断できる。 • パスワードを共有しないので、漏洩リスクが軽減される。 4. 組織内のセキュリティポリシー遵守 • 複数人での管理・開発が関わる中での セキュリティレベル向上 や内部統制の強化につながる。 FTPアカウントについては、できる限り個人単位で個別にアカウントを発行してください。特に外 部の方への作業依頼する場合には、権限を最低限のものにしてください。 追記: レンタルサーバーの契約プランに よって、複数のFTPアカウントを作 成できる/できないなどの違いがあ ります。
  20. FTPアカウント運用のベストプラクティス 項目 推奨アクション アカウント発行時 個人単位のアカウント名を付ける 権限の設定 最小限の必要ディレクトリに限定。 パスワード管理 強力なパスワードを設定し、必要に応じて定期変更 or

    ワン タイム利用 アクセスログ確認 万が一に備えてFTPログの記録有無を確認(エックスサー バーの「アクセスログ」機能) プロジェクト終了後 アカウントを必ず削除し、共有していた情報も破棄または変 更 定期棚卸し FTPアカウントの定期的な見直し・不要アカウントの削除 追記 SFTP (SSH File Transfer Protocol)は、通信時に 暗号化されているので、利用できる時には、 FTPで はなくSFTP利用してください。
  21. ファイル/ディレクトリのパーミッション管理② • 不要な書き込み権限を与えない。 サイト構築時やプラグイン・テーマ導入時以外は、wp-content内のディレクトリにも 書き込み権限(777など)を与えない。 種類 推奨パーミッション 説明 wp-config.php 600

    or 640 サイトの設定やDB情報が書かれているため、 600や640などで きるだけ厳しいパーミッションに設定。 .htaccess 644 書き込み権限は所有者のみ、グループメンバーとその他の人に も読み取り権限がある設定 ディレクトリ 755 ファイル所有者には読み込み、書き込み、実行を許可し、グ ループとその他のユーザーには読み込みと実行を許可。 ファイル 644 書き込み権限は所有者のみ、グループメンバーとその他の人に も読み取り権限がある設定