← Cloudflare API Shield / api-shield / security
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.
В настоящее время длина последовательности ограничена девятью операциями.