
ボットとはの基礎知識2~ボットへの対抗策
第1回では、「ボットとは」と題してボットの最新動向について触れました。(第1回ブログはこちら)そして、本稿では、ボットへの対抗策について解説します。 ボットへの対抗策 ボットも進化していますが、さまざまなボットに対抗するための技術も共有されています。本稿では、これまでに論議され、再現できるボット対抗技術について解説します。 まず、ボットに対抗する技術の基本的な条件があります。 ① 正常ブラウザ(正常なアクセス)のブロックはせずに、悪性ボットのみ検知してブロックをします。正常ブラウザからの接続に影響をおよぼしてはいけません。 ② 既存の運営環境に影響をおよぼしてはいけません。多くの企業がとても複雑なウェブ基盤環境を持っており、例えばCDNを利用したり、ウェブサーバの前にロードバランサ、WAF、IPSなどをプロキシまたはインライン形式で配置して利用したりなど、これら既存のサービス構造に影響をおよぼしてはいけません。 ③ 単純なシグネチャベースの検知やブロックでは十分ではありません。ゼロデイ(未知の攻撃)にも対応できるビヘイビアベースでの検知・ブロックが必要とされます。 これまでのボット対抗技術 初期に活用された対抗技術は次の通りです。 – ユーザエージェントブロック/User-Agent string Block 一番シンプルで効果的な方法です。検索エンジンのような良性ボットは、存在と目的をユーザエージェントに明示します。しかし、多くの悪性ボットは一部のユーザエージェントにこれを明示するものの、まるで正常ブラウザかのように偽造しユーザエージェントが設定されており、これに大きな意味はありません。一般的にスクリプトとしてはlibwww-perl、python-requests、wget、curlなどが使用されています。 – IPブロック/ IP Block 検索エンジンが使用するIPやIP帯域を許可したり、ISPでないクラウド事業者のIPからの接続は正常ブラウザではなくボット接続だと判断する方法です。しかし、同じISPでもIPは随時変更される可能性があるため、これは参考情報程度に留め、絶対的な判断基準にはなりません。 – レート制限/Rate-limit ウェブサイトへの一定時間のヒット数をチェックしてボットをブロックする方法です。正常ブラウザが要求できるリクエスト数には限界がありますが、ボットはブラウザができないほどたくさんのリクエストを要求する特性を逆手に取ります。しかし、モバイルのようなNAT環境※1でこれを活用することはリスクが高い上に、最近のボットは途中でアイドリングするなど進化していることもあり、これは誤検知の可能性がとても高い方法で、現状ではお薦めしていません。




