Про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 Структура использует гибридный подход: анализ данных осуществляется как локально, так и в Вычислительном кластере. Это обеспечивает конфиденциальность данных, так как данные запросов и чувствительные данные остаются в вашей локальной сети. Процесс анализа включает следующие этапы:
-
ПроAPI Структура локально анализирует, на какие эндпоинты поступает легитимный трафик и какие параметры передаются в запросах.
-
На основе этих данных формируется статистика, которая отправляется в Вычислительный кластер в защищенном виде.
-
Вычислительный кластер Вебмониторэкс агрегирует полученную статистику и строит на ее основе описание 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.
Среди этих возможностей:
-
Отображение структуры в привычном виде, подобном 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}
Нажмите на эндпоинт, чтобы в наборе параметров посмотреть тип, автоматически определенный для вариативного параметра.
Обратите внимание, что алгоритм постоянно анализирует новый трафик. Если в определенный момент вы видите адреса, которые должны быть объединены, но этого еще не произошло, подождите. По мере поступления дополнительных данных система уточнит закономерности и объединит эндпоинты в один с нужным вариативным элементом.
Защита от атак типа BOLA¶
Поведенческие атаки типа Broken Object Level Authorization (BOLA) эксплуатируют одноименную уязвимость приложений. Данная уязвимость позволяет злоумышленнику обратиться к объекту по идентификатору через запрос API и получить или изменить его данные, обойдя механизм авторизации.
Потенциальные цели BOLA-атак — эндпоинты с вариативными элементами. Вебмониторэкс может автоматически находить и защищать такие эндпоинты среди обнаруженных ПроAPI Структура.
Вы можете включить автозащиту для уязвимых эндпоинтов API в Консоли управления → Защита от BOLA:
Защищенные эндпоинты подсвечиваются в структуре API, например:
Чтобы отфильтровать эндпоинты по наличию автозащиты от BOLA, укажите соответствующий параметр в фильтре Другие.
Безопасность данных в Вычислительном кластере Вебмониторэкс¶
ПроAPI Структура анализирует большую часть трафика локально. При совместном использовании ПроAPI Структура отправляет в Вычислительный кластер Вебмониторэкс только эндпоинты, имена параметров и статистику (время, количество запросов и т.д.). Данные отправляются безопасным способом: значения параметров всех запросов хешируются согласно алгоритму SHA‑256.
На стороне Вычислительного кластера хешированные данные используются только для статистического анализа, например, для определения количества запросов с такими же параметрами.
Значения эндпоинтов, методы запросов и названия параметров не хешируются, так как это ключевые данные для построения структуры API, а восстановление из хеша их оригинальных значений невозможно.
Важно
Вебмониторэкс не пересылает в Вычислительный кластер значения параметров. Отправляются только эндпоинты, имена параметров и статистика по ним.