データスクレイピングとは?

攻撃者は意図された速度より速くデータにアクセスするためにWebスクレイピングツールを使用することがあります。 この結果データの不正使用につながる可能性があります。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • データスクレイピングを定義する
  • Webスクレイピングの目的を説明する
  • データスクレイピングを緩和する方法を理解する
  • データスクレイピングとデータクローリングを区別する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

Cloudflareでクレデンシャルスタッフィングやコンテンツスクレイピングなどのボット攻撃を防御する

データスクレイピングとは?

データスクレイピングは、最も一般的な形態では、コンピュータプログラムが別のプログラムにより生成された出力からデータを抽出するテクニックを指します。データスクレイピングは、一般にWebスクレイピング(Webサイトから価値ある情報を抽出するためにアプリケーションを使用する過程)で明白となります。

データスクレイピング

Webスクレイピングにはどのようなタイプがありますか?Webサイトのデータスクレイピングを行う理由とは?

スクレイパーボットは次のような多くの目的のために設計されます。

  1. コンテンツスクレイピング - コンテンツに依存する特定の製品またはサービスの独自の利点を再現するために、Webサイトのコンテンツが抽出されます。たとえば、レストランのレビューサイトを例に挙げてみましょう。競合他社はすべてのレビューをスクレイピングし、自分のWebサイトでコンテンツを再現してコンテンツがオリジナルであるかのように装って(そしてメリットを享受する)可能性があります。
  2. 価格スクレイピング - 価格データをスクレイピングすることにより、競合他社に関する情報を集約できます。結果として、価格スクレイピングを仕掛けた側に独特の利点をもたらし、競合他社を下回る価格を設定することでビジネスを獲得できます。
  3. 連絡先情報スクレイピング - 多くのWebサイトには、メールアドレスと電話番号が平文で含まれています。オンライン従業員ディレクトリなどのページをスクレイピングすることで、スクレイパーは一括メーリングリスト、ロボコール、または悪意のあるソーシャルエンジニアリングの試みで使用される連絡先の詳細を集約できます。これは、スパマーと詐欺師の両方が新しい標的を見つけるために使用する主要な方法の1つです。

データスクレイピングとデータクローリングの違いは?

クロールとは、Googlebotなどのロボットクローラーをネットワークに送信してインターネットコンテンツのインデックスを作成するときに、Googleなどの大規模な検索エンジンが実行するプロセスのことです。一方、スクレイピングは通常、特定のWebサイトからデータを抽出するために特別に構成されています。

スクレイパーボットとWebクローラーボットの行動における3つの違いを次に示します。

  誠実さ/透明性 高度な操作 robots.txtを尊重する
スクレイパーボット Webブラウザを装ってスクレイパーをブロックしようとします。 制限された情報にアクセスするために、フォームへの入力などの高度なアクションを実行できます。 通常、robots.txtを無視します。つまり、Webサイト所有者の希望に反して、明示的にコンテンツを引き寄せることができるということです。
クローラーボット 自らの目的を示し、クローラーが本来とは異なる機能を持つとWebサイトに誤認させようとはしません。 Webサイトの制限された部分へのアクセスは試行しません。 robots.txtを尊重します。つまり、どのデータを解析しWebサイトのどのエリアを回避すべきか、Webサイトの所有者の希望に合わせることができます。

Webサイトのスクレイピングの方法とは?

Webスクレイピングのプロセスはかなり単純ですが、実装は複雑になる場合があります。このプロセスを3つのステップにまとめることができます。

  1. 最初に、情報を取得するために使用されるコード(スクレイパーボット)は、特定のWebサイトにHTTP GETリクエストを送信します。
  2. Webサイトが応答すると、スクレイパーはHTMLドキュメントの特定のデータパターンを解析します。
  3. データが抽出されたら、スクレイパーボットの作成者が設計した特定のフォーマットにデータ変換されます。

通常、企業は独自のコンテンツが不正な目的でダウンロードされ再利用されることを望まないため、消費可能なAPIやその他容易にアクセス可能なリソースを通じてすべてのデータを公開しないように努めることがあります。それに対して、スクレイパーボットはアクセスを限定しようとする試みをくぐり抜けてWebサイトのデータを得ようとします。その結果、Webスクレイピングボットとさまざまなコンテンツ保護戦略との間でいたちごっこが始まり、互いに相手の裏をかこうとします。

Webスクレイピングを軽減する方法とは?

スマートなスクレイピング戦略にはスマートな軽減戦略が必要です。データスクレイピング作業への露出を制限する方法には、次のようなものがあります。

  1. レート制限リクエスト - Webサイト上の一連のページを人間の訪問者がクリックする場合、Webサイトの操作速度はほぼ予測可能です。たとえば、1秒当たり100のWebページを閲覧できる人間はいません。それに対して、コンピュータは人間よりもはるかに高速にリクエストを送信でき、初心者のデータスクレイパーは、スロットルなしのスクレイピング技術を使用して、Webサイト全体を非常に高速にスクレイピングしようとする場合があります。あるIPアドレスから一定の時間枠に送ることができるリクエストの最大数をレート制限することで、Webサイトは不正な要求から保護することができ、その時間枠内で発生するデータスクレイピングの量を制限することができます。
  2. HTMLマークアップを定期的に変更する - データスクレイピングボットは、Webサイトのコンテンツを効果的に横断し、データを解析するために、一貫したフォーマットに依存しています。このワークフローを中断する1つの方法は、HTMLマークアップの要素を定期的に変更することです。HTML要素を入れ子にすること(すなわちマークアップのその他局面を変えること)によって、シンプルなデータスクレイピングを妨害できます。たとえば、一部のWebサイトは、Webページが表示されるたびに何らかの形でコンテンツ保護の修正をランダムに適用します。また、長期的なデータスクレイピングを防止するために、数週間ごとにフロントエンドを更新する場合もあります。
  3. 大量リクエストに対するチャレンジの使用 - コンテンツスクレイパーの動作を遅らせるもう1つの有用な手段は、コンピュータが応答するのが難しいような問題をWebサイト訪問者に対して要求することです。人間は合理的に問題を解くことができますが、「ヘッドレスブラウザ」*には応答できない可能性が高く、ほとんどの問題に対して一貫性を持って応答できないと言えます。
  4. 画像のようなメディアオブジェクトの内部にコンテンツを埋め込むことは、それほど一般的ではない対策方法の1つです。コンテンツが文字列として存在しないため、画像ファイルからデータを光学式文字認識(OCR)で抽出する必要があり、コンテンツのコピーがはるかに複雑になります。

*ヘッドレスブラウザは、ChromeやFirefoxのようなWebブラウザの一種ですが、デフォルトでは視覚的なユーザーインターフェースを持たないため、通常のWebブラウザよりもはるかに高速に動作します。コマンドラインのレベルで作動することによって、ヘッドレスブラウザは、Webアプリケーション全体を表示しないようにすることができます。データスクレイパーは、ヘッドレスブラウザを使用してデータをより迅速に要求するボットを作成します。スクレイピングされる各ページを閲覧する人がいないためです。

Webスクレイピングはどのように完全に阻止できますか?

Webスクレイピングを完全に阻止することを保証する唯一の方法は、Webサイトにコンテンツを一切掲載しないことです。しかしながら、高度なボット管理ソリューションを使用することで、Webサイトがスクレイパーボットのアクセスを除去するよう支援できる可能性があります。

Cloudflareによるスクレイピング攻撃防御

Cloudflare Bot Managementは、機械学習と行動分析を使用し、悪意のあるスクレイピングアクティビティを特定し、独自のコンテンツを保護し、ボットがWebプロパティを悪用するのを防ぎます。同様に、Super Bot Fight Modeは、より小規模な組織が、スクレイパーやその他の悪意のあるボットの活動から防御できるように設計されており、ボットトラフィックをより詳細に可視化できます。