python-requestsでトップページだけスキャンする謎botの正体|サーバーログから分析【Security Log #21】

サーバーログを見ていると、python-requests というユーザーエージェントでトップページ(/)だけを繰り返し叩くアクセスが確認されることがあります。

しかも、特定のURLを深掘りするわけでもなく、ただトップページにアクセスして終了するという、少し不思議な挙動です。

この記事では、実際のアクセスログをもとに、このような挙動の正体と目的について解説します。

WordPress公開直後のアクセス状況については、以下の記事でも詳しく解説しています。

WordPress公開直後にBotが最初に確認するURL|実際のアクセスログから分析

python-requestsとは何か

python-requests は、PythonでHTTPリクエストを送るためのライブラリです。

以下のようなシンプルなコードでWebサイトにアクセスできます。

import requests
requests.get("https://vivisec.net")

このように簡単に使えるため、スクレイピングや簡易的なクローラー、スクリプトによるアクセスなどでよく利用されます。


実際のアクセスログ

以下は実際に確認されたアクセスログです。

vivisec.net 133.200.41.128 - - [03/Apr/2026:06:17:00 +0900] "GET / HTTP/1.1" 301 228 "-" "python-requests/2.32.3"
vivisec.net 133.200.41.128 - - [03/Apr/2026:06:17:00 +0900] "GET / HTTP/1.1" 301 228 "-" "python-requests/2.32.3"
www.vivisec.net 133.200.41.128 - - [03/Apr/2026:06:17:01 +0900] "GET / HTTP/1.1" 200 20489 "-" "python-requests/2.32.3"

ログから分かる挙動の特徴

このログから、以下のような特徴が読み取れます。

リダイレクトを追跡している

最初に vivisec.net にアクセスし、301リダイレクトを受けた後、www.vivisec.net にアクセスしています。

つまり、リダイレクト後の最終ページ(200)まで取得しています。

同時刻に複数回アクセスしている

同じタイミングで2回リクエストが送られていることから、以下の可能性が考えられます。

  • retry設定のミス
  • 同一処理の重複実行
  • スクリプトのループ処理

トップページしかアクセスしていない

他のURL(wp-login.php/api など)にはアクセスしておらず、トップページのみです。

このことから、サイト構造の探索や攻撃目的ではないと考えられます。

今回のようにトップページのみのアクセスとは異なり、以下のように複数のURLを順に探索するケースもあります。

WordPressに毎日同じ手順でアクセスが来る理由|実際のログから見るBotスキャンのパターン

ユーザーエージェントを偽装していない

python-requests/2.32.3 というデフォルトのUAがそのまま使われています。

本格的な攻撃やクローラーであれば、ブラウザのUAに偽装することが多いため、この点も特徴的です。


なぜトップページだけをスキャンするのか

このようなアクセスは、主に以下のような目的が考えられます。

サイトの生存確認

URLリストに対して「サイトが存在するか」「応答があるか」を確認する処理です。

スクレイピング前の事前チェック

後続処理の前に、対象サイトが正常に動いているかを確認している可能性があります。

テスト用スクリプト

単純に「アクセスできるか」を確認するためのテストコードの可能性もあります。


攻撃なのか?危険性の判断

今回のようなアクセスは、以下の理由から危険性は低いと判断できます。

  • 特定の脆弱性を狙ったリクエストがない
  • ログインページやAPIへのアクセスがない
  • UA偽装がされていない

つまり、攻撃というよりは、単純な確認処理に近い挙動です。

一方で、実際に攻撃につながるアクセスとしては、以下のようなケースがあります。

WordPressの「/wp-login.php」スキャンとは│アクセスログ分析


python-requestsの対策の必要性

基本的には対策は不要です。

ただし、以下のような場合は検討してもよいでしょう。

  • アクセスが大量に発生している
  • サーバー負荷が高い
  • 特定IPから継続的にアクセスがある

その場合は、IP制限やWAFの設定で対応可能です。


まとめ

python-requests によるトップページのみのアクセスは、攻撃ではなく単純な確認処理であることが多い挙動です。

ログを正しく読み取ることで、不必要に不安になることなく、適切に対応できるようになります。


このブログの運営環境

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

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