Защита конечных точек на шлюзе приложений Azure для доступа со стороны HubSpot

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

Нас попросили сделать этот API общедоступным. Однако у нашей команды InfoSec есть правило, согласно которому базовой аутентификации недостаточно (в основном по причинам, указанным здесь ; хотя мы используем >=TLS1.2, и это межсистемный API, поэтому в уравнении нет браузера).

Мы используем WAF Шлюза приложений Azure при публичном предоставлении любых конечных точек HTTP; при этом он действует как WAF и обрабатывает разгрузку TLS.

Обычно мы внедряем белый список IP-адресов для повышения безопасности; но в данном случае запросы идут от HubSpot; поэтому нет опубликованного списка IP-адресов, и даже если бы он был, на них могло бы размещаться значительное количество кода других сторон.

Также возможно реализовать mTLS на App Gateway, но, насколько я могу судить, HubSpot не поддерживает это.

HubSpot, похоже, поддерживает свой собственный подход — создание хеша из секрета клиента и различных частей запроса; но шлюз приложений может сравнивать только статические строки/не имеет возможности программно вычислять хеш для сравнения.

Мы могли бы

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

Наверное, есть еще много вариантов...

Кто-нибудь еще сталкивался с чем-то подобным раньше/находил решение, как справиться с этим?

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

0 ответов

Другие вопросы по тегам