← Cloudflare API Shield / api-shield
Начало работы с API Shield
API Shield защищает ваши API, обнаруживая конечные точки, проверяя схемы запросов и выявляя признаки злоупотреблений. В этом руководстве описана первоначальная настройка: от конфигурации идентификаторов сессий до включения расширенной защиты.
Идентификаторы сессии
Хотя это не обязательно, рекомендуется настроить идентификаторы сессий при начале работы с API Shield. Когда Cloudflare анализирует трафик API по отдельным сессиям, мы можем предложить больше инструментов для наблюдаемости, управления и контроля.
Если вы не уверены, какие идентификаторы сеанса использует ваш API, обратитесь к своей команде разработки.
Идентификаторы сессии должны однозначно определять клиентов API. Для трафика API в качестве идентификатора сессии часто используется Authorization заголовок. Когда JSON Web Token (JWT) используется API для аутентификации клиента, и его значение может со временем меняться. Вы можете использовать значение утверждения внутри JWT, например sub или email в качестве идентификатора сессии для однозначного определения сессии во времени.
Если ваш API использует Authorization заголовок более чем в 1% успешных запросов к вашей зоне, Cloudflare автоматически назначит его идентификатором сессии API Shield.
Для настройки идентификаторов сессий или cookie в качестве идентификаторов требуются отдельные права доступа, например подписка Enterprise, для таких функций, как API Discovery, Sequence Mitigation или рекомендации по ограничению скорости запросов, а чтобы увидеть результаты в Sequence Analytics и Состояние аутентификации.
Настройка идентификаторов сессии
-
На панели управления Cloudflare перейдите к разделу Security Settings страницу.
Перейдите в Настройки ↗ -
Фильтр по Злоупотребление API.
-
На Идентификаторы сессии, выберите Настройка идентификаторов сессии.
-
Выберите Управление идентификаторами.
-
Выберите тип идентификатора сессии (cookie, HTTP-заголовок или JWT-утверждение).
-
Введите имя идентификатора сессии.
-
Выберите Save.
После настройки идентификаторов сессии и небольшой паузы, пока Cloudflare изучает шаблоны вашего трафика, вы сможете просматривать рекомендации по ограничению скорости для каждой конечной точки и каждой сессии, а также применять такие ограничения, создавая новые правила. Идентификаторы сессии также позволяют просматривать результаты API Discovery на основе обнаружения по идентификатору сессии и шаблоны трафика сессий в Sequence Analytics.
Создание Schema Profile
Профили приложений предоставляет один Schema Profile с двумя источниками. Schema Learning формирует профиль на основе трафика, а Schema Validation использует загруженную схема OpenAPI.
Оба источника предоставляют постоянное обнаружение после того как их профиль становится доступен. Для блокировки требуется отдельное пользовательское правило WAF.
Если вы поддерживаете схему OpenAPI, следуйте Порядок загрузки схемы в Schema Validation. API Shield остаётся эталоном для совместимости с OpenAPI, управления схемами и автоматизации.
Включение набора правил Sensitive Data Detection и связанных с ним правил
API Shield работает вместе с Cloudflare WAF Sensitive Data Detection набор правил для выявления Конечные точки API, которые возвращают конфиденциальные данные, например номера социального страхования или банковских карт, в своих HTTP-ответах. Проверьте эти конечные точки и убедитесь, что конфиденциальные данные возвращаются только там, где это ожидается.
Чтобы определить конечные точки, возвращающие конфиденциальные данные, нажмите значок рядом с путем в соответствующей строке. Разверните конечную точку, чтобы увидеть, какие правила сработали, а подробнее о событиях можно узнать в Firewall Events.
Управление операциями
Web Assets непрерывно обнаруживает операции на основе трафика. Операция представляет конечную точку по методу HTTP, шаблону имени хоста и шаблону пути.
Вы также можете добавить операции вручную в разделе Web Assets > Операции. Discovery и ручное создание только добавляют записи в инвентарь.
Чтобы запустить Schema Learning, выберите Изучение профиля из меню дополнительных действий операции. Просмотрите изученную схему в Просмотр сведений > Обзор безопасности.
Полный процесс работы и пороговые значения трафика см. в Начало работы с Application Profiles.
Добавление ограничений скорости для самых чувствительных конечных точек
Правила ограничения скорости позволяют задавать ограничения скорости для запросов, соответствующих выражению, и выбирать действие, которое выполняется при достижении этих ограничений.
API Shield формирует рекомендации по ограничению скорости для каждой конечной точки на основе ваших идентификаторов сессий. Эти рекомендации действуют в рамках конкретной конечной точки и сессии, а не применяются ко всему сайту целиком или на основе IP-адреса.
Лимиты скорости на сессию отслеживают трафик отдельных посетителей в рамках их сессии к определённой конечной точке. Это снижает число ложных срабатываний от правил с широкой областью действия, но по-прежнему ограничивает вредоносный трафик.
Экспорт изученной схемы
Изученные схемы включают имя хоста, все конечные точки по хосту, методу и пути, а также обнаруженные переменные пути (например, /users/{id}). Они также могут включать обнаруженные параметры запроса и их формат. При необходимости можно добавить рекомендации по пороговым значениям ограничения скорости запросов.
Вы можете экспортировать изученные схемы в Панель управления Cloudflare либо через API.
Экспорт создаёт OpenAPI v3.0.0 файл. Чтобы использовать фиксированный профиль, загрузите этот файл через Schema Validation.
Просмотр и настройка Sequence Analytics
Sequence Analytics выявляет типичные шаблоны API-запросов, например когда пользователь проверяет баланс счёта перед переводом средств.
Последовательности ранжируются по показателю приоритета, который отражает вероятность того, что определённые запросы API будут регулярно происходить в одном и том же порядке. Последовательности с высоким показателем включают запросы API, которым, как правило, предшествуют другие операции этой последовательности.
Sequence mitigation позволяет применять шаблоны запросов для аутентифицированных клиентов, взаимодействующих с вашим API. С помощью Sequence Analytics определите последовательности, которые используют клиенты вашего API, а затем примените к конечным точкам из последовательностей с высоким рейтингом защиту API Shield (ограничение скорости, Schema validation, JWT validation и mTLS). Проверьте ожидаемый порядок конечных точек совместно с командой разработки.
Подробнее см. в Автоматическое выявление злоупотреблений API с помощью анализа последовательностей ↗ в записи блога.
Дополнительная настройка
Настройка проверки JSON Web Tokens (JWT)
Валидация JSON Web Tokens (JWT) проверяет, что токены, отправленные клиентами, не были изменены и не истекли. Настройте проверку JWT через дашборд Cloudflare или API.
Настройка защиты от вредоносных запросов GraphQL
Если ваш источник использует GraphQL, рассмотрите возможность ограничения размера и глубины запросов GraphQL.
Защита от вредоносных запросов GraphQL анализирует трафик GraphQL и выявляет запросы с чрезмерной вложенностью или размером, которые могут перегрузить ваш источник и привести к отказу в обслуживании. Вы можете создавать правила, задающие максимальную глубину и размер запроса, чтобы блокировать такие запросы до того, как они достигнут источника.
Дополнительные сведения см. в запись в блоге ↗.
Аутентификация с использованием взаимного TLS (mTLS)
Если ваш API требует дополнительного уровня защиты или выиграет от него, рассмотрите использование Mutual TLS (mTLS).
Аутентификация с использованием взаимного TLS (mTLS) требует, чтобы клиент и сервер подтверждали подлинность друг друга с помощью сертификатов. В обычном TLS подлинность подтверждает только сервер. mTLS добавляет проверку клиента, что полезно для таких устройств, как IoT-оборудование, которое не проходит аутентификацию через поставщика удостоверений.