1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

reCAPTCHAスコア0.9を達成!ChromiumをC++レベルで改造した「CloakBrowser」がすごい

1
Posted at

🚀 はじめに

ブラウザ自動化スクリプトを書いたことがある人なら、誰もが経験する悪夢があります。

Cloudflareの「私はロボットではありません」チェック。Google reCAPTCHAの容赦ない低スコア。せっかく書いたスクリプトが途中で止まり、データ取得に失敗する。playwright-stealth を入れて、JSオーバーライドを追加して、Chromeのアップデートで壊れないことを祈る —— そんな泥沼の繰り返し。

最近GitHubで 22,000スター を獲得した CloakBrowser は、この問題に対するアプローチが根本的に違います。

🎯 CloakBrowserとは?

ChromiumのC++ソースコードレベルで58箇所の修正 を加え、バイナリとしてコンパイルした「検出されないブラウザ」です。

通常、PlaywrightやPuppeteerで操作されるブラウザには navigator.webdriver = true というフラグが立ちます。CloakBrowserはこれを C++レベルで false にハードコード。他にも57箇所の修正が施されています。

📊 ベンチマーク結果

実際のテストデータが衝撃的です:

テスト 通常Playwright CloakBrowser
reCAPTCHA v3 スコア 0.1(ボット判定) 0.9(人間レベル)
Cloudflare Turnstile(非対話型) 失敗 通過
Cloudflare Turnstile(管理型) 失敗 通過
FingerprintJS 検出 通過
BrowserScan 検出 正常(4/4)
ShieldSquare ブロック 通過

reCAPTCHA v3スコア 0.9 は人間レベルです。サーバーサイドで検証された本物のスコア。同じコードで、ブラウザバイナリだけ差し替えるだけで、ここまで結果が変わるのは驚きです。

🔍 検出されるシグナルの徹底比較

シグナル 通常Playwright CloakBrowser
navigator.webdriver true false
navigator.plugins.length 0 5
window.chrome undefined object
UA文字列 HeadlessChrome Chrome/146.0.0.0
CDP検出 検出 未検出
TLS指紋 不一致 Chromeと同一
Canvas指紋 異常 正常
WebGLレンダラー SwiftShader 実際のGPU
AudioContext オシレーター不一致 正常

58箇所の修正は、Canvas指紋、GPUパラメータ、オーディオコンテキスト、フォント、画面パラメータ、ネットワークタイミングなど、ほぼすべての検出ポイントをカバーしています。

🧠 behavioral(行動)エミュレーション:humanize スイッチ

指紋対策だけでは不十分です。行動特性もボット検出の重要な判断材料です。

機械は直線的にマウスを動かし、一瞬で文字を入力します。人間のカーソル移動にはカーブと微細な揺れがあり、タイピングには文字ごとの思考時間があります。

CloakBrowserの humanize=True は、これらを完全にエミュレートします:

  • 🖱️ マウス操作: ベジェ曲線パス + 自然なジッター + ターゲット手前での減速
  • ⌨️ キーボード入力: 1文字ずつ、人間らしい「考え中」の間を挿入
  • 📜 スクロール: 加速 → 定速 → 減速のリズム

すべてのマウス・キーボード・スクロールAPIが、humanize 有効時に完全に置き換えられます。

🔧 導入手順

CloakBrowserは Playwrightのドロップイン代替 として設計されています:

# Python
pip install cloakbrowser

# Node.js
npm install cloakbrowser

初回実行時に ~200MB のChromiumバイナリを自動ダウンロードし、ローカルにキャッシュ。2回目以降は即時起動します。

使い方はPlaywrightと全く同じ:

from cloakbrowser import sync_api

browser = sync_api.launch(humanize=True)
page = browser.new_page()
page.goto("https://www.google.com/recaptcha/api2/demo")
# reCAPTCHA score: 0.9 — 人間レベル

たった3行です。

🤖 AIエージェントとの統合

CloakBrowserは主要なAIエージェントフレームワークと互換性があります:

フレームワーク Stars 対応
browser-use 70K+
Crawl4AI 58K+
LangChain 100K+
Crawlee 8.6K+
Scrapling 21K+
Stagehand 21K+
Selenium

AIエージェントが本番環境で稼働するにつれ、ブラウザこそがエージェントの主要な接点になっています。フライト予約、自動テスト、モデル訓練用データ収集 —— すべてブラウザを経由します。

しかし、大半のWebサイトはAI駆動のブラウザをボットとしてブロックします。CloakBrowserは、この「最後のピース」を埋める存在です。

🏢 Browser Profile Manager

CloakBrowserにはブラウザプロファイルマネージャーも内蔵されています。Multilogin、GoLogin、AdsPowerといった商用アンチ検出ブラウザのセルフホスト代替として機能し、プロファイルごとに独立した指紋シード、Cookie、ストレージを保持します。

⚠️ 注意点

  • バイナリライセンス: Python/JSラッパーはMITですが、バイナリ自体は「無料利用可・再配布不可」
  • 初回DL: ~200MB、キャッシュ後は不要
  • 完全ではない: DataDome、Akamai、PerimeterXなどの高度なサービスは常に進化中。現在のラウンドはCloakBrowserが勝っていますが、これは軍拡競争です
  • Windows SmartScreen: 初回起動時に警告が出る可能性あり(バイナリは署名済み)

🔮 まとめ

CloakBrowserは、ブラウザ自動化の考え方を根本から変えました。

「既存ブラウザの上にJSハックを重ねる」のではなく、「最初から検出されないブラウザをソースレベルで作り込む」アプローチ。

22Kスターという数字は、コミュニティがこの方向性を支持している証拠です。AIエージェントが現実のWebと対話するための不可欠なインフラになりつつあります。


GitHub: github.com/CloakHQ/CloakBrowser
ドキュメント: cloakbrowser.com
Docker: Docker Hubでプレビルドイメージ公開中

対象読者: Webスクレイピング・ブラウザ自動化に関わるエンジニア、AIエージェント開発者、Playwright/Puppeteerユーザー

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?