![](https://habrastorage.org/getpro/habr/upload_files/31b/8c2/087/31b8c208786c9320920ad2e6fe290b8a.jpg)
Привет, Хабр! Я Наталья Грачева, владелец продукта в СберТехе, ведущий руководитель ИТ-направления. Мы с командой развиваем продукт 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‑спецификаций в процессе деплоя прикладных приложений.
![](https://habrastorage.org/getpro/habr/upload_files/dbc/a31/fe4/dbca31fe4f29ee51cac5f0726b37a0a4.png)
После авторизации пользователь видит дашборд, на котором отображается сводная статистика по событиям за выбранный период времени.
![](https://habrastorage.org/getpro/habr/upload_files/8d1/713/516/8d17135166a730d79a0dc9807a61047e.png)
Анализ недостатков авторизации включает в себя проверку наличия пароля в списке наиболее распространённых паролей и наличие конфиденциальной информации в claim JWT-токена.
![](https://habrastorage.org/getpro/habr/upload_files/727/6de/738/7276de7382b0f42fd44eaaa4da5d0511.png)
Кроме недостатков авторизации на вкладке «Анализ запроса» отображаются недостатки доступа к объектам. API Explorer проверяет, есть ли в теле запроса строки, соответствующие заданным регулярным выражениям, доступ по ID к объектам, если этот ID не был запрошен ранее, и другие уязвимости.
![](https://habrastorage.org/getpro/habr/upload_files/198/f8f/b17/198f8fb1701d40dcc4c3db864ed0ba37.png)
Чтобы алгоритм находил недостатки доступа к функциям, его нужно предварительно обучить. В настраиваемой фазе обучения алгоритм запоминает, из каких источников к каким функциям происходит доступ. В фазе работы анализируются проходящие запросы и делается вывод о наличии или отсутствии риска несанкционированного доступа к функциям.
В примере ниже к одному и тому же хосту было два запроса: один с хоста, на котором производилось обучение, другой через прокси. Первый запрос был идентифицирован как авторизованный, второй — как потенциально несанкционированный.
![](https://habrastorage.org/getpro/habr/upload_files/bdf/c0e/9c3/bdfc0e9c3f1174e73bfe40e91b7e8fab.png)
![](https://habrastorage.org/getpro/habr/upload_files/52a/eb6/dea/52aeb6dea8b2ff024a9d0a32d62bb771.png)
Вместо заключения
Недостаточная защита API вполне может привести, например, к финансовым потерям организации или репутационному ущербу, а также к снижению производительности информационных ресурсов.
Инструмент API Explorer позволяет анализировать и оценивать степень защиты API в системе, получать в режиме run‑time информацию о потенциальных угрозах безопасности, связанных с API. Это помогает оперативно принимать решения о необходимости дополнительных мер по защите.
Встраивание API Explorer в ИТ‑ландшафт с помощью интеграционной платформы Platform V Synapse позволяет выстроить непрерывный процесс управления API: доступ к наиболее актуальной информации по всем API системы, автоматизацию проектирования и разработки, построение DevOps.