Перейти к содержанию

О Структура API

С помощью программного обеспечения (ПО) Структура API вы можете получить актуальную структуру REST API вашего приложения, построенную на основе данных о фактическом использовании API. ПО непрерывно анализирует запросы из реального трафика, а также ответы API и по результатам анализа формирует структуру API.

ПО Структура API может использоваться как вместе с решением Вебмониторэкс по защите веб-приложений, так и отдельно.

Какие задачи решает ПО Структура API?

Основная задача, которую позволяет решить ПО Структура APIполучение актуальной и полной структуры API.

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

Поскольку ПО Структура API использует реальный трафик в качестве источника данных, оно помогает получать актуальную и полную документацию по API. Эта документация включает все эндпоинты, которые фактически обрабатывают запросы.

Построенная структура API позволяет:

  • Иметь картину всего API, включая список публичных и внутренних API.

  • Понимать, какие данные передаются в API.

  • Отфильтровать атакуемые API, сортировать их по количеству хитов.

  • Фиксировать API, в которых на сервер передаются чувствительные данные.

  • Экспортировать актуальную структуру API в формате OpenAPI v3 и сравнивать ее с вашим собственным описанием API. В ходе сравнения можно обнаружить:

    • Список эндпоинтов, обнаруженных Вебмониторэкс, но отсутствующих в вашей спецификации (недостающие эндпоинты, так называемый "Shadow API").
    • Список эндпоинтов, присутствующих в вашей спецификации, но не обнаруженных Вебмониторэкс (неиспользуемые эндпоинты, так называемый "Orphan API").
  • Отслеживать изменения в структуре API, произошедшие в выбранном промежутке времени.

  • Быстро создавать правила для любого эндпоинта.

  • Получать полный список вредоносных запросов, направленных на эндпоинт.

  • Предоставлять вашим разработчикам доступ к чтению и скачиванию построенной структуры API.

Как работает ПО Структура API?

ПО Структура API опирается на статистику запросов и использует сложные алгоритмы для создания актуальных спецификаций API на основе его фактического использования.

Гибридный подход

ПО Структура API использует гибридный подход: анализ данных осуществляется как локально, так и в Вычислительном кластере. Это обеспечивает конфиденциальность данных, так как данные запросов и чувствительные данные остаются в вашей локальной сети. Процесс анализа включает следующие этапы:

  1. ПО Структура API локально анализирует, на какие эндпоинты поступает легитимный трафик и какие параметры передаются в запросах.

  2. На основе этих данных формируется статистика, которая отправляется в Вычислительный кластер в защищенном виде.

  3. Вычислительный кластер Вебмониторэкс агрегирует полученную статистику и строит на ее основе описание API.

    Определение шума

    Редкие или одиночные запросы определяются как шум и не учитываются в структуре API.

Определение шума

ПО Структура API определяет шум, руководствуясь двумя базовыми параметрами трафика:

  • Стабильность эндпоинта – не менее 5 запросов должны быть зафиксированы в течение 5 минут с момента первого запроса к эндпоинту.

  • Стабильность параметра – частота появления параметра в запросах к эндпоинту должна быть больше 1 процента.

В структуре API отобразятся эндпоинты и параметры, превышающие эти лимиты. Время построения полной структуры API зависит от разнообразия и интенсивности трафика.

Дополнительно ПО Структура API фильтрует запросы по ряду других критериев:

  • Учитываются только запросы, на которые сервер вернул ответ 2xx.

  • Стандартные поля, такие как Сontent-Type, Accept и подобные отбрасываются.

Элементы структуры API

В структуру включены следующие элементы:

  • Эндпоинты API

  • Методы запросов к API (GET, POST и другие)

  • Обязательные и опциональные GET‑ и POST‑параметры, а также заголовки запросов к API, включая:

    • Тип/формат данных, которые передаются в каждом параметре
    • Наличие и тип чувствительных данных в параметре:

      • Технические данные, например: IP-адрес или MAC-адрес
      • Учетные данные, например: секретный ключ или пароль
      • Финансовые данные, например: номер банковской карты
      • Медицинские данные, например: номер страховки
      • Персональные данные (PII), например: ФИО, номер паспорта или водительского удостоверения
    • Дату последнего обновления информации о параметре

Типы и форматы данных в параметрах

Структура API анализирует значения, которые передаются в каждом из параметров эндпоинта, и пытается определить их формат:

  • Int32

  • Int64

  • Float

  • Double

  • Date

  • Datetime

  • Email

  • IPv4

  • IPv6

  • UUID

  • URI

  • Hostname

  • Byte

  • MAC

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

  • Integer

  • Number

  • String

  • Boolean

Для каждого параметра в колонке Тип отображается:

  • Формат данных

  • Если формат не определен – тип данных

Информация о типе/формате позволяет проверить, передаются ли в параметрах данные ожидаемого формата. Несоответствия могут быть результатом атаки или сканирования вашего API, например:

  • В поле с IP передаются данные типа String

  • В поле, где должно быть значение не больше Int32, передается Double

Подключение ПО Структура API

Чтобы начать работать со структурой API, необходимо оформить подписку, установить и настроить ПО Структура API.

Подробнее о подписке, установке и настройке

Работа с построенной структурой API

Раздел Структура API предоставляет различные возможности для работы с построенной структурой API.

Обнаруженные эндпоинты API

Среди этих возможностей:

  • Отображение структуры в привычном виде, подобном Swagger UI.

  • Поиск и фильтры.

  • Возможность просмотра отдельно публичных и внутренних эндпоинтов.

  • Просмотр параметров эндпоинта.

  • Быстрый переход к атакам на выбранный эндпоинт.

  • Создание правил для выбранного эндпоинта.

  • Скачивание спецификации OpenAPI (OAS) вашей структуры API.

Подробнее о работе со структурой API →

Отслеживание изменений в структуре API

Если вы обновляете API или меняется структура трафика, ПО Структура API учитывает эти изменения и отображает их в построенной структуре API.

В одной компании могут работать несколько команд, использоваться разные фреймворки и языки программирования. Таким образом, изменения в структуру API могут приходить в разное время и из разных источников, отслеживать их становится трудно. Специалистам по безопасности важно быстро обнаруживать и анализировать эти изменения. Не проанализированные вовремя изменения могут нести риски, например:

  • Команда разработки начинает использование сторонней библиотеки с отдельным API, не оповестив другие команды и специалистов по безопасности. Появляются эндпоинты, которые не отслеживаются и не проверяются на наличие уязвимостей. Такие эндпоинты становятся потенциальными направлениями атак.

  • На эндпоинт начинают передаваться чувствительные (PII) данные, что приводит к несоответствию требованиям контролирующих организаций, а также создает репутационные риски.

  • Прекращаются запросы к эндпоинту, важному с точки зрения бизнес-логики (например, /login, /order/{order_id}/payment/).

  • Начинают передаваться другие параметры, которые передаваться не должны, например is_admin (кто-то получает доступ к эндпоинту с правами администратора).

С помощью ПО Структура API вы можете:

  • Отследить изменения в структуре API и проанализировать, не нарушают ли эти изменения текущие бизнес-процессы.

  • Убедиться, что в структуре API не появились неизвестные эндпоинты, которые могут выступить потенциальными направлениями атак.

  • Убедиться, что в измененной части API не передаются чувствительные (PII) или другие недопустимые параметры.

Подробнее о том, как отслеживать изменения в структуре API, вы можете узнать в руководстве пользователя.

Публичные и внутренние API

Эндпоинты, доступные из внешних сетей, являются главными объектами атак. Поэтому важно иметь возможность разделить обнаруженные эндпоинты на публичные и внутренние и просматривать публичные отдельно.

Вебмониторэкс автоматически определяет, являются ли обнаруженные эндпоинты публичным или внутренним. Эндпоинт считается внутренним, если располагается на:

  • Частном или локальном IP-адресе

  • Общем домене верхнего уровня (например: localhost, dashboard, и т.д.)

В остальных случая эндпоинт считается публичным.

По умолчанию отображается список всех (публичных и внутренних) эндпоинтов. В списке эндпоинтов вы можете просмотреть публичные и внутренние эндпоинты отдельно. Для этого нажмите Публичные или Внутренние.

Вариативные элементы в эндпоинтах

В эндпоинтах могут присутствовать вариативные элементы, такие как ID пользователя, например:

  • /api/articles/author/author-a-0001

  • /api/articles/author/author-a-1401

  • /api/articles/author/author-b-1401

ПО Структура API объединяет подобные элементы в формате {parameter_X}, так что для приведенного выше примера вместо трех эндпоинтов будет один:

  • /api/articles/author/{parameter_X}

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

Структура API - Переменная в пути эндпоинта

Обратите внимание, что алгоритм постоянно анализирует новый трафик. Если в определенный момент вы видите адреса, которые должны быть объединены, но этого еще не произошло, подождите. По мере поступления дополнительных данных система уточнит закономерности и объединит эндпоинты в один с нужным вариативным элементом.

Защита от атак типа BOLA

Поведенческие атаки типа Broken Object Level Authorization (BOLA) эксплуатируют одноименную уязвимость приложений. Данная уязвимость позволяет злоумышленнику обратиться к объекту по идентификатору через запрос API и получить или изменить его данные, обойдя механизм авторизации.

Потенциальные цели BOLA-атак — эндпоинты с вариативными элементами. Вебмониторэкс может автоматически находить и защищать такие эндпоинты среди обнаруженных ПО Структура API.

Вы можете включить автозащиту для уязвимых эндпоинтов API в Консоли управления → Защита от BOLA:

BOLA trigger

Защищенные эндпоинты подсвечиваются в структуре API, например:

BOLA trigger

Чтобы отфильтровать эндпоинты по наличию автозащиты от BOLA, укажите соответствующий параметр в фильтре Другие.

Безопасность данных в Вычислительном кластере Вебмониторэкс

ПО Структура API анализирует большую часть трафика локально. При совместном использовании ПО Структура API отправляет в Вычислительный кластер Вебмониторэкс только эндпоинты, имена параметров и статистику (время, количество запросов и т.д.). Данные отправляются безопасным способом: значения параметров всех запросов хешируются согласно алгоритму SHA‑256.

На стороне Вычислительного кластера хешированные данные используются только для статистического анализа, например, для определения количества запросов с такими же параметрами.

Значения эндпоинтов, методы запросов и названия параметров не хешируются, так как это ключевые данные для построения структуры API, а восстановление из хеша их оригинальных значений невозможно.

Важно

Вебмониторэкс не пересылает в Вычислительный кластер значения параметров. Отправляются только эндпоинты, имена параметров и статистика по ним.