OpenCTI 6.9.29 — Deployment Guide
Для кого этот документ: клиенты, внедряющие OpenCTI с подключением коннекторов Cyber Threat Tech (CTT). Здесь описана готовая конфигурация Docker Compose, порядок запуска и детальные параметры каждого коннектора.
Содержание
- OpenCTI 6.9.29 — Deployment Guide
Выбор совместимой версии коннекторов
Коннекторы CTT выпускаются двумя линиями образов, которые вместе покрывают весь диапазон OpenCTI 6.4.0 – 6.9.x. Все 7 коннекторов используют одну и ту же схему тегов, поэтому достаточно один раз задать версию в .env — она применится ко всем коннекторам.
Таблица соответствия
| Версия вашей платформы OpenCTI | Тег образа (CTT_CONNECTOR_VERSION) |
Линия |
|---|---|---|
| 6.4.0 – 6.8.13 | 6.4.0 |
legacy (до connectors-SDK) |
| 6.8.14 – 6.9.x | актуальная версия 6.9.x, напр. 6.9.29 |
current |
| — | latest |
всегда новейшая выпущенная версия |
Граница проходит по 6.8.14: начиная с этой версии OpenCTI ввёл новый механизм конфигурирования коннекторов (connectors-SDK). Legacy-образ (тег 6.4.0) рассчитан на все платформы ниже этой границы; для 6.8.14 и новее берите тег, соответствующий вашей версии.
Как выбрать тег — по шагам
- Узнайте версию своей платформы. В интерфейсе OpenCTI: Settings → About, либо из образа в
docker-compose: значениеopencti/platform:<версия>. В этом стенде версия платформы задаётся переменнойOPENCTI_VERSIONв.env. - Сопоставьте её с таблицей выше и определите нужный тег.
- Пропишите тег в
.env:- платформа 6.4.0 – 6.8.13 →
CTT_CONNECTOR_VERSION=6.4.0; - платформа 6.8.14 – 6.9.x →
CTT_CONNECTOR_VERSION=6.9.29(или иной доступный тег линии 6.9.x, ближайший к вашей версии). В этом стенде по умолчаниюCTT_CONNECTOR_VERSION=${OPENCTI_VERSION}— то есть тег коннекторов совпадает с версией платформы; для платформ 6.4.0 – 6.8.13 задайте6.4.0явно.
- платформа 6.4.0 – 6.8.13 →
- Перезапустите коннекторы:
docker compose up -d.
Частые вопросы
- У меня OpenCTI 6.7.x / 6.8.5 — какой тег?
6.4.0(это весь диапазон 6.4.0 – 6.8.13). - У меня 6.8.14 или 6.9.x, но нет тега ровно под мою версию. Возьмите ближайший доступный тег линии 6.9.x (например
6.9.29) — он совместим в пределах текущей линии. - Что значит
latest? Указывает на новейшую выпущенную линию; переиздание старой линии (6.4.0) его не перетирает. Для воспроизводимости в проде закрепляйте конкретный тег, а неlatest.
Та же таблица продублирована в README каждого коннектора.
Архитектура
Данный деплой разворачивает 22 сервиса в одном Docker Compose стеке:
┌─────────────────────────────────────────────────────────────────────┐
│ ИНФРАСТРУКТУРА │
│ Redis 7.4.1 │ Elasticsearch 8.17.1 │ MinIO │ RabbitMQ 4.0 │
├─────────────────────────────────────────────────────────────────────┤
│ ПЛАТФОРМА OPENCTI │
│ opencti/platform:6.9.29 │ opencti/worker:6.9.29 (×3) │
├───────────────────────┬─────────────────────────────────────────────┤
│ ВСТРОЕННЫЕ │ ПУБЛИЧНЫЕ │ CTT (ПЛАТНЫЕ) │
│ КОННЕКТОРЫ │ КОННЕКТОРЫ │ КОННЕКТОРЫ │
│ ───────────────── │ ───────────────────── │ ─────────────── │
│ export-file-stix │ MITRE ATT&CK │ ThreatKB │
│ export-file-csv │ OpenCTI Datasets │ Report Hub │
│ export-file-txt │ CISA KEV │ Incident Hub │
│ import-file-stix │ │ Threat Feed │
│ import-document │ │ WHOIS API │
│ analysis │ │ Noise Control │
│ │ │ IoC Lookup │
└───────────────────────┴─────────────────────────┴───────────────────┘
Тип коннекторов CTT: EXTERNAL_IMPORT (ThreatKB, Report Hub, Incident Hub, Threat Feed) и INTERNAL_ENRICHMENT (WHOIS API, Noise Control, IoC Lookup).
Предварительные требования
| Требование | Описание |
|---|---|
| Docker | версия 24.x или выше |
| Docker Compose | версия 2.x (docker compose без дефиса) |
| Оперативная память | минимум 16 ГБ (рекомендуется 32 ГБ) |
| Дисковое пространство | минимум 50 ГБ для томов Elasticsearch и MinIO |
| vm.max_map_count | не менее 1 048 575 (требование Elasticsearch) |
| API-ключи CTT | получить у <info@cyberthreattech.ru> |
Настройка vm.max_map_count
Linux / WSL2:
sudo sysctl -w vm.max_map_count=1048575
# Чтобы сохранить после перезагрузки:
echo "vm.max_map_count=1048575" | sudo tee -a /etc/sysctl.conf
Windows (WSL2 — через .wslconfig):
# %UserProfile%\.wslconfig
[wsl2]
kernelCommandLine=sysctl.vm.max_map_count=1048575
Быстрый старт
1. Подготовьте файл окружения
Рекомендуемый способ — интерактивный мастер настройки Setup Wizard. Он создаёт или обновляет .env, генерирует секреты, предлагает выбрать CTT-коннекторы чекбоксами, запрашивает API-ключи только для выбранных, валидирует ввод и при необходимости позволяет изменить расширенные параметры.
Linux / WSL2 / macOS:
chmod +x setup.sh
./setup.sh
Windows PowerShell:
.\setup.ps1
Включённые CTT-коннекторы записываются в COMPOSE_PROFILES. После настройки обычный docker compose up -d поднимет инфраструктуру, OpenCTI, стандартные/публичные коннекторы и только выбранные CTT-коннекторы.
Ручной способ всё ещё поддерживается:
cp .env.sample .env
Откройте .env и заполните все значения ChangeMe. Обязательные параметры:
| Параметр | Что нужно сделать |
|---|---|
MINIO_ROOT_USER / MINIO_ROOT_PASSWORD |
Сгенерировать UUID: python3 -c "import uuid; print(uuid.uuid4())" |
OPENCTI_ADMIN_PASSWORD |
Установить надёжный пароль |
OPENCTI_ADMIN_TOKEN |
Уникальный UUIDv4 |
OPENCTI_ENCRYPTION_KEY |
openssl rand -base64 32 |
CTT_*_API_KEY |
API-ключи, полученные от CTT |
2. Запустите стек
# Если .env подготовлен интерактивным конфигуратором
docker compose up -d
При ручной настройке .env можно запускать сервисы по этапам:
# Запуск инфраструктуры, OpenCTI, worker и стандартных коннекторов
docker compose up -d redis elasticsearch minio rabbitmq opencti worker connector-export-file-stix connector-export-file-csv connector-export-file-txt connector-import-file-stix connector-import-document connector-analysis connector-mitre connector-opencti connector-cisa-known-exploited-vulnerabilities
# После первичного импорта публичных данных — запустите CTT-коннекторы первого этапа:
docker compose up -d connector-ctt-threatkb connector-ctt-report-hub \
connector-ctt-incident-hub
# После первичного наполнения базы знаний и отчетов — запустите поток IoC и обогащение:
docker compose up -d connector-ctt-threat-feed connector-ctt-ioc-lookup \
connector-ctt-whois-api connector-ctt-noise-control
Совет:
docker composeдождётся healthcheck-зависимостей перед запуском OpenCTI, worker и коннекторов. Проверить готовность сервисов можно командойdocker compose ps.
3. Проверьте работу
# Статус всех сервисов
docker compose ps
# Логи конкретного коннектора
docker compose logs -f connector-ctt-threatkb
OpenCTI будет доступен по адресу: http://localhost:8080
Setup Wizard (setup.sh / setup.ps1)
Интерактивный мастер настройки развёртывания. Один скрипт делает всё, что нужно перед первым docker compose up -d:
- читает
.env.sampleкак baseline и.envкак пользовательский слой; - генерирует криптостойкие секреты вместо placeholder-ов
ChangeMe*(MINIO_ROOT_*,RABBITMQ_DEFAULT_PASS,OPENCTI_SESSION_SECRET,OPENCTI_ADMIN_TOKEN,OPENCTI_HEALTHCHECK_ACCESS_KEY,OPENCTI_ENCRYPTION_KEY); - спрашивает базовые параметры платформы (URL, порт, e-mail админа, пароль, память JVM, число worker-ов);
- предлагает чекбокс-меню для выбора семи CTT-коннекторов;
- запрашивает API-ключи только для выбранных коннекторов;
- позволяет настроить общие параметры CTT (дата начала импорта, язык, лог-уровень) и опционально — расширенные параметры каждого коннектора и интервалы публичных коннекторов;
- валидирует каждое значение (URL, e-mail, порт, число, ISO 8601, YYYYMMDD, размер памяти, score 0–100);
- показывает итоговую сводку и просит подтвердить запись;
- пишет
.env, всегда используя.env.sampleкак структурный шаблон — это сохраняет комментарии и подтягивает новые ключи при обновлении репозитория.
Один и тот же data-driven каталог коннекторов используется для всех экранов: меню, API-ключи, расширенные параметры. Добавление нового коннектора правится в одном месте и в setup.sh, и в setup.ps1.
Экраны мастера
╔══════════════════════════════════════════════════════════════════╗
║ ║
║ CTT × OpenCTI — Setup Wizard ║
║ Cyber Threat Tech · OpenCTI 6.9.29 · v2.0 ║
║ ║
╚══════════════════════════════════════════════════════════════════╝
[1/4] ▸ Основные параметры платформы
──────────────────────────────────────────────────────────────────
Публичный URL OpenCTI [http://localhost:8080]:
Адрес прослушивания [0.0.0.0]:
Порт OpenCTI [8080]:
Email администратора [admin@opencti.io]:
Пароль администратора:
…
[2/4] ▸ Выбор CTT-коннекторов
──────────────────────────────────────────────────────────────────
↑/↓ или j/k — навигация · Space — переключить · Enter — далее
▸ [✓] ThreatKB база знаний APT, кампаний и ВПО
[✓] Report Hub отчёты, статьи и PDF в STIX
[✓] Incident Hub структурированные инциденты ИБ
[ ] Threat Feed поток IoC: IP, домены, URL, хэши
[ ] WHOIS API обогащение доменов WHOIS/RDAP
[ ] Noise Control снижение score шумных IoC
[ ] IoC Lookup обогащение IoC оценками и атрибуцией
[3/4] ▸ Параметры CTT
──────────────────────────────────────────────────────────────────
⚙ Общие параметры CTT
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
Дата начала импорта (YYYYMMDD) [20260101]:
Язык данных (eng,ru) [eng]:
Уровень логов (debug,info,warn,error) [info]:
⚙ API-ключи выбранных коннекторов
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
ThreatKB API key:
…
Настроить расширенные параметры выбранных коннекторов? [y/N]:
[4/4] ▸ Сводка
──────────────────────────────────────────────────────────────────
┌─ Платформа
│ URL http://localhost:8080
│ Listen 0.0.0.0:8080
│ Admin admin@opencti.io
│ ES память 4G
│ Workers 3
├─ Общие параметры CTT
│ Дата импорта 20260101
│ Язык eng
│ Лог-уровень info
├─ Активные CTT-коннекторы
│ ✓ ThreatKB ✓ ключ задан
│ ✓ Report Hub ✓ ключ задан
│ ✓ Incident Hub ✓ ключ задан
└─ Файл окружения
/path/to/.env
Применить настройки и записать .env? [Y/n]:
Флаги командной строки
| Флаг (bash) | Флаг (PowerShell) | Назначение |
|---|---|---|
--defaults |
-Defaults |
Применить дефолты из .env.sample, сгенерировать недостающие секреты и выйти. Без интерактива. |
--dry-run |
-DryRun |
Показать итоговую сводку и/или содержимое .env, но не записывать файл. |
-h, --help |
-Help |
Показать справку. |
Флаги можно сочетать: ./setup.sh --defaults --dry-run покажет, что было бы записано при автоматическом применении дефолтов.
Типовые сценарии:
# Первая установка — интерактивный мастер
./setup.sh
# CI / автоматизация — без вопросов, с дефолтами из .env.sample
./setup.sh --defaults
# Проверка перед записью
./setup.sh --dry-run
Поведение при повторном запуске
- Уже заданные значения становятся дефолтами в prompts — нажать Enter, чтобы оставить как есть.
- Сгенерированные секреты не перезаписываются: если значение уже не
ChangeMe*, оно сохраняется. - Чекбокс-меню коннекторов восстанавливает текущий выбор из
COMPOSE_PROFILES. Если вы намеренно сняли коннектор — повторный запуск уважает ваш выбор (дефолты включаются только при полностью пустомCOMPOSE_PROFILES, т.е. при самом первом запуске). - API-ключи выбранных коннекторов помечены как «уже задан» — Enter, чтобы оставить.
Слой .env.sample + .env
Мастер всегда читает оба файла в таком порядке:
.env.sample— baseline. Все ключи, которые появились в новой версии репозитория, попадают в память..env— пользовательский слой. Перетирает значения baseline там, где они уже заданы.
При записи .env мастер всегда берёт за основу .env.sample (с его комментариями и разделителями), затем подставляет значения из памяти. Это значит:
- При обновлении репозитория
git pullпринесёт новые ключи в.env.sample, и следующий запуск мастера автоматически добавит их в.env(с дефолтным или интерактивно заданным значением). - Комментарии и структура
.envвсегда соответствуют актуальному.env.sample— устаревшие подсказки не накапливаются.
Валидация значений
Каждый prompt привязан к валидатору:
| Поле | Формат |
|---|---|
OPENCTI_BASE_URL, *_API_BASE_URL |
http(s)://… |
OPENCTI_APP_PORT |
целое 1–65535 |
OPENCTI_ADMIN_EMAIL |
RFC-совместимый e-mail |
ELASTIC_MEMORY_SIZE |
2G, 4G, 8G, 512M |
CTT_*_IMPORT_START_DATE |
YYYYMMDD или пусто |
CONNECTOR_*_DURATION_PERIOD, *_OVERLAP |
ISO 8601 (PT1H, P1D, …) |
CTT_THREAT_FEED_LATEST |
1h / 4h / 12h / day |
CTT_THREAT_FEED_MIN_SCORE_* |
0–100 |
CTT_IOC_LOOKUP_DETECTION_FLAG_THRESHOLD |
0–100 |
CTT_LANGUAGE |
eng / ru |
CONNECTOR_CTT_LOG_LEVEL |
debug / info / warn / error |
Ввод вне допустимого формата сопровождается понятным сообщением и повторным запросом.
Troubleshooting
- «Cannot find .env.sample near this script.» — запустите скрипт из корня репозитория или передайте абсолютный путь:
/path/to/setup.sh. - Меню коннекторов рисуется ломаными символами — терминал не поддерживает UTF-8 или цветовые escape-последовательности. Перейдите на современный эмулятор (iTerm2, Windows Terminal, GNOME Terminal, Alacritty).
- PowerShell ругается на политику исполнения — однократно:
powershell -ExecutionPolicy Bypass -File .\setup.ps1или глобальноSet-ExecutionPolicy -Scope CurrentUser RemoteSigned. - Хочу сбросить всё к дефолтам — удалите
.envи запустите./setup.sh --defaults(или--dry-runдля preview). - Случайно ввёл пароль с пробелом / переносом строки — secure-ввод обрезает CR, но не пробелы; перезапустите prompt (Ctrl-C → повторный запуск мастера; уже заданный пароль покажется как «уже задан, Enter — оставить», просто введите новое значение).
Docker Swarm Stack
Для production-развёртывания в Docker Swarm добавлен файл docker-stack.yml. Он использует overlay-сеть, Swarm configs для rabbitmq.conf, deploy-политики restart/update/rollback, resource reservations/limits, health checks, лог-ротацию и placement constraints для разделения stateful и application-сервисов.
Рекомендуемый способ — скрипт деплоя
./swarm-deploy.sh # Linux/macOS
.\swarm-deploy.ps1 # Windows (PowerShell)
Скрипт берёт на себя то, об что обычно спотыкаются:
- грузит
.envв окружение и отдаётdocker-stack.ymlнапрямую вdocker stack deploy, который сам разворачивает${VAR}и дефолты вроде${CTT_CONNECTOR_VERSION:-${OPENCTI_VERSION}}(через compose-рендер деплой НЕ идёт: его нормализатор типов ломает Swarm-валидатор —cpus must be a string,mode must be a number,published must be an integer); - проверяет, что узел в режиме Swarm, и при необходимости предлагает
docker swarm init; - проверяет node labels из placement constraints (
opencti.app,opencti.storage) и в single-node Swarm назначает их автоматически, а в мультинодовом — подсказывает команды; - деплоит с
--with-registry-auth(нужно для приватного реестра CTT-коннекторов).
Полезные флаги: --dry-run (показать превью стека через compose config без деплоя), --stack NAME (имя стека, по умолчанию ctt-opencti).
На production-кластере stateful-сервисы (
redis,elasticsearch,minio,rabbitmq) должны запускаться на нодах с устойчивым диском или shared volume driver — иначе named volumes Docker будут локальными для конкретной ноды. Назначьтеopencti.storage=trueименно таким нодам вручную.
Ручной деплой (если не использовать скрипт)
docker swarm init
docker node update --label-add opencti.storage=true <node-name>
docker node update --label-add opencti.app=true <node-name>
# docker stack deploy не читает .env — грузим переменные в окружение,
# и docker сам подставит ${VAR} в docker-stack.yml при деплое:
set -a; . ./.env; set +a
docker stack deploy --with-registry-auth -c docker-stack.yml ctt-opencti
Проверка состояния:
docker stack services ctt-opencti
docker stack ps ctt-opencti
docker service logs -f ctt-opencti_opencti
В docker-stack.yml реплики заданы так:
| Группа сервисов | Поведение по умолчанию |
|---|---|
| Инфраструктура, OpenCTI | replicas=1 |
| Worker | ${OPENCTI_WORKER_REPLICAS:-3} |
| Встроенные и публичные коннекторы | replicas=1 |
| CTT-коннекторы | ${CONNECTOR_CTT_<NAME>_REPLICAS:-${CONNECTOR_CTT_REPLICAS_DEFAULT:-0}} |
Каждый CTT-коннектор управляется своей переменной реплик (CONNECTOR_CTT_THREATKB_REPLICAS, …_REPORTHUB_REPLICAS, …_INCIDENTHUB_REPLICAS, …_THREATFEED_REPLICAS, …_WHOISAPI_REPLICAS, …_NOISECONTROL_REPLICAS, …_IOCLOOKUP_REPLICAS). Эти переменные заполняет setup.sh / setup.ps1 из выбора коннекторов: выбранный → 1, не выбранный → 0. То есть тот же выбор в мастере, что управляет COMPOSE_PROFILES для docker compose, теперь управляет и репликами в Swarm. Если переменная коннектора не задана, применяется общий CONNECTOR_CTT_REPLICAS_DEFAULT (по умолчанию 0).
Стандартные и публичные коннекторы стартуют сразу. Включить/выключить CTT-коннекторы можно тремя способами: (1) перезапустить мастер и заново развернуть стек, (2) вручную выставить нужные CONNECTOR_CTT_<NAME>_REPLICAS в .env и пере-развернуть, либо (3) поэтапно через docker service scale:
docker service scale \
ctt-opencti_connector-ctt-threatkb=0 \
ctt-opencti_connector-ctt-report-hub=0 \
ctt-opencti_connector-ctt-incident-hub=0 \
ctt-opencti_connector-ctt-threat-feed=0 \
ctt-opencti_connector-ctt-ioc-lookup=0 \
ctt-opencti_connector-ctt-whois-api=0 \
ctt-opencti_connector-ctt-noise-control=0
# Этап 1: база знаний, отчёты и инциденты
docker service scale \
ctt-opencti_connector-ctt-threatkb=1 \
ctt-opencti_connector-ctt-report-hub=1 \
ctt-opencti_connector-ctt-incident-hub=1
# Этап 2: поток IoC и обогащение
docker service scale \
ctt-opencti_connector-ctt-threat-feed=1 \
ctt-opencti_connector-ctt-ioc-lookup=1 \
ctt-opencti_connector-ctt-whois-api=1 \
ctt-opencti_connector-ctt-noise-control=1
Важно: Swarm игнорирует
depends_on, поэтому readiness обеспечивается healthcheck/restart policy и staged rollout. Чтобы включить конкретные CTT-коннекторы при пере-развёртывании, задайте ихCONNECTOR_CTT_<NAME>_REPLICAS=1(это делает мастерsetup.sh/setup.ps1автоматически по вашему выбору) либо включите все разом черезCONNECTOR_CTT_REPLICAS_DEFAULT=1, затем повторно запустите./swarm-deploy.sh(он заново отрендерит стек с актуальным.envи применит изменения). Для первичного импорта MITRE/CISA при большом количестве связей можно временно снизить workers до одного:docker service scale ctt-opencti_worker=1, а после завершения импорта вернутьctt-opencti_worker=3.
Публичные коннекторы
Публичные коннекторы поставляются от OpenCTI Platform и не требуют дополнительных API-ключей. Они служат базовым наполнением платформы таксономиями и фреймворками — рекомендуется запускать их первыми.
MITRE ATT&CK
Импортирует актуальную базу знаний MITRE ATT&CK: группы угроз, техники и тактики (TTP), инструменты, вредоносное ПО и отношения между ними. Является базовым источником таксономии для всех CTT-коннекторов.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_UPDATE_EXISTING_DATA |
❌ | false |
Обновлять существующие объекты |
MITRE_INTERVAL |
❌ | 7 |
Интервал обновления в днях |
OpenCTI Datasets
Загружает базовые справочные наборы данных платформы: страны, регионы, секторы экономики, стандартные метки TLP, словарь CVE-кластеров и другие общие объекты. Без этого коннектора часть объектов в других коннекторах может не разрешиться корректно.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_UPDATE_EXISTING_DATA |
❌ | false |
Обновлять существующие объекты |
CONFIG_INTERVAL |
❌ | 7 |
Интервал обновления в днях |
CISA Known Exploited Vulnerabilities
Синхронизирует каталог CISA KEV — список уязвимостей, активно эксплуатируемых в реальных атаках, с указанием дедлайна по патчингу для государственных организаций США. Полезен для приоритизации работы с CVE.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_UPDATE_EXISTING_DATA |
❌ | false |
Обновлять существующие объекты |
CISA_CATALOG_URL |
❌ | официальный URL CISA | URL JSON-каталога CISA KEV |
CISA_CREATE_INFRASTRUCTURES |
❌ | false |
Создавать объекты Infrastructure |
CISA_TLP |
❌ | TLP:CLEAR |
Уровень TLP для объектов |
CISA_INTERVAL |
❌ | 2 |
Интервал обновления в днях |
CTT коннекторы
Коннекторы Cyber Threat Tech предоставляются в виде Docker-образов. Для их использования необходим API-ключ — обратитесь по адресу info@cyberthreattech.ru.
Важно: CTT-коннекторы типа
EXTERNAL_IMPORT(ThreatKB, Report Hub, Incident Hub, Threat Feed) наполняют базу знаний. Коннекторы типаINTERNAL_ENRICHMENT(WHOIS API, Noise Control, IoC Lookup) обогащают уже существующие объекты в OpenCTI — их следует запускать после первичного наполнения.
ThreatKB
Тип: EXTERNAL_IMPORT | Образ: registry.gitflic.ru/project/ctt/ctt_threatkb_connector/connector-ctt-threatkb:latest
Автоматически загружает в OpenCTI структурированную базу знаний об угрозах: APT-группировки, кибершпионские кампании, вредоносное ПО и инструменты атакующих. Данные формируются на основе Threat Intelligence отчётов и предоставляются в формате STIX 2.1 на русском и английском языках. При каждом запуске загружаются только объекты, изменившиеся с момента предыдущего импорта.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
❌ | ThreatKB Connector |
Отображаемое имя |
CONNECTOR_SCOPE |
✅ | objects |
Тип импортируемых данных |
CONNECTOR_LOG_LEVEL |
❌ | error |
Уровень логов: debug, info, warn, error |
CONNECTOR_DURATION_PERIOD |
❌ | PT1H |
Интервал между запусками (ISO 8601) |
CONNECTOR_UPDATE_EXISTING_DATA |
❌ | false |
Обновлять существующие объекты |
THREATKB_API_BASE_URL |
✅ | — | https://api.cyberthreattech.ru/v2 |
THREATKB_API_KEY |
❌ | — | API-ключ CTT ThreatKB |
THREATKB_IMPORT_START_DATE |
✅ | — | Начальная дата импорта, формат YYYYMMDD |
THREATKB_LANGUAGE |
❌ | eng |
Язык данных: eng или ru |
THREATKB_READ_TIMEOUT |
❌ | 60 |
Таймаут чтения ответа API (сек), мин. 15 |
THREATKB_RETRY_DELAY |
❌ | 30 |
Задержка перед повторной попыткой (сек) |
THREATKB_RETRY_ATTEMPTS |
❌ | 3 |
Количество повторных попыток |
THREATKB_IMPORT_OVERLAP |
❌ | PT10M |
Перекрытие временных окон импорта (ISO 8601) |
THREATKB_IMPORT_SAFETY_DELAY |
❌ | PT1M |
Задержка от верхней границы окна (ISO 8601) |
THREATKB_LABELS_USE_PREFIX |
❌ | false |
Добавлять префикс к меткам |
THREATKB_LABELS_DISABLED |
❌ | — | Метки (через запятую); объект с такой меткой не импортируется |
THREATKB_LABELS_ADD |
❌ | — | Метки (через запятую), добавляемые ко всем импортируемым объектам |
THREATKB_MAIN_PREFIX |
❌ | ctt |
Основной префикс меток при THREATKB_LABELS_USE_PREFIX=true (по умолчанию из src/label_prefixes.yml) |
THREATKB_PREVENT_USER_DATA_OVERWRITE |
❌ | false |
Не перезаписывать объекты OpenCTI без маркерной метки коннектора |
THREATKB_OWNERSHIP_MARKER_LABEL |
❌ | threatkb |
Базовая метка владения; действует при THREATKB_PREVENT_USER_DATA_OVERWRITE=true |
Продвинутый параметр.
THREATKB_PREFIX_CATEGORIES— карта «метка → категория префикса». Обычно загружается изsrc/label_prefixes.ymlвнутри образа коннектора; задавать вручную стоит только при необходимости полностью переопределить встроенную карту категорий, поэтому в.env/Compose он не выведен.
Report Hub
Тип: EXTERNAL_IMPORT | Образ: registry.gitflic.ru/project/ctt/ctt_report_hub_connector/connector-ctt-report-hub:latest
Интегрирует в OpenCTI APT-отчёты, блоги и статьи от государственных организаций, компаний в сфере ИБ, исследовательских групп и отдельных авторов. CTT автоматически конвертирует человекочитаемые тексты в STIX 2.1 — с извлечёнными объектами (группировки, кампании, ВПО, TTP, CVE, IoC) и PDF-версией каждого отчёта. Псевдонимы одних и тех же угроз автоматически сопоставляются в единые сущности.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
✅ | — | Отображаемое имя коннектора |
CONNECTOR_SCOPE |
✅ | application/json,application/pdf |
MIME-типы импортируемых данных |
CONNECTOR_LOG_LEVEL |
✅ | info |
Уровень логов |
CONNECTOR_UPDATE_EXISTING_DATA |
❌ | false |
Обновлять существующие объекты |
CTT_REPORT_HUB_BASE_URL |
❌ | https://api.cyberthreattech.ru/v1 |
Базовый URL API |
CTT_REPORT_HUB_API_KEY |
✅ | — | API-ключ CTT Report Hub |
CTT_REPORT_HUB_IMPORT_START_DATE |
❌ | 7 дней назад | Начальная дата, формат YYYYMMDD |
CTT_REPORT_HUB_LANGUAGE |
❌ | eng |
Язык данных: eng или ru |
CTT_REPORT_HUB_FETCH_INTERVAL |
❌ | 300 |
Интервал опроса API (сек) |
CTT_REPORT_HUB_CONNECTION_TIMEOUT |
❌ | 30 |
Таймаут подключения к API (сек) |
CTT_REPORT_HUB_READ_TIMEOUT |
❌ | 60 |
Таймаут чтения ответа API (сек) |
CTT_REPORT_HUB_RETRY_DELAY |
❌ | 30 |
Задержка перед повторной попыткой (сек) |
CTT_REPORT_HUB_RETRY_ATTEMPTS |
❌ | 5 |
Количество повторных попыток |
CTT_REPORT_HUB_CREATE_OBSERVABLES |
❌ | false |
Создавать Observables в дополнение к Indicators |
CTT_REPORT_HUB_CREATE_RELATED_TO |
❌ | true |
Создавать связи related-to |
CTT_REPORT_HUB_CREATE_CUSTOM_TTPS |
❌ | true |
Создавать пользовательские Attack Patterns (не из MITRE) |
CTT_REPORT_HUB_SET_DETECTION_FLAG |
❌ | false |
Помечать индикаторы из отчётов как готовые к детектированию |
CTT_REPORT_HUB_LABELS_USE_PREFIX |
❌ | false |
Добавлять префикс к меткам |
CTT_REPORT_HUB_REPORT_LABELS_DISABLED |
❌ | — | Метки (через запятую); отчёт с такой меткой не импортируется |
Incident Hub
Тип: EXTERNAL_IMPORT | Образ: registry.gitflic.ru/project/ctt/ctt_incidenthub_connector/connector-ctt-incident-hub:latest
Интегрирует структурированные данные об инцидентах кибербезопасности из множества источников: отчёты об инцидентах, публикации государственных органов, материалы вендоров и исследовательских групп. Создаёт в OpenCTI объекты Incident, Note и Identity с перекрёстными связями. Организации, упомянутые в разных источниках, нормализуются в единые объекты для корреляции.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
✅ | — | Отображаемое имя |
CONNECTOR_SCOPE |
✅ | application/json |
MIME-тип импортируемых данных |
CONNECTOR_LOG_LEVEL |
✅ | info |
Уровень логов |
CONNECTOR_DURATION_PERIOD |
✅ | PT1H |
Интервал между запусками (ISO 8601) |
CONNECTOR_UPDATE_EXISTING_DATA |
❌ | true |
Обновлять существующие объекты |
INCIDENTHUB_API_BASE_URL |
✅ | — | https://api.cyberthreattech.ru/v1 |
INCIDENTHUB_API_KEY |
✅ | — | API-ключ CTT Incident Hub |
INCIDENTHUB_IMPORT_START_DATE |
❌ | 7 дней назад | Начальная дата, формат YYYYMMDD |
INCIDENTHUB_LANGUAGE |
❌ | eng |
Язык данных: eng или ru |
INCIDENTHUB_READ_TIMEOUT |
❌ | 60 |
Таймаут чтения ответа API (сек) |
INCIDENTHUB_RETRY_DELAY |
❌ | 30 |
Задержка перед повторной попыткой (сек) |
INCIDENTHUB_RETRY_ATTEMPTS |
❌ | 5 |
Количество повторных попыток |
INCIDENTHUB_LABELS_USE_PREFIX |
❌ | false |
Добавлять префикс к меткам |
INCIDENTHUB_LABELS_DISABLED |
❌ | — | Метки (через запятую); объект с такой меткой не импортируется |
INCIDENTHUB_LABELS_ADD |
❌ | — | Метки (через запятую), добавляемые ко всем импортируемым объектам |
Threat Feed
Тип: EXTERNAL_IMPORT | Образ: registry.gitflic.ru/project/ctt/ctt_threat_feed_connector/connector-ctt-threat-feed:latest
Импортирует высокоскоростной поток индикаторов компрометации (IP, домены, URL, файловые хеши) с контекстом: категория угрозы, название ВПО, Threat Actor, инструменты, TTP, CVE, отраслевые теги. Лента содержит около 200 000 индикаторов ежедневно с индивидуальным score для каждого. Поддерживает гибкую настройку порогов для детектирования и импорта.
Пороги score: 0–20 — вероятно ложные срабатывания; 45+ — для использования в SIEM; 55+ — для активной блокировки.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
✅ | — | Отображаемое имя |
CONNECTOR_SCOPE |
✅ | application/json |
MIME-тип импортируемых данных |
CONNECTOR_LOG_LEVEL |
✅ | info |
Уровень логов |
CTT_THREAT_FEED_API_KEY |
✅ | — | API-ключ CTT Threat Feed |
CTT_THREAT_FEED_BASEURL |
❌ | https://api.cyberthreattech.ru/v1 |
Базовый URL API |
CTT_THREAT_FEED_SSL_VERIFY |
❌ | true |
Проверять SSL-сертификат |
CTT_THREAT_FEED_IP |
❌ | true |
Импортировать индикаторы по IP |
CTT_THREAT_FEED_DOMAIN |
❌ | true |
Импортировать индикаторы по доменам |
CTT_THREAT_FEED_URL |
❌ | true |
Импортировать индикаторы по URL |
CTT_THREAT_FEED_HASH |
❌ | true |
Импортировать индикаторы по файловым хешам |
CTT_THREAT_FEED_LATEST |
❌ | day |
Период ленты: 1h, 4h, 12h или day |
CTT_THREAT_FEED_MIN_SCORE_IMPORT |
❌ | 20 |
Минимальный score для импорта |
CTT_THREAT_FEED_MIN_SCORE_DETECTION_IP |
❌ | 45 |
Порог score для флага детектирования — IP |
CTT_THREAT_FEED_MIN_SCORE_DETECTION_DOMAIN |
❌ | 45 |
Порог score для флага детектирования — Domain |
CTT_THREAT_FEED_MIN_SCORE_DETECTION_URL |
❌ | 45 |
Порог score для флага детектирования — URL |
CTT_THREAT_FEED_MIN_SCORE_DETECTION_HASH |
❌ | 45 |
Порог score для флага детектирования — Hash |
CTT_THREAT_FEED_ONLY_NEW |
❌ | true |
Импортировать только новые индикаторы |
CTT_THREAT_FEED_ONLY_ATTRIBUTED |
❌ | false |
Только атрибутированные индикаторы |
CTT_THREAT_FEED_CREATE_CUSTOM_TTPS |
❌ | true |
Создавать пользовательские Attack Patterns |
CTT_THREAT_FEED_CREATE_MITRE_TTPS |
❌ | false |
Создавать связи с MITRE ATT&CK TTP |
CTT_THREAT_FEED_KEEP_NAMED_VULNS |
❌ | true |
Создавать именованные уязвимости отдельно от CVE |
CTT_THREAT_FEED_INTERVAL |
❌ | 86400 |
Интервал опроса (сек); 3600 для ежечасного режима |
CTT_THREAT_FEED_CONTIMEOUT |
❌ | 30 |
Таймаут подключения к API (сек) |
CTT_THREAT_FEED_READTIMEOUT |
❌ | 120 |
Таймаут чтения из S3 (сек), увеличьте при медленном канале |
CTT_THREAT_FEED_RETRY |
❌ | 2 |
Количество попыток загрузки ленты |
CTT_THREAT_FEED_MAX_RETRIES |
❌ | 3 |
Максимум повторов при отправке в OpenCTI |
CTT_THREAT_FEED_RETRY_DELAY |
❌ | 10 |
Начальная задержка перед повтором (сек) |
CTT_THREAT_FEED_RETRY_BACKOFF_MULTIPLIER |
❌ | 2.0 |
Множитель экспоненциального backoff |
WHOIS API
Тип: INTERNAL_ENRICHMENT | Образ: registry.gitflic.ru/project/ctt/ctt_whois_api_connector/connector-ctt-whois-api:latest
Обогащает объекты типов Domain-Name, URL и Indicator данными о регистрации доменов через WHOIS/RDAP. Автоматически определяет нужный протокол, обрабатывает поддомены (извлекает эффективный TLD), не создаёт нагрузку на публичные WHOIS-серверы. Результат записывается в описание объекта или в отдельную заметку (Note).
Коннектор работает в режиме on-demand обогащения — запускается вручную через интерфейс OpenCTI, автоматически (при
CONNECTOR_AUTO=true) или через Playbooks.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
✅ | — | Отображаемое имя |
CONNECTOR_SCOPE |
✅ | Domain-Name,Url,indicator |
Типы объектов для обогащения |
CONNECTOR_AUTO |
❌ | false |
Автообогащение при появлении объекта |
CONNECTOR_LOG_LEVEL |
✅ | info |
Уровень логов |
CTT_WHOIS_API_API_KEY |
✅ | — | API-ключ CTT WHOIS |
CTT_WHOIS_API_BASE_URL |
❌ | https://api.cyberthreattech.ru/v1 |
Базовый URL API |
CTT_WHOIS_API_MAX_TLP |
❌ | TLP:AMBER+STRICT |
Максимальный TLP для обогащения |
CTT_WHOIS_API_TIMEOUT |
❌ | 10 |
Таймаут API (сек) |
CTT_WHOIS_API_WHOIS_OUTPUT_OBJECT |
❌ | note |
Куда писать результат: note или description |
CTT_WHOIS_API_UPDATE_OUTPUT_ACTION |
❌ | overwrite |
Режим записи: overwrite или append |
CTT_WHOIS_API_OUTPUT_FORMAT |
❌ | standard |
Формат вывода: standard или extended |
CTT_WHOIS_API_OUTPUT_INCLUDE_RAW |
❌ | false |
Включить сырой WHOIS-ответ |
Noise Control
Тип: INTERNAL_ENRICHMENT | Образ: registry.gitflic.ru/project/ctt/ctt_noise_control_connector/connector-ctt-noise-control:latest
Снижает количество ложных срабатываний, выявляя безопасные и «шумные» индикаторы: публичные DNS-серверы, CDN, легитимные домены, общеизвестные хеши. Для каждого объекта принимает одно из трёх решений и корректирует его score и флаг детектирования.
| Действие | Описание | Изменение score |
|---|---|---|
Not Found |
Объект не является шумовым | без изменений |
Change |
Объект может быть шумовым | −10 (настраивается) |
Drop |
Объект, вероятно, безопасен | −50 (настраивается) |
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
✅ | — | Отображаемое имя |
CONNECTOR_SCOPE |
✅ | IPv4-Addr,Domain-Name,Url,StixFile,indicator |
Типы объектов |
CONNECTOR_AUTO |
❌ | false |
Автообогащение |
CONNECTOR_LOG_LEVEL |
✅ | error |
Уровень логов |
CTT_NOISE_CONTROL_API_KEY |
✅ | — | API-ключ CTT Noise Control |
CTT_NOISE_CONTROL_BASE_URL |
❌ | https://api.cyberthreattech.ru/v1 |
Базовый URL API |
CTT_NOISE_CONTROL_MAX_TLP |
❌ | TLP:AMBER+STRICT |
Максимальный TLP |
CTT_NOISE_CONTROL_UPDATE_CONFIDENCE |
❌ | — | Обновлять Confidence по результату |
CTT_NOISE_CONTROL_UPDATE_SCORE |
❌ | — | Обновлять Score по результату |
CTT_NOISE_CONTROL_CHANGE_ACTION_SCORE_CHANGE |
❌ | 10 |
Величина снижения score для действия Change |
CTT_NOISE_CONTROL_DROP_ACTION_SCORE_CHANGE |
❌ | 50 |
Величина снижения score для действия Drop |
CTT_NOISE_CONTROL_DROP_ACTION_DETECTION_FLAG |
❌ | true |
Снимать флаг детектирования при Drop |
IoC Lookup
Тип: INTERNAL_ENRICHMENT | Образ: registry.gitflic.ru/project/ctt/ctt_ioc_lookup_connector/connector-ctt-ioc_lookup:latest
Обогащает индикаторы (IP, домен, URL, файловые хеши) данными CTT: связанное ВПО, Threat Actors, инструменты, TTP из MITRE ATT&CK, CVE, геолокация и ASN. Обновляет score, confidence и флаг детектирования на основе актуальной threat intelligence. Поддерживает настройку порога для автоматической установки флага детектирования.
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
OPENCTI_URL |
✅ | — | URL платформы OpenCTI |
OPENCTI_TOKEN |
✅ | — | Токен service account коннектора |
CONNECTOR_ID |
✅ | из .env |
Уникальный UUIDv4 |
CONNECTOR_NAME |
✅ | — | Отображаемое имя |
CONNECTOR_SCOPE |
✅ | IPv4-Addr,Domain-Name,Url,StixFile,indicator |
Типы объектов |
CONNECTOR_AUTO |
❌ | false |
Автообогащение |
CONNECTOR_LOG_LEVEL |
✅ | info |
Уровень логов |
CTT_IOC_LOOKUP_API_KEY |
✅ | — | API-ключ CTT IoC Lookup |
CTT_IOC_LOOKUP_BASE_URL |
❌ | https://api.cyberthreattech.ru/v1/ |
Базовый URL API |
CTT_IOC_LOOKUP_MAX_TLP |
✅ | TLP:AMBER+STRICT |
Максимальный TLP для обогащения |
CTT_IOC_LOOKUP_UPDATE_CONFIDENCE |
❌ | true |
Обновлять Confidence |
CTT_IOC_LOOKUP_UPDATE_SCORE |
❌ | true |
Обновлять Score |
CTT_IOC_LOOKUP_UPDATE_VALID_FROM |
❌ | true |
Обновлять valid_from на основе last_seen |
CTT_IOC_LOOKUP_LABEL_FORMAT |
❌ | short |
Формат меток: short или long |
CTT_IOC_LOOKUP_SCORE_TYPE |
❌ | total |
Тип score: last (на момент last_seen) или total |
CTT_IOC_LOOKUP_UPDATE_DESCRIPTION_ACTION |
❌ | — | Режим обновления описания: overwrite, append, prepend |
CTT_IOC_LOOKUP_DETECTION_FLAG_THRESHOLD |
❌ | 45 |
Порог score для установки флага детектирования |
CTT_IOC_LOOKUP_TIMEOUT |
❌ | 10 |
Таймаут API (сек) |
Управление API-ключами CTT
Все API-ключи CTT хранятся в файле .env и передаются в контейнеры через переменные окружения. Файл .env никогда не коммитится в Git (исключён в .gitignore).
# Структура переменных в .env
CTT_THREATKB_API_KEY=<ключ от CTT>
CTT_INCIDENTHUB_API_KEY=<ключ от CTT>
CTT_REPORT_HUB_API_KEY=<ключ от CTT>
CTT_THREAT_FEED_API_KEY=<ключ от CTT>
CTT_WHOIS_API_KEY=<ключ от CTT>
CTT_NOISE_CONTROL_API_KEY=<ключ от CTT>
CTT_IOC_LOOKUP_API_KEY=<ключ от CTT>
Для получения API-ключей обратитесь: info@cyberthreattech.ru
Рекомендуемый порядок запуска коннекторов
Коннекторы имеют зависимости между собой: CTT-коннекторы сопоставляют объекты с таксономиями MITRE и OpenCTI, поэтому публичные коннекторы необходимо запустить первыми и дождаться завершения первичного импорта.
Шаг 1 → MITRE ATT&CK (группы, техники, инструменты)
Шаг 2 → OpenCTI Datasets (страны, секторы, TLP, базовые объекты)
Шаг 3 → CISA KEV (актуальные уязвимости)
↓
Шаг 4 → ThreatKB (APT, кампании, ВПО — база знаний CTT)
Шаг 5 → Report Hub (отчёты, статьи → STIX-объекты)
Шаг 6 → Incident Hub (инциденты → Incident + Note)
Шаг 7 → Threat Feed (поток IoC с оценками)
↓
Шаг 8 → IoC Lookup (обогащение IoC контекстом угроз)
Шаг 9 → Noise Control (снижение score шумных IoC)
Шаг 10 → WHOIS API (WHOIS-обогащение доменов и URL)
Примечание: Коннекторы обогащения (шаги 8–10) запускаются автоматически при
CONNECTOR_AUTO=trueили вручную. Рекомендуется включать автообогащение только после первичного заполнения базы, чтобы избежать лишних API-вызовов.
Обслуживание и мониторинг
Полезные команды
# Проверить статус всех сервисов
docker compose ps
# Логи конкретного коннектора (с отслеживанием)
docker compose logs -f connector-ctt-threat-feed
# Перезапустить коннектор
docker compose restart connector-ctt-threatkb
# Обновить образы CTT-коннекторов
docker compose pull connector-ctt-threatkb connector-ctt-report-hub \
connector-ctt-incident-hub connector-ctt-threat-feed \
connector-ctt-whois-api connector-ctt-noise-control connector-ctt-ioc-lookup
docker compose up -d connector-ctt-threatkb connector-ctt-report-hub \
connector-ctt-incident-hub connector-ctt-threat-feed \
connector-ctt-whois-api connector-ctt-noise-control connector-ctt-ioc-lookup
# Остановить только CTT-коннекторы (не трогая инфраструктуру)
docker compose stop connector-ctt-threatkb connector-ctt-report-hub \
connector-ctt-incident-hub connector-ctt-threat-feed \
connector-ctt-whois-api connector-ctt-noise-control connector-ctt-ioc-lookup
Health checks
OpenCTI публикует эндпоинт проверки работоспособности:
curl http://localhost:8080/health?health_access_key=<OPENCTI_HEALTHCHECK_ACCESS_KEY>
Ожидаемый ответ: {"status":"ok"} (HTTP 200).
Резервное копирование
Критичные данные хранятся в Docker-томах. Бэкап через tar работает из коробки только как cold backup, то есть при остановленном стеке. На работающем Elasticsearch Lucene-файлы могут изменяться прямо во время чтения архива, поэтому hot backup через tar может завершиться ошибками или дать неконсистентную копию.
mkdir -p backups
BACKUP_TS=$(date +%Y%m%d-%H%M%S)
# Остановить стек на время файлового бэкапа
docker compose stop
for volume in esdata s3data redisdata amqpdata; do
docker run --rm \
-v ctt_opencti_full_setup_${volume}:/data:ro \
-v "${PWD}/backups":/backup \
alpine tar czf "/backup/${volume}-${BACKUP_TS}.tar.gz" -C /data .
done
# Вернуть ранее созданные контейнеры в работу
docker compose start
Для проверки имён томов используйте:
docker volume ls | grep ctt_opencti_full_setup
Для production hot backup Elasticsearch нужен snapshot repository (например, S3/MinIO или filesystem repository), а не архивирование live-volume.
Документ подготовлен на основе официальных README репозиториев CTT (GitFlic) и документации OpenCTI Platform.
По вопросам API-ключей и поддержки: info@cyberthreattech.ru