ご連絡・ご予約・アクセスはこちら

WordPressヘッダーが勝手に改変?小規模ブログでも襲う不正ログインの現実

先日のことです。いつものように自分のブログをチェックしていたら、ふと違和感がありました。「あれ? なんか違うぞ?」そう思ってページの一番上、ヘッダー部分をよく見てみると

10年くらい前にアップロードしたはずの古い画像が、ドーンと貼り付けられていたんです。

当時の私はまだ若くて(今も気持ちは若いつもりですが)、ブログのデザインも今とは全然違う時代。その写真が、なぜか今になって最前列にしゃしゃり出てきている。

正直、背中がスッと冷たくなりました。

  • テーマをいじった記憶もない
  • 新しく入れたプラグインもない
  • 共同で触っている人間もいない(全部ひとりで管理)

「これ、バグでこうなるか? いや、もしかして 不正ログインされて、ソースをいじられた?

そんなイヤな想像が頭をよぎったわけです。

ログを取ってみたら分かったこと

「証拠がない」のがいちばん怖い

とはいえ、私の方ではその時点で「いつ」「どこから」「誰が」ログインしたのかを確認する手段がありませんでした。

WordPressって、標準のままだとログイン履歴のログがほとんど残らないんですよね。これ、いざというときめちゃくちゃ困ります。

そこで、急いでログイン履歴を記録するプラグインを導入しました。「もう遅いかもしれないけど、今からでも取れるものは取っておこう」と。

たった7時間で「アタック2回」

プラグインを入れて、そこからログの収集を開始。4時間ほど経ってから確認してみたところ、こんな事実が判明しました。

  • 正常なログイン:ゼロ(私自身もその時間帯はログインしていない)
  • ログイン試行(アタック):2回

たった7時間ほどログを取っただけで、2回。しかも、ログインには成功していませんでしたが、「ドアを叩いている人間」が確実に存在することが分かりました。

この時点で、

「あ、これもう“たまたま”とか“気のせい”の世界じゃないな」

と腹を括りました。

  • とりあえずすぐにパスワードをより強固なものに変更
  • もともと導入していた2段階認証(2FA)を再確認
  • 他の管理者アカウントがないか再チェック
  • 念のためサーバー側の設定も見直し

…と、できることを片っ端からやりましたが、あのヘッダー画像の“勝手な貼り付き”がバグなのか、不正ログインなのかは、今もはっきりしません。

ただ一つ確信したのは、

小さな個人ブログでも、普通に攻撃対象になっている

という現実です。

「うちみたいな小さなサイトが狙われるわけない」は完全に幻想

攻撃者は「あなたの中身」に興味はない

よくお客様からも、

「うちのホームページなんて、ほとんどアクセスもないし、狙われる価値もないでしょ?」

と言われます。残念ながら、今のネットの世界ではその前提が完全に間違っています。攻撃者が欲しいのは、あなたの文章でも写真でもプロフィールでもありません。

狙われているのは、

  • サーバーのCPU(計算能力)
  • インターネット回線(帯域)
  • ドメインやIPアドレスの「信用」
  • 長年積み重ねてきたSEO評価

つまり、「サイトそのもの」ではなく「サーバー資源」なんです。

言い方は悪いですが、攻撃者からすると、

「個人のブログ? ちょうどいい踏み台が見つかったな」

くらいの感覚です。悲しいけれど、これが現実。

乗っ取られたサイトはどう“お金”に変えられるのか

攻撃者は、乗っ取ったWordPressサイトを、こんな用途に使います。

  • SEOスパム
    裏側で大量のスパムページやリンクを作り、怪しい商品サイトに誘導する。
  • ボットネットの一部にする
    DDoS攻撃や迷惑メール送信の踏み台として使い、気づいたら自分のサーバーから大量の攻撃が飛んでいる、なんてことも。
  • マルウェア配布の拠点にする
    訪れた人のPCにウイルスやランサムウェアをばらまく“罠サイト”に変えられる。
  • 暗号通貨マイニングの道具
    サーバーのCPUをこっそり回して暗号通貨を掘らせる。電気代とサーバー代はあなた持ち。

怖いのは、サイトが勝手に「加害者扱い」になる可能性があるということです。

  • メールサーバーがブラックリスト入りして、メールが届きにくくなる
  • 検索結果から「危険なサイト」と表示され、アクセスが激減する
  • 場合によっては、取引先からの信用も落ちる

個人店・中小企業にとって、これは十分に致命傷になり得ます。

WordPressへの主な侵入パターン

ここから少し技術寄りの話になりますが、
「どこから入られるのか」をざっくり知っておくだけでも、対策の見え方が変わります。

1. ブルートフォースアタック(wp-login.php 叩きまくり型)

いちばん分かりやすいのがこれ。

  • ターゲット:
    みんな大好き wp-login.php(通常のログイン画面)
  • 流れ:
    1. まずはユーザー名を特定(?author=1 などの仕様を悪用)
    2. admin みたいな安易なユーザー名も、当然真っ先に狙われる
    3. パスワードを、辞書のように片っ端から自動で試す

WordPressは初期状態だと、ログイン試行回数に制限がありません。

だから、対策を何も入れていないと、

「間違い続ければいつか当たるよね?」

という、力技の総当たり攻撃が成立してしまいます。

2. XML-RPC経由の「増幅ブルートフォース」

次に厄介なのが、xmlrpc.php を狙う攻撃。

もともとこれは、

  • スマホアプリからの投稿
  • 外部サービスからの操作

などのために用意された「正規の入り口」なのですが、ここにある system.multicall という機能がクセモノでして。

  • 通常のログイン攻撃:
    1回のリクエストで 1つのパスワードを試す
  • xmlrpc.php 経由の攻撃:
    1回のリクエストで 数百〜数千パターンのパスワードを一気に試せる

ログイン回数制限のプラグインを入れていても、「1回のリクエスト」としてしか見なさない場合が多く、“裏口”から大量に試行されるイメージですね。

3. プラグインの脆弱性からの「認証回避」

そして、いま一番怖いのがこれです。

  • wp-login.php も
  • xmlrpc.php も
    一切触らない。

つまり、ログイン画面すら通らずに乗っ取られるパターンです。脆弱なプラグインやテーマに、

  • パスワードなしで何でもアップロードできてしまう
  • 特定のURLを踏むだけで権限が昇格してしまう
  • 認証をすり抜けて管理者として操作できる

…といった“穴”があると、そこを突破口にしてバックドアを仕込まれ、あとはやりたい放題になります。ここまで来ると、強いパスワードも、ログイン回数制限も、ほぼ無力です。

だからこそ、

  • プラグイン・テーマの更新
  • 不要なものは削除
  • 信頼できるものだけを使う

という「地味だけど効く基本対策」がものすごく大事になります。

今すぐやっておきたい基本の5つ

ここからは、専門的なことは置いておいて、

「とりあえず今日からこれだけはやっておこう」

という観点で、5つだけ挙げておきます。

1. WordPress本体・プラグイン・テーマを全部最新版にする

  • 使っているもの
  • 使っていないけど有効になっているもの

一度すべて見直して、

  • アップデートできるものは全部アップデート
  • 使っていないプラグイン・テーマは無効化ではなく削除

をおすすめします。

「無効化してるから大丈夫でしょ?」は通用しません。ファイルがサーバーに残っている限り、そこは“攻撃対象”のままです。

2. パスワードとユーザー名をちゃんと強くする

  • 「admin」「test」「site-owner」みたいなユーザー名をやめる
  • パスワードは
    英大文字・小文字・数字・記号を混ぜた12桁以上
  • 他サービスとの使い回し禁止

面倒ですが、ここをサボると、他の対策の効果がかなり目減りします。

パスワードマネージャーの利用も強くおすすめです。

3. 2段階認証(2FA)を必ず入れる

すでに私も使っていますが、「パスワード+スマホの認証コード」という2段構えにしておくだけで、突破されるハードルは一気に上がります。

最近は2FAに対応したプラグインやサービスも増えているので、WordPressにもぜひ入れておきたいところです。

4. 定期的なバックアップ

正直、どれだけ対策をしていても、

「100%安全です」

と言えることはありません。

だからこそ、

  • サーバー側の自動バックアップ
  • プラグインによるバックアップ
  • できれば外部ストレージへの保存

など、「戻れる地点」を必ず用意しておくことが重要です。

5. ログイン履歴を「たまに眺める」習慣をつける

今回私が感じたのは、

「攻撃されていることに気づいていない時間が、一番危ない」

ということでした。

  • どの国からログイン試行が来ているか
  • いつもと違う時間帯にアクセスが集中していないか

これを「週1回ちらっと見る」だけでも、かなり感覚が変わります。

プラグインでできる現実的な防御ライン

ここからは、実際に多くのサイト運営者が使っているプラグインを、少し噛み砕いた目線で紹介します。

SiteGuard WP Plugin:まずは「ドアの形を変える」

SiteGuard WP Plugin

国産のプラグインで、日本語で完結するのがメリットです。できることはざっくり言うと、

  • ログインURLを変えるwp-login.php を隠す)
  • ログイン失敗回数に応じてロックアウト
  • ログイン画面やコメントにひらがなCAPTCHA

特に「ひらがな認証」が地味に強くて、海外のボットからすると

「なんだこの全角ひらがなは…読めん!」

いう状態になります。“日本語サイトだからこそ取れる防御”ですね。

Wordfence Security:総合セキュリティのオールインワン中級者向けですが、無料版でもかなり強力です。

Wordfence Security – Firewall, Malware Scan, and Login Security
  • WAF(ファイアウォール)
  • 不正アクセスのブロック
  • マルウェアスキャン
  • 2段階認証(2FA)
  • XML-RPCの制限・無効化

「とりあえずこれ入れておけば、一通りカバーできる」と言えるレベルで、実際、世界中のWordPressサイトで使われています。

Solid Security(旧 iThemes Security):見えないところで入口を隠す

Solid Security – Password, Two Factor Authentication, and Brute Force Protection

こちらも多機能系。

  • ログインURLの変更(Hide Backend)
  • ログイン試行回数の制限
  • 2段階認証
  • reCAPTCHA など

「サイトの入口をそもそも見つかりづらくする」という発想が強めです。SiteGuardより少し設定項目が多いので、画面を見ながらじっくり進めるタイプの方向けですね。

.htaccessで「敷地の門」を締める、という考え方

プラグインは、あくまでWordPressが動き始めてからの防御です。それに対して、

  • Basic認証で wp-login.php にもう一つパスワードをかける
  • 特定のIPアドレスからしかログイン画面に入れないようにする
  • xmlrpc.php へのアクセスをまるごと遮断する

といった.htaccessレベルの制御は、

「そもそも敷地内に入らせない」

という、より手前の防御になります。ただし、設定を一文字間違えるとサイト全体が表示されなくなることもあるので、

  • 必ずバックアップを取る
  • 不安な場合はサーバー会社のサポートに相談する
  • もしくは専門業者に依頼する

という慎重さは必要です。

おわりに:セキュリティは「一度やって終わり」ではない

今回、ヘッダー画像の不可解な改変から始まって、自分のサイトに対する攻撃の現実をまざまざと見せつけられました。

  • ログを取って初めて「攻撃されている」と気づいたこと
  • 小さな個人店のブログでも、普通にアタックが飛んでくること
  • パスワードと2FAだけでは防げないパターンが増えていること

正直、ちょっと凹みましたし、「もう静かに修理だけしていたい…」と思った瞬間もあります。

でも同時に、

「お客様のサイトでも同じことが起きているかもしれない」

とも感じました。

だからこそ、この記事ではあえて少し踏み込んだ技術的な話も混ぜながら書いてみました。

  • まずは更新・パスワード・2FA・バックアップ・ログの確認
  • 余裕があればセキュリティプラグインの導入
  • さらに踏み込むなら .htaccessによる防御

すべてを一気にやる必要はありません。でも、「何もしていない状態」だけは避けていただきたいなと思います。

そしてもし、

「自分のWordPress、ちょっと心配になってきた」

という方がいらっしゃれば、専門家に相談するのも立派なセキュリティ対策の一つです。

私も今回の一件で、「自分の店のサイトも、お客様のサイトも、もう少しちゃんと守ろう」と改めて気を引き締めるきっかけになりました。

また続報や、実際に施した対策の結果なども、折を見てブログに書いていきたいと思います。

シェアお願いします!!
ABOUT US
アイコン
ピシコ
北海道苫小牧市でパソコンとiPhone修理業を営んでいます
三度の飯よりも修理好きでゲームとプラモが趣味
19匹多頭飼いするほどのハムスター好き
最近は筋トレでの減量にハマってます(←NEW)