sHub-Log

説明

sHub-Log は WordPress サイトのセキュリティを強化します。

主な機能:

  • ログイン試行の記録
  • カテゴリ別の検知 (設定ファイル探索、裏口、プラグイン脆弱性スキャン、管理画面ハッキング、スパムなど)
  • 不正クエリ、大量リクエスト、REST API 悪用の任意検知
  • 期間を指定できる攻撃サマリーと詳細ログ
  • 期間と集計間隔を選べる攻撃トレンドチャート
  • CSV エクスポートと AJAX によるカテゴリ絞り込み
  • アタックログの保管期間を設定でき、WP-Cron で古いログを削除
  • クールダウン付きのアタック急上昇メールアラート
  • 署名付きのリモートアラートとスコア定義を syn-c.jp から取得 (任意)
  • 繰り返しの失敗後に IP をブロック
  • ブロック時間とリダイレクト URL を設定可能
  • ログと IP 管理のための管理画面
  • レート制限のしきい値と計測枠を設定可能
  • 攻撃特徴のあるリクエストだけをレート計測するオプション
  • ログイン済みユーザーと検証済みの検索 / AI ボットをレート計測から除外
  • 検証済みボットのアクセスログ (保管14日、初期状態では無効)
  • 不審な404多発の検知
  • IP ホワイトリストと信頼プロキシ対応 (プライベートプロキシ / Cloudflare の自動信頼)
  • IP ごとのリスクスコアリング (初期状態では無効)
  • 管理者 IP の記憶により、自分自身の誤ブロックを抑制
  • 任意の有料ライセンス (オフライン署名コード) により、ログ保管90日とページ単位の分析が可能

インストール

  1. プラグインをアップロードまたはインストールする
  2. プラグインを有効化する
  3. 「sHub-Log」の管理メニューから設定する

FAQ

ブロックした IP アドレスを解除するには ?

「sHub-Log セキュリティ推移」を開き、「プロテクト IP」までスクロールして、一覧から解除してください。

このプラグインは外部へリクエストしますか ?

アタック急上昇アラートを有効にすると、syn-c.jp からアラート定義とメールテンプレートを取得することがあります。外部スコアリングを有効にすると、署名付きの score-config.json を syn-c.jp から取得することがあります。検証済みボット除外を有効にすると、各社が公開する IP レンジ JSON を取得することがあります (24時間キャッシュ)。ライセンス検証はサイト内のみで行い (オフライン署名コード)、syn-c.jp へは連絡しません。ただし有効期限前後は例外で、更新予告期間および期限切れ後14日の猶予期間中に、syn-c.jp から署名付きの更新ペイロードを取得することがあります。取得や署名確認に失敗した場合は、既存のオフライン有効期限を維持します (通信エラーだけで有料機能を落とすことはありません)。攻撃ログ、IP アドレス、ユーザー情報、サイトコンテンツが syn-c.jp へ送信されることはありません。

「詳細設定」の有料プレビュースイッチは、社内確認用の制御です。syn-c.jp ホスト、メールアドレスが @syn-c.jp で終わる管理者、wp-config.php で SYNTAXHUB_SECURELOG_PAID_PREVIEW_SWITCH を定義した場合、またはフィルターで有効にした場合に表示されます。お客様向けのライセンスではありません。

1.2.6へ更新したあとに確認することは ?

1.2.6の設定グループ修正前に「基本設定」または「Bot ログ設定」から保存した場合は、「詳細設定」を確認するか、「基本設定」の「推奨設定」ボタンで初期値に戻してください。

推奨される初期値:

Setting
Default

Login attempt limit window
5 minutes

Login attempt limit count
5

Block duration
60 minutes

High-volume request threshold
90/minute

404 flood threshold
30/5 minutes

Attack spike email alerts
OFF

Risk scoring
OFF

Bot access logging
OFF (search bot logging ON / AI bot logging OFF when enabled)

Auto-trust private proxies / Cloudflare
ON

Remember administrator IPs
ON

評価

このプラグインにはレビューがありません。

貢献者と開発者

sHub-Log はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“sHub-Log” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

1.3.7

  • Added a Dashboard with 14-day Security, Search Bot, and AI Bot trend charts. Chart titles open the matching screens.
  • Added Upgrade to Paid in the left menu, with a Free vs Paid comparison and checkout link for free sites.
  • Added REST Path Probe detection for short-window scans that vary WordPress install locations and REST entry routes (including /batch/v1 variants). Legitimate /batch/v1 use is not blocked by path alone.

1.3.6

  • フランス語、スペイン語、ドイツ語、イタリア語の言語パック (fr_FR, es_ES, de_DE, it_IT) を追加しました。
  • ライセンス期限前後 (更新予告期間から14日の猶予まで) に、syn-c.jp から署名付きの更新ペイロードを取得し、有効なら差し替えコードを適用することがあります。
  • 更新リクエストまたは署名確認に失敗した場合は、既存のオフラインライセンスが有効なままです。
  • 購入 / 発行 URL の初期値は https://syn-c.jp/payment/shub-log-annual-checkout/ です。

1.3.5

  • 「アタックログ」と「プロテクト IP アドレス」でも sHub-Log の管理メニューを開いたままにし、左メニューに両画面を表示します。
  • 左メニューの「アタックログ」と「プロテクト IP アドレス」を字下げし、「セキュリティ推移」の子項目として読めるようにしました。
  • 「アタックログ」と「プロテクト IP アドレス」を行き来するナビゲーションボタンを追加しました。
  • 残っていた攻撃カテゴリ名 (テーマ脆弱性スキャン、ユーザー列挙、ボット偽装、スキャナツール) を ja、ko_KR、zh_CN、zh_TW、vi、th で翻訳しました。

1.3.4

  • 有料機能 (ログ保管90日とページ単位ログ) 向けのオフライン署名ライセンスコードを追加しました。検証はサイト内で行い、syn-c.jp へは連絡しません。
  • 期限切れ後、有料 UI はすぐに停止します。90日保管は14日間継続し、日次削除で15-90日目が一気に消えないようにしています。
  • 更新予告は、60日以下の契約 (月額など) で残り7日、より長い契約 (年額) で残り30日です。
  • 「基本設定」にライセンス欄を追加しました。既存の有料プレビュースイッチは SyntaxCloud 確認用のままです。
  • ボット / 攻撃サマリーのキャッシュキーを修正し、削除時に保存キーと一致するようにしました。
  • アタックログの保管期間オプションが、有料 / 無料から導出した値と同期するようになりました。

1.3.3

  • 管理画面ヘッダーバーの幅をトレンドチャートのパネルに合わせました。
  • 管理画面ヘッダーのタイトルに /sHub-Log を付けるようにしました (例: セキュリティ推移 / sHub-Log)。
  • 無料版の「セキュリティ推移」で、攻撃サマリーのカテゴリカードとラベルがリンクのように見えないようにしました。
  • 管理画面ヘッダーのプラグインアイコンを約25% 大きくしました。

1.3.2

  • セキュリティ / 検索 / AI Bot のページアクセス文言、表見出し、「詳細設定」の有料プレビュースイッチを ja、ko_KR、zh_CN、zh_TW、vi、th で翻訳しました。
  • 管理画面ヘッダーのプラグインアイコンを約20% 大きくしました。

1.3.1

  • プラグイン名から「相談」までの管理画面ヘッダーを白いバーにし、他の WordPress プラグイン管理画面に合わせました。
  • 管理画面ヘッダーのプラグインアイコンを約20% 大きくしました。
  • 「セキュリティ推移」チャートの見出しを左メニューに合わせました (ja、ko_KR、zh_CN、zh_TW、vi、th、英語)。

1.3.0

  • プロテクト IP への応答を、従来の wp_die() 既定500から HTTP 403 (Forbidden) に変更しました。
  • 「プロテクト IP」一覧に、ブロック後の拒否回数、最終ブロック日時、最終リクエスト URL を表示します。
  • 「アタックログ」と「プロテクト IP」画面で、記録されるのは検知ヒットのみであること、ブロック後の通信はプロテクト IP 側で集計されることを説明するようにしました。
  • 1.3を、有料機能プレビュー能力を含む系列と位置づけました (プレビュースイッチは従来どおり SyntaxCloud / 招待解除に限定)。

1.2.15

  • 「プライベート / ローカル逆プロキシを自動信頼」「Cloudflare エッジ IP を自動信頼」「ログイン後に管理者 IP を記憶」を ja、ko_KR、zh_CN、zh_TW、vi、th で翻訳しました。
  • 検証済みボットのアクセスログが初期状態ではオフであることを明確にしました。日本語の管理画面文言は「デフォルト / 既定値」ではなく「初期状態」を使います。
  • REST API / oEmbed 検知、信頼プロキシの説明、ログイン制限の説明を翻訳しました。

1.2.14

  • 「アタックログ」一覧にページ送りを追加し、選択期間全体 (例: 直近30日) を100件ずつ閲覧できるようにしました。

1.2.13

  • 共用サーバー (例: エックスサーバー) での逆プロキシ警告の誤検知を修正しました。自動信頼がオフでプライベート / Cloudflare の REMOTE_ADDR に該当する場合、または信頼されていない同一 REMOTE_ADDR に複数の転送元クライアント IP が見える場合のみ警告します。
  • 「詳細設定」にクライアント IP 診断を追加しました (REMOTE_ADDR、転送ヘッダー、sHub-Log が使う IP)。
  • 日本語のプラグイン操作リンクで、「Signup」の訳を「会員登録」から「ユーザー登録」に変更しました。

1.2.12

  • タイムゾーンのずれを修正しました。ブロック期限とログ時間枠の比較を WordPress のローカル時刻で統一しています (MySQL の NOW() と WordPress 時刻が違うサーバーで、ブロックが効かない / 効きすぎる問題)。
  • プライベート / ローカル逆プロキシと Cloudflare エッジ IP を自動信頼し、CDN / LB 配下の訪問者が1つの IP にまとまらないようにしました。プロキシヘッダーがあるのに未信頼の場合は管理画面に警告します。
  • 管理者の自己ロックを緩和しました。ログイン失敗の初期回数を5回へ引き上げ、manage_options でのログイン成功後に管理者 IP を記憶します。管理画面のログイン GET と admin-ajax / admin-post は管理画面ハッキングから除外します。このソフトカテゴリは記録しますが、自動 IP ブロック件数には含めません。
  • REST API 悪用の検知からログイン済みの編集者を除外します。oEmbed エンドポイントの検知は任意で、初期状態ではオフです。
  • 設定ファイル探索はパスの末尾要素だけを照合します。不正クエリ判定はパラメータ単位で評価し、サイト内検索の誤検知を避けます。
  • FCrDNS 検証が IPv6 (dns_get_record の AAAA) に対応し、IPv6の検証済み検索クローラーを正しく除外できるようになりました。
  • レート制限 / 404 / スコアの計測枠を transient から専用テーブルへ移し、オブジェクトキャッシュのフラッシュでカウンタがリセットされにくくしました。
  • 次の検知を追加しました。テーマの404探査、uploads 配下の PHP 実行探査、VCS / 依存関係 / DB 管理 / バックアップ名の探索、ユーザー列挙 (?author=N の連打 / ユーザーサイトマップ)、スキャナツールの User-Agent、ボット UA 偽装 (ソフト)、PROPFIND / TRACE / TRACK メソッド。

1.2.11

  • /wp-includes/ 配下への404探査を対象に、WordPress コア脆弱性スキャン検知を追加しました。
  • 高止まりアタック量のメールアラートを追加しました (時間枠内の合計ログが設定しきい値を超えた場合、1日最大1通)。
  • 新しいカテゴリとアラート設定向けに、同梱翻訳を更新しました。

1.2.10

  • 同梱の .mo ファイルを修正し、管理画面の翻訳が WordPress で正しく読み込まれるようにしました。

1.2.9

  • 言語パック (ja, ko_KR, zh_CN, zh_TW, vi, th) を追加しました (各177の管理画面文字列、languages/syntaxhub-securelog-*.po と .mo)。
  • .po から .mo を生成する build-languages.mjs と、翻訳ソース保守用の locale-data/*.mjs および write-locale-pos.mjs を追加しました。

1.2.8

  • 管理画面の左メニューを WordPress 標準のサブメニュー動作に戻しました (sHub-Log をクリックして下の項目を展開。標準の暗いサイドバー)。
  • AIOSEO 風のカスタムフライアウトメニューの CSS と JavaScript を削除しました。
  • アタック急上昇アラートメールで、カテゴリを日英併記するようにしました (例: Suspicious 404 Flood / 不審な404多発)。

1.2.7

  • 管理画面 UI を再構成し、1ページの表示切替バー (AIOSEO 風フライアウト) を WordPress サブメニューに置き換えました。
  • 管理画面文字列を英語のみにしました。将来の翻訳のためテキストドメインは残しています。
  • 管理画面を分割しました。「セキュリティ推移」、「検索 Bot 推移」、「AI Bot 推移」、「基本設定」、「詳細設定」、「リスクスコアリング設定」、「Bot ログ設定」。
  • チャート凡例の色を、共有パレット経由でサマリーカードの枠色と一致させました。
  • データのある区間が中央に来るよう、チャートを横方向に自動スクロールします。
  • 「詳細設定」とスコアリング画面のオプショングループを分け、保存時にチェックボックスが誤ってリセットされないようにしました。

1.2.6

  • 1.2.6更新時の管理画面通知に、設定確認の案内を追加しました。
  • シンプル / 詳細画面から初期値へ戻す「推奨設定」ボタンを追加しました。
  • 不具合のあった1.2.6ビルドから更新したあとに「詳細設定」を確認する FAQ を追加しました。
  • 検証済みボットのアクセスログ付き Bot 分析画面を追加しました (保管14日、初期状態では無効)。
  • ボットログを有効にした場合、検索ボットの記録は初期 ON、AI ボットの記録は初期 OFF です。
  • Bot 分析で、検索と AI のトレンドチャートを分け、ボットごとのアクセス概要を表示します。
  • シンプルモードまたは Bot 分析から保存したときの設定破損を修正しました (表示中の項目だけ保存するようオプショングループを分割)。
  • 管理画面の表示切替を再設計しました。左にシンプル / 詳細タブ、右に Bot 分析ピル。現在の表示は黒で示します。
  • 管理画面のラベルを変更し、計測ウィンドウの用語を計測間隔 / 枠の表現に揃えました。

1.2.5

  • ボットのレート計測除外を、検索ボット (初期 ON) と AI ボット (初期 OFF) の管理画面スイッチに分けました。
  • 検証済み AI ボット一覧を拡充しました。GPTBot、ChatGPT-User、OAI-SearchBot、ClaudeBot、Claude-Web、PerplexityBot、Perplexity-User、CCBot、Bytespider、Applebot。

1.2.4

  • レート制限の除外リストに、検証済み AI ボット (GPTBot、ChatGPT-User、ClaudeBot、PerplexityBot) を追加しました。AI ボットは各社公開の IP レンジ JSON で検証し、検索クローラーは従来どおり FCrDNS を使います。User-Agent 文字列だけでは信用しません。

1.2.3

  • セキュリティ強化: アタックログ CSV エクスポートでの数式インジェクションを無効化しました。
  • ブロック時リダイレクトで、管理画面のリダイレクト URL に esc_url_raw() を再適用して強化しました。
  • IP ブロック期限の計算で date() を gmdate() に置き換え、タイムゾーンの扱いを揃えました。

1.2.2

  • 攻撃トレンドチャートで Analytics 風の期間選択ができるようになりました。24時間、7日、14日、21日 (初期値: 7日)。
  • チャートの区間を、正時 (時間単位) または暦日 (日単位) に揃えるようにしました。
  • 集計間隔の選択肢: 1時間、3時間、6時間、1日。

1.2.1

  • 管理画面にシンプルモードと「詳細設定」の表示を追加し、ユーザーごとの表示設定を保持します。
  • シンプルモードでは必要な設定だけを表示します。

1.2.0

  • IP ごとのリスクスコアリングを追加しました (初期状態では無効)。
  • 兆候の配点、累積時間枠、記録 / ブロックしきい値を管理画面から設定できます。
  • 署名付きスコア定義を syn-c.jp から任意で取得できるようにしました。

1.1.9

  • パターン照合の前に URL を正規化します。
  • しきい値と計測枠を設定できる、不審な404多発の検知。
  • 大量リクエストのしきい値と時間枠を設定できるようにしました。
  • レート制限の計測を、攻撃特徴のあるリクエストだけに限定するオプション。
  • ログイン済みユーザーと検証済みの正規ボットをレート計測から除外します。
  • IP ホワイトリストと信頼プロキシに対応しました。
  • 初期しきい値を緩和しました (大量リクエスト90、404多発30)。

1.1.8

  • 直前の攻撃件数の時間枠が0のとき、アタック急上昇メールは誤解を招く倍率ではなく N/A と説明を表示するようにしました。

1.1.7

  • アタック急上昇アラートメールの文言を整理し、IP 保護の説明をより正確にしました。

1.1.6

  • アタック急上昇アラート用の内蔵フォールバックメールテンプレートを更新しました。

1.1.5

  • WordPress 7.0対応の表示更新。
  • 管理画面の表示順と文言を更新しました。

1.1.4

  • 24時間の攻撃トレンドチャートを追加しました。
  • アタック急上昇メールアラートと、リモートアラート定義の対応。

1.1.2

  • 管理画面の期間ラベルで発生していた PHP 8の書式エラーを修正しました。

1.1.1

  • プラグイン名を sHub-Log に変更しました。
  • CSV エクスポートと AJAX によるカテゴリ絞り込み。
  • アップグレード時にアタックログテーブルのインデックスを維持するようにしました。

1.1.0

  • カテゴリ別のアタックログテーブル。
  • 不審な404、不正クエリ、レート制限、REST API 悪用の検知。
  • 攻撃サマリー、ログ保管設定、自動 IP ブロック。

1.0.3

  • セキュリティ強化: nonce、サニタイズ、より安全な SQL。

1.0.2

  • ログ削除の改善と UI の更新。

1.0.1

  • 初回の不具合修正と管理画面の改善。

1.0.0

  • 初回リリース。