INTEGRITY Документация

Sequence Analytics

Sequence Analytics отслеживает порядок запросов к эндпоинтам API во времени и позволяет узнать, как пользователи взаимодействуют с вашим API. Sequence Analytics группирует и выделяет важные пользовательские сценарии (последовательности) в рамках вашего API. Задать обязательные последовательности можно с помощью Sequence mitigation.

Процесс

Формирование последовательностей

Последовательность представляет собой упорядоченный по времени список HTTP-запросов к API, которые делает конкретный посетитель при просмотре сайта, использовании мобильного приложения или взаимодействии с партнёром B2B через API.

Например, часть последовательности, выполняемой при переводе банковских средств, может выглядеть так:

Порядок Метод Путь Описание
1 GET /api/v1/users/{user_id}/accounts user_id является активным пользователем.
2 GET /api/v1/accounts/{account_id}/balance account_id является одним из аккаунтов пользователя.
3 GET /api/v1/accounts/{account_id}/balance account_id это другой аккаунт, принадлежащий пользователю.
4 POST /api/v1/transferFunds Здесь указывается тело запроса с информацией о счёте списания, счёте зачисления и сумме перевода.

API Shield использует настроенный вами идентификатор сеанса и операции в full или candidate состояние, чтобы сформировать набор упорядоченных операций API (HTTP-хост, метод и путь), запрошенных в рамках сессии. API Shield может показывать последовательности разной длины в зависимости от того, как он их оценивает.

Оценка последовательностей

API Shield оценивает последовательности с помощью метрики precedence score. Sequence Analytics показывает последовательности, отсортированные по убыванию этой метрики. Последовательности с высоким значением содержат запросы API, которые с высокой вероятностью происходят друг за другом именно в этом порядке.

В примере выше высокий показатель означает, что последняя операция в последовательности POST /api/v1/transferFunds с высокой вероятностью следует за другими операциями в последовательности GET /api/v1/users/{user_id}/accounts а затем GET /api/v1/accounts/{account_id}/balance. Оценки представляют собой вероятности, которые API Shield рассчитывает на основе данных за последние 24 часа.

Защитите свой API

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

В примере выше, если POST /api/v1/transferFunds по логике всегда должен предваряться GET /api/v1/users/{user_id}/accounts и GET /api/v1/accounts/{account_id}/balance, вам следует создать Allow правило нейтрализации в рамках последовательности для последней операции этой последовательности.

Также рекомендуется применить к этим эндпоинтам другие механизмы защиты API Shield (советы по ограничению скорости запросов, Schema validation, Проверка JWT, а также mTLS).

Дополнительные сведения см. в запись в блоге ↗.

Повторяющиеся последовательности

В реальном использовании API часто встречаются подряд повторяющиеся операции. Чтобы упростить анализ, Sequence Analytics объединяет такие операции в одну.

Доступность

Sequence Analytics доступна всем клиентам API Shield. Клиенты с тарифами Pro, Business и Enterprise, которые ещё не приобрели API Shield, могут начать работу, включение пробного периода API Shield ↗ в панели управления Cloudflare или обратившись к своему менеджеру по работе с клиентами.

Ограничения

Для работы Sequence Analytics в настоящее время требуется идентификатор сессии и операции, которые API Shield может сопоставить на периферии сети Cloudflare. Убедитесь, что у вас настроены настройте идентификатор(ы) сессии и просмотрели свои операции в full и candidate состояния в Web Assets.

В настоящее время длина последовательности ограничена девятью операциями.