WordPressを設置しただけなのに、初日からセキュリティ事件簿が始まった。

ブログを作ろうと思った。

AIの実験記録や、Webツールの制作ログ、調べた技術情報をまとめておく場所が欲しかったからだ。

これまでnoteでいろいろ書いてきたけれど、技術的な内容は自分のブログに集めたほうが整理しやすい。

というわけで、久しぶりにWordPressを立ち上げることにした。

ブログの名前は Gloaming Journal。

テーマは、昔に購入していたWordPressテーマ「JIN」。

サイトを作って、色を決めて、カテゴリーを並べて、メニューを作る。

うん、順調。

……のはずだった。

第1幕:ホワイトハッカーになれるのか?

そもそも、今回ブログを作り始めたきっかけのひとつが、こんな思いつきだった。

「おばちゃん、ホワイトハッカーになれるのか?w」

最近、サイバー攻撃や情報漏えいのニュースをよく目にする。

以前からセキュリティには興味があったし、せっかくなら基礎から勉強してみようかな、と。

そこでブログに「MAOU Cyber Lab」というカテゴリーを作った。

名前だけは強そうである。

もちろん、実態はこれから勉強する初心者だ。

AIに「この名前、ハッカーに狙われそうやなw」と冗談を言ったところ、話はなぜか自分のブログのセキュリティ点検へと発展した。

まだ記事を1本も書いていないのに。

第2幕:まずは自分の城を点検する

今回の環境は次のとおり。

項目構成
ホスティングHostinger
CMSWordPress
テーマJIN 2.931(旧JIN)
PHP8.3.36
ブログGloaming Journal

テーマやPHPのバージョンを確認したところで、Hostingerの管理画面にある「マルウェアスキャナー」も見てみることになった。

まあ、新しく作ったサイトだし、何もないだろう。

そう思っていた。

ところが。

悪意のあるファイル:1件

マルウェア検出1件・削除1件の画面

削除されたファイル:1件

JINのファイル名と削除記録

……ん?

ちょっと待って。

今、作ったばっかりやで!?

第3幕:開設前からスキャンされていた?

管理画面には、最終スキャンが「20時間前」と表示されていた。

ブログを作ったばかりなのに、20時間前?

これはなかなか不思議な表示である。

ただし、ここは注意が必要だ。

「20時間前」は最終スキャン時刻を示しているのであって、攻撃があった時刻ではない。

ホスティング環境のスキャン履歴がどの単位で管理されているのかも、この画面だけでは分からない。

そこで検出記録の詳細を開いてみた。

第4幕:容疑者はJINのファイル

表示されていたのは、こんな記録だった。

  • 検出日時:2026年10月28日 23:07(管理画面表示)
  • ファイル名:sc-jin-icons.php
  • 判定:Malicious
  • 処理:削除済み
  • 保存場所:wp-content/upgrade/ 以下のJIN関連フォルダー

JINやないかい!www

よりによって、さっき導入したWordPressテーマのファイルが検出されていた。

しかも名前は sc-jin-icons.php。

ファイル名からはアイコン用ショートコードに関係するようにも見えるが、実際の役割は中身を確認しないと分からない。

そして重要なのが、ファイルの保存場所。

wp-content/upgrade/ は、WordPressがテーマやプラグインのインストール・更新時に使用する一時的な作業領域だ。

今回の検出記録も、JINをインストールした際の一時ファイルに関係している可能性がある。

第5幕:これってハッキングされたの?

結論から言うと、今回の記録だけでは、ハッキングされたとは判断できない。

考えられる可能性には、たとえば次のようなものがある。

  1. 正規のテーマファイルが誤検知された。
  2. インストール時に展開されたファイルに、スキャナーが問題を検出した。
  3. 配布ファイルや設置環境に、実際に調査すべき問題がある。

いずれも、この時点では確定していない。

また、削除されたのは一時フォルダー内のファイルで、現在有効になっているテーマのファイルとは限らない。

実際、ブログを開いてみると、JINは普通に動いていた。

メニューも表示されている。

記事一覧も表示されている。

カテゴリーも問題なく見えている。

……動いてるやんw

とはいえ、見た目が正常だから安全だと証明されたわけでもない。

誤検知と確定したわけでもないので、削除されたファイルを安易に復元せず、検出記録を残すことにした。

必要なら、ホスティング会社やテーマの提供元に確認することもできる。

第6幕:今回の事件で分かったこと

思いがけない初日の出来事だったけれど、いくつか勉強になった。

マルウェアの検出は、必ずしも侵入の証拠ではない。

検出ファイルの場所や処理内容、スキャン時刻を確認することが大切だ。

「削除済み」と「安全確認済み」は違う。

今回のスキャナーはWebサイトのファイルを対象としており、データベースの中身まで検査したわけではない。

サイトが正常に表示されても、セキュリティ上の問題がないとは限らない。

セキュリティの判断には、画面に見えない部分の確認も必要になる。

そして何より。

ブログは作っただけで終わりではない。

WordPress本体、テーマ、プラグイン、PHP、バックアップ。

運営する以上、定期的に点検する必要がある。

そんな当たり前のことを、まさか初日から実感するとは思わなかった。