「ボット、インターネットボット」(英:Bot , Internet Bot)は、インターネット上で自動化されたタスクを実行するアプリケーションソフトウェアです。インターネットの初期から存在し、単純で繰り返しの多い作業を人間に代わって実行するよう設計されています。検索エンジンのインデックスを作成するために、様々なウェブサイトを巡回して自動的にキーワードを収集・分類する「クローラ」が有名です。この他に、インスタントメッセンジャー(IM)やインターネット・リレー・チャット(IRC)などのインタフェースを通して他のユーザーと対話する「会話ボット」もあります。最近ではAIとの組み合わせで人間の自然言語による質問を受付け、自然な応答をするボット(デジタルアシスタント)も登場し、インターネットに無くてはならない存在です。
しかし、これらの有用なボット(グッドボット)がある一方で、近年では不正目的のボット(バッドボット)が急増しています。ある企業サイトを調査したところ、ボットトラフィックの半分以上がバッドボットによるものでした。DDoS攻撃に多く使われるボットネット(BotNet)も、IRCボットが集まったものが語源となっています。
バッドボットには様々な種類があります。
バッドボットへの対策を行わずに放置すると、ウェブサイトがダウンさせられたり、情報を盗まれたりし、業績やブランドイメージに悪影響を及ぼします。しかし、ファイアウォール、IPS/IDS、サンドボックス、Anti-DDoS、一般的なWAF等の一般的なセキュリティ対策は、ボット対策としては有効ではありません。ボット全体を遮断してしまうと、グッドボットも活動できなくなってしまいます。グッドボットとバッドボットを正確に見極める必要があります。
そのため、ボット対策と予防のために専用に設計されたBot Managerが必要になります。Bot Managerは、ボット対策ファイアウォールとも呼ばれています。
1. まず、アクセスしてきているのが「人間」 か 「ボット」かを識別します。
2. ボットの場合、それがバッドボットかグッドボットかを識別します。
3. バッドボットのトラフィックを検出して遮断します。
4. グッドボットのトラフィックを許可し、タイプや時刻、ソースを管理します。
ボット対策の基本は、アクセスしてきているのが「人間」か「ボット」かを見極めることです。
Limelight WAF Advanced Bot Managerには、以下の6つの機能が備わっており、人間とボットを正確に識別した上でバッドボットとグッドボットを見分け、バッドボットのみを効果的に遮断することができます。
1. IP レート制限
2. CAPTHCA Challenge
3. JavaScript Challenge
4. Device Fingerprinting Challenge
5. Human Interaction Challenge
6. Good Bot ホワイトリスト
DoS攻撃は、1台のマシンから標的に大量のリクエストを送りつけて標的をダウンさせる攻撃です。(DDoSは複数台のマシンから攻撃)そのため、同一IPアドレスからの不自然な大量アクセスを検知した場合にそれを制限することで、DoS攻撃の被害を最小限に抑えることができます。レート制限の閾値を設定して、それ以上のHTTPリクエストをリジェクトするシンプルな方法です。正規のトラフィックをホワイトリストで検知して、優先的に帯域を確保するやり方もあります。
しかし、例外的に人間からも閾値以上のHTTPリクエストが送信される場合があります。(例:eコマースサイトでの大売り出しなどのタイミング)こういった誤検知を防ぐため、複数の検知方法を組み合わせることが大切です。 不審なアクセスを検知した場合、CAPTHCA Challengeを表示することで、人間かボットかを識別することができます。識別の最後の砦として利用可能です。
残りの四つの識別機能は次のブログ投稿で解説します。
Limelight WAF Advanced Bot Managerについては、以下のリソースも合わせてご覧ください。