Ранее на этой неделе я был рад получить приглашение на предварительный просмотр первого за несколько лет нового продукта HashiCorp, HashiCorp Boundary. Соглашение о неразглашении информации обнародовано, и я не хочу говорить ни о чем другом. Поговорим о Границе!

Boundary - это первый новый продукт от HashiCorp за последние несколько лет, о котором было объявлено на HashiConf2020. Он предназначен для модернизации способов предоставления доступа к сети как пользователям, так и приложениям.

Граница должна быть одной из первых в пространстве программно-определяемого периметра. Этот тип инструмента является органическим развитием сервисной сети и оверлейной сети продукта HashiCorp consul, но расширяет эту сеть, чтобы включить другие типы машин, в том числе пользовательские.

Что такое граница?

Boundary - это прокси-сервер, но здесь есть еще один нюанс. Граница стремится быть посредником между любыми двумя сетями - от домашнего компьютера к корпоративной сети, DMZ с внутренней, внутренней с Интернетом. Поскольку прокси-серверы имеют доступ к проходящему через них сетевому трафику, они могут выполнять всевозможные хитрые трюки.

Прямо сейчас Boundary поддерживает только TCP-проксирование, что не позволяет ему декодировать и вводить учетные данные в протоколах более высокого уровня, таких как http, SSH, RDP и т. Д., Но это скоро!

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

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

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

Что мы решаем? Давайте поговорим о проблемах

Проблема с сетью Граница решена, не так ли? В корпоративной сфере Cisco Networks занимает прочное доминирующее положение на рынке со своим решением AnyConnect, а OpenVPN и другие продукты с открытым исходным кодом отлично подходят для колледжей и небольших стартапов.

Эти инструменты предназначены для подключения клиентского компьютера к корпоративной сети. На стороне предприятия клиентские компьютеры помещаются в «профили» VPN, которые обычно представляют собой списки IP-адресов или FQDN и портов, к которым хосту разрешено подключаться. Эти списки должны постоянно обновляться, и, как правило, они статичны и обновляются вручную.

Клиент VPN подключается непосредственно к приложению через сетевое соединение VPN. Примечательно, что здесь безопасность является реальной проблемой, потому что клиенты имеют широкий доступ к Интернет-сети, а вредоносные программы могут использовать этот доступ, предоставленный VPN, и введенные или сохраненные клиентом пароли для использования вашего предприятия.

С точки зрения пограничного взгляда на мир, это старая шляпа, и проблема, которую необходимо решить. Здесь перечислены несколько элементов, которые можно улучшить или исправить.

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

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

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

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

Интеграция с другими инструментами HashiCorp при запуске ограничена, но команда взволнована и планирует некоторые будущие функции. Как видно из приведенной ниже схемы, команда Boundary предполагает интеграцию со многими поставщиками удостоверений, такими как AWS SSO, Okta, GitHub, Microsoft и другими.

Их собственная служба Consul может помочь автоматически заполнить каталог услуг, доступный в веб-интерфейсе Boundary, доступном пользователю, а также другие инструменты от основных облачных провайдеров, в частности Kubernetes.

И, наконец, в левой части диаграммы вы можете увидеть протоколы, которые Boundary надеется понять и декодировать в будущем. TCP - это универсальное решение, но его полезность ограничена при внедрении аутентификации или помощи в решении проблем, связанных с TLS, которые, безусловно, обнаружит HTTPS.

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

Особо легкая функция в выпуске, которая станет критически важной позже, - это возможность управлять сеансами и отслеживать их во многих приложениях через приложение Boundary. Администратор может просматривать все сеансы, токены и, возможно, контролировать через TLS все подключения с помощью этого инструмента.

Tl; dr: Вашей команде InfoSec понравится этот инструмент.

Граница может быть развернута как единый рабочий хост или как резервный кластер поверх собственных EC2, автоматически масштабируемых кластеров. При запуске есть также образ Docker как для уровня управления, так и для рабочих. Таблицы руля еще нет, но команда уверяет меня, что она появится здесь очень быстро.

Задачи, которые предстоит решить

Одна проблема, которая есть у всех прокси, - это TLS. В прошлом были развернуты различные некачественные решения, и каждое из них является кошмаром для удобства использования или безопасности.

Решение Cisco AnyConnect заключалось в использовании веб-интерфейса AnyConnect для прокси-соединений с внутренними приложениями с помощью iFrame в браузере. Этот метод имеет тенденцию к зависанию, не передает учетные данные из браузера и, как правило, очень сложно использовать.

Другие прокси-серверы предприятия решают эту проблему, заставляя предприятие развертывать корневой сертификат с подстановочными знаками на внутренних узлах, что эффективно нарушает модель TLS и покрывает такие проблемы, как HSTS, просроченные сертификаты, слабое хеширование или шифрование и многие другие проблемы.

Команда Boundary уверяет меня, что они работают над этими проблемами и подготовили некоторые решения, но я не уверен, насколько тривиальным будет победа над TLS, даже с лучшими намерениями и опытом. Если национальным государствам не удастся победить его, мы увидим, насколько хорошо Хаши будет жить здесь.

Иди возьми это!

Граница доступна на публичной странице GitHub HashiCorp.

Вы также можете найти информацию о проекте здесь: https://www.boundaryproject.io/

Скачайте его и расскажите, как это работает! Если у вас есть отзывы о том, как это работает, и о интересных вещах, которые вы нашли, прокомментируйте эту историю или найдите меня в твиттере @KyMidd!

Удачи!
Кайлер