Cyber Threat Tech Report Hub коннектор для OpenCTI
| Статус | Дата | Комментарий |
|---|---|---|
| Проверено партнером | - | - |
Описание
Ежедневно в мире появляется более десятка новых угроз. Аналитические компании, а также независимые исследователи во всем мире стараются успеть за злоумышленниками раскрывая и описывая эти новые угрозы. Но подразделению ИБ не утонуть во всем этом нескончаемом потоке ценной информации?
CTT Report Hub - это источник информации о Threat Intelligence отчетах со всего мира, подготовленных для наиболее быстрого восприятия как аналитиком, так и «машиной». Данный сервис, благодаря использованию AI, формирует описание ключевых идей из отчета, а также преобразует его в формат STIX 2.1.
CTT Report Hub - API для доступа к тактическим и операционным TI-отчетам со всего мира.
Ключевые особенности:
- 180+ источников
- 4000 отчетов в год
- Отчёты тактического и операционного уровней
- Отчёты от компаний со всего мира
- Отчеты от независимых исследователей
Состав:
- Ссылка на первоисточник
- AI-сгенерированное и переведённое на русский язык описание отчёта
- Извлечённые из отчёта ключевые объекты
- Автоперевод реферата на русский
- Отчёт в .pdf
Требования
- Платформа OpenCTI версии 5.10.x или выше.
- API-ключ для доступа к Cyber Threat Tech (
info@cyberthreattech.ru).
Рекомендуемые коннекторы
Этот коннектор согласован с данными, заполняемыми распространенными коннекторами OpenCTI. Рекомендуется устанавливать следующие коннекторы вместе с коннектором Cyber Threat Tech Report Hub:
- MITRE Datasets (https://github.com/OpenCTI-Platform/connectors/tree/master/external-import/mitre)
- OpenCTI Datasets (https://github.com/OpenCTI-Platform/connectors/tree/master/external-import/opencti)
- CISA Known Exploited Vulnerabilities (https://github.com/OpenCTI-Platform/connectors/tree/master/external-import/cisa-known-exploited-vulnerabilities)
Установка
Коннектор Cyber Threat Tech Report Hub может устанавливаться как на сервер с OpenCTI, развёрнутым напрямую, так и в окружение на базе Docker Compose или Docker Swarm Stack.
Определение версии образа
Актуальный тег образа соответствует последнему git-тегу репозитория. Узнать его можно командой:
git tag --sort=-version:refname | head -1
Далее в инструкции тег образа обозначен как <VERSION> — подставьте нужное значение (например, 6.9.29).
Вариант 1: Установка на сервер (OpenCTI без Docker)
При такой инсталляции коннектор запускается как Python-процесс непосредственно на сервере.
1. Клонируйте репозиторий:
git clone https://gitflic.ru/project/ctt/ctt_report_hub_connector.git
cd ctt_report_hub_connector/external-import/rst-report-hub
2. Установите зависимости:
pip3 install --no-cache-dir -r src/requirements.txt
3. Создайте файл конфигурации src/config.yml на основе переменных из раздела Конфигурация ниже, или экспортируйте переменные окружения:
export OPENCTI_URL=http://localhost:8080
export OPENCTI_TOKEN=ChangeMe
export CONNECTOR_ID=$(python3 -c "import uuid; print(uuid.uuid4())")
export CONNECTOR_NAME="CTT Report Hub"
export CONNECTOR_SCOPE="application/json,application/pdf"
export CONNECTOR_LOG_LEVEL=info
export CTT_REPORT_HUB_BASE_URL=https://api.cyberthreattech.ru/v1
export CTT_REPORT_HUB_API_KEY=ChangeMe
export CTT_REPORT_HUB_IMPORT_START_DATE=20240101
4. Запустите коннектор:
python3 src/main.py
Для автозапуска создайте systemd-юнит или используйте supervisor/pm2.
Вариант 2: Установка через Docker Compose
2а. С использованием образа из реестра
Добавьте в существующий docker-compose.yml OpenCTI или создайте отдельный файл:
version: "3"
services:
connector-ctt-report-hub:
image: registry.gitflic.ru/project/ctt/ctt_report_hub_connector/connector-ctt-report-hub:<VERSION>
environment:
- OPENCTI_URL=http://opencti:8080
- OPENCTI_TOKEN=ChangeMe
- CONNECTOR_ID=ChangeMe
- CONNECTOR_NAME=CTT Report Hub
- CONNECTOR_SCOPE=application/json,application/pdf
- CONNECTOR_LOG_LEVEL=info
- CTT_REPORT_HUB_BASE_URL=https://api.cyberthreattech.ru/v1
- CTT_REPORT_HUB_API_KEY=ChangeMe
- CTT_REPORT_HUB_CONNECTION_TIMEOUT=30
- CTT_REPORT_HUB_READ_TIMEOUT=60
- CTT_REPORT_HUB_RETRY_DELAY=30
- CTT_REPORT_HUB_RETRY_ATTEMPTS=5
- CTT_REPORT_HUB_IMPORT_START_DATE=ChangeMe
- CTT_REPORT_HUB_FETCH_INTERVAL=300
- CTT_REPORT_HUB_LANGUAGE=eng
- CTT_REPORT_HUB_CREATE_OBSERVABLES=false
- CTT_REPORT_HUB_CREATE_RELATED_TO=true
- CTT_REPORT_HUB_CREATE_CUSTOM_TTPS=true
- CTT_REPORT_HUB_SET_DETECTION_FLAG=false
- CTT_REPORT_HUB_LABELS_USE_PREFIX=false
restart: always
Запуск:
docker compose up -d connector-ctt-report-hub
2б. С локальной сборкой образа
1. Клонируйте репозиторий:
git clone https://gitflic.ru/project/ctt/ctt_report_hub_connector.git
cd ctt_report_hub_connector/external-import/rst-report-hub
2. Соберите образ:
VERSION=$(git tag --sort=-version:refname | head -1)
docker build -t connector-ctt-report-hub:${VERSION} .
3. Укажите собранный образ в docker-compose.yml:
version: "3"
services:
connector-ctt-report-hub:
image: connector-ctt-report-hub:<VERSION>
environment:
# ... переменные окружения из раздела Конфигурация
restart: always
4. Запустите:
docker compose up -d connector-ctt-report-hub
Вариант 3: Установка через Docker Swarm Stack
3а. С использованием образа из реестра
Создайте файл stack-connector-ctt.yml:
version: "3.8"
services:
connector-ctt-report-hub:
image: registry.gitflic.ru/project/ctt/ctt_report_hub_connector/connector-ctt-report-hub:<VERSION>
environment:
- OPENCTI_URL=http://opencti:8080
- OPENCTI_TOKEN=ChangeMe
- CONNECTOR_ID=ChangeMe
- CONNECTOR_NAME=CTT Report Hub
- CONNECTOR_SCOPE=application/json,application/pdf
- CONNECTOR_LOG_LEVEL=info
- CTT_REPORT_HUB_BASE_URL=https://api.cyberthreattech.ru/v1
- CTT_REPORT_HUB_API_KEY=ChangeMe
- CTT_REPORT_HUB_CONNECTION_TIMEOUT=30
- CTT_REPORT_HUB_READ_TIMEOUT=60
- CTT_REPORT_HUB_RETRY_DELAY=30
- CTT_REPORT_HUB_RETRY_ATTEMPTS=5
- CTT_REPORT_HUB_IMPORT_START_DATE=ChangeMe
- CTT_REPORT_HUB_FETCH_INTERVAL=300
- CTT_REPORT_HUB_LANGUAGE=eng
- CTT_REPORT_HUB_CREATE_OBSERVABLES=false
- CTT_REPORT_HUB_CREATE_RELATED_TO=true
- CTT_REPORT_HUB_CREATE_CUSTOM_TTPS=true
- CTT_REPORT_HUB_SET_DETECTION_FLAG=false
- CTT_REPORT_HUB_LABELS_USE_PREFIX=false
deploy:
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
networks:
- default
networks:
default:
external: true
name: opencti_default
Разверните стек:
docker stack deploy -c stack-connector-ctt.yml opencti
3б. С локальной сборкой образа
1. Клонируйте репозиторий и соберите образ:
git clone https://gitflic.ru/project/ctt/ctt_report_hub_connector.git
cd ctt_report_hub_connector/external-import/rst-report-hub
VERSION=$(git tag --sort=-version:refname | head -1)
docker build -t connector-ctt-report-hub:${VERSION} .
2. Опционально — загрузите образ в локальный реестр (требуется при деплое на несколько Swarm-нод):
docker tag connector-ctt-report-hub:${VERSION} <your-registry>/connector-ctt-report-hub:${VERSION}
docker push <your-registry>/connector-ctt-report-hub:${VERSION}
3. Укажите локальный образ в stack-файле (аналогично варианту 3а, заменив поле image):
image: connector-ctt-report-hub:<VERSION>
# или если используется локальный реестр:
# image: <your-registry>/connector-ctt-report-hub:<VERSION>
4. Разверните стек:
docker stack deploy -c stack-connector-ctt.yml opencti
Примечание. Значение
CONNECTOR_IDдолжно быть уникальнымUUIDv4. Сгенерировать его можно командой:python3 -c "import uuid; print(uuid.uuid4())"
Конфигурация
Настройка коннектора выполняется просто. Минимальная конфигурация требует указать API-ключ Cyber Threat Tech и параметры подключения к OpenCTI. Ниже приведен полный список настраиваемых параметров:
| Параметр | Переменная окружения Docker | Обязательный | Описание |
|---|---|---|---|
| URL OpenCTI | OPENCTI_URL |
Да | URL платформы OpenCTI. |
| Токен OpenCTI | OPENCTI_TOKEN |
Да | Стандартный токен администратора, заданный в платформе OpenCTI. |
| ID коннектора | CONNECTOR_ID |
Да | Уникальный идентификатор UUIDv4 для этого экземпляра коннектора. |
| Имя коннектора | CONNECTOR_NAME |
Да | Имя коннектора. Например: Cyber Threat Tech Report Hub. |
| Scope коннектора | CONNECTOR_SCOPE |
Да | Область действия или тип данных, импортируемых коннектором: MIME-тип или объект STIX. Например, application/json. |
| Уровень логирования | CONNECTOR_LOG_LEVEL |
Да | Определяет детализацию логов. Возможные значения: debug, info, warn или error. |
| Базовый URL Cyber Threat Tech Report Hub | CTT_REPORT_HUB_BASE_URL |
Нет | По умолчанию используется https://api.cyberthreattech.ru/v1. В некоторых случаях может потребоваться локальный API endpoint. |
| API-ключ Cyber Threat Tech Report Hub | CTT_REPORT_HUB_API_KEY |
Да | Ваш API-ключ для доступа к Cyber Threat Tech. |
| Таймаут подключения Cyber Threat Tech Report Hub | CTT_REPORT_HUB_CONNECTION_TIMEOUT |
Нет | Таймаут подключения к API. Значение по умолчанию (сек): 30. |
| Таймаут чтения Cyber Threat Tech Report Hub | CTT_REPORT_HUB_READ_TIMEOUT |
Нет | Таймаут чтения для каждого фида. Если коннектор не успевает получить отчет вовремя, увеличьте таймаут чтения. Значение по умолчанию (сек): 60. |
| Задержка повтора Cyber Threat Tech Report Hub | CTT_REPORT_HUB_RETRY_DELAY |
Нет | Определяет, сколько секунд ждать перед следующей попыткой подключения к API. Значение по умолчанию (сек): 30. |
| Количество повторных попыток загрузки Cyber Threat Tech Report Hub | CTT_REPORT_HUB_RETRY_ATTEMPTS |
Нет | Значение по умолчанию (попыток): 5. |
| Интервал получения данных Cyber Threat Tech Report Hub | CTT_REPORT_HUB_FETCH_INTERVAL |
Нет | Значение по умолчанию (сек): 300. |
| Дата начала загрузки данных Cyber Threat Tech Report Hub | CTT_REPORT_HUB_IMPORT_START_DATE |
Нет | Укажите дату, начиная с которой нужно получать отчеты, в формате %Y%m%d (например, 20240527). Импорт данных за каждый день будет происходить с задержкой, равной CTT_REPORT_HUB_FETCH_INTERVAL. По умолчанию эта дата вычисляется как 7 дней назад. |
| Язык Cyber Threat Tech Report Hub | CTT_REPORT_HUB_LANGUAGE |
Нет | Свяжитесь с support@cyberthreattech.ru, если хотите изменить этот параметр. Значение по умолчанию: eng. |
| Cоздавать observables | CTT_REPORT_HUB_CREATE_OBSERVABLES |
Нет | Пользователь может выбрать, создавать ли observables в дополнение к индикаторам. Варианты: true, false. Значение по умолчанию: false. |
| Cyber Threat Tech Report Hub: создавать связи related-to | CTT_REPORT_HUB_CREATE_RELATED_TO |
Нет | Пользователь может выбрать, создавать ли связи related-to. Варианты: true, false. Значение по умолчанию: true. |
| Cоздавать пользовательские attack-pattern | CTT_REPORT_HUB_CREATE_CUSTOM_TTPS |
Нет | Пользователь может выбрать, создавать ли объекты attack-pattern с пользовательскими именами, которых еще нет во фреймворке MITRE ATT&CK. Варианты: true, false. Значение по умолчанию: true. |
| Устанавливать флаг detection для индикаторов | CTT_REPORT_HUB_SET_DETECTION_FLAG |
Нет | Пользователь может выбрать, нужно ли устанавливать индикаторы из отчетов для детектирования. Варианты: true, false. Значение по умолчанию: false. |
| Не добавлять указанные labels | CTT_REPORT_HUB_REPORT_LABELS_DISABLED |
Нет | Пользователь может указать список меток, которые коннектор должен игнорировать при создании объектов Report. Это не предотвращает создание самих отчетов. Варианты: список меток, разделенных запятыми. По умолчанию: не задано. |
| Добавлять префиксы к labels | CTT_REPORT_HUB_LABELS_USE_PREFIX |
Нет | Значение по умолчанию (bool): false. |
Префиксы labels
Для изменения меток добавляемых коннекторов объектов при включенном параметре CTT_REPORT_HUB_LABELS_USE_PREFIX используется файл label_prefixes.yml:
# label_prefixes.yml
ctt:
tech:
- shellprobe
- scan
При выключенном параметре CTT_REPORT_HUB_LABELS_USE_PREFIX коннектор проверяет наличие меток в импортируемых объектах и добавляет к ним соответствующие префиксы. Если префикс не найден, то к меткам добавляется только тэг первого уровня. К примеру:
shellprobe->ctt:tech:shellprobescan->ctt:tech:scanbotnet->ctt:botnet
Для использования своих префиксов необходимо внести изменения в этот файл и собрать образ коннектора или сделать bind файла в /opt/opencti-connector-reporthub/label_prefixes.yml внутрь контейнера коннектора.