Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Krawl — Krawl — это настраиваемый, легковесный, облачный веб-сервер обмана и анти-краулер, который создает поддельные веб-приложения с простыми уязвимостями, используя реалистичные, случайно сгенерированные приманки и HTML-шаблоны, созданные ИИ. | Kitploit
Инструменты/GitHubGitHub/blessedrebus/krawl
Безопасность контейнеровСбор информацииВеб-безопасностьСетевая безопасностьБезопасность облачных средРазведка угрозРеагирование на ИнцидентыАнти-БотБезопасность ИИ
GitHubblessedrebus/krawl

Krawl

Krawl — это настраиваемый, легковесный, облачный веб-сервер обмана и анти-краулер, который создает поддельные веб-приложения с простыми уязвимостями, используя реалистичные, случайно сгенерированные приманки и HTML-шаблоны, созданные ИИ.

55845613 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт
<h1 align="center">Krawl</h1>

<h3 align="center">
  <a name="readme-top"></a>
  <img
    src="https://raw.githubusercontent.com/blessedrebus/krawl/HEAD/img/krawl-svg.svg"
    height="250"
  >
</h3>
<div align="center">

<p align="center">
  Современный настраиваемый веб-ханипот-сервер, предназначенный для обнаружения и отслеживания вредоносной активности атакующих и веб-краулеров с помощью обманных веб-страниц, поддельных учётных данных и canary-токенов.
</p>

<div align="center">
  <a href="https://github.com/blessedrebus/krawl/blob/main/LICENSE">
    <img src="https://img.shields.io/github/license/blessedrebus/krawl" alt="License">
  </a>
  <a href="https://github.com/blessedrebus/krawl/releases">
    <img src="https://img.shields.io/github/v/release/blessedrebus/krawl" alt="Release">
  </a>
</div>

<div align="center">
  <a href="https://ghcr.io/blessedrebus/krawl">
    <img src="https://img.shields.io/badge/ghcr.io-krawl-blue" alt="GitHub Container Registry">
  </a>
  <a href="https://kubernetes.io/">
    <img src="https://img.shields.io/badge/kubernetes-ready-326CE5?logo=kubernetes&amp;logoColor=white" alt="Kubernetes">
  </a>
  <a href="https://github.com/BlessedRebuS/Krawl/pkgs/container/krawl-chart">
    <img src="https://img.shields.io/badge/helm-chart-0F1689?logo=helm&amp;logoColor=white" alt="Helm Chart">
  </a>
</div>
</div>

## Содержание
- [Демо](#demo)
- [Что такое Krawl?](#what-is-krawl)
- [Панель управления Krawl](#krawl-dashboard)
- [Режимы развёртывания](#deployment-modes)
- [Банлист Krawl](#krawl-banlist)
- [Быстрый старт](#quickstart)
  - [Docker Run](#docker-run)
  - [Docker Compose](#docker-compose)
  - [Kubernetes](#kubernetes)
  - [Uvicorn (Python)](#uvicorn-python)
- [Конфигурация](#configuration)
  - [config.yaml](#configuration-via-configyaml)
  - [Переменные окружения](#configuration-via-environmental-variables)
- [Блокировка вредоносных IP](#use-krawl-to-ban-malicious-ips)
- [Репутация IP](#ip-reputation)
- [Работа за обратным прокси или CDN](#running-behind-a-reverse-proxy-or-cdn)
- [Метрики и мониторинг](#metrics--monitoring)
- [Дополнительная документация](#additional-documentation)
- [Обман с помощью ИИ](#ai-generated-deception-pages)
- [Участие в разработке](#contributing)

## Демо
Совет: обойдите пути из `robots.txt` для дополнительного интереса
### URL Krawl: [http://demo.krawlme.com](http://demo.krawlme.com)
### Посмотреть панель управления [http://demo.krawlme.com/das_dashboard](http://demo.krawlme.com/das_dashboard)

## Что такое Krawl?

**Krawl** — это cloud-native сервер обмана, предназначенный для обнаружения, задержки и анализа вредоносных атакующих, веб-краулеров и автоматизированных сканеров.

Он создаёт реалистичные поддельные веб-приложения, наполненные лёгкой добычей, такой как админ-панели, конфигурационные файлы и открытые поддельные учётные данные, чтобы привлекать и выявлять подозрительную активность.

![dashboard](https://assets.kitploit.com/production/public/readmes/12879/a01b9a420bd9f26c6837b29c55c0c4f7c415cf155d5b640ecf614cfed4097997.png)

Тратя ресурсы атакующих, Krawl помогает чётко отличать вредоносное поведение от легитимных краулеров.

Возможности:

- **[Страницы обмана, сгенерированные ИИ](https://github.com/blessedrebus/krawl/blob/main/docs/ai_generation.md)**: **Позвольте атакующим помочь сгенерировать вашу фальшивую уязвимую поверхность атаки**
- **Страницы-ловушки для пауков**: Бесконечные случайные ссылки для траты ресурсов краулеров на основе [проекта spidertrap](https://github.com/adhdproject/spidertrap)
- **Поддельные страницы входа**: WordPress, phpMyAdmin, админ-панели
- **Пути-ханипоты**: Рекламируются в robots.txt для отлова сканеров
- **Поддельные учётные данные**: Реалистично выглядящие имена пользователей, пароли, API-ключи
- **Интеграция [Canary Token](https://github.com/blessedrebus/krawl/blob/main/docs/canary-token.md)**: Запуск внешних оповещений
- **Случайные заголовки сервера**: Сбивают с толку атаки, основанные на заголовке и версии сервера
- **Панель управления в реальном времени**: Мониторинг подозрительной активности
- **Настраиваемые словари**: Простая конфигурация на основе JSON
- **Случайная инъекция ошибок**: Имитация поведения реального сервера

Вы можете легко разместить Krawl рядом с другими вашими сервисами, чтобы защитить их от веб-краулеров и вредоносных пользователей с помощью обратного прокси. Подробнее см. в [документации по обратному прокси](https://github.com/blessedrebus/krawl/blob/main/docs/reverse-proxy.md).

![use case](https://assets.kitploit.com/production/public/readmes/12879/60f7ddddd201d89a440fbd2b0b3ac08a1d19b9b9a87dc956a02a06c608f1a73d.png)

## Панель управления Krawl

Krawl предоставляет комплексную панель управления, доступную по **случайному секретному пути**, генерируемому при запуске, или по **пользовательскому пути**, настроенному через `KRAWL_DASHBOARD_SECRET_PATH`. Это позволяет держать панель скрытой от атакующих, сканирующих ваш ханипот.

Панель организована в шесть вкладок:

- **Обзор**: общий вид активности атак: интерактивная карта источников IP, недавние подозрительные запросы и топ IP, User-Agent и путей.

![geoip](https://assets.kitploit.com/production/public/readmes/12879/391bf8fda76ed917c8731427a914f2279d9e0cc8bc69034797c355944972f085.png)

- **Атаки**: детальная разбивка захваченных учётных данных, срабатываний ханипотов и обнаруженных типов атак (SQLi, XSS, path traversal и т. д.) с графиками и таблицами.

![attack_types](https://assets.kitploit.com/production/public/readmes/12879/30a42393851ed51015609282643749e98372b0ac6eee207eb779f8ea070c7f63.png)

- **Угрозы**: полезные нагрузки, сгруппированные в кампании по нечёткому хешу TLSH, так что веб-шелл и его изменённые варианты читаются как одна кампания, а не как несвязанные попадания, с индексом каждого захваченного файла.

- **Анализ IP**: углублённый форензический обзор выбранного IP: геолокация, информация об ISP/ASN, флаги репутации, временная шкала поведения, распределение типов атак, история referer, захваченные файлы и учётные данные, а также полная история доступа.

![ipinsight](https://assets.kitploit.com/production/public/readmes/12879/93a6ddb8e4b69769fadbba30869373248d0f14c2c7c14d008f0143f3e24c5728.png)

Кроме того, после аутентификации с паролем панели управления становятся доступны защищённые вкладки:

- **Отслеживаемые IP**: ведение списка наблюдения за IP-адресами, которые вы хотите мониторить со временем.
- **Банлист IP**: управление блокировками IP, просмотр обнаруженных атакующих и экспорт банлиста в формате raw или IPTables.
- **IP с истёкшим таймаутом**: просмотр IP, которые в данный момент удерживаются в тарпите, и исключение тех, которые не должны там находиться.
- **Обман**: управление страницами, сгенерированными ИИ, их экспорт или импорт новых.
- **Вебхуки**: пересылка блокировок в CloudFlare и другие фаерволы.

Иконки в заголовке открывают документацию API, экспорт банлиста и панель настроек, показывающую текущую конфигурацию, а также страницу обслуживания для запуска запланированных задач по требованию.

Подробнее см. в [документации по панели управления](https://github.com/blessedrebus/krawl/blob/main/docs/dashboard.md).

## Режимы развёртывания

Krawl поддерживает два режима развёртывания, управляемых настройкой `mode` в `config.yaml` или переменной окружения `KRAWL_MODE`.

| | Standalone | Scalable |
|---|---|---|
| **База данных** | SQLite (режим WAL) | PostgreSQL |
| **Кэш** | Встроенный словарь Python | Redis (многоуровневый TTL) |
| **Реплики** | 1 (один экземпляр) | 1+ (горизонтальное масштабирование) |
| **Внешние зависимости** | Нет | PostgreSQL + Redis |
| **Лучше всего для** | Разработка, домашние лаборатории, <500k запросов | Продакшн, HA, >500k запросов |

**Standalone**: идеален для сред разработки или домашних лабораторий с низким числом запросов. Дополнительная конфигурация не требуется, просто запустите Krawl, и он работает.
- Развёртывание в одном контейнере без внешних зависимостей
- Меньшее потребление RAM и ресурсов

**Scalable**: предназначен для продакшн-сред или высоконагруженных ханипотов. Helm-чарт по умолчанию использует этот режим.
- Более быстрая и отзывчивая панель управления благодаря многоуровневому кэшированию Redis
- Меньше дискового ввода-вывода, так как Redis выступает в роли кэша горячего пути перед PostgreSQL
- Горизонтальное масштабирование увеличивает число реплик Krawl за балансировщиком нагрузки

Подробную конфигурацию, примеры Docker Compose, настройку Kubernetes/Helm и пошаговые инструкции по миграции см. в [документации по режимам развёртывания](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md).

## Банлист Krawl

Krawl ведёт регулярно обновляемый [`banlist.txt`](https://github.com/blessedrebus/krawl/blob/main/banlist.txt) с IP-адресами **атакующих, которые сработали на его ханипот-ловушки**. Банлист публикуется еженедельно и доступен для скачивания, помогая сообществу превентивно блокировать известных вредоносных субъектов даже без использования Krawl.

Банлист также можно получить напрямую по адресу:
[https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw](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
```
## Быстрый старт

### Запуск через 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

Создайте `docker-compose.yaml` с одним из двух режимов развёртывания.

**Standalone**: только сервер Krawl с хранилищем Sqlite:```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:
```
**Масштабируемость**: с PostgreSQL и Redis:

> [!CAUTION]
> В приведённом ниже примере используются **пароли по умолчанию** (`krawl`/`krawl`). **Смените их перед развёртыванием в production.**```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
```
Готовые к использованию в production compose-файлы также доступны в каталоге [`docker/`](https://github.com/blessedrebus/krawl/blob/main/docker). Для **разработки** (сборка из исходного кода с горячей перезагрузкой) используйте compose-файлы в [`docker/dev/`](https://github.com/blessedrebus/krawl/blob/main/docker/dev).

Подробнее об обоих режимах см. [Режимы развёртывания](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.4.0 \
  -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-minimal.yaml`](https://github.com/blessedrebus/krawl/blob/main/helm/values-minimal.yaml) ---> Масштабируемый (по умолчанию)
- [`values-standalone.yaml`](https://github.com/blessedrebus/krawl/blob/main/helm/values-standalone.yaml) ---> Автономный

См. [Режимы развёртывания](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md) и [Документацию чарта](https://github.com/blessedrebus/krawl/blob/main/helm/README.md) для полной конфигурации и инструкций по миграции.

### Uvicorn (Python)

Запустите Krawl напрямую с Python 3.13+ и uvicorn для локальной разработки или тестирования:```bash
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 5000 --app-dir src --no-server-header
```
Доступ к серверу по адресу `http://localhost:5000`


## Конфигурация
Krawl использует **иерархию конфигурации**, в которой **переменные окружения имеют приоритет над файлом конфигурации**. Этот подход рекомендуется для развёртываний в Docker и быстрой настройки «из коробки».

### Конфигурация через config.yaml
Вы можете использовать файл [config.yaml](https://github.com/blessedrebus/krawl/blob/main/config.yaml) для расширенных конфигураций, например для развёртываний через Docker Compose или Helm chart.

### Конфигурация через переменные окружения

Все настройки могут быть заданы в виде переменных окружения, которые переопределяют `config.yaml`.
Имя переменной — это `KRAWL_` плюс путь настройки в верхнем регистре, поэтому `dashboard.password`
становится `KRAWL_DASHBOARD_PASSWORD`.

<details>
<summary><b>Сервер и генерация ссылок</b> (11 переменных)</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> (13 переменных)</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` | Минимальное количество обращений для панелей top paths/user agents (установите 1, чтобы отключить) | `5` |
| `KRAWL_DASHBOARD_BRAND_NAME` | Имя в логотипе и заголовке дашборда | `Krawl` |
| `KRAWL_DASHBOARD_BRAND_URL` | Куда ведёт ссылка с логотипа (пустое значение отображает его как обычный текст) | Репозиторий Krawl |
| `KRAWL_DASHBOARD_BRAND_LOGO` | URL изображения, отображаемого вместо значка GitHub | Не задано |
| `KRAWL_DASHBOARD_BRAND_SHOW_VERSION` | Показывать версию рядом с именем | `true` |
| `KRAWL_DASHBOARD_BRAND_CONTACT` | Контакт, отображаемый под логотипом (адрес, URL или обычный текст) | Не задано |
| `KRAWL_METRICS_ENABLED` | Открывать метрики Prometheus по адресу `/<dashboard_path>/metrics` | `true` |
| `KRAWL_LOG_LEVEL` | Уровень логирования приложения (`DEBUG`, `INFO`, `WARNING`, `ERROR`) | `INFO` |

</details>

<details>
<summary><b>База данных, хранение и резервные копии</b> (12 переменных)</summary>

Расположение хранилища, как долго хранятся данные и задача дампа.

| Переменная окружения | Описание | По умолчанию |
|----------------------|-------------|---------|
| `KRAWL_DATABASE_PATH` | Расположение файла базы данных | `data/krawl.db` |
| `KRAWL_DATABASE_PERSIST_SUSPICIOUS_ONLY` | Сохранять в журнал доступа только подозрительные запросы | `false` |
| `KRAWL_MAP_TILE_URL` | Шаблон URL тайлов для карты дашборда (`{z}/{x}/{y}`, опционально `{s}`/`{r}`) | Esri dark canvas |
| `KRAWL_MAP_TILE_ATTRIBUTION` | Атрибуция, отображаемая на карте | Esri/OSM |
| `KRAWL_MAP_API_KEY` | Добавляется к каждому запросу тайла как параметр запроса — требуется CARTO | _(пусто)_ |
| `KRAWL_MAP_API_KEY_PARAM` | Имя этого параметра запроса (`api_key`, `apikey`, `key`) | `api_key` |
| `KRAWL_IPV6_IGNORE` | Полностью отбрасывать запросы IPv6: всё равно логируются в stdout, никогда не сохраняются, не проверяются на бан и не экспортируются | `false` |
| `KRAWL_IPV6_PURGE_EXISTING` | Также удалять существующие строки IPv6 при следующем запуске (необратимо; требует `KRAWL_IPV6_IGNORE`) | `false` |
| `KRAWL_DATABASE_RETENTION_DAYS` | Количество дней хранения данных в базе данных | `30` |
| `KRAWL_BACKUPS_PATH` | Путь, куда сохраняются дампы базы данных | `backups` |
| `KRAWL_BACKUPS_CRON` | cron-выражение для управления расписанием задачи резервного копирования | `*/30 * * * *` |
| `KRAWL_BACKUPS_ENABLED` | Логическое значение для включения задачи дампа базы данных | `true` |

</details>

<details>
<summary><b>Ловушки: tarpit, страницы-обманки и canary</b> (6 переменных)</summary>

Опциональные ловушки и страницы, отдаваемые атакующим.

| Переменная окружения | Описание | По умолчанию |
|----------------------|-------------|---------|
| `KRAWL_TARPIT_ENABLED` | Ловить AI-агентов медленными ответами и случайным текстом | `false` |
| `KRAWL_TARPIT_DELAY_SECONDS` | Дополнительная задержка в секундах, добавляемая к каждому ответу при активном tarpit | `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 внешнего canary-токена | Нет |
| `KRAWL_CANARY_TOKEN_TRIES` | Количество запросов до показа canary-токена | `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` | Порог для обнаружения нескольких user agent | `2` |
| `KRAWL_ATTACK_URLS_THRESHOLD` | Порог для обнаружения атакующих URL | `1` |

</details>

<details>
<summary><b>Сбор threat-intel</b> (4 переменные)</summary>

Нечёткое хеширование захваченных полезных нагрузок (файлов и помеченных телом запросов) и группировка
почти идентичных вариантов в кластеры кампаний. Требуется `py-tlsh`.

Хеширование выполняется как запланированная фоновая задача `hash-payloads` (см.
`src/tasks/hash_payloads.py`), которая хеширует каждую захваченную атаку один раз — новые
попадания во время приёма и однократный обратный проход по существующей истории,
отслеживаемый высоководной отметкой `payload_hash_watermark` — затем кластеризует
дайджесты в кампании повторяющихся паттернов.

| Переменная окружения | Описание | По умолчанию |
|----------------------|-------------|---------|
| `KRAWL_TLSH_ENABLED` | Хешировать загруженные файлы и помеченные тела запросов с помощью TLSH для кластеризации почти идентичных | `true` |
| `KRAWL_TLSH_CLUSTER_THRESHOLD` | Расстояние TLSH, ниже которого полезная нагрузка присоединяется к существующей кампании (0 = идентичные байты; варианты веб-шелла обычно различаются < 100) | `150` |
| `KRAWL_TLSH_CAMPAIGN_MIN_EVENTS` | Сколько раз должна встретиться полезная нагрузка, прежде чем её кампания появится на вкладке Threats | `10` |
| `KRAWL_REFERER_ENABLED` | Записывать входящий HTTP Referer в журналах доступа для отслеживания цепочек приманок | `true` |

</details>

<details>
<summary><b>Банлист и игнорируемые IP</b> (4 переменные)</summary>

Обмен банлистами с другими экземплярами и трафик, который никогда не отслеживается.
```

---

[Read more](https://github.com/blessedrebus/krawl)
Скачать инструмент