Методы 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}' \
Параметры запроса
| № | Параметр | Тип данных | Обязательность | Описание | Варианты значений |
|---|---|---|---|---|---|
| 1 | updated_at | int64 | нет |
| 1720779456000000 |
| 2 | actions | string | нет |
| Допустимые значения:
|
| 3 | fields | string | нет |
| Допустимые значения:
|
| 4 | limit | int | нет | Данный параметр ограничивает число записей, которые возвращаются в ответе. Если значение параметра не передано, то количество записей в ответе будет ограничено 1000. Если нужно получить большее количество записей, то нужно сделать еще один запрос с параметром updated_at, равным максимальному значению updated_at из предыдущего ответа. | 100 |
| 5 | direction_sort | string | нет | Задает направление сортировки и итерации. При ASC порядок индикаторов в ответе отсортирован по возрастанию. При DESC - сортировка по убыванию, от новых к старым. | Допустимые значения:
|
| 6 | indicator_type | string | да | Тип индикатора | Допустимые значения:
|
Пример ответа
{
"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.
| № | Поле | Тип данных | Описание | Пример |
|---|---|---|---|---|
| 1 | updated_at | int64 | В данном поле возвращается дата и время совершения изменений для индикатора. Поле возвращается в любом случае, даже если не задано значение в fields | "updated_at": 1720779456000000 |
| 2 | indicator_id | string | UUID индикатора | "indicator_id": "ae738100-9d16-11ed-886c-514e095ea79a" |
| 3 | indicator_type | string | Тип индикатора | Допустимые значения:
|
| 4 | action | string | Последнее действие, выполненное с индикатором (создание, обновление или удаление). Допускается появление UPDATE без предшествующего CREATE | Допустимые значения:
|
| 5 | value | string | Значение индикатора | "value": "5.8.95.174" |
| 6 | description | string | Описание индикатора | "description": "IP dangerous" |
| 7 | first_seen | string | Дата и время первого обнаружения индикатора | "first_seen": "1706617092704397" |
| 8 | last_seen | string | Дата и время последнего обнаружения индикатора | "last_seen": "1706617092704397" |
| 9 | valid_until | string | Дата и время устаревания (окончания валидности) индикатора | "valid_until": "1706617092704397" |
| 10 | relations | array (json) | Данное поле является составным и описывает связи объектов. Связанных объектов может быть несколько. Состоит из:
| "relations": [{"object_id": "97ed4000-c58e-11ee-b402-c367b432f5d9", "object_type": "indicator", "indicator_type": "domain-name", "object_value": "example.com"}] |
| 11 | external_references | array (string) | Массив внешних ссылок, связанных с индикатором. | "external_references": ["example1.com", "example2.com"] |
| 12 | rules | array (string) | Массив сработавших детектирующих правил. | "rules": ["IP есть в Virus Total. Требуется дальнейший анализ поведения"] |
| 13 | categories | array (string) | Категории индикатора. | "categories": ["spam"] |
| 14 | feeds | array (string) | Перечень фидов, к которым относится индикатор. | "feeds": ["c2", "malware", "phishing", "apt", "ransomware"] |
| 15 | zone | string | Определяет уровень критичности угрозы и позволяет классифицировать индикаторы по степени потенциальной опасности. Возможные значения поля 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}' \
Параметры запроса
| № | Параметр | Тип данных | Обязательность | Описание | Варианты значений |
|---|---|---|---|---|---|
| 1 | updated_at | int64 | нет | В данном параметре передается дата и время (с указанием микросекунд) создания или обновления индикатора в формате unix timestamp. Если значение параметра отсутствует, то поиск будет производиться по всем индикаторам без фильтрации по времени. Если в параметре указано значение, то запрос вернет все индикаторы дата создания или обновления которых сортируется в порядке, заданном в параметре direction_sort. | 1720779456000000 |
| 2 | actions | string | нет | В данном параметре передается состояние индикатора, который нужно вернуть в ответе. Если значение отсутствует, то поиск будет производиться по всем индикаторам без фильтрации. При передаче параметра может быть указано несколько значений через запятую. Допускается появление UPDATE без первичного вызова CREATE | Допустимые значения:
|
| 3 | fields | string | нет | В данном параметре передается список атрибутов индикатора, которые надо вернуть в ответе. Если значение отсутствует, то поиск будет производиться по всем индикаторам без фильтрации. При передаче параметра может быть указано несколько значений через запятую. Если в запросе в параметре fields передано значение неравное атрибуту индикатора, то будет возвращена ошибка с кодом 400. Обязательные значения ответа: updated_at | Допустимые значения:
|
| 4 | limit | int | нет | Данный параметр ограничивает число записей, которые возвращаются в ответе. Если параметр не передан, по умолчанию возвращается 1000 записей. Максимальное количество передаваемых записей - 10000. Если нужно получить больше записей, необходимо выполнить дополнительный запрос с указанием значения параметра updated_at, равного максимальному значению updated_at из предыдущего ответа. | 100 |
| 5 | direction_sort | string | нет | Задает направление сортировки и итерации. При ASC порядок индикаторов в ответе отсортирован по возрастанию. При DESC - сортировка по убыванию, от новых к старым. | Допустимые значения:
|
| 6 | indicator_types | array (string) | да | В данном параметре передаются типы индикаторов в массиве | "ipv4-addr", "ipv6-addr", "socketv4" |
| 7 | feed_names | array (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:
| № | Поле | Тип данных | Описание | Пример |
|---|---|---|---|---|
| 1 | updated_at | int64 | В данном поле возвращается дата и время совершения изменений для облака. Поле возвращается в любом случае, даже если не задано значение в fields | "updated_at": 1720779456000000 |
| 2 | indicator_id | string | UUID индикатора | "indicator_id": "ae738100-9d16-11ed-886c-514e095ea79a" |
| 3 | indicator_types | array(string) | Тип индикатора | Допустимые значения:
|
| 4 | action | string | Данное поле указывает последнее действие совершенное над индикатором (создание, обновление или удаление). Допускается появление UPDATE без первичного вызова CREATE | Допустимые значения:
|
| 5 | value | string | Значение индикатора | "value": "5.8.95.174" |
| 6 | description | string | Описание индикатора | "description": "IP dangerous" |
| 7 | first_seen | string | Дата и время первого обнаружения индикатора | "first_seen": "1706617092704397" |
| 8 | last_seen | string | Дата и время последнего обнаружения индикатора | "last_seen": "1706617092704397" |
| 9 | valid_until | string | Дата и время устаревания (окончания валидности) индикатора | "valid_until": "1706617092704397" |
| 10 | relations | array (json) | Данное поле является составным и описывает связи объектов. Связанных объектов может быть несколько. Состоит из:
| "relations": [{"object_id": "97ed4000-c58e-11ee-b402-c367b432f5d9", "object_type": "indicator", "indicator_types": "domain-name", "object_value": "example.com"}] |
| 11 | external_references | array (string) | Внешние ссылки индикатора. | "external_references": ["example1.com", "example2.com"] |
| 12 | rules | array (string) | Сработавшие детектирующие правила. | "rules": ["IP есть в Virus Total. Требуется дальнейший анализ поведения"] |
| 13 | categories | array (string) | Категория индикатора. | "categories": ["spam"] |
| 14 | feeds | array (string) | Перечень фидов, к которым относится индикатор. | "feeds": ["c2", "malware", "phishing", "apt", "ransomware"] |
| 15 | zone | string | Определяет уровень критичности угрозы и позволяет классифицировать индикаторы по степени потенциальной опасности. Возможные значения поля zone | "zone": "GREY" |