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

WordPress セキュリティガイド #wpmeetupkyoto / WP Securit...

yoshinori matsumoto
November 01, 2021
3.3k

WordPress セキュリティガイド #wpmeetupkyoto / WP Security Guide

yoshinori matsumoto

November 01, 2021
Tweet

More Decks by yoshinori matsumoto

Transcript

  1. 個人的な見解
 
 ✗ WordPress 危ないから使わない ✗
 
 CMSを変えても問題は解決しない
 
 👌

    WordPress を安全に使用する
 
 できれば面倒くさくない
 運用可能なセキュリティ対策
 3

  2. • WordPressのログインを守る • 脆弱性情報を確認する • プラグインとテーマを選ぶ • WordPressの関数を使う セキュリティ対策
 管理者

    開発者向け 管理者 / 編集者 / 投稿者 / 寄稿者 / 購読者 WordPressを安全に使う方法! できれば楽なやつ 全ユーザ +α 事故がおこったら
  3. パスワードポリシーについて
 10
 • パスワードポリシーを強制することはできない (ユーザが多い環境では注意が必要) • アカウント名も推測されている • ?author=1でアカウントが推測 →ここを変更するのは面倒くさい

    但しパスワードにアカウント名を入れないことも重要 「パスワードを強固なものにする」とは? パスワードポリシー • 8文字以上 • 大文字小文字記号含める • 他のサービスで使い回さない WordPressで注意しておいたほうがいいこと
  4. ログイン大丈夫? 1/2
 13
 レンタルサーバの場合 他サイト 他サイト My WordPress あなた FTPサーバ

    共用サーバ FTPアカウント WPアカウント コンパネ アカウント サーバ 契約情報 ホスティング会社の二要素認証を有効にする それぞれパスワードを使いまわさない FTPクライアントは最新版を使う なるべくFTPは使わない コンパネ
  5. ログイン大丈夫? 2/2
 14
 VPS/クラウドサービスの場合 あなた VPS WPアカウント コンパネ アカウント サーバ

    契約情報 ホスティング会社の二要素認証を有効にする サーバのSSHログインは公開鍵認証 (パスワード無効)にする セキュリティグループなども設定 コンパネ WordPress SSH サーバアカウント
  6. (参考)ブラックリスト
 15
 Q. 過去に wp-login.php にアクセスがあったIPアドレスを ブロックしているが効果はあるのか? アクセスログ Attack IP

    .htaccessなど ログイン画面に広くアクセスしているIPはその都度変更されるため、 IPアドレスのブラックリストを管理するのは難しい。 また、現状海外のIPアドレス帯域に多い傾向はあるが、 今後国内IPアドレスでのスキャンも考えられるため、 国ごとのアクセス制限を過信しないように注意が必要。
  7. オートアップデートを使う
 20
 WordPress 3.7 から導入 デフォルトで有効 マイナーアップデート(セキュリティアップデート)のみ対象 無効にすることも可能 よっぽどの理由がない限り無効にしない 5.7

    5.7.3 5.8 5.8.1 2021/3 2021/9 2021/9 2021/9 オートアップデート 手動 アップデート オートアップデート 原則的にサポートは最新版であるが、 セキュリティパッチが出ることもある
  8. ケーススタディ REST API の脆弱性
 21
 https://www.asahi.com/articles/ASK2B3HS6K2BULOB008.html WordPress の脆弱性対策について https://www.ipa.go.jp/security/ciadr/vul/20170206-wordpress.html 本体

    影響受けるバージョン 4.7.0, 4.7.1 (4.6系もしくはそれ以下は 対象外) 修正済みのバージョン 4.7.2 オートアップデート対象
  9. 脆弱性情報
 23
 むずかしい話よーわからんという方のために • 認証なし(遠隔の、第三者による〜) • 外部から(リモートから) • コード実行(RCE :

    Remote Code Execution) などが揃うと要注意 こちらの項目で攻撃が簡単かどうかなどを確認する またオートアップデートで対応できているかどうか
  10. サーバの設定
 24
 • PHPのバージョンが古すぎないか → そもそもWordPressも動かなくなる • Webサーバ(Apache/Nginx)のバージョンが古すぎないか → yum

    update ! • ファイアウォール / iptables / セキュリティグループ → 使用していないサービスが起動したままになっていないか • ログローテーション • SSL化 → パスワード・個人情報を扱う場面はあったほうがいい。SEO的にも。 よくわからない、面倒くさいという人は レンタルサーバもしくはWordPress.comを利用しましょう
  11. 脆弱性のあるプラグイン
 Yuzo Related Posts Zero-Day Vulnerability Exploited in the Wild

    https://www.wordfence.com/blog/2019/04/yuzo-related-posts-zero-day-vulnerability-exploited-in-the-wild/ 脆弱性を悪用され スクリプトを埋め込まれる 閲覧者が実行すると 詐欺サイトに誘導される その後プラグインは削除される 開発者に通知はいかない!?
  12. Duplicatorプラグイン
 27
 脆弱性を悪用され 任意コードが実行される アップデートにて 脆弱性対応可能 • サイト改ざん • バックドア埋め込み

    • ファイル削除など • フィッシングサイト化 • 偽サイトへの誘導 なんでもできる Duplicator Update Patches Remote Code Execution Flaw https://www.wordfence.com/blog/2018/09/duplicator-update-patches-remote-code-execution-flaw/
  13. WordPressが提供する関数を用いる $wpdb->prepare プレースホルダーを使ったクエリの保護 wp_kses esc_html / esc_attr 第三者によるJavaScriptの実行防止 How to

    Prevent File Upload Vulnerabilities https://www.wordfence.com/learn/how-to-prevent-file-upload-vulnerabilities/ current_user_can('upload_files') 現在のユーザが権限をもつか。 例ではアップロード権限をもつかどうか wp_check_filetype ファイルタイプをチェックする MINEタイプを含めてチェックする必要がある
  14. たぶんこれくらい?
 41
 分類 内容 価格 初期調査 ・アクセスサーバログ調査 ・ファイルスキャン  (不正なファイルがないか) ・個人情報漏洩リスク判定

    \250,000 セキュリティ診断 ・セキュリティ診断 (ツール診断、本診断および再診断) \150,000 オプション ・オンサイト報告 \50,000 期間:1週間程度(診断を除く) 納品物:調査報告書 作り直すのと かわらん><