ワードプレス(WordPress)迷惑メール/スパム対策

【WordPressセキュリティ】あなたのサイトも狙われている?謎の404エラーログから不審なアクセスを突き止め撃退した全記録

この記事は約5分で読めます。

謎の404エラーログから不審なアクセスを突き止め「自分のサイトは小規模だから大丈夫」 「特に重要な情報もないし、ハッカーに狙われるわけがない」
WordPressでサイトを運営していると、ついセキュリティ対策を後回しにしてしまいがちです。しかし、攻撃者はサイトの規模に関係なく、常に脆弱性を探してインターネットを巡回しています。
今回は、サイトの「404エラーログ」という些細な記録をきっかけに、海外からの不審なアクセスを発見し、対策を講じるまでの一連の流れを実践的なノウハウとしてご紹介します。あなたのサイトを守るための具体的なヒントが、きっと見つかるはずです。

不正なボットが自社サイトに巡回していました

発端:見慣れない「404エラー」の記録

サイト運営者が定期的にチェックすべき項目の一つに「404エラーログ」があります。これは、訪問者が存在しないページにアクセスしようとした際に記録されるものです。

私は、ワードプレスで404エラーをチェックするのは「Redirection(リダイレクション)」というプラグインを使っています。

ワードプレスで301リダイレクトを処理するプラグインは「Redirection(リダイレクション)」が便利です
「このページはありません、404エラーです」と表示されてしまうURLを正しいURLに自動的に遷移(ジャンプ)させるための処理が301リダイレクトです。この処理は「.htaccess」という特殊ファイルを使い、WEBサーバー側で行います。「.htaccess」の編集はけっこう専門的な知識がないと難しいので一般的には難しいことが多いです。ワードプレスでホームページを構築している場合は、「.htacce...

Redirectionはリンク切れのチェックなどに役立ちますが、時に招かれざる客の足跡が残っていることがあります。

ある日、ログをチェックしていると、奇妙な記録が目に留まりました。

謎の404エラーログ

  • アクセス先URL: /contact.php
  • ユーザーエージェント: Go-http-client/1.1
  • IPアドレス: 144.172.96.144

一般の訪問者が使うChromeやSafariといったブラウザ名ではなく、「Go-http-client」という見慣れない名前。しかも、数日間隔で同じIPアドレスから繰り返しアクセスが試みられていました。

これは一体、何なのでしょうか?

気づきと仮説:これは「普通のアクセス」ではない

謎の404エラーログから不審なアクセスを突き止め

ここで、いくつかの仮説を立てました。

  • 仮説1:これは人間によるアクセスではないGo-http-client」は、Googleが開発したプログラミング言語「Go」で作られたプログラムがアクセスしてきたことを示すものです。つまり、何らかの目的を持ったボット(自動化プログラム)である可能性が濃厚です。
  • 仮説2:目的はスパムや脆弱性探し アクセス先の/contact.phpは、多くのお問い合わせフォームで使われる典型的なファイル名です。ボットはこのようなありふれたファイル名をターゲットに、「スパムメッセージを送りつけられるフォームはないか」「セキュリティ上の弱点(脆弱性)はないか」を無差別に探していると考えられます。
  • 仮説3:IPアドレスを変えながら執拗にアクセスしてくる ログをさらに詳しく見ていくと、同じGo-http-clientから、少しずつ違うIPアドレスを使ってアクセスしてきていることが判明しました。これは、IPアドレス単位でのブロックを回避しようとする、より悪質なボットの手口です。

これらの状況証拠から、「海外のクラウドサーバーを利用した悪質なボットが、サイトの脆弱性を探るために無差別攻撃を仕掛けている」という結論に至りました。幸い、私たちのサイトには該当するファイルがなかったため「404エラー」となり実害はありませんでしたが、放置しておくのは非常に危険です。

対応:IPアドレスとユーザーエージェントの「二段構え」でブロック

原因が特定できたので、次はいよいよ対策です。相手はIPアドレスを変えてくるため、IPアドレスのブロックだけでは不十分。そこで、以下の二段構えでアクセスを遮断することにしました。

  1. 【根本対策】ユーザーエージェントでブロックする 相手が Go-http-client という名前を名乗ってくる以上、この名前でのアクセスをすべて拒否するのが最も効率的です。サーバーの設定ファイル .htaccess に以下の記述を追記し、「Go-http-clientで始まるアクセス」をすべてシャットアウトします。
  2. 【補強対策】特に悪質なIPアドレスをブロックする 念のため、これまでのログで特にアクセスの多かったIPアドレスも個別にブロックしておきます。

最終的に、.htaccess ファイルに以下の設定を追記しました。

# 特定のユーザーエージェントを拒否
SetEnvIf User-Agent "^Go-http-client" block_bot
<RequireAll>
  Require all granted
  Require not env block_bot
</RequireAll>
#特定のユーザーエージェント記述のEND

# 頻出する悪質なIPアドレスを拒否
deny from 144.172.103.112
deny from 52.231.14.129
deny from 52.231.97.189
deny from 20.191.140.170
deny from 216.24.219.111
deny from 13.79.230.11
deny from 20.39.205.91

.htaccessはサイトの動作に影響する重要なファイルです。編集する際は必ずバックアップを取ってください。

この対策を実施して以降、Go-http-clientからの不審な404エラーはピタリと止まりました。

まとめ:サイト運営者が学ぶべき3つの教訓

今回の経験から、すべてのWordPressサイト運営者が心に留めておくべき教訓は3つです。

  1. 定期的に404エラーログをチェックしよう ログはあなたのサイトの健康状態を示すカルテです。見慣れないアクセスは、攻撃の予兆かもしれません。最低でも月に一度は目を通す習慣をつけましょう。
  2. 不審なアクセスは「ユーザーエージェント」と「IPアドレス」で見極める 「見たことのないユーザーエージェント」や「短時間に集中する海外IPからのアクセス」は危険信号です。放置せず、その正体を調べる癖をつけましょう。
  3. セキュリティ対策は多層的に IPアドレスのブロック、ユーザーエージェントのブロック、そしてWordPressのセキュリティプラグイン(Wordfenceなど)の導入やサーバーのWAF(ウェブアプリケーションファイアウォール)機能を有効にするなど、複数の防御壁を組み合わせることで、サイトの安全性は飛躍的に高まります。

インターネットにサイトを公開している以上、攻撃は「いつか来るもの」ではなく「常に来ているもの」。この記事が、皆さんの大切なサイトを守る一助となれば幸いです。