ボットトラフィックは、必ずしも簡単に見分けられるとは限りません。
単純なスクリプトは同じようなリクエストを繰り返すことが多いため、比較的容易に特定できます。一方、より高度なボットは、IP アドレスのローテーション、JavaScript の実行、実ブラウザやヘッドレスブラウザの使用、Cookie やセッションの維持などを行い、通常のユーザー行動を模倣することができます。
そのため、ボット検知を確実に行うには、単にトラフィックの急増を確認したり、不審な IP アドレスをブロックしたりするだけでは不十分です。通常は、分析ツール、セキュリティイベント、サーバーログから異常なアクティビティを特定し、さらにネットワーク、デバイス、ブラウザ、行動に関するシグナルを組み合わせて、それらのアクティビティが自動化されたものかどうかを判断します。
ボットトラフィックとは?
ボットトラフィックとは、人間が一つひとつ手動で操作するのではなく、自動化されたソフトウェアによって生成される Web サイト、アプリケーション、API 上のアクティビティを指します。
一部のトラフィックボットは正当な目的で利用されています。たとえば、検索エンジンのクローラーはコンテンツを検出してインデックス化し、監視サービスは Web サイトの可用性を確認します。また、許可されたシステム連携によって、さまざまな業務プロセスを自動化することもできます。
一方で、望ましくない、あるいは悪意のある活動を自動化するボットも存在します。たとえば、次のようなものがあります。
- クレデンシャル攻撃
- ブルートフォース攻撃
- Web スクレイピング
- 不正なアカウント登録
- スパム
- カーディングや決済詐欺
- 在庫の買い占め
- 転売目的の自動購入
- クリック詐欺
- 脆弱性スキャン
したがって、自動化されたアクセスを特定するだけでは十分ではありません。そのボットが正当なものなのか、不審なものなのか、あるいは悪意のあるものなのかを判断する必要があります。
Web サイトにボットトラフィックがあるかどうかを確認するには?
アクセス解析データ、セキュリティイベント、サーバーログには、自動化されたアクティビティの兆候が現れることがあります。
以下のような警告サインは、さらに調査すべきポイントを特定するのに役立ちます。ただし、単一の異常だけでボットによるアクセスだと断定することはできません。
1. ページビューやリクエスト数の異常な急増
マーケティングキャンペーン、製品リリース、ニュース、その他の明確な理由がないにもかかわらず、Web サイトのトラフィックが突然増加した場合、自動化されたアクセスが発生している可能性があります。
総トラフィック量だけでなく、トラフィックがどこに集中しているかも重要です。
たとえば、数千件のリクエストがログインページ、料金ページ、検索エンドポイント、在庫 API、あるいは一部の商品ページだけに集中している場合、Web サイト全体で通常のトラフィックが増加しているケースよりも注意が必要です。
2. 不審なトラフィックソースや地理的位置
特定の IP レンジ、ネットワーク、自律システム(AS)、ホスティングプロバイダー、地域などからリクエストが異常に集中している場合、自動化されたアクセスの可能性があります。
ただし、地理的位置だけでボットかどうかを判断することはできません。
正規ユーザーが旅行中であったり、VPN を使用していたり、企業ネットワーク経由で接続していたり、実際の所在地とは異なる地域のインフラを経由してサービスにアクセスしている場合もあります。
そのため、ネットワークの送信元情報は、行動や技術的なシグナルと組み合わせて評価する必要があります。
3. 不自然なセッションやインタラクションパターン
ボットは、人間のユーザーとは異なる方法で Web サイトを操作することがあります。
考えられる兆候には、次のようなものがあります。
- セッション時間が極端に短い、または長い
- セッション時間が毎回ほぼ同じ
- ページ間を異常な速さで移動する
- ページの閲覧順序が常に同じ
- 意味のあるインタラクションがほとんどない
- まったく同じ動作が大量に繰り返される
単発の異常なセッションだけでは、判断材料として十分ではありません。一方、通常のユーザー行動とは明らかに異なるパターンが繰り返し見られる場合は、自動化されたアクセスである可能性が高くなります。
4. 不正または質の低いコンバージョン
自動化ツールは、フォームの送信、アカウント作成、メール配信への登録、商品のカートへの追加など、一見すると「コンバージョン」に見えるイベントを発生させることができます。
一般的な警告サインには、次のようなものがあります。
- 明らかに不自然な氏名や連絡先情報
- 類似した登録が大量に発生する
- フォーム送信数だけが急増し、売上が増えていない
- カート放棄が繰り返し発生する
- クーポンコードの不自然な使用
- 質の低いリードが大量に発生する
こうしたパターンは、スパム、不正アカウントの作成、詐欺、自動化されたテストなどを示している可能性があります。
5. ログイン失敗の繰り返しや不審なアカウント活動
短時間に多数のアカウントに対して大量のログイン試行が行われている場合、クレデンシャルスタッフィング攻撃が発生している可能性があります。これは、過去に流出したユーザー名とパスワードの組み合わせをボットが大量に試す攻撃です。
その他の不審なパターンには、次のようなものがあります。
- 高速かつ連続的な認証試行
- 多数の異なるユーザー名に対するログイン試行
- パスワードリセットの繰り返し
- アカウント列挙
- 複数のアカウントで類似したアクティビティが発生する
- ログイン後の不自然な行動
自動化されたログイン攻撃が成功すると、最終的にアカウント乗っ取りにつながる可能性があります。そのため、認証エンドポイントは特に注意して監視する必要があります。
6. 価値の高いページや API への繰り返しアクセス
ボットは、ビジネス上の価値が高いリソースにアクセスを集中させることがあります。
一般的なターゲットには、次のようなものがあります。
- 商品ページや料金ページ
- 検索 API
- ログインエンドポイント
- チェックアウトフロー
- チケット販売ページや在庫ページ
- キャンペーンページ
- コンテンツアーカイブ
- 大量のデータを扱う API
こうしたリソースに対して体系的かつ反復的なリクエストが発生している場合、データスクレイピング、在庫監視、転売目的の自動購入、偵察活動、自動化された API の悪用などが行われている可能性があります。
ボットトラフィックを検知する方法
分析データの異常は、どこを調査すべきかを把握する手掛かりになります。一方、技術的な検知手法は、そのトラフィックが実際に何によって生成されているのかを判断するのに役立ちます。
信頼性の高いボットトラフィック検知では、単一のルールに依存するのではなく、複数のシグナルを組み合わせて評価するのが一般的です。
1. サーバーログとリクエストパターンを分析する
サーバー、CDN、WAF、アプリケーション、API のログから、受信リクエストに関する詳細な情報を確認できます。
確認すべき主なシグナルには、次のようなものがあります。
- リクエスト頻度
- リクエストされた URL とエンドポイント
- HTTP メソッド
- HTTP ヘッダー
- レスポンスステータスコード
- リクエストのタイミング
- セッション識別子
- 地理情報とネットワーク情報
- 繰り返されるナビゲーションパターン
あるクライアントが規則的に数千件の商品ページへアクセスしている場合、データスクレイピングが行われている可能性があります。
認証エンドポイントやチェックアウトエンドポイントに高速かつ連続的なリクエストが送信されている場合は、自動化された不正利用の可能性があります。
単一のリクエストだけを見るよりも、複数のリクエスト、セッション、アカウント、エンドポイントにまたがってパターンを確認する方が、より有効な判断材料になります。
2. IP とネットワークのレピュテーションを評価する
IP やネットワークの分析では、次のような特徴を評価できます。
- IP レピュテーション
- データセンターやホスティングサービスの IP レンジ
- プロキシや VPN の利用状況
- 自律システム情報
- 地理的な送信元
- 過去の悪意ある活動
- リクエスト頻度
こうしたシグナルを利用することで、既知の悪意あるインフラを迅速に特定できる場合があります。
ただし、高度なボットは住宅用プロキシ、モバイルネットワーク、ローテーションする IP プールなどを利用することがあります。そのため、一見正常に見える IP アドレスだからといって、アクセス元が人間であるとは限りません。
IP インテリジェンスは、単独で利用するのではなく、総合的な検知戦略の一要素として活用するのが効果的です。
3. デバイスとブラウザのフィンガープリンティングを使用する
デバイスフィンガープリンティングでは、リクエストを送信しているブラウザやデバイスに関連する特徴を分析します。
利用できるシグナルには、次のようなものがあります。
- ブラウザ設定
- OS 情報
- レンダリング特性
- JavaScript の動作
- Cookie
- デバイス属性
- ブラウザ機能
フィンガープリンティングを利用すると、クライアントが名乗っている情報と実際の動作との不一致を検出できます。
たとえば、User-Agent 文字列では一般的なブラウザを装っていても、その他の属性から自動化フレームワークや通常とは異なる実行環境を使用していることが分かる場合があります。
また、ボットが頻繁に IP アドレスを変更している場合でも、フィンガープリンティングを利用することで、異なるアクティビティを関連付けられる可能性があります。
4. ユーザー行動を分析する
行動分析では、ユーザーが Web サイトやアプリケーションをどのように操作しているかを確認します。
分析可能なシグナルには、次のようなものがあります。
- ナビゲーションの順序
- 操作間の時間
- マウスの動き
- ページスクロール
- クリックのタイミング
- 入力パターン
- トランザクションの速度
- 繰り返されるワークフロー
人間の行動には、自然なばらつきや不規則性があります。一方、自動化されたアクティビティでは、ボットがランダムな遅延を加えたり人間の操作を模倣したりしていても、より規則的で体系的なパターンが現れる傾向があります。
そのため、ネットワークやブラウザの特徴だけでは正常に見えるボットを検知する際に、行動シグナルは特に有効です。
5. TLS とプロトコルのフィンガープリンティングを使用する
TLS 接続には、リクエストの背後で使用されているクライアントソフトウェアを識別するために利用できる特徴があります。
ブラウザ、ネットワークライブラリ、アプリケーション、自動化フレームワークによって、TLS ハンドシェイクのパターンが異なる場合があります。これらの特徴をブラウザ情報やリクエスト情報と照合することで、不一致を検出できます。
たとえば、HTTP ヘッダーでは特定のブラウザから送信されたリクエストであるように見えても、TLS の特徴が別のネットワークライブラリに近い場合があります。
ブラウザシグナルと TLS フィンガープリンティングを組み合わせることで、自動化されたクライアントが実際の正体を隠すことがより難しくなります。
6. ブラウザ検証とチャレンジを使用する
パッシブなシグナルだけでは明確な判断ができない場合、Web サイト側でアクセス元に追加の検証を求めることができます。
一般的な方法には、次のようなものがあります。
- JavaScript チャレンジ
- Cookie 検証
- ブラウザフィンガープリントチャレンジ
- CAPTCHA
通常のブラウザであれば実行できる動作をクライアントが実行できない場合、自動化されたプログラムである可能性があります。
ただし、チャレンジによる検証だけで確実に判断できるわけではありません。高度なボットは JavaScript を実行したり、実際のブラウザ環境を使用したり、一部の CAPTCHA を回避したりすることができます。
また、チャレンジは正規ユーザーにも追加の操作を求めることになるため、通常はリスクレベルに応じて選択的に使用する必要があります。
7. 機械学習と異常検知を組み合わせる
最新のボット検知システムでは、静的なルールだけに依存するのではなく、複数のシグナルを総合的に評価する方法がますます一般的になっています。
機械学習では、ネットワーク上の識別情報、リクエストの挙動、ブラウザの特徴、デバイス属性、セッション履歴、エンドポイントの重要度、アカウント活動、脅威インテリジェンスなど、さまざまな情報を組み合わせて分析できます。
さらに、異常検知を使用することで、既存のパターンや想定される行動から逸脱したアクティビティを特定できます。
単一の異常なシグナルだけでは、そのリクエストが自動化されているかどうかを判断するには不十分な場合があります。しかし、関連する複数の異常が同時に確認された場合は、より強力な判断材料となり、特定の検知方法だけに依存する必要もなくなります。
基本的なボット検知方法だけでは不十分な理由
従来の検知・緩和手法も引き続き有効ですが、それぞれを単独で使用する場合には明確な限界があります。
IP ブロック
悪意のある IP アドレスをブロックすれば、その送信元からのリクエストを即座に遮断できます。
しかし、高度なボットは住宅用プロキシ、モバイルネットワーク、VPN、ローテーションする IP プールなどを利用してリクエストを分散できます。自動化されたトラフィックが、絶えず変化する数千もの送信元から送られてくる場合、IP アドレスを一つずつブロックする方法の効果は大きく低下します。
User-Agent による検知
一部の単純なボットは、User-Agent 文字列からその正体を判断できます。
しかし、悪意のあるボットはこの情報を書き換え、一般的なブラウザ、検索エンジンのクローラー、その他の正規クライアントになりすますことができます。
したがって、User-Agent 情報は分類の一要素として利用できますが、クライアントの正当性を証明するものとして扱うべきではありません。
レート制限
レート制限では、一定時間内にクライアントが送信できるリクエスト数を制限し、高頻度の自動化された不正利用を抑制します。
しかし、高度なボットはリクエスト頻度を下げたり、多数の IP アドレス、デバイス、アカウント、セッションに活動を分散させたりすることで、固定されたしきい値を回避できます。
CAPTCHA
人間による操作を確認するチャレンジは、一部の自動化クライアントを阻止できます。しかし、高度なボットはブラウザ自動化、CAPTCHA 代行サービス、AI 支援技術などを利用して検証を回避する場合があります。
また、チャレンジを頻繁に表示すると、正規ユーザーに不要な負担を与える可能性があります。
そのため、効果的なボット検知には複数の技術的・行動的シグナルを組み合わせる必要があり、単一の方法ですべての自動化クライアントを検知できると考えるべきではありません。
良性ボットと悪意のあるボットを見分けるには?
アクセス元が自動化されていると判明したからといって、必ずしもそのリクエストをブロックすべきとは限りません。
検索エンジンのクローラー、監視ツール、パートナーサービス、承認済みの業務自動化などは、正当な価値を提供している場合があります。
一方、悪意のあるボット攻撃には、クレデンシャルの悪用、不正なデータスクレイピング、不正アカウントの作成、決済詐欺、在庫の不正利用、スパム、リソース枯渇攻撃などが含まれる可能性があります。
組織は、次のような観点から自動化されたトラフィックを評価できます。
- アイデンティティ
- 認可状況
- 目的
- 行動
- リクエスト対象のリソース
- リクエスト頻度
- ビジネスへの影響
- セキュリティリスク
既知の良性ボットであっても、そのボットがよく知られた名称を名乗っているという理由だけで信頼するのではなく、正当性を検証する必要があります。悪意のある自動化プログラムでも、User-Agent 文字列やその他の識別情報を偽装できます。
悪意のあるボットトラフィックを検知したらどうすべきか?
適切な対応は、ボットの正体、行動、リスクレベルによって異なります。
考えられる対策には、次のようなものがあります。
- 検証済みの正当なボットを許可する
- 判断が難しいトラフィックを監視する
- リクエスト頻度を制限する
- 機密性の高いリソースへのアクセスを制限する
- ブラウザ検証や CAPTCHA チャレンジを有効にする
- より強力な認証を要求する
- 悪意のあるリクエストをブロックする
これらはいずれもボット対策の一環ですが、自動化されたアクティビティの種類や深刻度に応じて適切な対策を選択する必要があります。
より包括的なボット管理戦略では、検知、分類、ポリシー適用、監視、緩和を組み合わせながら、正規ユーザーや承認済みの自動化サービスへの影響を最小限に抑えます。
CDNetworks が悪意のあるボットトラフィックの検知を支援する方法
CDNetworks Bot Shieldは、複数の検知・緩和技術を組み合わせることで、正規ユーザー、承認済みのボット、悪意のある自動化プログラムを識別します。
主な機能は次のとおりです。
- 良性ボットの識別
- 高度なレート制限
- デバイスとブラウザのフィンガープリンティング
- 人間らしい行動の検知
- CAPTCHA とフィンガープリントチャレンジ
- 脅威インテリジェンス
- 機械学習
- リアルタイム監視とアラート
- 設定可能な緩和策
複数のシグナルを総合的に評価し、トラフィックのリスクに応じて異なる対応を行うことで、Bot Shield は Web サイト、アプリケーション、API、アカウント、ビジネスプロセスを自動化された不正利用から保護します。
よくある質問
Web サイトにボットトラフィックがあるかどうかを確認するには?
原因不明のトラフィック急増、繰り返されるリクエスト、不自然なセッション、不正なコンバージョン、ログイン失敗、不審なトラフィックソースなどは、ボットの存在を示している可能性があります。確実に判断するには、ネットワーク、デバイス、ブラウザ、リクエスト、行動に関する分析を組み合わせる必要があります。
ボットトラフィックを検知する最適な方法は?
サーバーログ、IP インテリジェンス、フィンガープリンティング、行動分析、プロトコルシグナル、ブラウザ検証、脅威インテリジェンス、異常検知を組み合わせることで、単一の技術に依存するよりも正確にボットを特定できます。
Google Analytics でボットトラフィックを検知できますか?
アクセス解析ツールを利用すれば、ページビュー、セッション、エンゲージメント、地域分布、コンバージョンなどに現れる不審なパターンを把握できます。ただし、高度なボットを確実に特定するには、通常、サーバー側、ネットワーク、ブラウザ、デバイス、行動に関するシグナルも組み合わせる必要があります。
ボットは IP アドレスを隠すことができますか?
ボットは、プロキシ、VPN、住宅用ネットワーク、モバイルネットワーク、ローテーションする IP プールなどを利用して、ネットワーク上の識別情報を隠したり頻繁に変更したりできます。そのため、IP アドレスだけに依存する検知方法の有効性は低下します。
ボットは人間の行動を模倣できますか?
ボットは JavaScript を実行し、実ブラウザを使用し、セッションを維持し、不規則な遅延を加え、ユーザー操作を模倣することができます。高度な検知では、こうした行動をネットワーク、ブラウザ、デバイス、リクエストに関するシグナルと組み合わせて総合的に判断します。
ボット検知とボットトラフィック検知の違いは?
ボット検知とは、自動化されたクライアントを広く識別・分類するための技術を指します。一方、ボットトラフィック検知とは、Web サイト、アプリケーション、API、アカウント、オンラインサービスに送信される自動化リクエストの特定に、これらの技術を適用することを指します。
