Привет, Хабр! Я Наталья Грачева, владелец продукта в СберТехе, ведущий руководитель ИТ-направления. Мы с командой развиваем продукт Platform V Synapse — децентрализованную платформу для задач интеграции. Я расскажу, почему важно обеспечивать безопасность API прикладных решений и как мы помогаем командам разработки делать это самостоятельно, с помощью специального инструмента в составе нашего продукта.
Зачем отслеживать риски безопасности API
Широко распространённая технология REST API сегодня используется для передачи как персональных данных, так и финансовой информации, а также информации, которая может представлять коммерческую тайну организации. Поэтому мы уделяем особое внимание грамотному проектированию API и инструментам своевременного выявления потенциальных уязвимостей в существующих API.
Мы также регулярно отслеживаем глобальные тренды безопасности. Один из бенчмарков, на которые мы ориентируемся при мониторинге, — это OWASP (Open Worldwide Application Security Project), созданный в некоммерческом объединении, которое появилось и работает для того, чтобы улучшать безопасность программного обеспечения.
Ежегодно OWASP публикует список «10 наиболее опасных уязвимостей при разработке API». Недостаточный уровень безопасности API может привести к раскрытию конфиденциальной информации, потере, изменению или повреждению данных в системе, использованию сервера третьими лицами в качестве прокси, инъекции кода, эксплуатации известных уязвимостей в системе и многим другим бедам.
Обеспечить безопасность, когда в системе одна-две конечные точки, не так уж сложно. Другое дело, когда речь идёт о корпоративных системах со множеством сервисов, кластеров и огромным количеством вызовов. Помимо контроля на входе перед выпуском ПО в промышленную эксплуатацию мы столкнулись с задачей мониторинга и оценки рисков безопасности API в реальном времени.
Как решили задачу
Для решения этих задач мы разработали и развиваем API Explorer — инструмент, который в реальном времени позволяет собирать сведения об API, анализировать запрос и сигнализировать о наличии в нем опасных уязвимостей из топ-10 списка OWASP:
API1:2023 — Broken Object Level Authorization — Недостатки доступа к объектам;
API2:2023 — Broken Authentication — Недостатки авторизации;
API5:2023 — Broken Function Level Authorization — Недостатки доступа к функциям.
Помимо этого, API Explorer позволяет:
анализировать как внешний, так и внутренний проходящий трафик в кластере;
для каждого endpoint на основе трафика реконструировать схему в формате OpenAPI;
в реальном времени фиксировать отклонения запроса от «эталонной» схемы API — загруженной или ранее реконструированной и утвержденной.
Верхнеуровнево архитектуру инструмента можно описать так:
все сервисы разворачиваются в контуре ServiceMesh,
на POD каждого прикладного приложения устанавливается сайдкар Envoy Proxy, в который внедряется специальный wasm‑фильтр,
все запросы, приходящие на POD, дублируются на Backend API Explorer, где происходит обработка,
Kubernetes Operator служит для загрузки OpenAPI‑спецификаций в процессе деплоя прикладных приложений.
После авторизации пользователь видит дашборд, на котором отображается сводная статистика по событиям за выбранный период времени.
Анализ недостатков авторизации включает в себя проверку наличия пароля в списке наиболее распространённых паролей и наличие конфиденциальной информации в claim JWT-токена.
Кроме недостатков авторизации на вкладке «Анализ запроса» отображаются недостатки доступа к объектам. API Explorer проверяет, есть ли в теле запроса строки, соответствующие заданным регулярным выражениям, доступ по ID к объектам, если этот ID не был запрошен ранее, и другие уязвимости.
Чтобы алгоритм находил недостатки доступа к функциям, его нужно предварительно обучить. В настраиваемой фазе обучения алгоритм запоминает, из каких источников к каким функциям происходит доступ. В фазе работы анализируются проходящие запросы и делается вывод о наличии или отсутствии риска несанкционированного доступа к функциям.
В примере ниже к одному и тому же хосту было два запроса: один с хоста, на котором производилось обучение, другой через прокси. Первый запрос был идентифицирован как авторизованный, второй — как потенциально несанкционированный.
Вместо заключения
Недостаточная защита API вполне может привести, например, к финансовым потерям организации или репутационному ущербу, а также к снижению производительности информационных ресурсов.
Инструмент API Explorer позволяет анализировать и оценивать степень защиты API в системе, получать в режиме run‑time информацию о потенциальных угрозах безопасности, связанных с API. Это помогает оперативно принимать решения о необходимости дополнительных мер по защите.
Встраивание API Explorer в ИТ‑ландшафт с помощью интеграционной платформы Platform V Synapse позволяет выстроить непрерывный процесс управления API: доступ к наиболее актуальной информации по всем API системы, автоматизацию проектирования и разработки, построение DevOps.