C
ChaoBro

CloakBrowser:30/30の検出回避テストを完全通過するステルスブラウザ、スター数18,500

Web自動化やスクレイピングに携わる者なら誰もが知る悩みがあります。ボット検出システムがますます賢くなっていることです。

Cloudflare Turnstile、reCAPTCHA v3、FingerprintJS、各種カスタムボット検出――これらはもはやUser-AgentやJavaScriptの実行をチェックするだけではありません。Canvasレンダリングの一貫性、WebGLフィンガープリントの正常性、オーディオコンテキストの異常、マウス移動軌跡が人間らしいか、キーボード入力間隔が人間のパターンに合致しているかまでを監視します。

多くの「検出回避ブラウザ」は設定ファイルでいくつかのパラメータを変更したり、JSを注入してフィンガープリントを偽装したりするだけです。ボット検出システムはこうした手法をすぐに見破ります。

CloakBrowserは全く異なるアプローチを採用しています。

改変しているのはC++ソースコード

CloakBrowserは設定を微調整したChromiumでも、JSを注入するスクリプトでもありません。C++ソースコードレベルで58か所のフィンガープリント特性を改変したChromiumバイナリです。

具体的には、以下を改変しています:

  • Canvasフィンガープリント――GPUごとのCanvasレンダリングには微小な差異がありますが、CloakBrowserはこれを実際のユーザーと一致させます
  • WebGLフィンガープリント――GPUレンダリング特性、拡張機能リスト、精度パラメータ
  • オーディオフィンガープリント――オーディオコンテキストの量子化ノイズ特性
  • フォントリスト――システムにインストールされたフォントの検出と列挙
  • GPU情報――レンダラー、ベンダー、GPUモデル
  • 画面情報――解像度、色深度、タッチサポート
  • WebRTC――ローカルIP漏洩の防止
  • ネットワークタイミング――Resource Timing、Navigation Timingのマイクロ秒単位の特徴
  • 自動化シグナル――navigator.webdriver、CDP入力動作

これは58個の設定項目ではなく、Chromiumソースコードへの58か所のパッチです。つまり、ボット検出システムが「これらの設定が改ざんされていないか」をチェックして識別することは不可能です。なぜなら、基盤となるバイナリファイル自体が異なるからです。

30/30のテストを完全通過

本プロジェクトは30のボット検出テストサイトで完全なテストを実施し、すべてを通過しました。対象は以下の通りです:

  • Cloudflare Turnstile――単に通過するだけでなく、人間のユーザーに近いスコアを獲得
  • reCAPTCHA v3――スコア0.9で「極めて信頼できる人間」レベルに分類
  • FingerprintJS――一貫性があり、実際のブラウザのように見えるフィンガープリントを返す
  • BrowserScan――すべてのチェック項目を通過

この30/30という数字は適当に書かれたものではありません。プロジェクトのREADMEには、Cloudflare Turnstileの連続3回通過テスト(ヘッド付きモード、macOS)を示すGIFアニメーションが掲載されています。

humanize=True で1行で行動検出を突破

多くのボット検出システムはすでに「ブラウザ特性のチェック」段階を過ぎ、「ユーザー行動のチェック」段階に入っています。マウス移動が直線かどうか(ボットの特徴)、タイピング間隔が均一かどうか(非人間パターン)、スクロールが完璧に一定速度かどうかを監視します。

CloakBrowserは humanize=True パラメータを提供しており、以下を自動的に追加します:

  • 人間らしいマウスカーブ――直線移動ではなく、加減速や微細な偏移を伴う
  • キーボード入力タイミング――人間のタイピングリズムの変化をシミュレート
  • スクロールパターン――一定速度ではなく、自然な一時停止を伴う

コード1行で、行動検出も突破できます。

3行のコードでPlaywright/Puppeteerを置き換え

開発者にとって、移行コストはほぼゼロです。

Python:

from cloakbrowser import launch
browser = launch()
# Playwrightと同じAPI

JavaScript:

const { launch } = require('cloakbrowser');
const browser = await launch();
// Puppeteerと同じAPI

同じAPI、同じコード――import文を置き換えるだけです。

インストールも簡単です:pip install cloakbrowser または npm install cloakbrowser。バイナリファイルは自動的にダウンロードされ、設定は不要です。

すぐに試してみたい場合は、インストールすら不要です:

docker run --rm cloakhq/cloakbrowser cloaktest

本プロジェクトに関する議論

明確にしておかなければなりません:CloakBrowserの用途はグレーゾーンです。

正当な用途:

  • 競合他社の価格監視
  • 公開されているWebデータの収集
  • 自動化テスト
  • SEO監査

不適切な用途:

  • スパム対策システムの回避
  • 偽アカウントの一括登録
  • robots.txtで明確に禁止されているコンテンツのスクレイピング
  • 利用規約に違反する大規模なデータ収集

プロジェクト自体はオープンソース(MITライセンス)であり、コードは透明です。しかし、ツールの倫理的性質は使用者に依存します。不適切な目的で使用した場合、責任はプロジェクトではなく使用者にあります。

スター数18,544が示すもの

本プロジェクトは2026年2月22日に作成され、3か月も経たないうちに18,544スターを獲得しました。これは2つの現実を反映しています:

第一に、検出回避の需要が急増していることです。 高度なボット検出を導入するサイトが増える中、Web自動化に携わる人々は信頼できるソリューションを必要としています。

第二に、既存の検出回避ソリューションは概して不十分であることです。 設定ファイルを変更するだけで解決できるなら、このプロジェクトが3か月で18,000スターに達することはありませんでした。これは市場の「検出回避ブラウザ」の多くが検出システムに見破られており、開発者が真に効果的なソリューションを求めていることを示しています。

CloakBrowserのソースコードレベルでの改変アプローチは、少なくとも現段階では有効です。しかし、ボット検出システムも進化を続けており、これは継続的な攻防戦です。今日通過できるパッチも、明日には新しい検出方法で見破られる可能性があります。

主な情報源:GitHub - CloakHQ/CloakBrowsercloakbrowser.dev