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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
leakish — ブラウザのプライバシー漏洩検出器 — 8つの検出モジュール、リスクスコアリング、アカウントごとの履歴をすべてブラウザ内で提供します。 | Kitploit
ツール/GitHubGitHub/qruiqai/leakish
OSINT (オープンソースインテリジェンス)ネットワークマッピング脆弱性分析情報収集ウェブセキュリティプライバシー学習と教育APIセキュリティDNS分析異常検知
GitHubqruiqai/leakish

leakish

ブラウザのプライバシー漏洩検出器 — 8つの検出モジュール、リスクスコアリング、アカウントごとの履歴をすべてブラウザ内で提供します。

7143ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見るウェブサイト

Leakish

ブラウザのプライバシー漏洩検出器 — 8つの検出モジュール、リスクスコアリング、 アカウントごとの履歴を、すべてブラウザ内で提供します。

Built with Verdent Next.js 14 React 18 TypeScript 5 Prisma

Built with Verdent — エージェント型コーディングアシスタント。 すべての検出モジュール、アナリティクスダッシュボード、APIキー認証フロー、 バイリンガルUI、Kubernetes対応のDockerイメージは、Verdentが駆動するペアプログラミングセッションで設計・実装されました。


これは何か

URLを開き、Run all をクリックすると、数秒以内にLeakishはあなたのブラウザがあなたとあなたのネットワークについて何を漏らしているかを教えてくれます — WebRTC、フィンガープリンティングAPI、DNS、およびサーバーサイドプローブを通じて。8つの独立したモジュールがそれぞれ、型付きの結果+リスクシグナル、集計スコア(0〜100)、およびレベル(safe / warning / critical)を生成します。

サインイン済みユーザーは、スキャンをMySQLに保存し、履歴を閲覧し、分布チャート、フィンガープリントハッシュの重複、IP / ASNタイムライン、外れ値スキャン、ペアワイズ比較を表示するアナリティクスダッシュボードを開くことができます。それ以外のすべて(検出器自体)はアカウントなしで動作します — 誰でも /app にアクセスしてスキャンを実行できます。

検出モジュール

各モジュールは単一の型付き DetectionModule<T> インターフェースを通じて登録され、分離して実行されます — 1つのモジュールが例外を投げても他のモジュールには影響しません。モジュールごとの有効状態は localStorage にバージョンキー付きで保持され、リフレッシュ後も維持され、Run all ボタンは有効なモジュールセットのみを実行します。

機能

  • ブラウザ内検出 — すべてのモジュールがユーザーのタブ内で実行されます。サーバーが関与するのは、(a) ユーザーがサインインしてスキャンを保存する場合、(b) network-probeモジュールが /api/detect/network にアクセスしてサーバーが観測した自身のIPを読み取る場合、(c) DNSモジュールが https://dns.google/resolve と通信する場合のみです。
  • バイリンガルUI — 英語 / 中国語の完全な互換。ロケールは leakish.locale クッキーに保持され、<html lang>、ページメタデータ、すべての画面、すべてのAPIエラーレスポンス、マジックリンクのサインインメールを制御します。
  • 認証 — Google OAuth + マジックリンクメール(Mailgun)を使用したNextAuth。MySQL上のPrismaアダプター。開発環境ではメールはオプション — Mailgunが設定されていない場合、リンクはサーバーログに出力されます。
  • プログラムによるアクセス — ユーザーは Integrations ページで det_… APIキーを作成できます(SHA-256で保存され、平文は一度だけ表示されます)。すべての /api/detect/* エンドポイントはセッションクッキーまたはBearerキーのいずれかを受け付けるため、同じスキャンをCLI / CIジョブから保存できます。
  • アナリティクスダッシュボード /scans/analytics — タイムゾーン / プラットフォーム / 言語 / 画面 / WebGL / ASN / 国 / フォント数にわたる分布チャート、種類別リスクグレード付きのフィンガープリントハッシュ重複、IP / ASNタイムライン、多軸外れ値検出、0〜100の類似度スコアによるペアワイズ比較。
  • シグナル単位のトレーサビリティを備えたリスクモデル — lib/risk/assess.ts は安定したID(例: webrtc.public-ip-leak)を持つ型付き RiskSignal、モジュールごとのサマリー、および単一の総合スコアを生成します。 インジェクションによりロケール対応。

クイックスタート

前提条件: Node 22+(ローカル開発には20+でも動作)、Yarn 1.x、稼働中のMySQLインスタンス、および(オプションで)Google OAuthクライアント。

root@kitploit:~
yarn install
cp env.example .env.local      # fill in DATABASE_URL, NEXTAUTH_SECRET, IP_HASH_SALT at minimum
yarn prisma:generate
yarn db:push                   # provision tables on a fresh DB
yarn dev                       # http://localhost:3000

サインインを機能させるための最小限のenv:

  • DATABASE_URL — 例: mysql://root:[email protected]:3306/detect
  • NEXTAUTH_SECRET — openssl rand -base64 32
  • NEXTAUTH_URL — 開発環境では http://localhost:3000
  • IP_HASH_SALT — openssl rand -base64 32

オプション:

  • GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET — Googleサインイン用
  • MAILGUN_API_KEY / MAILGUN_DOMAIN / EMAIL_FROM — 実際のマジックリンク配信用(これらがない場合、リンクは開発サーバーのコンソールに出力されます)
  • IPINFO_TOKEN — ネットワークプローブをASN / VPN / プロキシデータで拡充するため

完全な注釈付きリストは env.example を参照してください。

ルート

プロジェクト構成

root@kitploit:~
app/
├── (marketing)/         # / — Landing (server-resolved auth state + client UI)
├── app/                 # /app — the detector page
├── login/               # /login
├── scans/               # /scans, /scans/[id], /scans/analytics
├── integrations/        # /integrations — API key management
├── api/
│   ├── auth/            # NextAuth route + apiKey-login + tests
│   ├── detect/
│   │   ├── analytics/   # aggregate + pairwise-diff
│   │   ├── network/     # server-side egress probe
│   │   ├── scans/       # save / list / get / delete
│   │   └── uniqueness/  # how many users share this fingerprint hash
│   ├── integration/keys # create / revoke / list API keys
│   └── health/          # liveness probe for k8s
├── opengraph-image.tsx  # dynamic OG (per-locale)
├── apple-icon.tsx       # dynamic apple-touch icon
├── icon.svg             # shield gradient
└── layout.tsx           # metadata + theme-init script + LocaleProvider

components/
├── modular-detector.tsx          # top-level shell (header + module list + result/overview)
├── detector/                     # module-list, result-panel, category filter, state hook
├── result-details/               # one detail view per module (typed switch)
├── overview/                     # overview panel + diagnostics export
├── auth/                         # AuthGateProvider, login dialog, login form
├── providers/                    # SessionProvider wrapper
└── ui/                           # shadcn-style primitives + theme/locale toggles

lib/
├── detection-modules/            # 8 module impls + ModuleManager + IP utils + tests
├── risk/                         # assess.ts — RiskSignal/score aggregation
├── i18n/                         # en.ts / zh.ts + Messages type + locale client/server
├── api/                          # withDetectAuth wrapper, scan-payload Zod schema
├── client/                       # browser-side scan-api (extractFingerprintInputs, saveScan, lookupUniqueness)
├── server/                       # network-probe, IP-hash salt, fingerprint hashing, rate-limit, send-email, analytics
├── persistence/                  # SSR-safe localStorage wrappers
├── env.ts                        # runtime env validation
├── logger.ts                     # dev-only diagnostic logger
└── prisma.ts                     # singleton client targeted at .prisma/detect-client

prisma/schema.prisma              # User / Account / Session / DetectScan / ApiKey / DetectFingerprintHash

スキャンの処理フロー

  1. ユーザーが /app で Run all をクリックします。検出器は ModuleManager.runAllEnabledModules を使用して有効なモジュールを反復処理します — 各モジュールの失敗は捕捉され分離されるため、他の結果は引き続き表示されます。
  2. 各モジュールは型付きの DetectionResult<T>(success | failure タグとモジュール固有の data を含む)を返します。結果パネルは、型安全な switch を介してモジュールごとの詳細コンポーネントをレンダリングします。
  3. lib/risk/assess.ts は各結果を走査し、安定したIDを持つ RiskSignal を生成し、OverallAssessment(スコア + レベル + 件数)を生成します。
  4. Save this scan をクリックすると、クライアントは構造化ペイロード + フィンガープリントハッシュ(canvas2d / webgl / audio / fontset / UA)を抽出し、/api/detect/scans に POST します。サーバーはZodで検証し、独自のネットワークプローブを実行してサーバーが観測したIP / ASN / VPNフラグを記録し、DetectScan 行と DetectFingerprintHash 行を書き込みます。

技術スタック

テスト

ユニットテストは対象コードと同じ場所の __tests__/ ディレクトリに配置されています:

root@kitploit:~
yarn test                    # full suite
yarn test path/to/file       # single file
yarn test -t "name pattern"  # by test-name regex

主な内容:

  • lib/detection-modules/__tests__/ — IP分類 + mDNS抽出、モジュールマネージャーの登録と失敗の分離、WebRTCモジュール用のモック RTCPeerConnection、ブラウザフィンガープリントモジュールのjsdom形状テスト、CDP/自動化シグナル生成。
  • lib/server/__tests__/analytics.test.ts — 分布のバケット化、重複のグループ化、外れ値スコアリング、ペアワイズ類似度の計算。
  • app/api/detect/scans/__tests__ — POST保存(検証、レート制限、冪等性、整理)+ GETリスト + DELETE単一。
  • app/api/integration/keys/__tests__ — モードゲーティング付きの作成 / 失効 / 一覧(APIキーセッションは他のAPIキーを作成できません)。
  • app/api/auth/__tests__ — apiKey-loginルート(CSRF、形式チェック、失効/期限切れ処理、最終使用時刻の更新)。

Lint + 型チェック:

root@kitploit:~
yarn lint
npx tsc --noEmit

デプロイ

同梱の Dockerfile は node:22-alpine 上にNext.js standaloneイメージを生成します。本番環境のenvはKubernetes Secretを介して注入されます — プレースホルダー値はビルド時に焼き込まれるため、実行時に SKIP_ENV_VALIDATION は不要です。prisma db push ジョブがロールアウト前にスキーマを実行します。イメージビルド → マイグレーション → ロールアウトの完全なパイプラインは .github/workflows/deploy-tke.yml を参照してください。

課金とサブスクリプション

このオープンソースビルドにはペイウォールはありません。保存は lib/server/rate-limit.ts のプロセス内ユーザーごとのレートリミッター(1時間あたり10保存)だけで管理され、履歴の保持期間に制限はありません。

謝辞

  • Verdent — エージェント型コーディングアシスタント。このプロジェクトをエンドツーエンドで構築するために使用しました。
  • NextAuth — 認証基盤。
  • Prisma — スキーマ、マイグレーション、生成クライアント。
  • shadcn/ui + Radix UI — このUIを構築するアクセシブルなプリミティブ。
  • Tailwind CSS — スタイリングシステム。
  • ipinfo.io — ネットワークプローブが使用する無料のASN / VPNデータ。
  • Mailgun — 本番環境でのマジックリンクメール配信。

ライセンス

LICENSE を参照してください。

ツールをダウンロード
IDModule検査内容
network-probeネットワーク出口プローブサーバーが観測したパブリックIP、ASN、国/地域/都市、VPN/プロキシ/Tor/ホスティングフラグ、TLS/HTTP
webrtcWebRTCSTUN経由のパブリックIPv4 + IPv6、RFC1918リーク、mDNSで難読化された .local 候補
browser-fingerprintブラウザフィンガープリントUA、画面、タイムゾーン、プラグイン、CPUコア数、デバイスメモリ、言語リスト、DNT、Cookie
canvas-fingerprintCanvas / WebGL2D + WebGLレンダラー/ベンダー文字列、テキストレンダリングの癖、対応画像フォーマット
audio-fingerprintオーディオAudioContext のサンプルレート、チャンネル数、レイテンシ、オシレーター出力ハッシュ
font-detectionフォントCanvasの幅差分検出による40以上の名前付きフォントプローブ
dnsDNSDoH到達可能性、DNSSECシグナル、リゾルバーの地理位置情報、DNSリークのヒューリスティック
cdp-detection自動化 / ヘッドレスnavigator.webdriver、CDPタイミング、Chromium専用APIサーフェス、ポートプローブ — 信頼度0〜1
Messages
  • 冪等な保存 + ユーザーごとの整理 — POST /api/detect/scans は Idempotency-Key ヘッダーを受け付け、各ユーザーのスキャンを200件に制限し、保存を1時間あたり10件にレート制限します。
  • 本番グレードのDockerイメージ — node:22-alpine 上のマルチステージビルド、Next.js standalone出力、.github/workflows/ 以下のワークフローを通じてKubernetesにデプロイ。
  • Path目的
    /マーケティングランディング(オーロラヒーロー、機能カード、FAQ、CTA)
    /app検出器 — モジュールリスト + 結果パネル + 概要
    /loginスタンドアロンのサインインページ(Google / メール / APIキー)
    /scansサインイン済みユーザーの保存済みスキャン履歴
    /scans/[id]単一の保存済みスキャン詳細
    /scans/analytics分布 / 重複 / タイムライン / 外れ値 / 比較
    /integrationsdet_… APIキーの管理(作成 / 失効 / 使い方)
  • その後、スキャンは /scans/[id] で表示可能になり、アナリティクスの集計に貢献し、ユニーク性ルックアップでカウントされます。
  • レイヤー構成要素
    FrameworkNext.js 14(App Router、すべて force-dynamic)、React 18
    LanguageTypeScript 5、厳格モード
    UITailwind CSS 3、Radix上のshadcn/uiプリミティブ、Lucideアイコン、Framer Motion
    AuthNextAuth 4(Google OAuth + マジックリンクメール)+ Prismaアダプター
    DataPrisma 6 → MySQL(.prisma/detect-client へのカスタムクライアント出力)
    ValidationZod
    TestsJest 29 + ts-jest + jsdom
    Build / deployマルチステージDockerfile、Next.js standalone、Kubernetesマニフェスト