始めに
Cloudflareボット管理プラットフォームの構築は、刺激的な経験でした。分散型システム、Web開発、機械学習、セキュリティ&リサーチ(その他全ての分野)を混ぜ合わせながら、適応力が高く諦めの悪い敵と戦っています。
これはCloudflareで進行中のボット管理に関するストーリーであり、ボットの根底にある検出のメカニズムに関する一連のブログの紹介でもあります。まず、ボット管理の世界からいくつか定義を紹介するところから始めましょう。それから、製品および技術的要件を紹介し、当社が構築したプラットフォームの概要へと続けます。最後に、Cloudflareのプラットフォームの根底にある検出のメカニズムについて詳しく説明します。
では、ボット管理用語から始めます。
定義
ボット- コンピューターシステムやユーザーと対話することができるネットワーク上の自律型プログラムであり、人間のユーザーの行動を模倣したり代替して、人間のユーザーよりもはるかに高速で反復的なタスクが実行できる。
良性ボット- ビジネスに有用な、相互作用するボットのこと。たとえば、GooglebotやBingbotなどの検索エンジンボット、Facebook Botのようにソーシャルメディアプラットフォームで動作するボットなど。
悪性ボット - 悪意のある行動を取るようにデザインされていて、最終的にビジネスに損害を与えるボットのこと。たとえば、クレデンシャルスタッフィングボット、サードパーティのスクレイピングボット、スパムボット、スニーカーボット。
ボット管理 - 不要または悪意のあるインターネットボットトラフィックをブロックする一方で、有用なボットがWebプロパティにアクセスできるようにすること。このためにボットのアクティビティを検出し、ボットの望ましい挙動と望ましくない挙動を識別して望ましくないアクティビティの根源を特定する。
WAF -一連のセキュリティ規制に基づいて、ネットワークトラフィックを監視し、制御するセキュリティシステムのこと。
要件の収集
Cloudflareは非常に早い段階から悪意のあるボットによるWebサイトへのアクセスやAPIの悪用を阻止してきました。それと同時に、ボットによる炭素コストを相殺することで環境問題に取り組んできました。時代の流れとともに、ボット問題に取り組む様々なテクニックを統合し、顧客体験を効率化する専用のプラットフォームが必要だということが明らかになってきました。この新しいプラットフォームのデザインの際、次の重要要件を満たすようにしました。
完全であり単純 - お客様がボタンを一回クリックするだけで、ボット管理をオン/オフでき、webサイトやモバイルアプリケーション、APIの保護ができる。
信頼性 - お客様の望みは、webサイトの訪問者が本人であると信頼できるかどうかが分かり、その信頼レベルの確実性インジケーターが提供されること。
柔軟性- お客様はトラフィックボット管理緩和策のうちどのサブセットを適用するべきか、定義できること。たとえば、ログインURLのみか、料金ページか、サイト全体か。
正確性 - ボット管理検出のエラーは、ほぼ皆無であること。たとえば、人間の訪問者がボットとして誤って識別されることはほとんどまたはまったくいないこと。
回復可能 - 予測が誤った場合でも、人間の訪問者はwebサイトにアクセスできること、また良性ボットは許可されること。
さらに、新しいボット管理製品が目指したのは、次の利用ケースでも同様に機能させることでした。
技術的要件
上記の製品要件に加えて、私たちエンジニアには、新しいボット管理プラットフォームの必須アイテムリストがありました。最重要事項:
スケーラビリティ- プラットフォームは、1秒あたり1,000万を超えるリクエストでも、全てのリクエストのスコアを計算する能力があること。
低レイテンシー - 検出は非常に高速で実行し、リクエストの処理の遅れは100ミリ秒を超えることなく、追加のハードウェアも必要としないこと。
設定可能 - ドメインごとに、データセンターごとに、そしてサーバーごとのレベルで、どの検出機能をどのトラフィックに適用するか設定できること。
変更可能- プラットフォームは、追加の検出メカニズム、さまざまな緩和アクション、より豊富なAnalyticsやログを使い、簡単に拡張できること。
セキュリティ -お客様の機密情報を利用して別のお客様を保護するモデルを構築することはあってはならない。
説明可能 & デバッグ可能 - 予測は直感的に説明および調整ができること。
2018年、こうした要件を備えて、少数のエンジニアからなるチームは、次世代のCloudflareボット管理のデザインと構築を開始したのです。
スコアを満たす
「シンプルさは究極の洗練である」- レオナルド·ダ·ヴィンチ
Cloudflareは大規模に運営しています。この文章を書いている時点で、これは2600万以上のインターネットプロパティをカバーし、1秒あたり平均1100万件(ピーク時は1400万件以上)のリクエストを処理し、さまざまなプロトコルレベルから250件を超えるリクエスト属性の調査という規模です。重要な論点は、「途方もなく巨大な」データの力をどのように活用すれば、シンプルで確実、そして説明可能な方法で最新のサイバー脅威からすべてのお客様を保護することができるのか、ということです。
ボット管理は難しいものです。ボットの中には検出が困難で、長期間、複数のリクエスト属性の多様な側面を調べる必要があるものもありますし、時には単一のリクエスト属性から発覚することもあります。シグナルは多いければ多いほど役立ちますが、それらを一般化できるのでしょうか。
当社がトラフィックを分類する際、お客様は処理方法を決定しなければならないのか、またはお客様に代わって決定してもいいのか考えなければなりません。こうした不確実性の問題すべてに対処できて、上記の要件を実現するのに役立つ概念とはなんでしょうか。
セクションのタイトルからお分かりかもしれませんが、当社が考えたのは、信用スコアまたは単にスコア - すべてを支配する唯一のもの - という概念でした。これは、0から100までの数値で、リクエストが、人間が生成した(高スコア)か、自律型プログラムが生成した(低スコア)かの可能性を示すものです。
「一つの指輪がすべてを統べる」 idreamlikecrazy 出典 CC BY / 原版を非飽和
では、受信するHTTP/HTTPSリクエストすべてにこのスコアを割り当てられると仮定して、お客様や当社は何をするべきでしょうか。こうしたスコアをログに提供するだけで十分かもしれません。お客様が自分で分析し、最も頻繁に最低スコアがついているIPを見つけ、Cloudflareファイアウォールを使って、こうしたIPをブロックできるかもしれません。このようなプロセスは便利ですが、マニュアルで行うことが多く、エラーが発生しやすいものです。最も重要な点は、お客様のインターネットプロパティを保護するために、リアルタイムで実行することができません。
幸運にも、私たちがこのシステム開発に着手したころに、ファイアウォールチームの同僚たちがファイアウォールルールを発表していました。この新しい機能を使い、広く知られているWireshark®言語に触発された、柔軟で直感的な方法でお客様がリクエストを制御することが可能になりました。ファイアウォールルールはさまざまなリクエストフィールドをサポートしていたため、私たちは、スコアをこうしたフィールドの一つすることを考えたのです。そうすると、お客様は詳細なルールを書き込んで特定の攻撃タイプをブロックすることもできます。このように、cf.bot_management.scoreフィールドが誕生しました。
Cloudflareボット管理の中心にスコアを据えることで、一打で複数の製品要件と技術的要件に対応したわけです。シンプルかつ柔軟で、設定可能、さらにお客様はリクエストごとにボットを管理することが可能になります。擬陽性と偽陰性に対する許容度に応じて、お客様はファイアウォールルールにおいてスコアのしきい値を調整できます。さらに、スコアは直感的なため、当社は内部で検出機能を拡張することができ、お客様が設定を調整する必要はありません。
それでは、このスコアはどのように作成し、それはどの程度難しいのでしょうか。次のセクションで詳しくみていきましょう。
アーキテクチャの概要
ボット管理スコアの根底にあるのは何でしょうか。単純な答えは、一連のマイクロサービスです。このプラットフォームを構築するために、私たちはできるだけ多くの既存のパイプライン、データベース、コンポーネントを流用しようとしましたが、サービスの多くは一から構築する必要がありました。アーキテクチャ全体を見てみましょう(ボット管理関連サービスを含んだ簡略化した図)。
主要なボット管理サービス
手短に言うと、当社のシステムはエッジデータセンターから受信したデータを処理し、後述の技術を使ってボット検出のメカニズムに必要となるデータを生成し、保存します。
データベース & データ保存 - Kafka、ClickHouse、Postgres、Redis、Ceph。
プログラミング言語 - Go、Rust、Python、Java、Bash。
設定 & テーマ管理 - Salt、Quicksilver、Cap’n Proto。
コンテナ化 - Docker、Kubernetes、Helm、Mesos/Marathon
耐障害性、パフォーマンス、可観測性、セキュリティを考慮に入れて、各サービスを構築しています。
エッジボット管理モジュール
Cloudflareのエッジロケーションにあるすべての機器で、ボット検出のメカニズムすべてが、すべてのリクエストに対して、ボット管理モジュールの実行時のリクエスト処理段階でリアルタイムに適用されます。リクエストを受信すると、当社は必要なリクエスト属性を抽出、変換し、検出のメカニズムに入力します。ボット管理モジュールは次の出力を生成します。
ファイアウォールフィールド -ボット管理フィールド
- cf.bot_management.score - 整数値で、0~100の間で、リクエストが自動プログラム(低スコア)により生成されたのか、人間(高スコア)により生成されたのかの可能性を示す。
- cf.bot_management.verified_bot- 当該リクエストがCloudflareのホワイトリストに載っているボットによるかどうかを示すブール値。
- cf.bot_management.static_resource- リクエストが多くの静的リソースタイプのファイル拡張子と一致するかどうかを示すブール値。
Cookie - 最も顕著にはcf_bmを作成し、ボットに関連づけられた基準と一致する受信トラフィックを管理する手助けをします。
JSの課題 - 一部の検出とお客様に対しては、不可視のJavaScriptの課題を挿入して、ボット検出用の信号をより多く得ます。
検出ログ- 当社のデータパイプラインは、ClickHouseで管理します。適用された各検出、使用された機能とフラグに関する詳細を記録、一部はデータ分析や顧客ログに用い、また一部はデバッグや当社のモデル改善に役立てています。
ボット管理モジュールが必須フィールドを作成すると、ファイアウォールが実際のボット緩和を引き継ぎます。
ファイアウォールの統合
Cloudflareファイアウォールの直感的なダッシュボードを使えば、ユーザーは強力なルールを数回のクリックで容易に設定でき、Terraformの統合も可能です。ファイアウォールへのリクエストはすべてルールエンジンと照会して検査されます。疑わしいリクエストは、ユーザーのニーズに合わせてブロックされたり、認証または記録することができ、ボット管理モジュールによって作成されたスコアと設定されたしきい値に基づいて、正当なリクエストは、配信先へとルーティングされます。
ファイアウォールルールでは、次のボット緩和行動が提供されます。
ログ- 顧客に提供されたCloudflareログのリクエストと一致した記録。
バイパス- お客様は特定のリクエストに対してCloudflareのセキュリティ機能を動的に無効にすることができます。
許可- 一致したリクエストは、ほかのファイアウォールルールコンテンツによってトリガーされるチャレンジおよびブロックアクションの対象から除外されます。
チャレンジ(Captcha)- サイトにアクセスしている訪問者が自動化されたソースではなく人間であることを確認するのに有用です。
JSチャレンジ- ボットやスパムがリクエストしたリソースにアクセスできないようにします。ただし、ブラウザは自由にチャレンジを自動的に解決できます。
ブロック- 一致したリクエストはサイトへのアクセスが拒否されます。
当社のファイアウォール AnalyticsツールはClickHouseとGraphQL APIを基盤とし、お客様は直感的インターフェースを利用してセキュリティ脅威を特定し、調べることができます。Analyticsのほか、当社ではすべてのボット関連アクティビティについての詳細なログをLogpull APIおよび/またはLogPushのどちらかを使って提供しており、お客様が自社のログを自社のクラウドストレージに簡単に入れることが可能です。
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
request = new Request(request);
request.headers.set("Cf-Bot-Score", request.cf.bot_management.score)
return fetch(request);
}
Cloudflare Workersの統合
お客様がスコアに基づくリクエストの処理にさらに柔軟性をご希望の場合、例えば新規のHTMLページコンテンツを挿入したり既存のHTMLページコンテンツを変更する、またはボットに誤ったデータを提供する、特定のリクエストを妨害するなどの希望があれば、Cloudflare Workersはそれを実現します。たとえば、この小さなコードスニペットを使うと、配信元サーバーにスコアを返して、さらに高度なリアルタイム分析、または緩和ができます。
次に複数の検出メカニズムを用いて、単一のスコアがどのように生成されるかを見ていきましょう。
検出のメカニズム
現在のところ、Cloudflareボット管理プラットフォームは補完的な検出メカニズムを5つ用いています。このメカニズムはそれぞれ独自のスコアを生成し、当社はこれらを組み合わせてファイアウォールに向かう単一のスコアを生成します。検出メカニズムのほとんどが、すべてのリクエストに適用されますが、一部は顧客のニーズに合わせて顧客ごとに有効化されています。
全てのお客様のために全てのリクエストにスコアをつけると、次のような利点があります。
簡単なオンボーディング - ボット管理をアクティブモードにする前でも、ボットのアクテビティに関する履歴データの提供を含め、特定のお客様にどのような効果が出るのかを推察することができます。
フィードバックループ-すべてのリクエストについてスコアが利用できることは、その他のあらゆる機能と合わせて、当社の検出メカニズムの継続的改善にとって大きな価値があります。
スケーリングの保証 - すべてのリクエストと顧客にスコアをつける計算力を持つならば、Cloudflareのインターネットプロパティすべてが、潜在的なボット管理の顧客でとなり得ます。
グローバルボットの洞察 - Cloudflareは2600万以上のインターネットプロパティの前に位置しており、セキュリティと脅威インテリジェンスで起きている構造的な変化を経時的に把握し、対応することができます。
世界的に見ると、Cloudflareが確認できるインターネットトラフィックの3分の1以上が悪性のボットから発生しているのに対して、ボット管理の顧客では悪性ボットの確率が最大43%とさらに高いのです。
ここで、Cloudflareボット管理との統合の時系列で、具体的な検出メカニズムを詳しくみていきましょう。
機械学習
スコアに関する決定の大半は、当社の機械学習モデルを用いています。このモデルは、2018年に、スコアを生成して顧客に展開した最初の検出メカニズムでもあります。機械学習を成功裏に活用するには、量、多様性、質が高いデータを必要とします。そして、無料プランおよび有料プランでご利用くださるお客様のおかげで、Cloudflareはこの三つを備え、当社のすべてのお客様のためにモデルの学習と向上を継続的に行うことができています。
機械学習検出メカニズムの中核にあるのは、CatBoostです。これは、勾配ブースティング決定木のための高性能なオープンソースライブラリです。CatBoostは、ライブラリの卓越した機能に基づいて選択されました。
カテゴリ特性の完全サポート - カーディナリティの非常に高い特性であってもトレーニングが可能です。
優れた精度- 新しい勾配ブースティングスキームを使って過学習を減らすことができます。
推論の速度 - 当社の場合、どのモデルでも適用にかかる時間は50マイクロ秒未満であり、リクエスト処理の速度に影響を与えません。
CとRust API - エッジでの当社のビジネスロジックのほとんどはLua、具体的にはLuaJITで書かれており、モデルに適用できる互換性のあるFFIインターフェイスがあることは、非常に望ましいと言えます。
Cloudflareのエッジでは、複数のCatBoostモデルが、シャドーモードで、すべてのリクエストに、すべての機器で、実行されています。これらのモデルの一つはアクティブモードで実行されており、ファイアウォールに送られる最終スコアに影響を及ぼします。すべてのML検出結果と機能はClickHouseに記録されて、さらなる分析、モデル改良、分析や顧客向けのログに記載されます。当社は、カテゴリ特性も数値特性も両方当社のモデルに入力しています。これは、リクエスト属性や、リクエスト属性を使用して構築したリクエスト間特性から抽出したもので、_Gagarin_のリクエスト間特性プラットフォームにより計算し、提供されています。
当社は新しいMLモデルのリリースに非常に信頼性が高く、優れたパフォーマンスのQuicksilver構成データベースを用いており、わずか数秒で実行することができます。この同じメカニズムは、特定の顧客向けにアクティブモードで実行するべきMLモデルを設定するのに使えます。
当社の機械学習検出メカニズムをさらに説明するには、それに特化したブログを投稿するだけの価値があります。ブログでは、GPUを活用して何兆ものリクエストを使ってどのように当社のモデルをトレーニングし、検証するか、このモデル機能の配信および抽出がどのように動作するか、どのように内部と外部の両方でモデル予測を説明し、デバッグするのかをご紹介します。
ヒューリスティックエンジン
もちろん世界中の問題が、機械学習で解決するのが一番良いというわけではありません。MLモデルを微調整する方法はいろいろありますが、場合によっては基本的なヒューリスティックを下回ることもあります。機械学習で解決しようとしている問題が、目新しいものでないこともあります。ボット管理ソリューションを構築する際、時にリクエストの単一属性からボットであることが発覚することが明らかになりました。つまり、単純な方法でボットを特定できるシンプルなルールをいくつか作成することができると同時に、誤検出を最小限に抑えることができるということです。
ヒューリスティックエンジンは、2019年にCloudflareボット管理プラットフォームに統合された二番目の検出メカニズムで、すべてのリクエストに適用されます。当社では、複数のヒューリスティックタイプとリクエストの特定の属性に基づく何百もの具体的なルールを設定しており、その一部はなりすましが非常に困難です。リクエストがいずれかのヒューリスティックと一致する場合、可能な限り低いスコア、1を割り当てます。
エンジンは次のプロパティを備えています。
速度-MLモデルの推論がモデル1つあたり50マイクロ秒未満である場合、数百のヒューリスティックの適用は、なんと20ミリ秒を下回ることもあり得ます。
展開力 - ヒューリスティックエンジンのおかげで、Quicksilverを使ってほんの数秒で新しいヒューリスティックを追加することが可能となり、すべてのリクエストに適用されます。
広いカバレッジ - シンプルなヒューリスティック一式でグローバルトラフィックは最大15%、ボット管理の顧客のトラフィックは最大30%までボットとして分類できます。簡単な方法で、これだけ見つけられたら十分だと思いませんか。
最低限の誤検出 -追加するヒューリスティックについて、当社は強い確信を持っており、慎重でもあるため、この検出メカニズムがすべての検出メカニズムの中でも誤検出を最低限に抑えられています。
MLのラベル- MLモデルのトレーニングには、その確度の高さからヒューリスティックを使って分類したリクエストを用いているため、ヒューリスティックから学んだ行動を一般化し、検出精度を向上させることができます。
つまり、ヒューリスティックを採用し、機械学習による微調整を加えることで当社はさらなる高みへと達することができたのです。そしてヒューリスティックの持つボットに関する多くの直感は、Cloudflare ボット管理プラットフォームをさらに前進させ、より多くのお客様に採用いただけています。
行動分析
機械学習とヒューリスティックの検出がもたらす価値は大きいのですが、両方とも人間がラベルに入力する必要があるか、基本的に教える人間が正誤を区別する必要があります。教師ありのMLモデルは教え込んだものと似た新しい脅威ならば、十分に一般化できるのですが、当社はさらに踏み込むことにしました。教師を必要とせず、悪い挙動と通常の挙動を見分けることを学習できる、新しいアプローチがあったとしたらどうでしょうか。
2018年に最初に開発され、2019年にボット管理プラットフォームと統合された行動分析検出メカニズムに入りましょう。これは教師なしの機械学習アプローチで、次のプロパティを持ちます。
顧客の特定ニーズに応える- すべてのボット管理顧客に対して自動的に有効になります。通常の訪問者の行動を長期間計算し、分析します。
まったく新しいボットの検出 - これは既知のボットのラベルを使用しないので、特定のお客様のWebサイトにおける通常の挙動からボットと異常を検出することができます。
回避が困難 - 異常な挙動とは、ボットの特定目的から生じた直接的な結果であることが多いです。
行動分析モデルや、この素晴らしい検出メカニズムの基盤であり、前例のない攻撃からお客様の多くを保護するプラットフォームについて、詳しく説明するブログを投稿する予定ですので、お楽しみに。
検証済みボット
ここまでのところ、悪性のボットと人間の検出方法について話してきましたが、良性のボットについてはどうでしょうか。お客様のWebサイトで非常に役立っている良性ボットもあります。専用の検出メカニズムの需要や、前述の検出メカニズムで利用できるものはないでしょうか。良性のボットリクエスト(Googlebot, Bingbot, LinkedInbotなど)の大部分が、すでに他の検出メカニズムで低いスコアを生成していますが、当社でも有用なボットを偶発的にブロックする事態を避ける方法が必要だと考えていました。そこで、ファイアウォールフィールド_cf.bot_management.verified_bot_が2019年に登場し、お客様ご自身が良性のボットすべてを許可するか、部分的にWebサイトへのアクセスを制限するかを決められるようになりました。
検証済みボットフラグを計算する実際のプラットフォームは、それについて詳しくブログで紹介する価値があると思いますが、ここで簡単に次のプロパティを紹介します。
検証ツールベースのアプローチ -当社では検証メカニズムを複数サポートしており、それぞれが一連のIPをクラスター化することで良性ボットIDを確実に特定することができます。
逆引きDNS検証ツール - 逆引きDNSチェックを実行し、ボットのIPアドレスが、名乗っているホスト名と一致するかどうかを決定します。
ASNブロック検証ツール - rDNSチェックに似ていますが、ASNブロックで実行されます。
ダウンローダー検証ツール - ボットの所有者サイトでホストされているテキストファイルかHTMLページで、良性ボットのIPを収集します。
機械学習検証ツール - 教師なし学習アルゴリズムを使い、他の方法では検証することが不可能な良性ボットのIPをクラスター化します。
ボットディレクトリ- Cloudflareネットワークを通過するボットを保存、管理するUIを備えたデータベースです。
ボットディレクトリUIのサンプル
_検証_済みボット検出メカニズムが、上記の複数の検証方法を用いて、さまざまな企業やカテゴリーに属する、何百もの固有の良性ボットIDを識別します。
JS フィンガープリンティング
ボット管理検出の質に関して大切なことは、シグナルの質と量です。前述の検出はすべて、ネットワークを通じて送信され、異なるテクニックでサーバー側が分析したリクエスト属性を使います。当社の検出を改善するためにクライアントから抽出して、利用できるシグナルがほかにないでしょうか。
実際のところ、たくさんあります。なぜなら、どのブラウザにも実装に固有のクセがあるからです。Canvasなど、すべてのWebブラウザグラフィック出力はハードウェア(GPU)とソフトウェア(ドライバー、オペレーティングシステムのレンダリング)のように複数の層に依存しています。この極めて特有な出力によって、ブラウザやデバイスタイプの違いは、はっきりと正確に区別できます。さらに、これはスーパーCookieではないので、Webサイト訪問者のプライバシーを害することなく達成できます。個々のユーザーを追跡したり識別したりするのに使うことはできず、リクエストのユーザーエージェントが、ブラウザキャンバスAPIを介して収集した他の測定値と一致するかを確認するだけです。
この検出メカニズムは、CloudflareのエッジでWebページに挿入されるチャレンジとともにチャレンジ応答システムとして実装されます。提示されたグラフィック指示を用いてバックグラウドでチャレンジがレンダリングされ、その結果は、Cloudflareに返信され、検証およびスコアの生成などのさらなる処理に使用されます。ユーザーのプライバシーを害することなく、リプレイ攻撃への耐タンパー性を維持しつつ、信頼できる結果をもたらすために裏で多くのことが行われています。システムは現在プライベートベータ版で、その有効性が評価されており、すでに期待できる結果が出ています。この新しい検出メカニズムがみなさんに広く使っていただけるようになる日を楽しみしていてください。どのように構築したかに関するブログも近日掲載します。
以上が、これまでに構築した5つの検出メカニズムの概要です。では、まとめの時間です。
まとめ
Cloudflareは、自社のネットワークを通過する毎週何兆という数のリクエストからデータを収集する独自の能力を持っています。Cloudflareはこのデータを使って、機械学習、ヒューリスティック、行動分析、その他の検出メカニズムによりボットの可能性が高いアクティビティを識別できます。Cloudflareボット管理は、WAFやWorkersといたCloudflare製品とシームレスに統合できます。
多くのチームが一生懸命働いてくれたからこそ、実現できました。まず、このプラットフォームを生み出すために多大な努力を尽くしてくれたボットチームの全員に感謝の意を表したいと思います。他のCloudflareチーム、特にファイアウォール、データ、ソリューションエンジニアリング、パフォーマンス、SREからも、この信じられないほど素晴らしいプラットフォームのデザイン、構築、サポートについて、多大な貢献がありました。
オースティンチームサミット2019でボットを斧で仕留めてくれたボットチーム
最後に、近日中にボットシリーズのブログを掲載していきます。当社の検出メカニズムの内側を深く掘り下げて、詳細情報をご紹介しますので、Cloudflareボット管理の面白い話をぜひ楽しみにしていてください。