Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
fortress — スクレイパーやブラウザエージェントがブロックされるのを防ぐステルスChromiumエンジン。コードを1行変更するだけで利用可能。 | Kitploit
ツール/GitHubGitHub/tiliondev/fortress
IDS/IPS回避アンチボットフィンガープリントスプーフィング
GitHubtiliondev/fortress

fortress

スクレイパーやブラウザエージェントがブロックされるのを防ぐステルスChromiumエンジン。コードを1行変更するだけで利用可能。

リポジトリを見る
4363227日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
Fortress

すべてを統べる単一のブラウザエンジン

ステルス Chromium エンジン

Chromium pip npm Docker pulls
CreepJS Runtime.enable leak
Copy for agent llms.txt
MCP server npm tilion-mcp

Fortress はステルス Chromium エンジンです。コードを1行変更するだけで、スクレイパーやブラウザエージェントがブロックされるのを防ぎます。 ボット検出器はブラウザのフィンガープリントを読み取って自動化を検出します。Fortress は Chromium の C++ 内部でそのフィンガープリントを修正するため、ブラウザは通常の Chrome インストールとして現れます。スクレイパーは処理を完了し、エージェントは指定されたページに到達し、CreepJS、Sannysoft、BrowserScan、そして実際の Cloudflare Turnstile もすべて人間として読み取ります。既存の Playwright や Puppeteer を Fortress に CDP 経由で向けるだけで、コードの他の部分は変わりません。

Blink · V8 · BoringSSL ツリー内パッチ適用 · ANGLE / D3D11 バックエンドの WebGL · JA3/JA4 一貫性のある TLS · 毎月 の上流リベース · 再現可能でガントレット検証済み リリース

34

Fortress が実際の Cloudflare チャレンジをクリアし、sannysoft と BrowserScan を通過する様子

編集なしの実際のウィンドウでの Fortress バイナリのキャプチャ:実際の Cloudflare チャレンジをクリアし、bot.sannysoft.com がすべて緑色になり、BrowserScan が "Normal" と表示されます。tools/gauntlet.py で再現可能。


🆕 新機能 — 151.0.7908.0 · エンジンリフレッシュ

リリース済み。 起動ごとに一貫性のあるペルソナを強化。

  • ロケールごとのキーボード(QWERTY / QWERTZ / AZERTY) · ペルソナごとのメディアデバイス · 完全な 配信パリティ 一貫性パス。
  • プラットフォーム ↔ GPU ↔ タイムゾーン ↔ 言語 ↔ 音声 ↔ キーボードが 1つの一貫性のある実デバイス として動作 — 毎回の起動時に、1つのバイナリから。
  • ネイティブコードのパリティ(toString() は [native code] のまま)、レルム不変(メイン / ワーカー / iframe) — ブラウザにコンパイルされた一貫性、JavaScript でパッチされていない。```bash pip install -U tilion-fortress # or: docker run --rm -p 9222:9222 tilion/fortress:latest
root@kitploit:~
**[→ 完全なリリースノート](https://github.com/tiliondev/fortress/releases/tag/v151.0.7908.0)**


## 目次

| | |
|---|---|
| **[概要](#what-it-is)** · **[クイックスタート](#quick-start)** | 概要、インストール、最初のスクリプト、AIエージェントのセットアップ |
| **[Fortress MCP](#the-fortress-mcp--stealth-browsing-as-agent-tools)** | AIエージェント向けの29のステルスブラウザツール(ベータ版) |
| **[なぜエンジンにパッチを当てるのか、ページではないのか](#why-patch-the-engine-not-the-page)** | 自己暴露型JSのテーゼ+3つの検出レイヤー |
| **[Fortressの比較](#how-fortress-compares)** | puppeteer-stealth、Camoufox、CloakBrowser、クローズドベンダーとの比較 |
| **[証明:ライブ検出器の結果](#proof-live-detector-results)** | CreepJS、Sannysoft、BrowserScan、Cloudflare(スクリーンショット付き) |
| **[ペルソナの設定](#configure-the-persona)** | `--uxr-*`フィンガープリント面 |
| **[お使いのスタックとの連携](#works-with-your-stack)** | browser-use · Crawl4AI · Stagehand · LangChain |
| **[ビルドと検証](#build--verify)** | ソースからの再現、来歴の検証 |
| **[リファレンス](#reference)** | トラブルシューティング、FAQ、ロードマップ、リポジトリレイアウト |

---

## 概要

Fortressは、エンジン内部からブラウザフィンガープリントを偽装するChromiumフォークです。ボット検出器が読み取るサーフェス(canvas、WebGL、audio、fonts、navigator、および約30以上のその他)は、Chromiumの**C++**で修正されており、ページがキャッチできるJavaScriptパッチレイヤーはその上にはありません。

通常のブラウザバイナリとして提供され、CDPエンドポイントを公開します。Playwright、Puppeteer、または任意のCDPクライアントをそれに向けると、既存の自動化が変更なしで実行されます。

JavaScriptステルスパッチは、ページが見つけられる余分なレイヤーを残します:`.toString()`はオーバーライドのソースを表示し、iframeやワーカーから同じプリミティブを再取得すると、それを超えてしまいます。Fortressは代わりにエンジン内のサーフェスを修正するため、`navigator.vendor`は本当のC++ゲッターに解決され、`[native code]`を報告し、すべてのレルムから同じ値を読み取ります。ページが自身を検査すると、標準のChromiumが見えます。そのため、以前はフラグが立てられていた場所でも自動化が通過し、残っているブロックはプロキシと行動に起因するものであり、ブラウザには起因しません。[なぜエンジンにパッチを当てるのか、ページではないのか](#why-patch-the-engine-not-the-page)で検出メカニズムの全容を説明しています。```python
from tilion_fortress import Fortress
from playwright.sync_api import sync_playwright

with Fortress() as f:                                   # launches the stealth engine on a CDP endpoint
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(f.cdp_url)
        page = browser.new_page()
        page.goto("https://bot.sannysoft.com")
        page.screenshot(path="all-green.png")
root@kitploit:~
import { Fortress } from "tilion-fortress";
import { chromium } from "playwright";

const f = await Fortress.launch();                      // stealth engine on a CDP endpoint
const browser = await chromium.connectOverCDP(f.cdpUrl);
const page = await browser.newPage();
await page.goto("https://browserscan.net");
await browser.close();
await f.close();

12秒ツアー

Fortress in 12 seconds: passes CreepJS, Sannysoft, BrowserScan and rebrowser, scrapes real sites, and clears Akamai on aa.com, lowes.com, macys.com and kohls.com.

1ループ、すべて実際のキャプチャ: CreepJS / Sannysoft / BrowserScan / rebrowser を通過 → CDP経由で構造化データをスクレイピング → aa.com · lowes · macys · kohls で Akamai をクリア (同一の住宅用IP)。

完全ヘッドレスでの実際のスクレイピング

FortressエンジンをCDP経由で駆動した未編集のキャプチャ。ステルスプラグインもJSパッチもなし: フィンガープリントはバイナリで修正されています。これらは examples/scrape_demos.py で再現できます。

Fortress extracting books.toscrape.com into typed JSON records live over CDP

構造化抽出: 各アイテムが読み込まれるたびにレコードが型付きJSONに構築されます。

実際のAkamaiをクリア — 前/後

Before: a stock browser is blocked by Akamai on aa.com with Access Denied. After: Fortress loads the real page and Akamai's sensor accepts it.

同一の住宅用IP、同一サイト (aa.com · Akamai Bot Manager)。標準/ヘッドレスブラウザは Access Denied (Reference #) になります; Fortressは実際のページを読み込み、Akamaiは _abck センサークッキーを発行 — Bot Managerはそれを実際のブラウザとして受け入れます。変数は フィンガープリント であり、IPではありません。


クイックスタート```bash

Python / Node: prebuilt native binary auto-fetched (Linux x64 & Windows x64), SHA-256 verified

pip install tilion-fortress npm install tilion-fortress

Any OS via Docker: raw CDP on :9222 (~302 MB pull / 851 MB on disk, stripped single-layer)

docker run --rm -p 9222:9222 tilion/fortress:latest

Portable bundle (extract-and-run, like a Chromium snapshot)

tar xzf tilion-fortress-linux-x64.tar.gz # Linux ./tilion-fortress/tilion --headless=new --remote-debugging-port=9222 --user-data-dir=/tmp/p

Debian / Ubuntu

sudo apt install ./tilion-fortress_151.0.7908.0_amd64.deb && tilion https://example.com

root@kitploit:~
> [!TIP]
> SDK にはコンパイル済みビルドに加えて **`patches/`** が同梱されています。そのため、エンジンを自分でリビルドし、すべての表面修正をソースに対して検証できます。ダウンロードは、リリースの `SHA256SUMS` に対して自動的に SHA-256 検証されます。

### バージョン

Fortress は **2つの Chromium ベース** で提供されます。普及度と最新性のトレードオフを選択してください:

| チャンネル | Chromium | 使用するタイミング |
|---|---|---|
| **`stable`** *(デフォルト)* | **149** | 推奨 — 実際のユーザーの大多数が使用している Chrome バージョンと一致するため、最も自然に溶け込みます |
| **`latest`** | **151** | 最新のエンジン(stable よりわずかに新しいバージョンとして報告されます) |```python
Fortress().start()                     # Python: stable (149) by default
Fortress(channel="latest").start()     # opt into 151
root@kitploit:~
await Fortress.launch();               // Node: stable (149) by default
await Fortress.launch({ channel: "latest" });
root@kitploit:~
docker run --rm -p 9222:9222 tilion/fortress:149   # or :151
# or set FORTRESS_CHANNEL=latest for either SDK

ネイティブバイナリ: Linux x64 (両方のバージョン) + Windows x64 (151); Windows-149 と macOS は Docker イメージで実行します。

AIエージェントにドロップする

Fortressはエージェントが操作するブラウザです:raw CDP on :9222、ステルスプラグインの設定は不要です。導入方法は2つあります。

オプション1: チャットアシスタントでプリロードして開く ワンクリックで、AGENTS.md を読み込み、全体のセットアップを案内します:

Ask ChatGPT Ask Claude Ask Gemini

オプション2: エージェントにコピー(すべて、クリップボードへ) 下のボックスの右上にあるコピーアイコンをクリックします。AGENTS.md のセットアップコンテキスト全体(概要、インストール、接続、ペルソナ、ルール)がすべて凝縮されてクリップボードにコピーされます。それをCursor、Claude Code、Copilot、ChatGPT、または任意のエージェントに貼り付ければ、あとはそちらが処理します:```text You're setting up Fortress, an open-source STEALTH Chromium engine, for browser automation. It corrects the browser fingerprint (canvas, WebGL, audio, fonts, navigator, +30 more) in Chromium's C++ and exposes raw CDP on http://localhost:9222, a drop-in for Playwright/Puppeteer. Do NOT add puppeteer-stealth or any JS fingerprint patching (it self-reveals and undoes Fortress).

LAUNCH (pick one; all expose CDP on http://localhost:9222): Docker: docker run -d --rm -p 9222:9222 tilion/fortress:latest Python: pip install tilion-fortress then from tilion_fortress import Fortress; f=Fortress(); f.start() Node: npm install tilion-fortress then import {Fortress} from "tilion-fortress"; const f=await Fortress.launch()

CONNECT (keep my existing automation code): Playwright(py): browser = p.chromium.connect_over_cdp("http://localhost:9222") Playwright(js): const browser = await chromium.connectOverCDP("http://localhost:9222") Puppeteer(js): const browser = await puppeteer.connect({ browserURL: "http://localhost:9222" }) browser-use / Crawl4AI / Stagehand / LangChain: point their CDP endpoint at http://localhost:9222

PERSONA (optional; default is a coherent Windows identity). Override any surface with --uxr-* flags: --uxr-timezone=America/New_York --uxr-hw-concurrency=16 --uxr-languages=en-US,en

RULES:

  1. Drive over raw CDP (:9222); don't spawn chromedriver.
  2. Never pass --user-agent (use --uxr-ua-*); it desyncs UA vs UA-Client-Hints.
  3. No puppeteer-stealth / undetected-chromedriver / JS fingerprint patches.
  4. Blocked ~90% = my IP (datacenter), not the fingerprint. Use a residential/mobile proxy, then retry.

Now walk me through launching Fortress and wiring my automation to it. Full guide: https://github.com/tiliondev/fortress/blob/main/AGENTS.md

root@kitploit:~
## The Fortress MCP — エージェントツールとしてのステルスブラウジング &nbsp;<sub>ベータ</sub>

Raw CDP は、あなたが書くコードのためのものです。**Fortress MCP** は、**ツール** を呼び出すエージェントのためのものです: Claude、Cursor、または任意の MCP クライアントにステルスブラウザを提供する [Model Context Protocol](https://modelcontextprotocol.io) サーバーで、フェッチがブロックされた瞬間にツールを呼び出してページを取得します。**29 のツール、ローカルで無料** — `fetch_protected_page`、`extract_page`、`crawl_site`、`recon_site_apis`、`search_web`、`run_browser_task`、`save_profile`、`get_stealth_cdp_endpoint` など。

<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/795/8f328e2498b09d7433208c5b4a9002450643537f2ee6b0519ac10420ef581bf3.gif" alt="同じサイト、同じプロンプト: 通常のブラウザは PerimeterX によってブロックされるが、Fortress MCP を使用したエージェントはクリーン JSON を返す" width="760"/></p>

<sub><i>実際の、日付入りの実行結果: <b>stockx.com</b> (PerimeterX)。標準ブラウザは <b>HTTP 403 — “Access denied”</b> を受け取る一方、Fortress MCP を使用したエージェントはクリーンな JSON を返す — 同じサイト、同じプロンプト。フレームワークリポジトリから再現できます。</i></sub>

### 30秒でセットアップ

2つのランナー — 一つ選んでください。`npx` は PATH に Python が必要です;`pip` は直接インストールします:```bash
pip install "tilion[mcp]"      # command:  tilion-mcp
#   —or, zero-install—
npx -y tilion-mcp              # auto-runs the server via uv (no global install)

Claude Desktop — 設定 → 開発者 → 設定ファイルの編集 (claude_desktop_config.json):```json { "mcpServers": { "fortress": { "command": "tilion-mcp" } } }

root@kitploit:~
<sub>npxをお好みですか? <code>"command": "npx", "args": ["-y", "tilion-mcp"]</code>を使用してください。Claudeを再起動すると、<b>fortress</b>ツールが表示されます。</sub>

**Claude Code** (CLI) — 一行:```bash
claude mcp add fortress -- tilion-mcp          # or:  claude mcp add fortress -- npx -y tilion-mcp

Cursor (~/.cursor/mcp.json) · Cline / Windsurf (VS Code → MCP サーバー) — 同じブロック:```json { "mcpServers": { "fortress": { "command": "tilion-mcp" } } }

root@kitploit:~
そして、エージェントに「このStockXページから価格を取得して」と指示するだけで、自動的に`fetch_protected_page`を呼び出します。

### エージェントが取得できるもの

| | tools |
|---|---|
| **ブロックされたページの取得** | `fetch_protected_page` · `read_page` · `get_page_html` · `search_web` |
| **構造化データ** | `extract_page` (schema-aware) · `extract_document` (PDF/DOCX/XLSX) |
| **サイト全体** | `crawl_site` (auto-SPA) · `recon_site_apis` (プライベートJSON APIを見つける) |
| **ページ操作** | `page_elements` · `click_button` · `fill_field` · `press_key` · `wait_for` · `evaluate_js` |
| **マルチステップフロー** | `run_browser_task` (ログイン, ページネーション, 無限スクロール, チェックアウト, …) |
| **キャプチャ / 認証** | `screenshot_page` · `save_page` · `download_file` · `save_profile` / `load_profile` |
| **独自のものを使用** | `get_stealth_cdp_endpoint` → Playwright / Puppeteer / browser-use 用のCDP URL |

ツールには注釈が付けられています(読み取りは自動承認、書き込みはゲート)、起動時に**プリウォーム**(最初の呼び出しは約100ms)、並行セーフ、タイムアウトおよびSSRF対策済み。**住宅用エグレス**を備えたホスト型エンドポイントが近日公開予定です。

→ 全29ツールのテーブル、ベンチマーク、エージェントスキル: **[`mcp/`](https://github.com/tiliondev/fortress/blob/HEAD/mcp/README.md)**

---

## なぜページではなくエンジンにパッチを当てるのか

通常のアプローチでは、`navigator.webdriver`にパッチを当て、WebGLベンダーを偽装し、スクリプトから`navigator.plugins`をオーバーライドします。しかし、CreepJSなどの検出器は依然としてそれを検出します。その理由は、**構造的**なものであり、単に別のプロパティが露出していないからではありません。JavaScriptによる偽装は、ネイティブ関数があるべき場所に置かれた関数です。検出器は返された値を脇に置き、それを返すものがネイティブかどうかを問い詰めます。

| 兆候 | JS偽装を検出する理由 |
|---|---|
| `toString`の自己開示 | ネイティブメソッドは `function get vendor() { [native code] }` のように文字列化されますが、オーバーライドは自身のソースコードを文字列化するため、`.toString()` を1回実行するだけで検出されます。 |
| ディスクリプタと`hasOwnProperty` | `getOwnPropertyDescriptor` は再定義されたプロパティを公開し、`hasOwnProperty('toString')` は改ざんされた関数では `true` を返しますが、ネイティブ関数では `false` を返します。 |
| `failsTypeError` | ネイティブゲッターは間違った `this` に対して特定の `TypeError` をスローします。単純なシムは沈黙しますが、その沈黙が合図となります。 |

レルム再取得は、すべてのメインワールドパッチを無効にするものです。検出器は別のレルムからプリミティブなプリミティブを取得し、あなたの関数に適用します。```js
const iframe = document.createElement('iframe'); document.body.appendChild(iframe);
const realToString = iframe.contentWindow.Function.prototype.toString;
realToString.call(navigator.__lookupGetter__('vendor')); // returns your source code. Caught.

メインワールドのパッチは、そのiframeとは異なるレルムに存在します。同じトラップがWeb Workerから発火します。これは、メインスレッドのシムが「内部」ではなく「横」で実行するスレッドです。

Fortressにはそのようなレイヤーはありません。navigator.vendorのゲッターは、そのままC++のゲッターです。ネイティブコードであるため[native code]と報告し、すべてのレルムで同一です。Camoufoxはうまく表現しています: 「検出されるJavaScriptのハイジャックは存在しない」。 Fortressは同じアイデアを、Geckoの代わりにV8とBlinkに適用します。

ボット検出の3つのレイヤーとFortressの位置づけ

最新のアンチボット(Cloudflare、DataDome、Kasada、HUMAN、Akamai)は、構造的に異なる3つの表面を、3つの別々の場所で読み取ります。1つのツールですべてを修正することはほとんどありません:

FortressはレイヤーCエンジンであり、AとBも保持されるように駆動されるよう構築されています。バイナリだけではCDPチャネルが開いたままになります。その部分は制御レイヤーにあり、そうでないふりをすると捕まる原因になります。


Fortressの比較

Fortressは実際の先行技術に基づいています: fingerprint-chromium、ChromiumFish、CloakBrowserが先駆けであり、商用ベンダー(Multilogin、Kameleo、GoLogin、AdsPower、Browserbase、Surfsky)はクローズドソースの背後でChromiumを再コンパイルしています。その作業のほとんどは非公開のままです: 有料のフォークはバイナリを提供し、それを信頼するよう求めるだけで、ベンダーはパッチを社内に保持しています。

Fortressは逆の方向を目指します。なぜなら、ステルスエンジンは、それに依存する人々がその仕組みを理解できる場合にのみ有用であり続けるからです。 すべての表面修正は、patches/内に、1分で読める小さな単一目的の差分として存在し、エンジン全体は1つのスクリプトでソースから再構築されます。検出器が新しい手がかりを見つけた場合、修正を追跡し、パッチを適用し、送り返すことができます。そのフィードバックループが重要であり、エンジンが読み取り、拡張、再構築が可能なほどオープンである場合にのみ機能します。


証明: ライブ検出器の結果

任意の行を tools/gauntlet.py --bundle ./tilion-fortress で再現してください。ライブ検出器に対して検証済み。再実行日は docs/GAUNTLET_RESULTS.md に記載されています。

証明: 実際の未編集スクリーンショット
BrowserScanCreepJSCloudflare

ペルソナの設定

バイナリはブランド文字列を一切含まず、ランチャーは一貫性のあるデフォルトのWindowsペルソナを適用します。任意の表面を --uxr-* スイッチで上書きするか、TILION_NO_DEFAULTS=1 を設定してベア起動を行います。``` --uxr-platform / --uxr-ua-platform / --uxr-ua-os / --uxr-ua-arch / --uxr-ua-bitness --uxr-ua-platform-version / --uxr-ua-brand / --uxr-hw-concurrency / --uxr-device-memory --uxr-webgl-vendor / --uxr-webgl-renderer / --uxr-webgl-fullparams --uxr-canvas-seed / --uxr-audio-seed / --uxr-timezone / --uxr-languages --uxr-screen-width / --uxr-screen-height / --uxr-webrtc-policy=disable_non_proxied_udp

root@kitploit:~
| 環境変数 | 目的 |
|---|---|
| `TILION_NO_DEFAULTS=1` | デフォルトのペルソナをスキップ (ベア起動) |
| `TILION_TZ` / `TILION_LANG` | タイムゾーン / 言語のクイックオーバーライド |

> [!NOTE]
> **現在、ペルソナはコマンドライン上で動作します。** `--uxr-*` スイッチは `/proc/<pid>/cmdline` 経由で全プロセスから読み取り可能なため、起動ごとに1つのペルソナとなり、ホスト上の他のプロセスからも見えます。次に `MaskConfig` ランタイムが導入されます: これはIPC経由でペルソナを配信し、1プロセスあたりの制限を解除します ([今後の予定](#whats-next) を参照)。

---

## あなたのスタックと連携

Fortress は `:9222` で生のCDPを公開しているため、Playwright、Puppeteer、またはCDPを話すあらゆるものにシームレスに統合できます。

| フレームワーク | 接続方法 |
|---|---|
| [**browser-use**](https://github.com/browser-use/browser-use) (〜7万スター) | `cdp_url="http://localhost:9222"` |
| [**Crawl4AI**](https://github.com/unclecode/crawl4ai) (〜5.8万スター) | CDP エンドポイント |
| [**Stagehand**](https://github.com/browserbase/stagehand) (〜2.1万スター) | `connectOverCDP` |
| [**LangChain**](https://github.com/langchain-ai/langchain) Playwright ツールキット | Playwright CDP |
| **Playwright / Puppeteer** (Python & JS) | `connect_over_cdp` / `connect` |```python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp("http://localhost:9222")   # Fortress under the hood

ビルド & 検証

ソースから再現```bash

export CHROMIUM_VERSION=$(cat CHROMIUM_VERSION) build/build.sh # depot_tools, sync the tag, apply patches, gn gen, ninja build/rebase-monthly.sh 152.0.XXXX.0 # bump + 3-way apply + rebuild + gauntlet-gate

root@kitploit:~
出力先: `out/Fortress/chrome`。フォークは34個の小さな単一面のパッチ(`patches/`)で構成されているため、ほとんどのパッチは上流リリースにクリーンに再適用されます。その後、ガントレットがリグレッションの発生を検知するとリリースを差し止めます。

| プラットフォーム | ステータス |
|---|---|
| Linux x64 (ネイティブ) · **Windows x64 (ネイティブ)** · Docker経由の任意のOS | <img src="https://raw.githubusercontent.com/tiliondev/fortress/HEAD/docs/assets/icons/check.svg" width="15" alt="yes"> **提供中** |
| コード署名付きインストーラー · macOS `.app` · `linux/arm64` | 進行中 |

### 本当に私たちのものか確認する

Fortressは4つの公式チャネルから提供されています。それ以外のものは信頼できないものとして扱ってください。

| | 公式ソース |
|---|---|
| **ソース** | [github.com/tiliondev/fortress](https://github.com/tiliondev/fortress) |
| **Docker** | [`tilion/fortress`](https://hub.docker.com/r/tilion/fortress) |
| **Python** | [`tilion-fortress`](https://pypi.org/project/tilion-fortress/) |
| **Node** | [`tilion-fortress`](https://www.npmjs.com/package/tilion-fortress) |

**ダウンロードを検証する。** 各リリースには`SHA256SUMS`が含まれており、`pip`/`npm` SDKはインストール時にこれを自動的に実行します:```bash
BASE=https://github.com/tiliondev/fortress/releases/download/v151.0.7908.0
curl -LO $BASE/tilion-fortress-linux-x64.tar.gz
curl -Ls $BASE/SHA256SUMS | sha256sum -c --ignore-missing     # -> OK

Dockerイメージを検証する ダイジェストで(タグだけでなく):```bash docker pull tilion/fortress:151.0.7908.0 docker inspect --format '{{index .RepoDigests 0}}' tilion/fortress:151.0.7908.0

compare the printed sha256:... against the digest in the GitHub Release notes

root@kitploit:~
**何も信頼せず、再構築してください。** フォーク全体は `patches/` にある34の読み取り可能なパッチです;`build/build.sh` はChromiumソースからバイナリを再現するので、自分でビルドしたものと配布物の差分を確認できます。

---

## 参考情報

<details><summary><b>トラブルシューティング</b></summary>

<br/>

**Cloudflare、DataDome、Kasadaでまだブロックされる場合。** ほとんどの場合、これはあなたの**IP**の問題であり、フィンガープリントではありません。ページスクリプトが実行される前にデータセンターレンジがフラグされます。発信を住宅用プロキシまたはモバイルプロキシ経由でルーティングして再試行してください。解除されれば、フィンガープリントは問題ありませんでした。

**Linuxホストでフィンガープリントがおかしい場合。** デフォルトのペルソナはWindowsですが、TLSシェイプや一部のOS向けシグナルは、そのマシンの実OSに従います。ペルソナを発信元OSに合わせるか、関連する `--uxr-*` フラグを設定して、OS設定とトラフィックの発信元を一致させてください。

**macOSはDockerイメージをプルします。** 現在、ネイティブのLinux + Windowsバイナリを提供しています。macOSは依然として公式Dockerイメージ(`tilion/fortress`)を介してFortressを実行します。Docker Desktopをインストールするか、Linux/Windows x64でネイティブバイナリを実行してください。

**ペルソナが `/proc/<pid>/cmdline` に表示される場合。** `--uxr-*` フラグはホスト上の他のプロセスから読み取り可能で、起動ごとに1つのペルソナが設定されます。ランタイムの `MaskConfig` が実装されるまでは、プロセスごとに1つのペルソナを維持し、信頼できないコードとホストを共有しないでください。

**検出器が何かをフラグするが、テストセットは通過する場合。** 検知技術は常に進化しています。現在のChromiumリベースを使用していることを確認し、テストページとともにissueを開いてください。そのページが次のパッチになります。

</details>

<details><summary><b>FAQ</b></summary>

<br/>

**これは合法ですか?** Fortressは、公開データの正当な自動化、テスト、スクレイピングのためのブラウザエンジニアリングプロジェクトです。各サイトの利用規約とお住まいの地域の法律を尊重してください。

**本当に無料ですか?** はい。BSD-3ライセンスで、完全にオープンでセルフホスティング可能です。パッチシリーズも公開されているので、現在のエンジンをソースから自分でビルドできます。

**なぜpuppeteer-stealthやundetected-chromedriverを使わないのですか?** それらはページがブラウザを検査できるようになった*後*でJS/CDPレイヤーにパッチを当てるため、`toString`やレルム再取得によって自己露出します。Fortressは偽装をC++に移し、ページがネイティブコードを発見するようにします。(「なぜエンジンにパッチを当てるのか、ページではないのか」を参照)

**Camoufoxとの違いは?** C++インターセプションという同じアイデアです。CamoufoxはFirefoxをフォークしています(トラフィックの約3%、常に異常値として扱われます)が、FortressはChromiumとV8(主要エンジン)をフォークするため、Chromeユーザーエージェントが構造的に一貫します。

**永遠にすべてを通過し続けますか?** いいえ。検知技術は常に進化するため、日付付きで再現可能なテストセットと毎月のChromiumリベースを提供します。現在何が通過するかを正確に確認できます。

</details>

<details><summary><b>ロードマップ</b></summary>

<br/>

- [ ] ランタイムJSON設定をC++の `MaskConfig` に統合(1つのバイナリで多くの一貫したフィンガープリント、コマンドラインには何も表示されない)
- [ ] ファーストパーティMCPサーバーとPuppeteer / raw-CDP SDK(AIエージェント用のドロップイン)
- [ ] コード署名されたWindows `.exe` とmacOS `.app`
- [ ] `linux/arm64` Dockerイメージ
- [ ] `patches/` をBraveスタイルの `chromium_src/` オーバーライドに移行
- [ ] reCAPTCHA v3 / DataDome / Kasadaのベンチマーク行を公開(日付付き、再現可能)

</details>

<details><summary><b>リポジトリ構成</b></summary>```
patches/     34 per-surface C++ patches (+ series), the source of truth for the fork
build/       args.gn, build.sh, apply-patches.sh, rebase-monthly.sh, windows/, macos/
packaging/   tilion launcher, fonts.conf, Dockerfile, .deb + bundle builders
fonts/       33 metric-compatible Windows-named fonts (incl. color emoji)
sdk/         python + node (tilion-fortress) prebuilt-binary SDKs
tools/       gauntlet.py, the CreepJS / Sannysoft / BrowserScan CI gate
docs/        GAUNTLET_RESULTS, BUILD_NATIVE, BENCHMARK

コントリビューション

検出ベクトルや見逃したリークを見つけましたか?再現可能なテストページでIssueを開いてください。Fortressを確実に検出できるページが最も価値があります。それが次のパッチになります。2つのルールがあります。すべての機能主張にはそれを再現するコマンドを添付し、すべての制限は文書化してください。「未検出」という言葉はリポジトリから排除します。

ライセンス

FortressのパッチおよびツールはBSD-3-Clauseライセンス(Chromiumに準拠)です。Chromiumおよびバンドルされているフォントはそれぞれのライセンスを保持します。LICENSEおよびNOTICEを参照してください。パッチシリーズは公開されているため、エンジンを自分で監査し再構築できます。


次に予定されていること

[!IMPORTANT] v2: MaskConfigランタイムパーソナ。 プロセスグローバルなC++ MaskConfigシングルトンに供給されるIPC配信、シード駆動のパーソナグラフ。単一バイナリから数千のコヒーレンス不変フィンガープリント、BrowserContextごとのアイデンティティ分離、コマンドラインの痕跡ゼロ。残りはロードマップに記載されています。

最新の状態を保つ

検出技術は進化し続けるため、ステルスエンジンの価値は最後のリベース次第です。Fortressは毎月最新のChromiumを追跡し、全テストを再実行し、検出器が新たな兆候を見つけるたびにパッチをリリースします。そのため、実行中のものは実際のChromeインストールと一致し続けます。リリースをウォッチしてv2 MaskConfigの進捗を追跡するか、役立つと思われたらリポジトリにスターを付けてください。

スター履歴チャート

読み、再構築し、自分で実行できるステルス。

ツールをダウンロード
シングルサーフェス
C++ パッチ

0%

CreepJS
ヘッドレス / ステルス

[native code]

すべての
レルムで

BSD-3

オープンエンジン、
自分で再ビルド可能

ネイティブコードのパリティ

偽装されたすべてのゲッターは C++ ゲッターであり、toString は [native code] を返し、レルム不変(メインフレーム、iframe、Web Workers で同一)。

ドロップイン CDP

nodriver スタイルの raw CDP を :9222 で提供、Runtime.enable リークなし。Playwright、Puppeteer、または任意の CDP クライアントをそのまま使用し、ブラウザだけを入れ替え、コードはそのまま維持。

ガントレットをクリア

CreepJS で 0% ヘッドレス。Sannysoft、BrowserScan、実際の Cloudflare Turnstile をすべて通常の Chrome インストールとしてクリア。

監査可能なパッチ

patches/ に34個の小さな単一目的の差分。1分で読め、1つのスクリプトでエンジンを再ビルド可能。

構造的に一貫性

実際の V8、Blink、BoringSSL により、エンジン、ユーザーエージェント、JA3/JA4 TLS 形状が一致:Windows のペルソナが対応するスタック上で動作。

調整可能なペルソナ

1つのバイナリで、一貫性確認済みの Windows アイデンティティ。--uxr-* スイッチで任意のサーフェス(GPU、画面、タイムゾーン、ハードウェア、Client-Hints)を上書き可能。

Fortress auto-paginating across pages of quotes.toscrape.com
自動ページネーション: 3ページにわたる30の引用。
Fortress deep-crawling a product detail page
詳細なディープクロール: UPC · 価格 · 税 · 在庫 · レビュー。
Fortress clearing Akamai on lowes.com
lowes.com · ブロック → クリア
Fortress clearing Akamai on macys.com
macys.com · ブロック → クリア
Fortress clearing Akamai on kohls.com
kohls.com · ブロック → クリア

単一サイトの偶然ではありません — 主要なAkamai保護下の小売業者でも同じ前/後であり、毎回同一の住宅用IPから実行されています。

Copy for agent
LayerThe tellsWhere the fix livesFortress
A: ドライバー / バイナリアーティファクトcdc_ ChromeDriver vars, WebDriver protocol surface生のCDPを駆動し、chromedriverをスキップyes この方法で駆動するように構築
B: CDPの副作用Runtime.enable leaks via sourceURL + init-script footprints, however clean the binary is制御/CDPクライアントレイヤー:Runtime.enableを保留し、Runtime.addBinding + 分離ワールドを使用yes リークなし(確認済み)
C: フィンガープリント表面canvas, WebGL, audio, fonts, navigator(メインフレーム、iframe、ワーカー全体)エンジン (C++)(JSオーバーライドは自ら明らかになるため)yes これがFortressです
Stock Playwrightpuppeteer-extra-stealthundetected-chromedriverCamoufoxCloakBrowserFortress
スプーフィングレイヤーなしJSインジェクションCDP/設定パッチC++エンジンC++エンジンC++エンジン
toStringが[native code]を返すn/anon/ayesyesyes
レルム再取得(iframe/worker)に耐えるnononoyesyesyes
Runtime.enableのリークなしnonopartialyesyesyes
エンジン = Chrome / V8(大多数のトラフィック)yesyesyesno Firefoxyesyes
一貫性のあるChromium TLS形状yesyesyesno Firefoxyesyes
完全なオープンソースエンジンyesyesyesyespartial 最新メジャーは有料yes
公開、監査可能なパッチシリーズn/an/an/ayespartial バイナリのみyes
ソースからの再現可能なビルドn/an/an/ayesnoyes
自身の限界を明示n/an/an/ayesnoyes
SuiteStock ChromiumFortress
CreepJSヘッドレスとしてフラグ付0% ヘッドレス · 0% ステルス、ワーカー信号は一貫
bot.sannysoft.com赤い行0 失敗 · WebDriver Advanced 合格 · WebGL = NVIDIA RTX 3060 / ANGLE D3D11
browserscan.netボット検出「ボットは検出されませんでした、人間の可能性があります」
rebrowser bot-detectorRuntime.enable リークリークなし · webdriver=false · クリーンなinit-scripts(raw CDP)
Cloudflare Turnstileブロックバイパス: 人間のクリックでライブチャレンジをクリア(ヘッド付き、データセンターIP)