README.md

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:

Установка

Коннектор 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:shellprobe
  • scan -> ctt:tech:scan
  • botnet -> ctt:botnet

Для использования своих префиксов необходимо внести изменения в этот файл и собрать образ коннектора или сделать bind файла в /opt/opencti-connector-reporthub/label_prefixes.yml внутрь контейнера коннектора.

Описание
CTT Report Hub connector для OpenCTI
Конвейеры
10 успешных
0 с ошибкой
Разработчики