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

Методы API v1

Описание методов API v1 для получения фидов.

Аутентификация

Для вызова методов API необходимо использовать базовый URL https://api.data.rt-solar.ru/api/v1
Аутентификация производится с помощью JWT-токена. Токен должен быть передан в заголовке Authorization по схеме Bearer.

Получение списка фидов

Метод API GET /api/v1/feeds-list используется для получения списка фидов, вызывается без параметров.

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

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

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

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

{
"feeds": [
"TOR",
"FINCERT",
"VPN",
"HONEYPOT_ATTACKER",
"PROXY",
"PHISHING",
"C2",
"APT",
"MALWARE",
"INTRUSION",
"BOTNET",
"CRYPTOMINING",
"STEALER",
"RANSOMWARE",
"HONEYPOT_PAYLOAD",
"4RAYS_PULSE",
"ACTIVE_C2",
"GENERIC",
"HACKTOOL",
"NOTAVIRUS",
"PYPIMALWARE",
"SKIMMING",
"VDS",
"HACKTIVISM"
]
}

Подгруппы в древовидной структуре тоже являются отдельным фидом, поэтому также возвращаются в ответе.

Получение индикаторов отдельного фида

Метод API GET /api/v1/feeds/{feedName} используется для получения индикаторов из конкретного фида.

Для получения актуального списка индикаторов фида на текущий момент времени необходимо вызвать метод с параметрами:

  • actions: CREATE, UPDATE
  • updated_at: не передается.

Для получения списка изменений по фидам за определенный период необходимо вызвать метод с параметрами:

  • actions: CREATE, UPDATE, DELETE
  • updated_at: дата начала периода или максимальное значение updated_at из ранее полученного списка индикаторов данного типа.

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

curl --location --request GET 'https://api.data.rt-solar.ru/api/v1/feeds/c2?direction_sort=DESC&limit=1000' \
--header 'Authorization: Bearer {JWT_TOKEN}' \

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

ПараметрТип данныхОбязательностьОписаниеВарианты значений
1updated_atint64нет
  1. В данном параметре передается дата и время (с указанием микросекунд) создания или обновления индикатора в формате ISO с точностью до микросекунд
  2. Если значение параметра отсутствует, то поиск будет производиться по всем индикаторам без фильтрации по времени
  3. Если параметр указан, запрос вернёт не более limit индикаторов, отсортированных в порядке, заданном в direction_sort:
  • При direction_sort=ASC будут выбраны индикаторы, чья дата создания или обновления больше указанного значения (от старых к новым).
  • При direction_sort=DESC будут выбраны индикаторы, чья дата создания или обновления меньше указанного значения (от новых к старым).
1720779456000000
2actionsstringнет
  1. В данном параметре передается состояние индикатора, который нужно вернуть в ответе.
  2. Если значение отсутствует, то поиск будет производиться по всем индикаторам без фильтрации.
  3. При передаче параметра может быть указано несколько значений через запятую.

Допустимые значения:

  • CREATE
  • UPDATE
  • DELETE
3fieldsstringнет
  1. В данном параметре передается список атрибутов индикатора, которые вернутся в ответе.
  2. Если значение отсутствует, то поиск будет производиться по всем индикаторам без фильтрации.
  3. При передаче параметра может быть указано несколько значений через запятую.
  4. Если в запросе в параметре fields передано невалидное значение (неравное атрибуту индикатора), то будет возвращена ошибка с кодом 400. Обязательные значения ответа: updated_at

Допустимые значения:

  • indicator_id
  • indicator_type
  • action
  • value
  • description
  • first_seen
  • last_seen
  • valid_until
  • relations
  • external_references
  • rules
  • category
  • feeds
4limitintнетДанный параметр ограничивает число записей, которые возвращаются в ответе. Если значение параметра не передано, то количество записей в ответе будет ограничено 1000. Если нужно получить большее количество записей, то нужно сделать еще один запрос с параметром updated_at, равным максимальному значению updated_at из предыдущего ответа.100
5direction_sortstringнетЗадает направление сортировки и итерации. При ASC порядок индикаторов в ответе отсортирован по возрастанию. При DESC - сортировка по убыванию, от новых к старым.

Допустимые значения:

  • ASC
  • DESC
6indicator_typestringда

Тип индикатора

Допустимые значения:

  • ipv4-addr
  • ipv6-addr
  • socketv4
  • url
  • domain-name
  • md5-hash
  • sha1-hash
  • sha256-hash

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

{
"indicators": [
{
"indicator_id": "56ccb99d-7e1f-4661-8962-401ac3209833",
"indicator_type": "ipv4-addr",
"action": "UPDATE",
"updated_at": 1753941748709355,
"value": "127.0.0.1",
"first_seen": 1724242323227458,
"last_seen": 1753941748709354,
"valid_until": 96395055123000000,
"categories": [
"c2",
"malware",
"tor"
],
"feeds": [
"c2",
"malware",
"tor",
"generic"
],
"zone": "BLACK"
}
]
}

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

В ответе API GET /api/v1/feeds/{feedName} предоставляются данные в формате JSON о индикаторах конкретного фида в массиве indicators.

ПолеТип данныхОписаниеПример
1updated_atint64В данном поле возвращается дата и время совершения изменений для индикатора. Поле возвращается в любом случае, даже если не задано значение в fields"updated_at": 1720779456000000
2indicator_idstringUUID индикатора"indicator_id": "ae738100-9d16-11ed-886c-514e095ea79a"
3indicator_typestring

Тип индикатора

Допустимые значения:

  • ipv4-addr
  • ipv6-addr
  • socketv4
  • url
  • domain-name
  • md5-hash
  • sha1-hash
  • sha256-hash
4actionstringПоследнее действие, выполненное с индикатором (создание, обновление или удаление). Допускается появление UPDATE без предшествующего CREATE

Допустимые значения:

  • CREATE
  • UPDATE
  • DELETE
5valuestringЗначение индикатора"value": "5.8.95.174"
6descriptionstringОписание индикатора"description": "IP dangerous"
7first_seenstringДата и время первого обнаружения индикатора"first_seen": "1706617092704397"
8last_seenstringДата и время последнего обнаружения индикатора"last_seen": "1706617092704397"
9valid_untilstringДата и время устаревания (окончания валидности) индикатора"valid_until": "1706617092704397"
10relationsarray (json)

Данное поле является составным и описывает связи объектов. Связанных объектов может быть несколько. Состоит из:

  • ID связанного объекта (object_id)
  • Типа связанного объекта (object_type), может принимать следующие значения: indicator, file, report, threat_actor.
  • Тип связанного индикатора (indicator_type), может принимать следующие значения: ipv4-addr, ipv6-addr, socketv4, url, domain-name, file. Заполняется только если object_type="indicator".
  • Значения связанного объекта (object_value)

"relations": [{"object_id": "97ed4000-c58e-11ee-b402-c367b432f5d9", "object_type": "indicator", "indicator_type": "domain-name", "object_value": "example.com"}]

11external_referencesarray (string)Массив внешних ссылок, связанных с индикатором."external_references": ["example1.com", "example2.com"]
12rulesarray (string)Массив сработавших детектирующих правил."rules": ["IP есть в Virus Total. Требуется дальнейший анализ поведения"]
13categoriesarray (string)Категории индикатора."categories": ["spam"]
14feedsarray (string)Перечень фидов, к которым относится индикатор."feeds": ["c2", "malware", "phishing", "apt", "ransomware"]
15zonestringОпределяет уровень критичности угрозы и позволяет классифицировать индикаторы по степени потенциальной опасности. Возможные значения поля zone"zone": "GREY"

Возможные значения поля zone

  • BLACK - Индикатор с высокой степенью достоверности связан с подтверждённой вредоносной активностью (malware, C2, фишинг, эксплуатация уязвимостей и т. п.). Рекомендуемые действия: немедленное блокирование, приоритизация инцидента, проведение детального расследования и поиск связанных артефактов.
  • GREY - Индикатор демонстрирует признаки потенциально вредоносной активности, однако подтверждённых доказательств недостаточно для однозначной классификации. Рекомендуемые действия: дополнительный анализ, корреляция с телеметрией и другими источниками, усиленный мониторинг.
  • WHITE - На основании имеющихся данных индикатор относится к легитимной активности и не связан с вредоносными действиями на текущий момент. Рекомендуемые действия: использование в качестве allowlist / контекста, без применения ограничительных мер.
  • NEUTRAL - Недостаточно информации для оценки индикатора и определения его связи с вредоносной или легитимной активностью. Рекомендуемые действия: наблюдение, обогащение данными из внешних и внутренних источников.

Работа с древовидной структурой фидов

Метод API GET /api/v1/feeds позволяет получить список индикаторов компрометации, связанных с определенными фидами. Поддерживает множественную фильтрацию по типам индикаторов и названиям фидов. При указании нескольких параметров feed_names происходит фильтрация полю feeds с логическим оператором «И» (пересечение множеств индикаторов). Данный подход позволяет реализовать поддержку логической древовидной структуры фидов. Фильтрация по параметру indicator_types происходит с логическим оператором «ИЛИ» (объединение множеств индикаторов).

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

curl --location --request GET 'https://api.data.rt-solar.ru/api/v1/feeds?updated_at=1745391352073958&fields=value%2Czone%2Cfeed&direction_sort=ASC&indicator_types=domain-name&feed_names=apt&feed_names=c2&limit=100' \
--header 'Authorization: Bearer {JWT_TOKEN}' \

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

ПараметрТип данныхОбязательностьОписаниеВарианты значений
1updated_atint64нетВ данном параметре передается дата и время (с указанием микросекунд) создания или обновления индикатора в формате unix timestamp. Если значение параметра отсутствует, то поиск будет производиться по всем индикаторам без фильтрации по времени. Если в параметре указано значение, то запрос вернет все индикаторы дата создания или обновления которых сортируется в порядке, заданном в параметре direction_sort.1720779456000000
2actionsstringнетВ данном параметре передается состояние индикатора, который нужно вернуть в ответе. Если значение отсутствует, то поиск будет производиться по всем индикаторам без фильтрации. При передаче параметра может быть указано несколько значений через запятую. Допускается появление UPDATE без первичного вызова CREATE

Допустимые значения:

  • CREATE
  • UPDATE
  • DELETE
3fieldsstringнетВ данном параметре передается список атрибутов индикатора, которые надо вернуть в ответе. Если значение отсутствует, то поиск будет производиться по всем индикаторам без фильтрации. При передаче параметра может быть указано несколько значений через запятую. Если в запросе в параметре fields передано значение неравное атрибуту индикатора, то будет возвращена ошибка с кодом 400. Обязательные значения ответа: updated_at

Допустимые значения:

  • indicator_id
  • indicator_types
  • action
  • value
  • description
  • first_seen
  • last_seen
  • valid_until
  • relations
  • external_references
  • rules
  • category
  • feeds
4limitintнетДанный параметр ограничивает число записей, которые возвращаются в ответе. Если параметр не передан, по умолчанию возвращается 1000 записей. Максимальное количество передаваемых записей - 10000. Если нужно получить больше записей, необходимо выполнить дополнительный запрос с указанием значения параметра updated_at, равного максимальному значению updated_at из предыдущего ответа.100
5direction_sortstringнетЗадает направление сортировки и итерации. При ASC порядок индикаторов в ответе отсортирован по возрастанию. При DESC - сортировка по убыванию, от новых к старым.

Допустимые значения:

  • ASC
  • DESC
6indicator_typesarray (string)даВ данном параметре передаются типы индикаторов в массиве"ipv4-addr", "ipv6-addr", "socketv4"
7feed_namesarray (string)даВ данном параметре передается список фидов в массиве"c2", "malware", "phishing", "apt","ransomware"

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

{
"indicators": [
{
"updated_at": 1745391389135292,
"value": "first.example.com",
"feeds": [
"c2",
"malware",
"apt",
"4rays_pulse"
],
"zone": "GREY"
},
{
"updated_at": 1745391401900955,
"value": "second.example.com",
"feeds": [
"c2",
"malware",
"apt",
"4rays_pulse"
],
"zone": "BLACK"
}
]
}

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

Поля ответа метода API GET /api/v1/feeds:

ПолеТип данныхОписаниеПример
1updated_atint64В данном поле возвращается дата и время совершения изменений для облака. Поле возвращается в любом случае, даже если не задано значение в fields"updated_at": 1720779456000000
2indicator_idstringUUID индикатора"indicator_id": "ae738100-9d16-11ed-886c-514e095ea79a"
3indicator_typesarray(string)

Тип индикатора

Допустимые значения:

  • ipv4-addr
  • ipv6-addr
  • socketv4
  • url
  • domain-name
  • md5-hash
  • sha1-hash
  • sha256-hash
4actionstringДанное поле указывает последнее действие совершенное над индикатором (создание, обновление или удаление). Допускается появление UPDATE без первичного вызова CREATE

Допустимые значения:

  • CREATE
  • UPDATE
  • DELETE
5valuestringЗначение индикатора"value": "5.8.95.174"
6descriptionstringОписание индикатора"description": "IP dangerous"
7first_seenstringДата и время первого обнаружения индикатора"first_seen": "1706617092704397"
8last_seenstringДата и время последнего обнаружения индикатора"last_seen": "1706617092704397"
9valid_untilstringДата и время устаревания (окончания валидности) индикатора"valid_until": "1706617092704397"
10relationsarray (json)

Данное поле является составным и описывает связи объектов. Связанных объектов может быть несколько. Состоит из:

  • ID связанного объекта (object_id)
  • Типа связанного объекта (object_type), может принимать следующие значения: indicator, file, report, threat_actor.
  • Тип связанного индикатора (indicator_type), может принимать следующие значения: ipv4-addr, ipv6-addr, socketv4, url, domain-name, file. Поле indicator_type не пустое, если поле object_type=indicator, в остальных случаях поле принимает пустое значение.
  • Значения связанного объекта (object_value)

"relations": [{"object_id": "97ed4000-c58e-11ee-b402-c367b432f5d9", "object_type": "indicator", "indicator_types": "domain-name", "object_value": "example.com"}]

11external_referencesarray (string)Внешние ссылки индикатора."external_references": ["example1.com", "example2.com"]
12rulesarray (string)Сработавшие детектирующие правила."rules": ["IP есть в Virus Total. Требуется дальнейший анализ поведения"]
13categoriesarray (string)Категория индикатора."categories": ["spam"]
14feedsarray (string)Перечень фидов, к которым относится индикатор."feeds": ["c2", "malware", "phishing", "apt", "ransomware"]
15zonestringОпределяет уровень критичности угрозы и позволяет классифицировать индикаторы по степени потенциальной опасности. Возможные значения поля zone"zone": "GREY"