ボット対策システム:どのように機能し、回避できるのか?

ガイド, 10月-07月-2024日5分で読める

ボット対策システムは、スパムやDDoS攻撃などの自動化されたインタラクションからウェブサイトを保護するために設計された技術である。しかし、自動化された活動のすべてが有害なわけではありません。例えば、ボットはセキュリティテスト、検索インデックスの構築、オープンソースからのデータ収集のために必要な場合があります。アンチボットシステムにブロックされずにこのようなタスクを実行するには、専用のツールが必要です。

アンチボットシステムを回避するためには、様々なタイプの保護がどのように機能するかを理解することが不可欠である。

ボット対策システムはどのようにボットを検知するのか?

ボット対策システムは、各ウェブサイトの訪問者に関する大量の情報を収集します。この情報は分析され、人間のユーザーらしくないと思われるパラメータがあれば、疑わしい訪問者はブロックされるか、CAPTCHAを解いて実際に人間由来であることを証明するよう求められるかもしれません。

この情報は通常、ネットワーク、行動、ブラウザのフィンガープリントの3つのレベルで収集される。

  • ネットワークレベル:ボット対策システムはリクエストを分析し、IPアドレスのスパムスコアをチェックし、パケットヘッダーを検査する。IPアドレスが「ブラックリスト」に載っていたり、データセンターに所属していたり、Torネットワークに関連していたり、その他の点で疑わしい訪問者は、CAPTCHAの挑戦に直面するかもしれない。無料のVPNサービスを利用しているというだけで、グーグルがCAPTCHAを解かせるということは、おそらくあなたも経験したことがあるだろう。
  • ブラウザフィンガープリントレベル:ボット対策システムは、ウェブサイトへのアクセスに使用されたブラウザとデバイスに関する情報を収集し、対応するデバイスのフィンガープリントを作成します。このフィンガープリントには通常、ブラウザのタイプ、バージョン、言語設定、画面解像度、ウィンドウサイズ、ハードウェアノイズ、システムフォント、メディアデバイスなどが含まれます。
  • 行動レベル:一部の高度なシステムでは、ユーザーの行動が通常のウェブサイト訪問者の行動とどの程度一致しているかを調べます。

多くのアンチボットシステムがあり、それぞれの仕様は大きく異なり、時間とともに変化します。一般的なソリューションは以下の通りです:

  • アカマイ
  • クラウドフレア
  • データドーム
  • インカプシュラ
  • カサダ
  • ペリメーターX

どのアンチボットシステムがウェブサイトを保護しているかを理解することは、最適なバイパス戦略を選択する上で重要です。専門のフォーラムやDiscordチャンネルでは、特定のアンチボットシステムをバイパスすることに特化したセクション全体を見つけることができます。例えば、そのような情報はウェブスクレイピングクラブで見つけることができます。

ウェブサイトがどのアンチボットシステムを使用しているかを特定するには、Wappalyzerブラウザ拡張機能などのツールを使用することができます。

ボット対策システムを回避する方法とは?

システムが自動化を検知しないようにするには、各検知レベルで十分なレベルのマスキングを確保する必要がある。これにはいくつかの方法がある:

  • 独自のカスタムメイドのソリューションを使用し、インフラを独自に維持する;
  • Apify、Scrapingbee、Browserless、Surfskyなどの有料サービスを利用する;
  • 高品質なプロキシ、CAPTCHAソルバー、アンチディテクトブラウザを組み合わせることにより;
  • 標準的なブラウザをヘッドレスモードで使用し、検知防止パッチを適用する;
  • あるいは、さまざまな複雑さを持つ他の多くのオプションを使うことによっても。

ネットワークレベルのマスキング

ネットワークレベルでボットを保護するには、 高品質のプロキシを使用することが不可欠である。確かに、単純な作業であれば自分のIPアドレスだけで達成できるかもしれませんが、かなりの量のデータを収集するつもりであれば、この方法は実現不可能でしょう。定期的に何万ものリクエストを送信するためには、ブラックリストに載っていない良質な住宅用またはモバイル用プロキシが必要です。


IPQualityScoreを使ったIPアドレスのチェック

プロキシを選ぶ際には、以下のパラメータに注意してください:

  • そのIPアドレスがスパムデータベースに表示されているかどうか。これはPixelScanのようなツールやiplists.firehol.orgデータベースを参照することで確認できます。
  • DNSリークがあるかどうか。DNS Leak Testのような適切なチェッカーを使用してテストする場合、実際のサーバーはサーバーリストに表示されないはずです。
  • プロキシプロバイダの種類。ISPに属するプロキシはあまり怪しまれない。

プロキシの品質チェックについては、こちらをご覧ください。

ローテーションプロキシは、ウェブスクレイピングにも有効だ。ウェブサイトがリクエストのパターンを見つけるのが難しくなるため、情報を収集するボットがブロックされる可能性が低くなります。ローテーションプロキシは、多くのIPアドレスにリクエストを分散させるため、1つのIPからの大量のリクエストによるブロッキングのリスクが低くなります。

指紋レベルのマスキング

マルチアカウント(アンチディテクト)ブラウザはブラウザフィンガープリントを偽装するのに最適です。Octo Browserのような最高品質のものはブラウザカーネルレベルでフィンガープリントを偽装し、それぞれが別個のユーザーのように見える多数のブラウザプロファイルを作成することを可能にします。

Octo Browser プロファイルのデジタル指紋を設定する

アンチディテクトブラウザによるデータスクレイピングは、便利なブラウザ自動化ライブラリやフレームワークの助けを借りて行うことができる。ブラウザ自体を開くことなく、必要なフィンガープリント設定、プロキシ、クッキーを備えたプロファイルを必要な数だけ作成することができる。その後、自動化モードまたは手動でこれらを使用することができます。

マルチアカウントブラウザでの作業は、通常のブラウザをヘッドレスモードで使用するのと大差はありません。Octo Browserは、すべての一般的なプログラミング言語のAPIに接続するためのステップバイステップの手順が記載された詳細なドキュメントを提供しています。

Pythonを使用したOctoブラウザプロファイルの作成例

プロフェッショナルなアンチディテクト・ブラウザは、多数のブラウザ・プロファイルを便利に管理し、プロキシを接続し、デジタル指紋偽装の高度なシステムにより、標準的なスクレイピング手法では通常利用できないデータにアクセスすることができます。

実際のユーザーの行動をシミュレートする

ボット対策システムを回避するためには、遅延、カーソル移動のエミュレーション、リズミカルなキーの押し方、ランダムなポーズ、不規則な行動パターンなど、実際のユーザーの行動をシミュレートすることも必要です。認証、「続きを読む」ボタンのクリック、リンクをたどる、フォームを送信する、フィードをスクロールする、などのアクションを実行する必要があります。

ユーザーアクションは、Seleniumのようなブラウザ自動化のための一般的なオープンソースソリューションを使用してシミュレートすることができるが、MechanicalSoup、Nightmare JSなどの他のオプションも存在する。

アンチボットシステムにスクレイピングをより自然に見せるためには、リクエストに不規則な間隔の遅延を加えることが望ましい。

結論

ボット対策システムは、ユーザーのネットワーク、ブラウザ、行動情報を分析することで、自動化されたインタラクションからウェブサイトを保護する。これらのシステムを迂回するには、各レベルで適切なマスキングが必要です。

  • ネットワーク・レベルでは、高品質のプロキシ、特に回転するプロキシを使うことができる。
  • ブラウザのフィンガープリントを偽装するには、Octo Browserのようなマルチアカウント型アンチディテクトブラウザを使用することができます。
  • 実際のユーザーの行動をシミュレートするには、Seleniumのようなブラウザ自動化ツールを使用し、さらに不規則な遅延や行動パターンを組み込むことができる。

トップクラスのアンチディテクト・ツールでウェブスクレイピングのセットアップを強化したいとお考えですか? 

Octo Browserはあなたの理想的なソリューションです。最先端の指紋スプーフィングと楽なマルチアカウント管理を提供します。 

プロモーションコード PROXYSCRAPE を入力すると、新規ユーザーを対象にOcto Browserのベースサブスクリプションを4日間無料でご利用いただけます。この機会をお見逃しなく!

ハッピー・スクレイピング!