Slide 1

Slide 1 text

WordPressの脆弱性対策 何をすべき? 八王子 WordPress Meetup 2026年 9月12日 川井昌彦

Slide 2

Slide 2 text

2026年7月 WordPressの深刻度 「緊急」 脆弱性 wp2shell に対する修正が公表されました 1

Slide 3

Slide 3 text

wp2shell とは、 外部から認証無しでコードが実行できてしまうという 極めて危険な脆弱性 2

Slide 4

Slide 4 text

即時 更新したので 大丈夫です! すぐに 対応できません! ところが、 サイトによって こんな違いが! 3

Slide 5

Slide 5 text

なぜ、サイトによって違いが出てくるのか? 即時に対応できるようにするには、どうしたらいいのか? について、 今日はみなさんとお話しできたらと思います 4

Slide 6

Slide 6 text

自己紹介 川井昌彦 (かわいまさひこ)(@sakuragi_kei) 東京都府中市在住 Webディレクター ' など ' 小桜インコとシロハラインコと黒柴犬のパパ Perfumeとアンナミラーズが好き 5

Slide 7

Slide 7 text

東京都府中市にて Web制作・DTP制作 (15期目) https://www.cherrypieweb.com/ ブログは1997年開設 今年で29年目! ちなみに WordPressの初版リリースは2003年 6

Slide 8

Slide 8 text

WordPressにおける脆弱性とは 7

Slide 9

Slide 9 text

脆弱性とは、ウェブサイトに存在する 「攻撃者に悪用される可能性のある弱点」 のこと WordPress本体だけでなく、 プラグイン・テーマ・サーバーの設定などにも発生する 8

Slide 10

Slide 10 text

脆弱性によって発生する被害 ・ Webサイトの改ざん ・ 不正な広告やリンクの設置 ・ マルウェアの設置 ・ 個人情報の漏えい 9

Slide 11

Slide 11 text

・ サーバーやWordPressへの過剰な負荷によるサービス停止 ・ なりすまし ・ 他サイトへの攻撃の踏み台 ・ スパムメールの送信元 10

Slide 12

Slide 12 text

脆弱性はどこで生まれるのか 11

Slide 13

Slide 13 text

入力データの検証不足による不正アクセス 想定外のデータが入力され、想定外の動作を起こさせる ・ フォームにコマンドを入力して実行させる ・ HTTPリクエストを書き換えて、 本来入力できない値を送信する URL・POSTデータ(メールフォーム、検索フォームなど) クッキー・HTTPヘッダー・REST API・AJAX処理 12

Slide 14

Slide 14 text

・ 権限を超える不正操作 購読者など権限の低いユーザーが、 管理者限定のページにアクセス出来てしまったり、 管理権限が必要な処理ができてしまう 13

Slide 15

Slide 15 text

ログイン情報漏洩による管理画面からの不正操作 実は、正面突破されてしまうことが意外に多い! 不正ログインでは無いのでシステムでは防げない 14

Slide 16

Slide 16 text

・ プルートフォースアタック(総当たり攻撃・パスワードリスト攻撃・辞書攻撃) ・ パスワードの使い回し(他での脆弱性からの漏洩) ・ 推測されやすいパスワード ・ 管理されていないユーザー (テスト用・退職者) ・ 非SSLによる漏洩 ・ バックアップデータ ・ デバッグ情報 15

Slide 17

Slide 17 text

対策の考え方(非プログラマ向け) 16

Slide 18

Slide 18 text

入力データの検証不足:非プログラマでは対策が難しい → プラグインの利用と自動更新 ログイン情報の漏洩:全員が対策すべき → 運用方法の改善 17

Slide 19

Slide 19 text

パスワードの管理 ・ 管理者・編集者は2要素認証やパスキーを利用 ・ パスワードに頼らない ・ 2要素認証は、スマートフォンなどの別デバイスが必要 ・ パスキーは、共用PCを利用する環境では運用が難しい 18

Slide 20

Slide 20 text

・ 複数人でユーザーを共有しない ・ 担当者の退職・異動時に、共有しているパスワードを変えないと 漏洩のリスクがある (使わなくなった情報は管理がおろそかになりがち) ・ パスワードを変えるときの連絡時に漏洩のリスクがある 19

Slide 21

Slide 21 text

パスワードの新常識 ・ 15文字以上 ・ 文字種の組み合わせは不要 (英大文字小文字、数字、記号) (結果的に推測しやすいパスワードになりやすい) ・ 禁止リストの適用 よく使われるパスワード・辞書に記載されている単語 サービス名、ユーザー名など推測可能な単語 ・ ランダムな文字列 ・ 他サービスとの使いまわしを禁止 20

Slide 22

Slide 22 text

2025年 日本で一番よく使われていたパスワード 1. admin 8. rosycash 15. mirror2009 2. 123456 9. 102030Abcd 16. never4getyou 3. password 10. Mokariku 17. 2020Sank 4. Freemima123 11. tootoo 18. P@ssword123456 5. 12345678 12. 1qaz2wsx 19. apple555 6. yamamoto2580 13. Kanazawa2 20. aabbccdd1234 7. Chan8899 14. 123456789 21

Slide 23

Slide 23 text

・ パスワードマネージャーを使用して、パスワードを覚えない ・ システム側でパスワードを管理しない ・ パスワードが分からなくなったら再設定する ・ 毎回ログイン前に再設定する運用もあり 22

Slide 24

Slide 24 text

信頼できるサーバーの利用 ・ WordPress自動インストールを使用する データベース、ファイルパーミッション、WAFなどの最適化 ・ 詳しくないなら自分で設定しない! ブログ記事には古いもの、間違ったものがある ・ 上級者以外はVPSとか使っちゃダメ 23

Slide 25

Slide 25 text

自動更新 ・ 信頼できる テーマ・プラグイン は、 脆弱性が発見されたら 公表される前に修正したバージョンがリリースされる 24

Slide 26

Slide 26 text

自動更新ができない理由 ・ サーバー仕様・コア・プラグインのアップデートによる オリジナルテーマやオリジナルコードへの影響がわからない ・ 影響があった場合の対応に時間がかかる 対応方法が分からない 25

Slide 27

Slide 27 text

自動更新でサイトが動かなくなるのは、 たいていカスタマイズに問題がある ・ オリジナルコードが問題になることが多い ・ ただし・・・まれにプラグインの余計な機能追加で表示が崩れることはある ・ セキュリティアップデートでないことが多いので、ロールバックする ・ 利用者が多いプラグインなら、対策が見つかりやすい (サポートフォーラム、ブログ記事など) 26

Slide 28

Slide 28 text

カスタマイズの考え方(非プログラマ向け) 27

Slide 29

Slide 29 text

オリジナルテーマを作らない ・ ほとんどの場合、ブロックエディタとCSSだけでなんとかなる ・ 公式テーマレベルのものが作れないなら オリジナルテーマは作ってはいけない 信頼できるテーマの子テーマ、 またはオリジナルプラグインでカスタマイズする 28

Slide 30

Slide 30 text

カスタムテンプレートを作らず、フックを使用する ・ カスタマイズの必要が無いところは複製せず、 functions.php に必要なコードだけを書く ↓ 親テーマがアップデートした時に、 カスタムテンプレートがアップデートされないのを防ぐ 29

Slide 31

Slide 31 text

オリジナルコードを極力減らす ・ 信頼できるプラグインがあるなら使ったほうが安全 ・ WordPress コーディング規約ハンドブック https://ja.wordpress.org/team/handbook/coding-standards/ を読んだことが無い人は、自分でコードを書いてはいけない 30

Slide 32

Slide 32 text

・ 自分でメンテナンスできないコードを書いてはいけない ・ ブログ記事に掲載されているコードを信じない ・ AIの示すコードを信じない 存在しない関数や古いテクニックを示してくることがある AIは正確な情報ではなく、ネット上に多くある情報を示してくる (正確性が担保されていない) 31

Slide 33

Slide 33 text

オリジナルプラグインによるカスタマイズ ・ functions.php → 簡単にプラグイン化できる ・ オリジナルのカスタマイズをプラグイン化することで、 不具合発生時にプラグインのオンオフで切り分けができる 32

Slide 34

Slide 34 text

信頼できるテーマ・プラグインの選び方 ・ コアのアップデートに追従している ・ サポートフォーラムで作者が回答している ・ 利用者が多い ・ 作者と連絡が取りやすい 33

Slide 35

Slide 35 text

セキュリティ対策プラグインの利用 ・ Wordfence ・ All in One Security ・ SiteGuard 入れればよいのではなく、プラグインからの通知をチェックすること 機能が重複すると逆におかしくなるので、使い過ぎに注意 34

Slide 36

Slide 36 text

ご清聴ありがとうございました。 35