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

Сравнение спецификаций

ПО Структура API автоматически идентифицирует API Shadow, Orphan и Zombie, сравнивая загруженную вами спецификацию с текущим трафиком.

Тип rogue API Что это?
Shadow API Недокументированный API, который существует в инфраструктуре организации без надлежащего разрешения или надзора.
Orphan API Документированный API, который не получает трафик.
Zombie API Устаревшие API, которые считаются отключенными, но на самом деле все еще используются.

Rogue API

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

Структура API - выявление и фильтрация rogue API

Требования к загружаемой спецификации

Проверьте спецификацию перед загрузкой, она должна соответствовать следующим требованиям:

  • Формат OpenAPI v3 JSON или YAML.

  • Указана версия экземпляра спецификации.


     Пример

            {
                "openapi": "3.0.1",
                "info": {
                    "title": "Open API spec",
                    "description":"API Discovery",
                    "version": "1.0.1"
                }
            }

Обратите внимание

Спецификации OpenAPI с версиями ниже v3 не поддерживаются.
Если у вас используется более ранняя OpenApi v2.0 (Swagger RESTful API Documentation Specification), воспользуйтесь конвертером.


Конвертер Вы можете использовать конвертер swagger-editor: он доступен онлайн и в виде docker контейнера.
Также с помощью конвертера swagger-editor можно проверить спецификацию на наличие ошибкок.

Ежечасное сравнение rogue API

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

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

  • Ваша собственная спецификация (могут появиться новые версии).

Чтобы настроить постоянный мониторинг rogue API, у вас есть возможность сравнения на почасовой основе. Чтобы использовать эту опцию, спецификация должна быть загружена с URL-адреса. Сама спецификация будет обновляться перед каждым сравнением.

Как настроить сравнение rogue API на почасовой основе:

  1. Перейдите в раздел Спецификация API в Консоли управления Вебмониторэкс.

  2. Нажмите Загрузить спецификацию.

  3. Выберите спецификацию для загрузки.

  4. Установите параметры сравнения:

    • Приложения и хосты - будут сравниваться только эндпоинты, связанные с выбранными приложениями / хостами. Если вы выберете Сравнить со всеми текущими и будущими обнаруженными в хостами приложений, то в сравнение будут включены все хосты (выбранных приложений), известные сейчас, и все хосты, которые будут обнаружены в будущем.

      Вы можете изменить настройки сравнения в любой момент - после этого сравнение будет выполнено заново с новыми результатами.

    • Выберите загрузку с URL-адреса. При необходимости вы можете указать токен для аутентификации.

    • Оставьте выбранной опцию Регулярно выполнять сравнение (она включена по умолчанию).

    Структура API - Спецификации API - загрузка спецификации API для поиска Rogue API

  5. Запустите загрузку.

По завершении загрузки количество rogue API (shadow, orphan и zombie) будет отображаться для каждой спецификации в списке Спецификация API.

Раздел Спецификации API

Также в разделе Структура API будут отображаться rogue API. Используйте фильтр Rogue API, чтобы увидеть только API shadow, orphan и / или zombie, связанные с выбранными сравнениями, и отфильтровать оставшиеся эндпоинты.

Структура API - выявление и фильтрация rogue API

В информации о таких эндпоинтах, в разделе Конфликты со спецификациями, будет указана спецификация, с помощью которой были обнаружены shadow/zombie/orphan.

Поиск rogue API путем однократного сравнения

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

Обратите внимание:

  • Вы можете перезапустить сравнение в любой момент через меню спецификаций → Перезапустить сравнение.

  • Вы можете скачать ранее загруженную спецификацию через Спецификация API → окно сведений о спецификации → Скачать спецификацию.

Версии спецификаций и zombie API

В отличие от shadow и orphan API, zombie API требуют сравнения различных версий спецификаций:

  • В случае регулярного сравнения по часам просто укажите новую версию URL-адреса, где вы размещаете свою спецификацию. Она будет обрабатываться по почасовому графику или немедленно, если вы выберете вариант Перезапустить сравнение в меню спецификаций.

  • В случае, когда регулярное сравнение не используется:

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

    Затем сохраните спецификацию и в ее меню выберите Перезапустить сравнение.

Работа с несколькими спецификациями

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

В разделе Структура API используйте фильтр Сравнить с... для выбора спецификаций к сравнению — для них rogue API будут выделены специальными метками в столбце Безопасность.

Структура API - выявление и фильтрация rogue API

Типы rogue API и риски

Shadow API

Shadow API — это недокументированный API, который существует в инфраструктуре организации без надлежащего разрешения или контроля.

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

С точки зрения загруженных вами спецификаций API, shadow API — это эндпоинт, представленный в фактическом трафике (обнаруженный Структурой API) и не представленный в вашей спецификации.

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

Orphan API

Orphan API – это документированный API, который не получает трафик.

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

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

  • Определение того, должны ли определенные приложения не получать трафик на этих конкретных эндпоинтах, или это какая-то неверная конфигурация.

  • Принятие решения об устаревших эндпоинтах: использовались в предыдущих версиях приложения и не использовались в текущей — следует ли их удалить из спецификации, чтобы сократить усилия по проверке безопасности.

Zombie API

Zombie API относится к устаревшим API, которые, как все предполагают, были отключены, но на самом деле они все еще используются.

Риски Zombie API аналогичны остальным недокументированным (shadow) API, но могут быть и хуже, поскольку причиной отключения часто являются небезопасные конструкции, которые легче взломать.

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

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