古いiPhoneボットの挙動を観察

  1. はじめに

本日、検証のためにアクセス制限を一時的に緩和してみたところ、案の定(笑)、即座に反応がありました。
特定の古いiPhoneを装った複数のIPアドレスから、断続的なアクセスが開始されたのです。

ログを精査すると、そこには人間によるブラウジングとは明らかに異なる、「低速・分散型」のオートメーション(ボット)の興味深い挙動が浮き彫りになりました。

●特徴のサマリー

・HTMLのみ取得: 画像、CSS、JavaScriptなどのリソースは一切無視。
・10分間隔の一定ペース: WAFの検知を巧妙に避けるかのような、じれったい速度。
・IPの広域分散: クラウドプロキシなどを介した並列クロール。
・重複巡回: 履歴管理が甘く、同じページを短時間に何度も叩く傾向。

  1. ログ抜粋(代表例)

User-Agent(UA)に注目してください。
すべて iPhone OS 13_2_3 (Safari 604.1) で統一されています。
2026年の現在、この2019年リリースの古いOSがこれほど組織的に動くことは、実機ではまず考えられません。

43.159.145.153 - - [18/Feb/2026:10:34:52 +0900] "GET / HTTP/1.1" 200 5949 "http://223.133.180.219:80" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.153.107.22 - - [18/Feb/2026:10:42:37 +0900] "GET / HTTP/1.1" 301 566 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.153.107.22 - - [18/Feb/2026:10:42:38 +0900] "GET / HTTP/1.1" 200 5949 "http://sky.0t0.jp" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.159.144.16 - - [18/Feb/2026:10:43:06 +0900] "GET /docs/pacific.html HTTP/1.1" 200 6955 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.158.91.71 - - [18/Feb/2026:10:51:55 +0900] "GET /docs/router_article.html HTTP/1.1" 200 10176 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.167.157.80 - - [18/Feb/2026:11:02:20 +0900] "GET /docs/FireHOL_drop.html HTTP/1.1" 200 7854 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.130.150.80 - - [18/Feb/2026:11:13:42 +0900] "GET /weblog/ HTTP/1.1" 200 13159 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.157.150.69 - - [18/Feb/2026:11:28:00 +0900] "GET / HTTP/1.1" 200 5949 "http://223.133.180.219" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
170.106.107.87 - - [18/Feb/2026:11:33:02 +0900] "GET /retiredlog HTTP/1.1" 301 3866 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
170.106.107.87 - - [18/Feb/2026:11:33:06 +0900] "GET /retiredlog/ HTTP/1.1" 200 12127 "https://sky.0t0.jp/retiredlog" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
49.51.39.209 - - [18/Feb/2026:11:42:50 +0900] "GET /docs/read-only_system_disk.html HTTP/1.1" 200 9128 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.131.36.84 - - [18/Feb/2026:11:52:06 +0900] "GET /docs/files/router.pdf HTTP/1.1" 200 471243 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.159.149.216 - - [18/Feb/2026:12:02:50 +0900] "GET /weblog/posts/2025-05-03-153524/ HTTP/1.1" 200 8995 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.157.153.236 - - [18/Feb/2026:12:12:08 +0900] "GET /weblog/posts/2025-05-03-141114/ HTTP/1.1" 200 8326 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
170.106.65.93 - - [18/Feb/2026:12:22:47 +0900] "GET /retiredlog/posts/2026-02-08-0830/ HTTP/1.1" 200 9230 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.166.244.192 - - [18/Feb/2026:12:33:04 +0900] "GET /retiredlog/posts/mainroad-setup-260124/ HTTP/1.1" 200 7930 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
170.106.73.216 - - [18/Feb/2026:12:43:08 +0900] "GET /docs/read-only_system_disk.html HTTP/1.1" 200 9128 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.130.26.3 - - [18/Feb/2026:13:04:08 +0900] "GET /weblog/categories/%E4%BC%91%E6%97%A5%E3%81%AE%E9%A2%A8%E6%99%AF/ HTTP/1.1" 200 11354 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.159.143.139 - - [18/Feb/2026:13:13:22 +0900] "GET /weblog/posts/2025-05-03-123302/ HTTP/1.1" 200 8398 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
43.133.66.51 - - [18/Feb/2026:13:23:14 +0900] "GET /retiredlog/posts/2026-02-03-0640/ HTTP/1.1" 200 8412 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
170.106.192.208 - - [18/Feb/2026:13:33:01 +0900] "GET /retiredlog/posts/2026-02-01-0600/ HTTP/1.1" 200 8315 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
119.28.140.106 - - [18/Feb/2026:13:43:09 +0900] "GET /docs/read-only_system_disk.html HTTP/1.1" 200 9128 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"
  1. テクニカルな観察ポイント

●User-Agentの「プリセット感」

使用されているUAは、多くのスクレイピングライブラリ(PythonのRequestsやGoのnet/http等)でデフォルト、あるいはサンプルとしてよく使われる古いテンプレートです。
ヘッドレスブラウザ(Puppeteer等)すら使わず、軽量なHTTPクライアントで生のHTMLだけを吸い出していることが推測されます。

●参照元(Referer)の不自然さ

一部のログで http://223.133.180.219 というIP直打ちのRefererが見られます。
これは、クローラが内部的に保持しているキュー(巡回リスト)をそのままRefererに流し込んでいるボット特有のバグ、あるいは設計の癖と言えるでしょう。

●重複とペース配分

・/docs/read-only_system_disk.html などの特定ページを短期間に別IPから何度も取得しています。
・分散: IPローテーションにより、1つの接続元をブラックリストに入れられても止まらない仕組み。
・効率: 非常に悪い。 1ページ/10分というペースは、セキュリティ製品の「秒間リクエスト数」による検知をくぐり抜けるための意図的なディレイ(待機)と考えられます。

  1. クロールの目的を推測する

これほど執拗に、かつ慎重にテキスト情報を収集する目的は何でしょうか。

・AI学習用のコーパス収集: 2026年現在、膨大なWeb上の日本語テキストがAIの餌として求められています。
・SEO解析・競合調査: サイト構造をマッピングし、コンテンツの更新頻度を監視している可能性。
・コンテンツの無断転載(スクレイピング): 後の再利用を目的としたバックアップ。

  1. まとめ

今回の観察から、以下のことが再確認できました。

・公開情報は「見られている」: 制限を緩めた瞬間にこれだけのボットが寄ってくるのは、Webが常に監視されている証左です。
・ボットの進化と退化: 非常に高度な偽装を行うボットがいる一方で、今回のような「古いiPhoneのフリをした素直すぎるボット」も依然として主流です。
・ログは語る: 単なる数字の羅列も、User-Agentやアクセス間隔を分析すれば、背後にいるエンジニアの設計思想が透けて見えます。

ボットの歩みは遅いですが、24時間365日休まずに私のサイトを読み取ろうとしています。
この「静かなる侵入者」の挙動を観察することは、サイト運営の隠れた醍醐味かもしれません。