「Wordpressは狙われやすい」「セキュリティのためにアップデートが必要だ」などと言われますが、攻撃を受けると実際にどのようになるのか、という例はあまり見かけたことがありません。
弊社では、実際に攻撃を受けたサイトの復旧作業をした経験がございますので、いくつか攻撃例を紹介したいと思います。
(※紹介する例は弊社構築サイトではなく、相談を受けて対応したり、他社構築サイトを引き継いだケースなどになります)
最後に対策についても解説いたします。
.htaccessの書き換え・新規設置
WordPressサイトでは、時折「Forbidden」というエラーメッセージが出て、ページが閲覧できなくなることがあります。
設定ミスであったり、コードの記述ミスなど様々な原因が考えられるのですが、このケースの場合、調査を進めているうちに、.htaccessファイル(ウェブサーバーの設定ファイル)に見覚えのない記述が書かれていました。
WordPressサイトにはサイトルートに必ず.htaccessファイルがあり、普通のWordpressであれば、.htaccessファイルの中身は以下のようになっています。
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
これはWordpressが自動的に出力するものです。
しかし、そのサイトの.htaccessファイルには、上記以外に下記のようなコードが書き込まれていました。
<FilesMatch ".*\.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|PHP5|Php5|PHp5|pHp5|pHP5|phP5|PhP5|php7|PHP7|Php7|PHp7|pHp7|pHP7|phP7|PhP7|php8|PHP8|Php8|PHp8|pHp8|pHP8|phP8|PhP8|suspected)$"> Order Allow,Deny Deny from all </FilesMatch>
もちろんカスタマイズで書いたコードや、プラグインによって出力されたコードが書かれている場合もあるのですが、少し不自然な記述です。
Wordpressの言語はPHPですが、「py(Pythonの拡張子)」や「exe(Windowsなどの実行ファイルの拡張子)」が混じっています。
これを見た時点で、ひょっとしたら攻撃を受けたのではないか、という疑いが出てきました。
また、調べてみるとサイトルートだけではなく、サイト内の全ディレクトリに、このコードが書かれた.htaccessファイルが新規に設置されていました。
長期間運用しているサイトや大規模なサイトになると、ディレクトリ数は膨大になります。
全ディレクトリに設置されているとFTPソフトでの手作業による削除などは現実的に難しいので、SSHなどでの対応が必要になります。
また、サイトルートの.htaccessファイルには、以下のような記述もありました。
<FilesMatch "^(index.php|wp-login.php|wp-logln.php|wp-admnn.php|wp-conffq.php|wp-lock.php|wp-temp.php|wp-headre.php|reviall.php)$"> Order Allow,Deny Allow from all </FilesMatch>
「wp-logln.php」「wp-admnn.php」「wp-conffq.php」など、Wordpressの正規のファイル名である「wp-login.php」「wp-admin.php」「wp-confiq.php」と1文字違いの怪しげなファイル名があります。
サーバー内を調べてみると、通常存在しないはずのこれら怪しい名前のファイルが実際にあり、攻撃者にファイルを設置されたと推測できます。
バックドア(攻撃者がシステムに不正侵入するための入口)用のファイルである可能性もあり、ここまでの被害になると、.htaccessファイルの修正や削除だけではなく、インストールし直す必要があります。
不正ファイルの再設置
攻撃で設置されたファイルを削除したと思っても、しばらくすると再度設置されたケースがありました。
Wordpressには「WP-Cron」という仕組みがあり、自動で予約投稿の公開や定期処理を行います。
これはユーザーがそのWebサイトにアクセスしたタイミングで裏側で実行されるのですが、この仕組みを使ってマルウェア・バックドアなどの不正ファイルが実行されるケースがあります。
悪さをしているファイルを特定できないと、いつまでも解決せず、クリーンインストールする必要が出てきます。
管理者ユーザーを作成される
2026年7月に判明したWordpressの重大な脆弱性(通称「wp2shell」)では、REST APIの不備とSQLインジェクションを組み合わせることで、ログイン認証なしにサイトを侵害できるようになっていました。
この脆弱性が見つかった直後、管理者ユーザーが勝手に作成されたという事例を見ました。
wp2shellはアップデートをすると脆弱性は塞がりますが、一度攻撃を受けてユーザーが作られてしまうと、アップデートの後も引き続き侵入され、思うままにされてしまいます。
複数人で運用しているサイトだと「他の誰かが新規に作ったのかも」と思い、見過ごされてしまう可能性もあります。
早急に該当ユーザーを削除する必要があります。
本文にスパム文面の書き込み
WordPressの本文欄に「viagra」などスパムサイトへの誘導が書き込まれるケースがありました。
以下のようにHTMLで書き込まれているのですが、
<div style="position:absolute; left:-4608px; top:-3884px;"> <a href="URL">スパムサイト名</a> </div>
styleで画面外へ飛ばしているので、ページを閲覧しているときは一切気づきません。
このときは数十の記事に書き込まれていたので、正規表現で検索置換をして対処したのですが、パターン化されていない書き込みのときは手作業による対応になり、手間がかかりそうです。
対応策は?
ではこのような攻撃に対して、どのように備えればいいでしょうか?
攻撃を受けた場合はその都度適切な対処をすることが必要ですが、そもそも攻撃を受けにくいサイトにしておくことが大事です。
WordPressを最新版にする
脆弱性が見つかった場合、Wordpressはセキュリティリリースを公開します。
すぐにバージョンアップして最新版にすることをおすすめします。
Wordpressには自動アップデート機能がありますので、それを有効にしておくとよいでしょう。
ただしテーマ等をカスタマイズしている場合は、バージョンアップで不具合が発生する場合もあります。
使用しているプラグインがメンテナンスされていない場合も、不具合が起きる可能性があります。
不安な方は制作会社に保守を依頼するとよいでしょう。
バックアップを取得する
バージョンアップする場合は、不具合があった際にすぐに元に戻せるようにバックアップを取得することが必須になります。
プラグインやサーバーコントロールパネル、SSHなど、バックアップの方法は様々ありますので、サイトにあった方法を行います。
また、攻撃を受けてクリーンインストールをしなければいけない場合も、バックアップファイルがあれば復旧までの時間が早くなります。
WAFを有効にしておく
WAFとはウェブサイトで使用しているアプリケーションの弱点を突く不正な通信を検知し、ブロックする仕組みです。
SQLインジェクションやクロスサイトスクリプティングなどの攻撃を防ぐので、Wordpressサイトにはとても有用です。
最近は無料でWAFが使えるレンタルサーバーも多いので、サーバーコントロールパネルを確認して、WAFの状態を確認しておきましょう。
逆に古いレンタルサーバーでは提供されていない場合もあるので、これを機にサーバーの移行を検討されてもいいかもしれません。
【参考記事】
「古いサーバーはプラン変更がおすすめ」
「NTT系列レンタルサーバー(WebARENA、スマイルサーバ)の運用でつまづくところ」
ただ、WAFを有効にすると稀にWordpressの正常な動作でも、WAFが悪意ある攻撃とみなしてエラーになることもあります。
その際はログをみて設定をすることで解決することがあります。
SSHを使えるようにしておく
サイト運用者は、Wordpressの管理画面やFTPソフトで操作を行うことが多いと思いますが、いざ攻撃にあった場合はこれだけだと対応が難しくなります。
コマンドでサーバーを操作できるSSHですと、原因の究明やファイル・DB操作が早く行えます。
普段からSSHを使えるようにしておくと問題が発生したときに役にたちます。
とはいえ、慣れてない方には敷居は高いかもしれませんので、制作会社に保守を依頼しておくと、いざというときに安心です。
以上になります。
弊社ではWordpressの他社様制作のサイトも保守を承っていますので、お困りの方はぜひご相談くださいませ。
→ お問い合わせフォーム