PV: 回 / All:

【Webセキュリティ】悪性ボットを釣った話

Webサーバー、TCP 80 や TCP 443 でサーバーを運営していると、
悪意あるリクエストがたくさん届きます。
そのようなリクエストを送ってくるものを「悪性ボット」というのですが…
そいつらは、リクエスト内容を少し細工すればあっという間に釣ることができます。

「釣り上げられる悪性ボット」
ChatGPT作

悪性ボットとは?

GitHub Pages や Cloudflare Pages でホームページを作成している方はアクセスログを収集できないのであまり馴染みがないと思いますが、検索エンジンのクローラーの10倍以上のトラフィック量を占めるのが、

env (機密情報)や git (非公開ファイルアクセス)フォルダを標的とした、「パストラバーサル攻撃」を主目的とした「悪性ボット」です。

こいつらは非常に簡単に作成することができ、開発者向けのセキュリティ検査ツールにもよく搭載されます。
なので、1回1回のアクセス量は少ないのですが、「運営してる犯罪者」が多いせいで通信量がどうしても多くなります。

※なお、このページの悪性ボットは注釈がなければすべて「パストラバーサル攻撃を主目的とした悪意あるプログラム」を指します。

「悪性ボットを釣る」とは?

㋑(釣る)気を引くようなことをちらつかせて、こちらの思うとおりに相手を動かす。巧みに相手を誘う。「甘い言葉で—・る」「広告で客を—・る」

吊る/釣る(つる)とは? 意味・読み方・使い方をわかりやすく解説 – goo国語辞書

悪性ボットは、"404 Not Found" や WAF (Cloudflare / CloudFront / Akamaiなど) によるブロックも無視します。
なぜなら、そこは「データが窃取できない」からです。
ですが、悪性ボットはデータが欲しいので、「302 Found」(リダイレクト)や「200 OK」には敏感に反応します。
なぜなら、データが窃取できる可能性が通常よりも高いからです。
※ “302 Found" は “404 Not Found" と同等に扱うプログラムも一部存在しています

パストラバーサル攻撃を主目的とした悪性ボットは、このような偽装応答によって簡単に引っ掛けることができます。
なお、WordPressの脆弱性探索が主目的の悪性ボットはこの手法では引っ掛かりません。

メリット

「通信量が多くなってアナリティクスを見るのが楽しくなる」
「手のひらの上でころころ転がされている悪性ボットを想像して楽しくなる」
ぐらいですかね。
特にありません⇐ここ重要

デメリット

  • 通信量が増大する (総量10倍~最大75倍)
  • アクセスログが膨大になる (6倍~最大で45倍)
  • サーバーがカスだとキャパオーバーになる (対策は容易)
  • WordPressの動いているドメインで行うと、攻撃者を怒らせてWordPressの脆弱性を突かれる恐れがある

アナリティクスを見るのが楽しい理由

Cloudflareのアナリティクス。悪性ボットが罠に引っかかり1時間で3000リクエストを送り付けてきているアナリティクス。

こいつらは(D)DoS攻撃ではなく、
悪性ボットの試行錯誤です。

1回の試行で
7,500~13,000のリクエストが飛んできます

参考までに、この罠の設置されてるサーバーは75,000リクエスト毎秒の性能があります。

なお、"際限なく“リダイレクトを行いますので、善良な人は試さないようにしましょう。

アクセスログの解体

1日あたり2.5MB~4MBのアクセスログ (nginxやapache換算で5MB~8MB)を解体するのは非常に大変なので、
また別の機会に別の記事を書かせていただきます。