WordPress公開直後に来たBotの種類を調査|アクセスログ分析【Security Log #3】

※本記事にはプロモーションが含まれています。

WordPressサイトを公開すると、すぐにBotがアクセスしてきます。
前回の記事では、公開直後にBotが確認するURLをアクセスログから分析しました。

今回は、WordPress公開後1週間のアクセスログをもとに、どのようなBotがアクセスしてきたのかを調査してみました。

アクセスログにはさまざまなUser-Agentが記録されており、

  • HTTPクライアント
  • 自動スキャナ
  • クローラー
  • ブラウザ偽装Bot

など、複数の種類のBotが確認できます。

この記事では、実際のログをもとにWordPress公開直後に来たBotの種類を解説します。

実際のアクセスログから確認できたBotのUser-Agent

まずは、実際のアクセスログの一部を見てみます。

GET / HTTP/2.0
User-Agent: okhttp/5.3.0

GET /favicon.ico HTTP/2.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

GET /.git/config HTTP/2.0
User-Agent: python-requests/2.28

GET /https%3A/www.xserver.ne.jp/ HTTP/2.0
User-Agent: curl/7.68.0

このように、アクセスログにはUser-Agent(ユーザーエージェント)という情報が含まれています。

User-Agentを見ることで、

  • ブラウザからのアクセスなのか
  • Botやスクリプトなのか
  • 自動スキャナーなのか

をある程度推測することができます。

User-Agentとは何か

User-Agentとは、アクセスしてきたクライアントの種類を示す情報です。

ブラウザの場合は次のような文字列になります。

Mozilla/5.0 (Windows NT 10.0; Win64; x64)

一方、Botやスクリプトの場合は次のようなものがよく見られます。

  • curl
  • python-requests
  • okhttp

これらは、ブラウザではなく プログラムからのアクセス で使われることが多いUser-Agentです。

okhttpのUser-Agent

User-Agent: okhttp/5.3.0

okhttpは、JavaやAndroidで使われるHTTPクライアントライブラリです。

Androidアプリやツールで利用されることもありますが、自動スキャンツールでも使われることがあります。

サーバーログでは、このUser-AgentがBotアクセスとして記録されることがあります。

python-requestsのUser-Agent

User-Agent: python-requests/2.28

python-requestsは、PythonのHTTPライブラリです。

このUser-Agentがログに残っている場合、次のような可能性があります。

  • Pythonスクリプトによるアクセス
  • 自動スキャンツール
  • クローリングツール

セキュリティスキャンやデータ収集などで使われることがあります。

curlのUser-Agent

User-Agent: curl/7.68.0

curlは、コマンドライン(CLI)でHTTPリクエストを送るツールです。

サーバー管理者や開発者が使うこともありますが、Botやスキャンツールでも利用されることがあります。

.git/configを探すアクセス

ログの中で少し気になるのが次のアクセスです。

GET /.git/config HTTP/2.0

.git はGitリポジトリのディレクトリです。

もしサーバーに .git フォルダが公開されていると、

  • ソースコード
  • リポジトリ情報
  • 開発履歴

などが取得されてしまう可能性があります。

そのため、自動スキャナーは .git/config の存在を確認することがあります。


WordPress公開直後でもBotはアクセスしてくる

今回のログを見ると、サイト公開直後にも次のようなアクセスが確認できました。

  • /
  • /favicon.ico
  • /.git/config

これは、Botがサイトの状態を確認するための初期スキャンと考えられます。

インターネットに公開されたサイトは、検索エンジンに登録していなくても、さまざまなBotからアクセスされる可能性があります。


Chromeなどブラウザを装ったBot

アクセスログには、次のようなUser-Agentもありました。

Mozilla/5.0 (Windows NT 10.0)
AppleWebKit/537.36
Chrome

一見すると普通のブラウザのアクセスに見えますが、実際にはBotがUser-Agentを偽装している可能性もあります。

そのため、「Chromeだから人間のアクセス」と判断するのは危険です。


WordPressサイトをスキャンするBotの目的

WordPressサイトは、公開するとすぐにBotが巡回することがあります。

主な理由は次のとおりです。

  • 新しいサイトの発見
  • セキュリティスキャン
  • 脆弱性探索
  • クローリング

特にWordPressは世界中で使われているCMSのため、自動スキャンの対象になりやすい傾向があります。


アクセスログから分かること

今回のログ分析から、いくつかの特徴が見えてきました。

公開直後でもBotはアクセスしてくる

サイトを公開して間もない状態でも、Botのアクセスが確認できました。
インターネットに公開されたサイトは、検索エンジンに登録していなくても巡回されることがあります。

さまざまなHTTPクライアントが使われている

アクセスログには、複数のUser-Agentが確認できました。

okhttp
Go-http-client

User-Agentを見ることで、アクセスしてきたクライアントの種類をある程度把握することができます。


User-AgentだけでBot判定するのは危険

BotはブラウザのUser-Agentを偽装することがあります。

そのため、User-Agentだけで判断するのではなく、

  • アクセス頻度
  • リクエスト内容
  • アクセスパターン

なども含めて分析する必要があります。


なお、アクセスログはレンタルサーバーの管理画面から確認できます。

私の場合はエックスサーバーを使っていて、ブラウザ上から簡単にログを確認できるので、こうしたBotの動きもすぐにチェックできます。

エックスサーバー公式はこちら


WordPressアクセスログを確認するメリット

WordPressサイトを運営していると、普段はGoogle Analyticsなどのアクセス解析ツールを見ることが多いと思います。
しかし、セキュリティの観点ではアクセスログ(access.log)を確認することも重要です。

アクセスログには、次のような情報が記録されています。

  • どのIPアドレスからアクセスされたか
  • どのURLにアクセスしたのか
  • User-Agent(アクセス元のクライアント)
  • アクセス日時

これらを確認することで、サイトにどのようなアクセスが来ているのかを把握できます。

例えば、今回のログでも次のようなアクセスが確認できました。

  • okhttp や Go-http-client などのHTTPクライアント
  • favicon を確認するBot
  • .git/config などの設定ファイルを探すスキャン

このようなアクセスは、通常の閲覧ではあまり見られないため、Botやスキャナによるアクセスの可能性があります。

アクセスログを定期的に確認しておくことで、

  • 不審なスキャンの発見
  • Botの巡回パターンの把握
  • サイトのセキュリティ状況の理解

につながります。

WordPressサイトを安全に運営するためにも、アクセスログを観察する習慣を持つことは重要なポイントだと言えます。


まとめ|WordPress公開直後からBotは巡回している

WordPressサイトを公開すると、公開直後からさまざまなBotがアクセスしてきます。

今回のアクセスログでは、

  • okhttp
  • Go-http-client
  • ブラウザ偽装Bot

など、複数の種類のBotが確認できました。

WordPressを運営する場合、アクセスログを確認することで、どのようなBotがサイトを巡回しているのかを知ることができます。

セキュリティの観点からも、ログを観察することは重要なポイントです。


このブログの運営環境

  • WordPress
  • GeneratePress
  • エックスサーバー

エックスサーバー公式サイト