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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/blessedrebus/krawl
コンテナセキュリティ情報収集ウェブセキュリティネットワークセキュリティクラウドセキュリティ脅威インテリジェンスインシデントレスポンスアンチボットAIセキュリティ
GitHubblessedrebus/krawl

Krawl

Krawlは、カスタマイズ可能で軽量なクラウドネイティブのWebデセプションサーバー兼アンチクローラーです。現実的でランダムに生成されたデコイデータとAI生成のHTMLテンプレートを使用して、低難易度の脆弱性を持つ偽のWebアプリケーションを作成します。

5584583日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Krawl

攻撃者やWebクローラーからの悪意のある活動を、偽装Webページ、偽の認証情報、カナリアトークンを通じて検出・追跡するために設計された、現代的でカスタマイズ可能なWebハニーポットサーバーです。

License Release
GitHub Container Registry Kubernetes Helm Chart

目次

  • デモ
  • Krawlとは?
  • Krawlダッシュボード
  • デプロイメントモード
  • Krawlバンリスト
  • クイックスタート
    • Docker Run
    • Docker Compose
    • Kubernetes
    • Uvicorn (Python)
  • 設定
    • config.yaml
    • 環境変数
  • 悪意のあるIPをバンする
  • IPレピュテーション
  • リバースプロキシまたはCDNの背後で実行する
  • メトリクスとモニタリング
  • 追加ドキュメント
  • AIによる欺瞞
  • コントリビューション

デモ

ヒント: 追加の楽しみとしてrobots.txtのパスをクロールしてみてください

Krawl URL: http://demo.krawlme.com

ダッシュボードを表示: http://demo.krawlme.com/das_dashboard

Krawlとは?

Krawl は、悪意のある攻撃者、Webクローラー、自動スキャナーを検出・遅延・分析するために設計された、クラウドネイティブな欺瞞サーバーです。

管理者パネル、設定ファイル、公開された偽の認証情報など、簡単に手に入る餌で満たされた現実的な偽のWebアプリケーションを作成し、不審な活動を引き寄せて特定します。

dashboard

攻撃者のリソースを浪費することで、Krawlは悪意のある動作と正当なクローラーを明確に区別するのに役立ちます。

主な機能:

  • AI生成の欺瞞ページ: 攻撃者に偽の脆弱な攻撃対象領域の生成を手伝わせましょう
  • スパイダートラップページ: spidertrapプロジェクトに基づく、クローラーのリソースを浪費する無限のランダムリンク
  • 偽のログインページ: WordPress、phpMyAdmin、管理者パネル
  • ハニーポットパス: スキャナーを捕捉するためにrobots.txtで宣伝
  • 偽の認証情報: 現実的なユーザー名、パスワード、APIキー
  • カナリアトークン統合: 外部アラートのトリガー
  • ランダムなサーバーヘッダー: サーバーヘッダーとバージョンに基づいて攻撃を混乱させる
  • リアルタイムダッシュボード: 不審な活動を監視
  • カスタマイズ可能なワードリスト: 簡単なJSONベースの設定
  • ランダムエラー注入: 実際のサーバー動作を模倣

リバースプロキシを使用して、Krawlを他のサービスと一緒に簡単に公開し、Webクローラーや悪意のあるユーザーからそれらを保護できます。詳細については、リバースプロキシのドキュメントを参照してください。

use case

Krawlダッシュボード

Krawlは、起動時に生成されるランダムな秘密パスまたはKRAWL_DASHBOARD_SECRET_PATHで設定されたカスタムパスでアクセスできる包括的なダッシュボードを提供します。これにより、ハニーポットをスキャンする攻撃者からダッシュボードを隠すことができます。

ダッシュボードは6つのタブで構成されています:

  • 概要: 攻撃活動の高レベルなビュー: IP発信元のインタラクティブマップ、最近の不審なリクエスト、上位IP、User-Agent、パス。

geoip

  • 攻撃: 捕捉された認証情報、ハニーポットトリガー、検出された攻撃タイプ(SQLi、XSS、パストラバーサルなど)の詳細な内訳をチャートとテーブルで表示。

attack_types

  • IPインサイト: 選択したIPの詳細なフォレンジックビュー: 地理位置情報、ISP/ASN情報、レピュテーションフラグ、行動タイムライン、攻撃タイプの分布、完全なアクセス履歴。

ipinsight

さらに、ダッシュボードのパスワードで認証すると、2つの保護されたタブが利用可能になります:

  • 追跡IP: 時間をかけて監視したいIPアドレスのウォッチリストを維持します。
  • IPバンリスト: IPバンを管理し、検出された攻撃者を表示し、バンリストをraw形式またはIPTables形式でエクスポートします。
  • 欺瞞: AI生成ページを管理、エクスポート、または新しいページをインポートします。

詳細については、ダッシュボードのドキュメントを参照してください。

デプロイメントモード

Krawlは、config.yamlのmode設定またはKRAWL_MODE環境変数で制御される2つのデプロイメントモードをサポートしています。

スタンドアロン: リクエスト数が少ない開発環境やホームラボに最適です。追加設定は不要で、Krawlを実行するだけで動作します。

  • 外部依存関係のない単一コンテナデプロイメント
  • より低いRAMとリソース使用量

スケーラブル: 本番環境や高トラフィックのハニーポット向けに設計されています。Helmチャートはデフォルトでこのモードを使用します。

  • Redisのマルチティアキャッシュによる、より高速で応答性の高いダッシュボード
  • PostgreSQLの前面でRedisがホットパスキャッシュとして機能することで、ディスクI/Oを削減
  • ロードバランサーの背後でKrawlレプリカの数を増やす水平スケーリング

詳細な設定、Docker Composeの例、Kubernetes/Helmのセットアップ、ステップバイステップの移行手順については、デプロイメントモードのドキュメントを参照してください。

Krawlバンリスト

Krawlは、ハニーポットトラップをトリガーした攻撃者からのIPアドレスの定期的に更新されるbanlist.txtを維持しています。バンリストは毎週公開され、ダウンロード可能で、Krawlを使用しなくても既知の悪意のあるアクターを事前にブロックするのに役立ちます。

バンリストは以下から直接取得することもできます: https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw。

インスタンス間でのバンリストの共有

Krawlインスタンスはバンリストをフェデレーションできます: 各インスタンスは自身のリストを認証なしのパスで公開し、他のインスタンス(または任意のプレーンテキストIPリスト)からリストを取得できます。取得したIPはローカルのバン判定にマージされ、ダッシュボードに表示されます。```yaml banlist:

Public, unauthenticated download path for this instance's banlist.

Supports the same ?categories= and ?fwtype= parameters as the main API.

Empty = disabled.

export_path: "/public_banlist.txt"

Upstream banlists to fetch and merge. Plain ".txt" lists work too.

sources: - "https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw" - "https://krawl.example.com/public_banlist.txt"

refresh_interval: 3600 # seconds between fetches

root@kitploit:~
## クイックスタート

### Docker での実行

最新のイメージを使用して、Krawl をスタンドアロンモードで実行します:```bash
docker run -d \
  -p 5000:5000 \
  -e KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard" \
  -e KRAWL_DASHBOARD_PASSWORD="my-secret-password" \
  -v krawl-data:/app/data \
  --name krawl \
  ghcr.io/blessedrebus/krawl:latest

サーバーにアクセス: http://localhost:5000

Docker Compose

2つのデプロイモードのいずれかで docker-compose.yaml を作成します。

スタンドアロン: Sqliteストレージを使用したKrawlサーバーのみ:```yaml services: krawl: image: ghcr.io/blessedrebus/krawl:latest container_name: krawl-server ports: - "5000:5000" environment: - CONFIG_LOCATION=config.yaml # - KRAWL_DASHBOARD_PASSWORD=my-secret-password volumes: - ./config.yaml:/app/config.yaml:ro - krawl-data:/app/data restart: unless-stopped

volumes: krawl-data:

root@kitploit:~
**スケーラブル**: PostgreSQL と Redis を使用:

> [!CAUTION]
> 以下の例では**デフォルトのパスワード**(`krawl`/`krawl`)を使用しています。**本番環境にデプロイする前に変更してください。**```yaml
services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: krawl
      POSTGRES_USER: krawl
      POSTGRES_PASSWORD: krawl
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U krawl -d krawl"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  krawl:
    image: ghcr.io/blessedrebus/krawl:latest
    container_name: krawl-server
    ports:
      - "5000:5000"
    environment:
      - CONFIG_LOCATION=config.yaml
      - KRAWL_MODE=scalable
      - KRAWL_POSTGRES_HOST=postgres
      - KRAWL_POSTGRES_PORT=5432
      - KRAWL_POSTGRES_USER=krawl
      - KRAWL_POSTGRES_PASSWORD=krawl
      - KRAWL_POSTGRES_DATABASE=krawl
      - KRAWL_REDIS_HOST=redis
      - KRAWL_REDIS_PORT=6379
      # - KRAWL_DASHBOARD_PASSWORD=my-secret-password
    volumes:
      - ./config.yaml:/app/config.yaml:ro
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy

volumes:
  postgres_data:
  redis_data:

デプロイするには、次のコマンドを実行するだけです。```bash docker compose up -d

root@kitploit:~
本番環境向けのcomposeファイルも[`docker/`](https://github.com/blessedrebus/krawl/blob/main/docker)ディレクトリに用意されています。**開発用**(ソースからのビルド+ホットリロード)には、[`docker/dev/`](https://github.com/blessedrebus/krawl/blob/main/docker/dev)内のcomposeファイルを使用してください。

両モードの詳細については、[デプロイメントモード](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md)を参照してください。

### Kubernetes
**KrawlはKubernetes上でもネイティブに利用可能です**。インストールは[マニフェスト経由](https://github.com/blessedrebus/krawl/blob/main/kubernetes/README.md)または[Helmチャートの使用](https://github.com/blessedrebus/krawl/blob/main/helm/README.md)のいずれかで行えます。

Helmチャートは**デフォルトでスケーラブルモード**を採用しており、PostgreSQLとRedisがバンドルされています。```bash
helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 2.3.1 \
  -n krawl-system --create-namespace \
  --set postgres.password=your-password \
  --set redis.password=your-redis-password \
  --set dashboardPassword=your-dashboard-password \
  --set config.dashboard.secret_path=/my-secret-dashboard

各モードに対応した最小限のvaluesファイルが用意されています:

  • values-minimal.yaml ---> スケーラブル(デフォルト)
  • values-standalone.yaml ---> スタンドアロン

完全な設定と移行手順については、デプロイメントモードとチャートのドキュメントを参照してください。

Uvicorn(Python)

ローカル開発やテストのために、Python 3.13+とuvicornを使用してKrawlを直接実行します:```bash pip install -r requirements.txt uvicorn app:app --host 0.0.0.0 --port 5000 --app-dir src --no-server-header

root@kitploit:~
`http://localhost:5000` でサーバーにアクセスします。

## 設定
Krawl は**設定階層**を使用し、**環境変数が設定ファイルよりも優先されます**。このアプローチは、Docker デプロイや迅速な初期カスタマイズに推奨されます。

### config.yaml による設定
Docker Compose や Helm chart デプロイなどの高度な設定には、[config.yaml](https://github.com/blessedrebus/krawl/blob/main/config.yaml) ファイルを使用できます。

### 環境変数による設定

すべての設定は環境変数として指定でき、`config.yaml` を上書きします。
変数名は `KRAWL_` に設定パスを大文字で連結したもので、`dashboard.password` は
`KRAWL_DASHBOARD_PASSWORD` になります。

<details>
<summary><b>サーバーとリンク生成</b>(12 変数)</summary>

Krawl がどのように自身を表現し、生成されたページの迷路を形成するか。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `CONFIG_LOCATION` | yaml 設定ファイルへのパス | `config.yaml` |
| `KRAWL_PORT` | サーバー待受ポート | `5000` |
| `KRAWL_DELAY` | 応答遅延(ミリ秒) | `100` |
| `KRAWL_SERVER_HEADER` | 欺瞞用の HTTP Server ヘッダー | `""` |
| `KRAWL_LINKS_LENGTH_RANGE` | リンク長の範囲(`min,max`) | `5,15` |
| `KRAWL_LINKS_PER_PAGE_RANGE` | ページあたりのリンク数(`min,max`) | `10,15` |
| `KRAWL_CHAR_SPACE` | リンク生成に使用する文字 | `abcdefgh...` |
| `KRAWL_MAX_COUNTER` | 初期カウンター値 | `10` |
| `KRAWL_PROBABILITY_ERROR_CODES` | エラー応答の確率(0〜100%) | `0` |
| `KRAWL_INFINITE_PAGES_FOR_MALICIOUS` | 悪意のある IP に無限ページを提供 | `true` |
| `KRAWL_MAX_PAGES_LIMIT` | クローラー向けの最大ページ制限 | `250` |
| `KRAWL_BAN_DURATION_SECONDS` | レート制限された IP の禁止期間(秒) | `600` |

</details>

<details>
<summary><b>ダッシュボード、メトリクス、ロギング</b>(8 変数)</summary>

ダッシュボードへのアクセス、キャッシュウォームアップ、Prometheus、ログレベル。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_DASHBOARD_SECRET_PATH` | カスタムダッシュボードパス | 自動生成 |
| `KRAWL_DASHBOARD_PASSWORD` | 保護されたダッシュボードパネル用のパスワード | 自動生成 |
| `KRAWL_DASHBOARD_CACHE_WARMUP` | 5 分ごとにダッシュボードデータを事前計算し、ページを即時読み込み | `true` |
| `KRAWL_DASHBOARD_WARMUP_PAGES` | テーブルパネルごとに事前ウォームアップするページ数 | `10` |
| `KRAWL_DASHBOARD_WARMUP_AGGREGATION` | 完全な top_paths/top_ua 集計を事前計算し、ゼロクエリで提供 | `false` |
| `KRAWL_DASHBOARD_TOP_N_MIN_COUNT` | トップパス/ユーザーエージェントパネルの最小アクセス数(無効化するには 1 に設定) | `5` |
| `KRAWL_METRICS_ENABLED` | `/<dashboard_path>/metrics` で Prometheus メトリクスを公開 | `true` |
| `KRAWL_LOG_LEVEL` | アプリケーションログレベル(`DEBUG`、`INFO`、`WARNING`、`ERROR`) | `INFO` |

</details>

<details>
<summary><b>データベース、保持、バックアップ</b>(6 変数)</summary>

保存場所、データ保持期間、ダンプジョブ。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_DATABASE_PATH` | データベースファイルの場所 | `data/krawl.db` |
| `KRAWL_DATABASE_PERSIST_SUSPICIOUS_ONLY` | 疑わしいリクエストのみアクセスログに永続化 | `false` |
| `KRAWL_DATABASE_RETENTION_DAYS` | データベースにデータを保持する日数 | `30` |
| `KRAWL_BACKUPS_PATH` | データベースダンプの保存先パス | `backups` |
| `KRAWL_BACKUPS_CRON` | バックアップジョブのスケジュールを制御する cron 式 | `*/30 * * * *` |
| `KRAWL_BACKUPS_ENABLED` | DB ダンプジョブを有効にするブール値 | `true` |

</details>

<details>
<summary><b>トラップ:ターピット、欺瞞ページ、カナリア</b>(6 変数)</summary>

オプトインのトラップと攻撃者に提供されるページ。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_TARPIT_ENABLED` | 遅い応答とランダムテキストで AI エージェントをトラップ | `false` |
| `KRAWL_TARPIT_DELAY_SECONDS` | ターピット有効時に応答ごとに追加される遅延(秒) | `5` |
| `KRAWL_DECEPTION_IMPORT_PAGES` | 起動時に `src/templates/deception/` から欺瞞ページを自動インポート | `true` |
| `KRAWL_CUSTOM_TEMPLATE_PATH` | コンテナ内のカスタム HTML テンプレートへのパス。テンプレートには `{counter}` と `{content}` プレースホルダーを含める必要があります。 | `/templates/custom_page.html` |
| `KRAWL_CANARY_TOKEN_URL` | 外部カナリアトークン URL | None |
| `KRAWL_CANARY_TOKEN_TRIES` | カナリアトークンを表示するまでのリクエスト数 | `10` |

</details>

<details>
<summary><b>IP レピュテーションアナライザー</b>(6 変数)</summary>

IP の分類方法を決定するしきい値。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_HTTP_RISKY_METHODS_THRESHOLD` | リスクの高い HTTP メソッド検出のしきい値 | `0.1` |
| `KRAWL_VIOLATED_ROBOTS_THRESHOLD` | robots.txt 違反のしきい値 | `0.1` |
| `KRAWL_UNEVEN_REQUEST_TIMING_THRESHOLD` | タイミングの変動係数のしきい値 | `0.5` |
| `KRAWL_UNEVEN_REQUEST_TIMING_TIME_WINDOW_SECONDS` | リクエストタイミング分析の時間枠(秒) | `300` |
| `KRAWL_USER_AGENTS_USED_THRESHOLD` | 複数ユーザーエージェント検出のしきい値 | `2` |
| `KRAWL_ATTACK_URLS_THRESHOLD` | 攻撃 URL 検出のしきい値 | `1` |

</details>

<details>
<summary><b>禁止リストと無視 IP</b>(4 変数)</summary>

他のインスタンスとの禁止リスト共有、および追跡しないトラフィック。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_IGNORED_IPS` | 追跡、禁止、エクスポートされないカンマ区切りの IP/CIDR | ループバック、RFC1918、リンクローカル、CGNAT |
| `KRAWL_BANLIST_EXPORT_PATH` | 公開禁止リストのダウンロードパス(例:`/public_banlist.txt`)(空 = 無効) | `""` |
| `KRAWL_BANLIST_SOURCES` | 取得してマージするカンマ区切りの上流禁止リスト URL | Krawl コミュニティ禁止リスト |
| `KRAWL_BANLIST_REFRESH_INTERVAL` | 上流禁止リスト取得間隔(秒) | `3600` |

</details>

<details>
<summary><b>AI 生成の欺瞞ページ</b>(10 変数)</summary>

[AI 生成ドキュメント](https://github.com/blessedrebus/krawl/blob/main/docs/ai_generation.md) を参照してください。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_AI_ENABLED` | AI 生成の欺瞞ページを有効化 | `false` |
| `KRAWL_AI_PROVIDER` | AI プロバイダー(`"openrouter"` または `"openai"`) | `"openrouter"` |
| `KRAWL_AI_OPENAI_BASE_URL` | カスタム API エンドポイント用のオプションの OpenAI Base URL | `"https://api.openai.com/v1"` |
| `KRAWL_AI_API_KEY` | AI プロバイダー用の API キー | `None` |
| `KRAWL_AI_MODEL` | ページ生成に使用する AI モデル | `"nvidia/nemotron-3-super-120b-a12b:free"` |
| `KRAWL_AI_TIMEOUT` | AI API 呼び出しのリクエストタイムアウト(秒) | `60` |
| `KRAWL_AI_MAX_DAILY_REQUESTS` | 1 日あたりの AI 生成ページの最大数(0 = 無制限) | `0` |
| `KRAWL_AI_PROMPT` | AI ページ生成用のカスタムプロンプトテンプレート | デフォルトプロンプト |
| `KRAWL_AI_REASONING_ENABLED` | 推論トークンを有効化(OpenRouter 推論モデルのみ) | `false` |
| `KRAWL_AI_REASONING_EFFORT` | 推論の労力(`none`、`minimal`、`low`、`medium`、`high`、`xhigh`) | `"medium"` |

</details>

<details>
<summary><b>スケーラブルモード:PostgreSQL と Redis</b>(13 変数)</summary>

`KRAWL_MODE=scalable` の場合のみ使用されます。[デプロイモード](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md) を参照してください。

| 環境変数 | 説明 | デフォルト |
|----------------------|-------------|---------|
| `KRAWL_MODE` | デプロイモード(`standalone` または `scalable`) | `standalone` |
| `KRAWL_POSTGRES_HOST` | PostgreSQL ホスト名 | `localhost` |
| `KRAWL_POSTGRES_PORT` | PostgreSQL ポート | `5432` |
| `KRAWL_POSTGRES_USER` | PostgreSQL ユーザー名 | `krawl` |
| `KRAWL_POSTGRES_PASSWORD` | PostgreSQL パスワード | `krawl` |
| `KRAWL_POSTGRES_DATABASE` | PostgreSQL データベース名 | `krawl` |
| `KRAWL_REDIS_HOST` | Redis ホスト名 | `localhost` |
| `KRAWL_REDIS_PORT` | Redis ポート | `6379` |
| `KRAWL_REDIS_DB` | Redis データベース番号 | `0` |
| `KRAWL_REDIS_PASSWORD` | Redis パスワード | None |
| `KRAWL_REDIS_CACHE_TTL` | ダッシュボードウォームアップデータの TTL(秒) | `600` |
| `KRAWL_REDIS_HOT_TTL` | ホットパスデータ(禁止情報、IP カテゴリ)の TTL(秒) | `30` |
| `KRAWL_REDIS_TABLE_TTL` | ページ分割されたダッシュボードテーブルの TTL(秒) | `120` |

</details>


たとえば```bash
# Set canary token
export CONFIG_LOCATION="config.yaml"
export KRAWL_CANARY_TOKEN_URL="http://your-canary-token-url"

# Set number of pages range (min,max format)
export KRAWL_LINKS_PER_PAGE_RANGE="5,25"

# Set analyzer thresholds
export KRAWL_HTTP_RISKY_METHODS_THRESHOLD="0.2"
export KRAWL_VIOLATED_ROBOTS_THRESHOLD="0.15"

# Set custom dashboard path and password
export KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard"
export KRAWL_DASHBOARD_PASSWORD="my-secret-password"

Docker 実行の例(環境変数を使用したスタンドアロンモード):```bash docker run -d
-p 5000:5000
-e KRAWL_MODE=standalone
-e KRAWL_PORT=5000
-e KRAWL_DELAY=100
-e KRAWL_DASHBOARD_PASSWORD="my-secret-password"
-e KRAWL_CUSTOM_TEMPLATE_PATH="/templates/custom_page.html"
-e KRAWL_CANARY_TOKEN_URL="http://your-canary-token-url"
--name krawl
ghcr.io/blessedrebus/krawl:latest

root@kitploit:~
## Krawlを使用して悪意のあるIPをブロックする
Krawlは、レピュテーションベースのシステムを使用して攻撃者のIPアドレスを分類し、ファイアウォール統合のためにIPリストをエクスポートする2つの方法を提供します。

`/api/export-ips`エンドポイントはデータベースを直接クエリし、IPカテゴリ(`attacker`、`bad_crawler`、`regular_user`、`good_crawler`)と出力形式(`raw`、`iptables`、`nftables`)によるフィルタリングをサポートしています:```bash
curl "https://your-krawl-instance/<DASHBOARD-PATH>/api/export-ips?categories=attacker&fwtype=raw"

これにより、さまざまなプラットフォームでの悪意のあるトラフィックの自動ブロックが可能になります:

  • OPNsense および pfSense
  • RouterOS
  • IPtables および Nftables
  • Fail2Ban

完全な API パラメータ、例、およびカスタムファイアウォール形式の追加については、Firewall Exporters ドキュメント を参照してください。

Krawl は、禁止された IP を Cloudflare アカウント IP リストに直接プッシュして、WAF ルールで使用することもできます。同期はバックグラウンドタスクとして実行され、設定可能な間隔で完全置換によってリストを更新します。Cloudflare Banlist Sync ドキュメントを参照してください。

IP レピュテーション

Krawl は、最近のトラフィックを分析して IP レピュテーションスコアを構築および継続的に更新するタスク を使用します。これは定期的に実行され、複数の行動指標に基づいて各アクティブな IP アドレスを評価し、攻撃者、クローラー、または通常のユーザーとして分類します。しきい値は完全にカスタマイズ可能です。

ip reputation

分析には以下が含まれます:

  • リスクの高い HTTP メソッドの使用 (例: POST、PUT、DELETE の比率)
  • Robots.txt 違反
  • リクエストタイミングの異常 (バースト的または不規則なパターン)
  • User-Agent の一貫性
  • 攻撃 URL の検出 (例: SQL インジェクション、XSS パターン)

各シグナルは、レピュテーションカテゴリを割り当てる重み付けスコアリングモデルに貢献します:

  • attacker
  • bad_crawler
  • good_crawler
  • regular_user
  • unknown (データが不十分な場合)

結果のスコアとメトリクスはデータベースに保存され、Krawl によってダッシュボード、レピュテーション追跡、および IP 禁止やファイアウォール統合などの自動緩和アクションを駆動するために使用されます。

AI 生成のデセプションページ

Krawl は、OpenRouter または OpenAI API の AI モデルを使用して、リアルなデセプションページを自動生成できます。この機能により、手動でのページ作成なしで、攻撃者を欺くためのユニークで現実的なハニーポットページをその場で作成できます。

主な機能:

  • 動的生成: 任意のリクエストパスに対してユニークな HTML ページを作成
  • スマートキャッシング: 生成されたページをキャッシュして冗長な API 呼び出しを回避
  • 毎日のレート制限: 設定可能なリクエスト制限で API コストを制御
  • 複数プロバイダー: OpenRouter (無料オプション) と OpenAI をサポート
  • グレースフルフォールバック: 無効時または制限到達時に標準のハニーポットにフォールバック
  • キャッシュされた配信: AI が無効な場合でも、以前に生成されたページを配信

クイックセットアップ:```yaml ai: enabled: true provider: "openrouter" openai_base_url: "your-custom-base-url" api_key: "your-api-key" model: "nvidia/nemotron-3-super-120b-a12b:free" timeout: 60 max_daily_requests: 10

root@kitploit:~
詳細な設定と使用方法については、[AI生成ドキュメント](https://github.com/blessedrebus/krawl/blob/main/docs/ai_generation.md)を参照してください。

また、PRを開いて**偽装テンプレートを提供**することもできます。[偽装テンプレートの提供](https://github.com/blessedrebus/krawl/blob/main/docs/deception_pages.md#contributing-deception-templates-via-pr)を参照してください。

## リバースプロキシまたはCDNの背後での実行

**NGINX、Traefik、およびCloudFlareなどの他のプロキシ**では、Krawlが実際のIPを認識できるようにヘッダー転送が必要です。設定例と完全なヘッダーリストについては、[リバースプロキシのドキュメント](https://github.com/blessedrebus/krawl/blob/main/docs/reverse-proxy.md)を参照してください。

## メトリクスとモニタリング

Krawlは、`/<dashboard_secret_path>/metrics`で[Prometheus](https://prometheus.io/)メトリクスを公開し(デフォルトで有効)、[`grafana-dashboard.json`](https://github.com/blessedrebus/krawl/blob/main/grafana-dashboard.json)にインポート可能な[Grafana](https://grafana.com/)ダッシュボードが同梱されています。

完全なメトリクスリスト、Grafanaのインポート手順、およびPrometheus / Kubernetes(`ServiceMonitor`)のスクレイピング設定については、[モニタリングのドキュメント](https://github.com/blessedrebus/krawl/blob/main/docs/monitoring.md)を参照してください。

## 追加ドキュメント

| トピック | 説明 |
|-------|-------------|
| [AI生成](https://github.com/blessedrebus/krawl/blob/main/docs/ai_generation.md) | OpenRouterまたはOpenAIを使用してAI生成の偽装ページを設定する |
| [偽装ページ](https://github.com/blessedrebus/krawl/blob/main/docs/deception_pages.md) | 偽装ページの管理、インポート、エクスポート、一括操作、日付ベースのフィルタリング |
| [デプロイメントモード](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md) | スタンドアロン(SQLite)モードとスケーラブル(PostgreSQL + Redis)モード、設定、データ移行 |
| [ハニーポット](https://github.com/blessedrebus/krawl/blob/main/docs/honeypot.md) | 偽ログイン、ディレクトリリスト、資格情報ファイル、SQLi/XSS/XXE/コマンドインジェクションの罠などのハニーポットページの完全な概要 |
| [ダッシュボード](https://github.com/blessedrebus/krawl/blob/main/docs/dashboard.md) | リアルタイムモニタリングダッシュボードへのアクセスと操作 |
| [ダッシュボードAPI](https://github.com/blessedrebus/krawl/blob/main/docs/dashboard-api.md) | Krawl独自のJSON API:エンドポイントリファレンス、認証、対話型OpenAPIドキュメント、添付ファイルのダウンロード |
| [外部API](https://github.com/blessedrebus/krawl/blob/main/docs/api.md) | KrawlがIPデータ、レピュテーション、地理位置情報のために呼び出すサードパーティAPI |
| [リバースプロキシ](https://github.com/blessedrebus/krawl/blob/main/docs/reverse-proxy.md) | NGINXの背後でKrawlをデプロイする方法、またはデコイサブドメインの使用方法 |
| [データベースバックアップ](https://github.com/blessedrebus/krawl/blob/main/docs/backups.md) | 自動データベースダンプジョブの有効化と設定 |
| [カナリアトークン](https://github.com/blessedrebus/krawl/blob/main/docs/canary-token.md) | canarytokens.orgを介した外部アラートトリガーの設定 |
| [ワードリスト](https://github.com/blessedrebus/krawl/blob/main/docs/wordlist.md) | 偽のユーザー名、パスワード、ディレクトリリストのカスタマイズ |
| [アーキテクチャ](https://github.com/blessedrebus/krawl/blob/main/docs/architecture.md) | コードベース、リクエストパイプライン、データベーススキーマ、バックグラウンドタスクの技術概要 |
| [Cloudflare Banlist同期](https://github.com/blessedrebus/krawl/blob/main/docs/cloudflare_banlist.md) | Krawlから禁止IPをCloudflareアカウントIPリストにプッシュし、WAFルールで使用します。同期はバックグラウンドタスクとして実行され、完全置換でリストを更新します。 |
| [ファイアウォールエクスポーター](https://github.com/blessedrebus/krawl/blob/main/docs/firewall-exporters.md) | REST APIを介してIP禁止リストをraw、iptables、またはnftables形式でエクスポートする |
| [ターピット](https://github.com/blessedrebus/krawl/blob/main/docs/tarpit.md) | 遅延とノイズパディングされた応答でAIクローラーを減速・妨害する |
| [メトリクスとモニタリング](https://github.com/blessedrebus/krawl/blob/main/docs/monitoring.md) | Prometheusメトリクスエンドポイント、公開メトリクスリファレンス、Grafanaダッシュボード、ServiceMonitorスクレイピング |

## 貢献

貢献を歓迎します!以下の手順に従ってください:
1. リポジトリをフォークする
2. フィーチャーブランチを作成する
3. 変更を加える
4. プルリクエストを送信する(変更内容を説明してください!)

## 免責事項
> [!CAUTION]
> これは偽装/ハニーポットシステムです。隔離された環境でデプロイし、セキュリティイベントを注意深く監視してください。適用される法律および規制に準拠して責任を持って使用してください。

## スター履歴
<img src="https://star-history.dera.page/svg?repos=BlessedRebuS/Krawl&amp;type=Date" width="600" alt="スター履歴チャート" />
ツールをダウンロード
スタンドアロンスケーラブル
データベースSQLite (WALモード)PostgreSQL
キャッシュインメモリPython dictRedis (マルチティアTTL)
レプリカ1 (単一インスタンス)1+ (水平スケーリング)
外部依存関係なしPostgreSQL + Redis
最適な用途開発、ホームラボ、<50万リクエスト本番、HA、>50万リクエスト