Перейти к основному содержимому
Версия: 2.0

Фиды

Методы API получения фидов


Важно!

Структура фидов описана в разделе Справочники.

GET /api/v2/feeds/tree​

Метод используется для получения дерева доступных для клиента фидов с учетом иерархии.
Выводятся не все, а только доступные для клиента фиды.
Вызывается без параметров.

Пример запроса​

curl --location --request GET 'https://api.data.rt-solar.ru/api/v2/feeds/tree' \
--header 'Authorization: Bearer {JWT_TOKEN}'

Пример ответа​

В ответе API будет предоставлен список фидов в массиве feeds представленный в древовидной структуре.

{
"feeds": [
{
"name": "4rays_pulse",
"id": "111306d9-87ea-4027-b865-ad6dfaa70abc",
"feeds": [
{
"name": "active_c2",
"id": "222306d9-87ea-4027-b865-ad6dfaa70abc",
"parent_id": "111306d9-87ea-4027-b865-ad6dfaa70abc"
},
{
"name": "cybercrime",
"id": "333306d9-87ea-4027-b865-ad6dfaa70abc",
"parent_id": "111306d9-87ea-4027-b865-ad6dfaa70abc",
"feeds": [
{
"name": "honeypot_attacker",
"id": "444306d9-87ea-4027-b865-ad6dfaa70abc",
"parent_id": "333306d9-87ea-4027-b865-ad6dfaa70abc"
}
]
}
]
},
{
"name": "generic",
"id": "555306d9-87ea-4027-b865-ad6dfaa70abc",
"feeds": [
{
"name": "apt",
"id": "666306d9-87ea-4027-b865-ad6dfaa70abc",
"parent_id": "555306d9-87ea-4027-b865-ad6dfaa70abc"
}
]
},
{
"name": "fincert",
"id": "777306d9-87ea-4027-b865-ad6dfaa70abc"
}
]
}

Описание ответа​

В ответе API представляются данные в формате JSON.

№ПолеТип данныхОписаниеПример
1namestringНазвание фида"name": "active_c2"
2idstringUUID фида"id": "421da453-5f3b-4542-b8fe-099f7d9cbe2b"
3feedsarray(string)Массив дочерних фидов. Заполняется только для дочерних фидов
{
"feeds": [
  {
    "name": "generic", 
    "id": "555306d9-87ea-4027-b865-ad6dfaa70abc", 
    "feeds": [
      {
        "name": "apt", 
        "id": "666306d9-87ea-4027-b865-ad6dfaa70abc", 
        "parent_id": "555306d9-87ea-4027-b865-ad6dfaa70abc"
      }
    ]
  }
]
}
4parent_idstringUUID родительского фида. Заполняется только для дочерних фидов"parent_id": "421da453-5f3b-4542-b8fe-099f7d9cbe2b"

GET /api/v2/feeds/{feed-name-by-tree}​

Метод используется для получения индикаторов конкретного фида.
В параметре feed-name-by-tree передается название фида (пути, источники данных), из которого запрашиваются индикаторы.

Примеры параметра feed-name-by-tree
  • /4rays_pulse
  • /4rays_pulse/active_c2
  • /4rays_pulse/cybercrime
  • /4rays_pulse/cybercrime/backdoor

При вызове метода API GET /api/v2/feeds без параметров вернутся все индикаторы из доступных пользователю фидов.

Пример запроса​

curl --location --request GET 'https://api.data.rt-solar.ru/api/v2/feeds/4rays_pulse' \
--header 'Authorization: Bearer {JWT_TOKEN}'

Пример запроса без параметров​

curl --location --request GET 'https://api.data.rt-solar.ru/api/v2/feeds' \
--header 'Authorization: Bearer {JWT_TOKEN}'

Параметры запроса​

№ПараметрТип данныхПо умолчаниюОписаниеВарианты значений / пример
1fieldsarray(string)base

Поля, возвращаемые в ответе. Поддерживает алиасы и конкретные имена.

  • all — все поля
  • base — базовые поля (по умолчанию): id, type, value, description, portal_url, created_at, updated_at, first_seen, last_seen, zone, categories, feeds, attributes, contexts, related_objects, network, file

  • extra — дополнительные поля: flat_feeds, feed_names, active, action, valid_until, feed_source

  • Конкретные имена полей через запятую. Пример: fields=base,portal_url

2idsarray(string) (UUID)—

Идентификаторы индикаторов. Можно указать несколько значений через запятую.

ids=421da453-5f3b-4542-b8fe-099f7d9cbe2b
3indicator_typesarray(string)all

Типы индикаторов. Поддерживает алиасы и конкретные имена.

  • all — все типы
  • network — сетевые: IPV4, IPV6, SOCKETV4, SOCKETV6, DOMAIN, URL

  • hashes — хэши: MD5, SHA1, SHA256

  • FILE — файловые индикаторы

  • Конкретные типы: IPV4, IPV6, SOCKETV4, SOCKETV6, DOMAIN, URL, FILE, MD5, SHA1, SHA256

  • Пример: indicator_types=network,FILE

4actionsarray(string)all

Действия в фидах. Поддерживает алиасы и конкретные имена.

  • all — все действия: CREATE, UPDATE, DELETE

  • active — только активные: CREATE, UPDATE

  • DELETE — только удалённые

  • Конкретные значения: CREATE, UPDATE, DELETE

  • Пример: actions=active

5direction_sortstringASC

Направление сортировки и итерации. ASC — от старых к новым, DESC — от новых к старым.

ASC, DESC

6updated_atstring (ISO 8601, микросекунды)—

Время для пагинации. Берётся из поля updated_at последнего индикатора предыдущего батча. Для первого запроса оставить пустым (при direction_sort=DESC — можно указать текущее время). Формат: 2006-01-02T15:04:05.000000Z. При ASC возвращаются индикаторы с updated_at больше указанного, при DESC — меньше указанного.

2022-10-26T17:30:00.000001Z
7limitint1000

Количество индикаторов в ответе от 1 до 1000.

100

Пример ответа​

API возвращает массив объектов, каждый из которых содержит полную информацию об индикаторе компрометации (IoC). Ниже представлен пример одного элемента массива с подробными комментариями к ключевым полям:

[
[
{
"id": "421da453-5f3b-4542-b8fe-099f7d9cbe2b",
"type": "IPV4",
"value": "192.0.2.100",
"description": "описание",
"portal_url": "https://portal.example.com/network-indicators/421da453-5f3b-4542-b8fe-099f7d9cbe2b",
"created_at": "2022-10-26T17:30:00.000001Z",
"updated_at": "2022-10-26T17:30:00.000001Z",
"first_seen": "2022-10-26T17:30:00.000001Z",
"last_seen": "2022-10-26T17:30:00.000001Z",
"zone": "MALICIOUS",
"categories": [
"malicious"
],
"feeds": [
{
"name": "4rays_pulse",
"action": "CREATE",
"valid_until": "2022-10-26T17:30:00.000001Z",
"feeds": [
{
"name": "c2",
"action": "CREATE",
"valid_until": "2025-10-26T17:30:00.000001Z"
}
]
}
],
"attributes": {
"key": "value"
},
"contexts": [
{
"source_name": "whois",
"attributes": {
"nameservers": "ns1.example-domain.net",
"registrar": "EXAMPLE-REGISTRAR-RU"
}
},
{
"source_name": "infrastructure",
"attributes": {
"asn.asn": "AS12345",
"location.country": "RU",
"network.range": "192.0.2.0/24"
}
}
],
"related_objects": [
{
"id": "cf830e6d-addc-4983-8c38-906ef5fb6457",
"type": "IPV4",
"value": "203.0.113.50"
},
{
"id": "12330e6d-addc-4983-8c38-906ef5fb6457",
"type": "THREAT_ACTOR",
"value": "Example Threat Actor",
"mitre_id": "T1134"
}
],
"network": {
"heuristics": [
{
"risk_level": "CRITICAL",
"description": "У индикатора обнаружены признаки вредоносной активности, соответствующей его категории"
}
]
},
"file": {
"verdicts": ["YARA:Nix.HackTool.3snake.1a"],
"os": "NIX",
"size": 207232,
"file_identifiers": ["php-fpm"],
"mime": "application/x-sharedlib",
"hashes": {
"md5": "d41d8cd98f00b204e9800998ecf8427e",
"sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709"
}
},
"flat_feeds": [
{
"name": "4rays_pulse",
"action": "CREATE",
"valid_until": "2022-10-26T17:30:00.000001Z"
}
],
"feed_names": ["4rays_pulse", "c2"],
"active": true,
"action": "CREATE",
"valid_until": "2025-10-26T17:30:00.000001Z",
"feed_source": "ti_cloud"
}
]

Описание ответа​

В ответе API предоставляется массив объектов (FeedIndicatorV2) в формате JSON.

№ПолеТип данныхОписаниеВарианты значенийПример
1idstringUUID индикатора—"421da453-5f3b-4542-b8fe-099f7d9cbe2b"
2typestringТип индикатора

IPV4, IPV6, SOCKETV4, SOCKETV6, URL, DOMAIN, FILE, MD5, SHA1, SHA256

"IPV4"
3valuestringЗначение индикатора—"5.8.95.174"
4descriptionstringОписание индикатора—"IP dangerous"
5portal_urlstring

Ссылка на портал ({portalURL}/network-indicators/{id} или {portalURL}/file-indicators/{id})

—"https://portal.example.com/network-indicators/421da453-5f3b-4542-b8fe-099f7d9cbe2b"
6created_atstringДата и время создания индикатора (ISO 8601, микросекунды)—"2022-10-26T17:30:00.000001Z"
7updated_atstringДата и время последнего обновления (ISO 8601, микросекунды)—"2022-10-26T17:30:00.000001Z"
8first_seenstringДата и время первого обнаружения индикатора—"2022-10-26T17:30:00.000001Z"
9last_seenstringДата и время последнего обнаружения индикатора—"2022-10-26T17:30:00.000001Z"
10zonestringУровень критичности угрозы

MALICIOUS, SUSPICIOUS, CLEAN, UNKNOWN. См. Описание поля zone

"MALICIOUS"
11categoriesarray(string)Категории индикатора

Примеры: malicious, spam, phishing, c2, malware и др.

["spam"]
12feedsarray(object)Массив объектов с информацией о фидах (дерево)

См. Описание поля feeds

См. FeedItemV2
13attributesobjectДополнительные атрибуты индикатора в формате ключ-значение—{"key": "value"}
14contextsarray(object)Контекстная информация об индикаторе из различных источников

См. Описание поля contexts

См. IoCContextV2
15related_objectsarray(object)Связанные объекты

См. Описание поля related_objects

См. RelatedObjectV2
16networkobjectСетевая информация об индикаторе

См. Описание поля network (heuristics)

См. IoCNetwork
17fileobjectИнформация о файле (для файловых индикаторов)

См. Описание поля file

См. IoCFile
18flat_feedsarray(object)Фиды плоским списком (extra)

См. Описание поля feeds

См. FeedItemV2
19feed_namesarray(string)

Имена активных фидов (extra, исключая DELETE)

—["4rays_pulse", "c2"]
20activeboolПризнак активности индикатора (extra)true, falsetrue
21actionstringОбщее действие (extra)

CREATE, UPDATE, DELETE

"CREATE"
22valid_untilstring

Максимальный срок валидности по всем фидам (extra)

—"2025-10-26T17:30:00.000001Z"
23feed_sourcestring

Константа "ti_cloud" (extra)

ti_cloud"ti_cloud"

Жизненный цикл индикатора в фидах​

Индикатор компрометации (IoC) может находиться в нескольких фидах одновременно. Для каждого фида, в который входит индикатор, ведётся своя история изменений. Основные события жизненного цикла отражаются в поле action объекта фида:

ДействиеЗначениеОписание
ДобавлениеCREATEИндикатор впервые появился в данном фиде
ОбновлениеUPDATEИндикатор уже был в фиде, но его атрибуты или срок действия изменились
УдалениеDELETEИндикатор отозван из фида (по TTL, вручную или при изменении критериев)
📄 Пример дерева фидов для одного индикатора:
"feeds": [
{
"name": "4rays_pulse",
"action": "UPDATE",
"valid_until": "2035-12-10T12:42:05.321519Z",
"feeds": [
{
"name": "cybercrime",
"action": "UPDATE",
"valid_until": "2035-12-10T12:42:05.321519Z",
"feeds": [
{
"name": "malware",
"action": "UPDATE",
"valid_until": "2035-12-10T12:42:05.321519Z"
}
]
}
]
},
{
"name": "generic",
"action": "DELETE",
"valid_until": "2035-12-10T12:42:05.321519Z"
}
]

В этом примере индикатор активен в фиде 4rays_pulse (и его дочерних), но удалён из фида generic.

Агрегированное поле active​

На основе действий во всех фидах вычисляется агрегированное поле active:

  • Если хотя бы в одном фиде действие CREATE или UPDATE → active = true
  • Если во всех фидах действие DELETE → active = false

Таким образом, active = false означает, что индикатор отозван из всех фидов и должен быть снят с мониторинга в интегрируемых системах.

Временная метка valid_until​

Для сетевых индикаторов (IP-адреса, домены, URL) в каждом фиде может присутствовать поле valid_until — время, до которого индикатор считается актуальным. По истечении этого времени фид автоматически формирует действие DELETE.

Для файловых индикаторов (хэши MD5, SHA1, SHA256) поле valid_until отсутствует — их жизненный цикл управляется исключительно через action.

Рекомендации по фильтрации​
  • Не используйте active = true в фильтрах, если вам нужно обрабатывать отзыв индикаторов. При таком фильтре события DELETE не попадут в выгрузку, и целевая система не получит команду на снятие индикатора с мониторинга (revoked).
  • Для корректной обработки удаления добавляйте в фильтр условие action == "DELETE" или используйте поле valid_until для сетевых индикаторов.
  • Если вы не хотите отслеживать отзыв, можно фильтровать по active = true, но это следует делать осознанно.

Описание поля contexts​

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

Важно:

Наличие конкретных источников и атрибутов зависит от типа индикатора и доступности данных в момент обогащения.

Данные в поле contexts хранятся в массиве IoCContextV2, состоящем из следующих полей:

ПолеТипОписание
source_namestringНазвание источника
attributesmap[string]stringАтрибуты контекста

Разрешённые источники и их атрибуты:

ИсточникАтрибуты
fincertapt, attack_type, class, family, format, mitre
fstecbulletin_date, bulletin_id, summary
infrastructureasn.asn, asn.created, asn.name, asn.org, asn.rir, asn.route, asn.type, location.city, location.continent, location.country, location.last_verified_at, location.latitude, location.longitude, location.state, location.timezone, network.abuse_email, network.domain, network.range
tordirport, orport
whoisage.days, creation, dnssec, expiration, expiration_status.days_left, ips, last_verified_at, nameservers, ns_analysis.detected_providers, registrar, registrar_info.email

Описание поля network (heuristics)​

Эвристика - результирующее правило или алгоритм, который на основе анализа данных и признаков формирует вероятностную оценку или классификацию объекта/события.
Результат работы эвристики:
Результатом работы эвристики является автоматически сгенерированное заключение, которое:

  • Классифицирует объект по уровням риска, на основе которых определяется зона
  • Формулирует текстовое описание выявленных признаков и рисков

Пример:

"heuristics": [
{
"risk_level": "HIGH",
"description": "Suspicious Network Behavior - обнаружены множественные подключения к недоверенным хостам в короткий промежуток времени"
}
]

Данные в поле network хранятся в массиве IoCNetwork, состоящем из следующих полей:

ПолеТипОписание
heuristicsarray(IoCHeuristic)Массив эвристик

Данные в поле heuristics хранятся в массиве IoCHeuristic, состоящем из следующих полей:

ПолеТипОписание
risk_levelstringУровень риска: CRITICAL, HIGH, MEDIUM, DECREASE, SAFE, INFO, INCREASE
descriptionstringОписание эвристики

Описание поля file​

Данные в поле file хранятся в массиве IoCFile, состоящем из следующих полей:

ПолеТипОписание
verdictsarray(string)Вердикты анализа файла
file_identifiersarray(string)Имена и пути файла
osstringЦелевая ОС: WIN, NIX, MAC, CROSS, ANDROID
sizeuint64Размер файла
mimestringMIME-тип файла
hashesIoCFileHashesХэши файла

Данные в поле hashes хранятся в массиве IoCFileHashes, состоящем из следующих полей:

ПолеТипОписание
md5stringMD5 хэш
sha1stringSHA1 хэш
sha256stringSHA256 хэш

Описание поля feeds​

Данные в поле feeds хранятся в массиве FeedItemV2, состоящем из следующих полей:

ПолеТипОписание
namestringНазвание фида
actionstringДействие: CREATE, UPDATE, DELETE
valid_untilstringСрок валидности (ISO 8601, микросекунды)
feeds[]FeedItemV2Вложенные дочерние фиды

Данные в поле related_objects хранятся в массиве RelatedObjectV2, состоящем из следующих полей:

ПолеТипОписание
idstringUUID связанного объекта
typestringТип: IPV4, IPV6, SOCKETV4, SOCKETV6, DOMAIN, URL, FILE, MD5, SHA1, SHA256, REPORT, THREAT_ACTOR, MALWARE, TOOL, ATTACK_PATTERN, TECHNIQUE, SUBTECHNIQUE
valuestringЗначение связанного объекта
mitre_idstringMITRE ATT&CK ID (заполняется для объектов с MITRE-данными)