WordPressのサイトに不審なファイルがアップロードされていました。

目次

はじめに

WordPressサイトを管理しています。
その中の一つに不審なファイルがアップロードされていました。
ファイルは管理画面からたどる「メディア」にありました。
wpsec.zipという名前です。

中身を確認する

zipの中身を確認したところ、sec.phpwpsec.phpという2つのファイルがありました。

プラグインの形式を取っているようですが、クラス名の付け方など、ハッキング系の不正ファイルにありがちな名前です。

被害

実被害は確認されませんでした。
ファイルのアップロードのみを行われたようで、プラグインディレクトリへの移動、有効化などは行われていませんでした。

ソースコードを読んだ感じではそれほど危ないことはしないのではないか…、という感じですが、読み切れていない可能性は大いにあります

被害の確認、検証

こういったファイルがアップロードされていた場合、他のコアファイルなどへの侵食を検証する必要があります。
以前ですとこういった場合にはWordPress本体のまるごと入れ替えが推奨だったのですが、最近ですとセキュリティスキャン系のプラグインもあるのでそちらがお勧めです。

侵入経路の推定

今回は不正なファイルのアップロードを行われていました。
メディアに登録されていたことを考えると、FTPなどから直接アップロードされた可能性ではなく、WordPressの機能を通じてアップロードされた可能性が高いです。
具体的には下記のような理由が考えられます。

  • ブルートフォースアタックなどでアカウントが割られて管理画面への侵入
  • WP REST APIで脆弱性を突かれたか、アカウントを割られてメディアのアップロードを行われた
  • XML-RPCで同様のことを行われた
  • 他のバックドア、プラグイン類の脆弱性からアップロードされた

すべての可能性を考慮しつつ、アカウントのパスワード変更などの対策を打つことが必要です。

対策など

今回はブルートフォースの可能性が最も疑われました。
既にセキュリティ系プラグインを導入しており、ブルートフォースアタックについては対処していましたが、二重の防衛策としてJetpackのプロテクト機能をオンにしました。

この機能によりログイン画面にてボットチェックが入ることがあります。

またパスワードの変更も行いました。

wpscan

脆弱性スキャンツールであるwpscanを実行しておきました。
特に脆弱性については見当たりませんでしたが、今後の定期的なスキャンが必要です。

ちなみにスキャン自動化のwalti.ioというサービスもあり、すごく便利です。ただサーバに負荷がかかるので要注意です。

まとめ

WordPressに限らず、アタックは毎日、いつでも行われています。
常に狙われているという可能性を考慮して対策を行うことが必要ですね。