Управление JIT-доступом для виртуальных машин Azure
10.01.2024
Цель этой технической и образовательной статьи – помочь аналитикам безопасности, ИТ-администраторам и системным инженерам реализовать и управлять JIT-доступом для виртуальных машин Azure (VM). JIT — это фундаментальная функция безопасности, предлагаемая Microsoft Defender для облака, которая помогает защитить виртуальные машины от атак несанкционированного доступа, значительно сокращая поверхность сетевых атак за счет ограничения доступа к портам управления только тогда и так долго, как это строго необходимо [1].
Введение
В облачных средах виртуальные машины часто становятся объектами атак методом перебора и сканирования портов, особенно те, у которых порты управления (например, RDP 3389 и SSH 22) доступны в Интернете. Постоянное сохранение этих портов открытыми создает неоправданно большую поверхность атаки, увеличивая риск компрометации. JIT Access решает эту проблему, позволяя группам безопасности по умолчанию блокировать входящий трафик к виртуальным машинам и открывать порты управления только по требованию, в течение ограниченного периода времени и с определенных IP-адресов. Этот подход следует принципу наименьших привилегий и нулевого доверия, гарантируя, что доступ предоставляется только при необходимости и на кратчайший срок [2].
В этом практическом руководстве будут рассмотрены предварительные условия для включения JIT, процесс настройки через Microsoft Security Center, способы запроса и утверждения доступа JIT, интеграция с оповещениями безопасности и лучшие практики эффективного управления. Будут предоставлены пошаговые инструкции, примеры команд и инструкций Azure CLI, чтобы читатель мог реализовать и проверить JIT, усилив безопасность своих виртуальных машин Azure и защитив их от угроз несанкционированного доступа.
Почему JIT-доступ так важен для виртуальных машин Azure?
- Сокращение поверхности атаки: по умолчанию закрывает порты управления виртуальными машинами, открывая их только тогда и так долго, как это необходимо, сводя к минимуму возможности для злоумышленников.
- Детальный контроль доступа: позволяет указать, какие пользователи могут запрашивать доступ, какие порты могут быть открыты, на какой срок и с каких исходных IP-адресов.
- Соответствие: помогает обеспечить соответствие требованиям, требующим жесткого контроля доступа к критически важным ресурсам.
- Видимость и аудит: предоставляет подробные журналы всех JIT-запросов доступа, утверждений и открытий/закрытий портов, что упрощает аудит и расследование безопасности.
- Интеграция с Defender для облака: полная интеграция с Microsoft Defender для облака, использование возможностей управления состоянием безопасности и защиты от угроз.
- Автоматизация: может быть автоматизирована для разрешения доступа в определенных сценариях, таких как реагирование на инциденты или плановые операции по техническому обслуживанию.
Предварительные условия
Чтобы реализовать JIT-доступ для виртуальных машин Azure, вам потребуются следующие элементы:
- Активная подписка Azure: подписка Azure для создания ресурсов и управления ими.
- Административный доступ: учетная запись с ролью «Владелец», «Участник» или «Администратор безопасности» в подписке Azure или в группе ресурсов, где расположены виртуальные машины.
- Microsoft Defender for Cloud Standard (или Defender для серверов): JIT — это премиум-функция Microsoft Defender для облака, требующая включения плана Защитника для серверов в подписке, содержащей виртуальные машины [3].
- Существующие виртуальные машины Azure: виртуальные машины Azure, которые вы хотите защитить с помощью JIT. В этом руководстве мы предполагаем, что у вас уже развернуты виртуальные машины.
- Azure CLI или Azure PowerShell: установлены и настроены инструменты командной строки для взаимодействия с Azure.
Шаг за шагом: включение и управление JIT-доступом
Давайте настроим JIT для ваших виртуальных машин Azure.
1. Включение плана «Защитник для серверов»
Как упоминалось в предварительных требованиях, JIT требует активации плана Защитника для серверов.
- Откройте браузер и перейдите на портал Azure: https://portal.azure.com.
- Войдите в систему под учетной записью, имеющей необходимые разрешения.
- В верхнем поле поиска введите «Защитник для облака» и выберите его из результатов.
- На панели управления Защитника для облака выберите Настройки среды.и в левой панели навигации.
- Выберите подписку Azure, содержащую ваши виртуальные машины.
- На странице планов Защитника убедитесь, что план Защитник для серверов активирован. Если это не так, нажмите «Включить» и следуйте инструкциям, чтобы включить его.
2. Включение JIT-доступа для виртуальных машин
Вы можете включить JIT для отдельных виртуальных машин или для нескольких виртуальных машин одновременно.
- На панели управления Defender for Cloud выберите Защита рабочей нагрузки на левой панели навигации.
- Прокрутите вниз до раздела «Дополнительная защита» и нажмите Немедленный доступ к виртуальной машине.
-
На вкладке «Виртуальные машины» вы увидите три подвкладки: «Настроено», «Рекомендуется» и «Не настроено».
- «Рекомендуется»: список виртуальных машин, которые Центр безопасности рекомендует защитить с помощью JIT.
- «Не настроено»: список виртуальных машин, которые не защищены JIT, но имеют на это право.
-
На вкладке «Рекомендуется» или «Не настроено» выберите виртуальные машины, для которых вы хотите включить JIT.
-
Нажмите Включить JIT на виртуальной машине.
-
Настройка политики JIT. Для каждой выбранной виртуальной машины вы можете настроить следующие параметры:
- Порты: порты управления, которые будут защищены (например: 22, 3389, 5985, 5986). Вы можете добавить собственные порты.
- Протокол: протокол для каждого порта (например, TCP, UDP).
- Максимальное время запроса: максимальное время (в часах), в течение которого дверь может быть открыта после одобрения запроса. По умолчанию — 3 часа.
- Утвержденные исходные IP-адреса: необязательно, но настоятельно рекомендуется. Ограничивает доступ к определенным IP-адресам или блокам IP-адресов. По умолчанию это «Любой» («*»), что означает, что любой IP-адрес может запрашивать доступ.
-
Нажмите Сохранить, чтобы применить политику JIT к выбранным виртуальным машинам.
3. Запрос оперативного доступа к виртуальной машине
Когда пользователю или администратору требуется доступ к виртуальной машине, защищенной JIT, они должны запросить доступ.
- На панели управления Центра безопасности выберите Защита рабочей нагрузки > Немедленный доступ к виртуальной машине.
- На вкладке «Виртуальные машины» выберите виртуальную машину, к которой вы хотите получить доступ (она должна находиться на вкладке «Настроено»).
-
Нажмите Запросить доступ.
-
В окне
Запросить доступукажите:- Двери: двери, которые вам нужно открыть.
- Исходный IP-адрес: общедоступный IP-адрес, с которого вы будете подключаться. Вы можете выбрать «Мой IP-адрес» (текущий общедоступный IP-адрес вашего устройства) или «Пользовательский», чтобы указать IP-адрес или CIDR.
- Период времени: продолжительность доступа (ограниченная «Максимальным временем запроса», настроенным в политике JIT).
- Обоснование: краткое описание причины запроса доступа.
-
Нажмите Открыть порты.
- Примечание. Если политика JIT требует утверждения, запрос будет отправлен настроенным утверждающим лицам до открытия портов.
4. Утверждение запросов доступа JIT (если настроено)
В сценариях, где требуется утверждение (через Azure Logic Apps или Функции Azure), процесс может отличаться. По умолчанию JIT открывает порты сразу по запросу, если не настроена автоматизация рабочего процесса.
- Совет. Для рабочих процессов утверждения вы можете использовать Azure Logic Apps для мониторинга журналов аудита Azure или событий Центра безопасности Azure и запуска процесса утверждения (например, отправьте электронное письмо группе безопасности для утверждения вручную).
5. Проверка статуса доступа JIT
После запроса доступа вы можете проверить статус на портале.
- На панели управления Центра безопасности выберите Защита рабочей нагрузки > Немедленный доступ к виртуальной машине.
- На вкладке «Виртуальные машины» виртуальная машина, к которой вы запросили доступ, должна отображать статус, указывающий, что доступ — «Активный» или «Ожидание» (если он одобрен).
- В столбце «Оставшееся время» будет показано, сколько времени доступа осталось.
6. Отключение JIT-доступа (необязательно)
Если вам нужно отключить JIT для виртуальной машины, выполните следующие действия:
- На панели управления Центра безопасности выберите Защита рабочей нагрузки > Немедленный доступ к виртуальной машине.
- На вкладке «Виртуальные машины» выберите настроенную виртуальную машину.
- Нажмите Отключить JIT на виртуальной машине.
Проверка и тестирование
Проверка эффективности JIT Access имеет решающее значение для обеспечения защиты ваших виртуальных машин и предоставления доступа при необходимости.
1. Тестирование D-блокаи стандартный доступ
- Попробуйте получить доступ к порту управления (например, RDP 3389 или SSH 22) с виртуальной машины, защищенной JIT, не запрашивая доступ JIT.
- Ожидаемый результат: В соединении должно быть отказано или истекло время ожидания, поскольку порты по умолчанию закрыты.
2. Тестирование одобренного JIT-доступа
- Запросите JIT-доступ к нужной виртуальной машине и порту, используя ее общедоступный IP-адрес.
-
После одобрения (или немедленного открытия, если одобрение не настроено) попробуйте получить доступ к виртуальной машине через RDP или SSH с того же общедоступного IP-адреса.
- Ожидаемый результат: Соединение должно быть успешным.
-
Подождите, пока истечет время доступа JIT (или отмените доступ вручную).
- Попробуйте снова получить доступ к виртуальной машине.
- Ожидаемый результат: В соединении снова должно быть отказано.
3. Проверка журналов аудита
Все операции JIT регистрируются в журналах аудита Azure, предоставляя полную информацию о том, кто, что, когда и откуда запрашивал.
- На портале Azure перейдите к своей группе ресурсов или конкретной виртуальной машине.
- На левой панели навигации выберите Журнал активности.
- Отфильтруйте события, связанные с «Just-in-Time Access VM Access» или «Microsoft.Security/locations/jitNetworkAccessPolicies».
- Вы увидите такие события, как «Создана политика доступа к сети JIT», «Запрошена политика доступа к сети JIT», «Политика доступа к сети JIT одобрена» (если применимо) и «Политика доступа к сети JIT закрыта».
Советы и рекомендации по безопасности
- Принцип наименьших привилегий: настройте политики JIT так, чтобы предоставлять как можно меньше привилегий — точные необходимые порты, в кратчайшие сроки и с наиболее ограниченных исходных IP-адресов.
- Ограничить исходные IP-адреса. По возможности указывайте исходные IP-адреса в политике JIT и запросах доступа. Избегайте использования Any (**) для исходных IP-адресов.
- Короткие периоды времени: установите максимальное время запроса на самый короткий разумный период времени (например, 1–2 часа), что заставит пользователей переоценить необходимость доступа.
- Мониторинг и оповещения. Настройте оповещения в Azure Monitor для JIT-запросов доступа, особенно для критических портов или неожиданных IP-адресов. Интегрируйте эти оповещения с вашим SIEM (например, Microsoft Sentinel).
- Автоматизация рабочих процессов. Для сред со строгими требованиями к утверждению используйте Azure Logic Apps или Функции Azure для создания настраиваемых рабочих процессов утверждения для JIT-запросов.
- Документация и обучение. Четко документируйте политики доступа JIT и обучайте пользователей тому, как запрашивать доступ, а также важности следования передовым практикам безопасности.
- Периодическая проверка. Регулярно проверяйте политики JIT и журналы доступа, чтобы гарантировать, что они остаются актуальными и эффективными.
- В сочетании с группами безопасности сети и брандмауэром Azure: JIT дополняет другие уровни сетевой безопасности, такие как группы сетевой безопасности (NSG) и брандмауэр Azure. Используйте их вместе для глубокоэшелонированной защиты.
Распространенное устранение неполадок
- Невозможно включить JIT для виртуальной машины. Убедитесь, что план Защитника для серверов включен для подписки на виртуальную машину. Убедитесь, что виртуальная машина не находится в недопустимом состоянии и не имеет конфликтующих настроек.
- Невозможно запросить JIT-доступ. Убедитесь, что у вас есть необходимые разрешения (например, «Сотрудник» или «Оператор оперативного доступа к виртуальной машине») для запроса доступа. Убедитесь, что виртуальная машина настроена для JIT и порты определены в политике.
- Соединение отклонено после запроса JIT. Убедитесь, что исходный IP-адрес, указанный вами в JIT-запросе, соответствует общедоступному IP-адресу вашего устройства. Подтвердите, что срок не истек. Убедитесь, что нет дополнительных групп безопасности сети или правил брандмауэра, блокирующих трафик после открытия JIT-порта.
- Открыты неправильные порты. Проверьте политику JIT, настроенную для виртуальной машины, чтобы убедиться, что в списке указаны правильные порты. Если вы используете Azure CLI, проверьте параметры порта.
- Предупреждения безопасности доступа JIT: изучите любые оповещения безопасности, связанные с JIT. Это может указывать на попытку несанкционированного доступа или неправильную настройку.
- Затронута производительность виртуальной машины: JIT-компиляция сама по себе не должна влиять на производительность виртуальной машины. Если есть проблемы, исследуйте другие компоненты виртуальной машины или сети.
Заключение
ОУправление доступом по принципу «точно в срок» (JIT) для виртуальных машин Azure — это важная стратегия безопасности для защиты ваших облачных ресурсов от угроз несанкционированного доступа. Закрывая порты управления по умолчанию и открывая их только по требованию, JIT значительно уменьшает поверхность атаки, укрепляет вашу безопасность и помогает вам соответствовать требованиям соответствия. Эффективное внедрение JIT в сочетании с лучшими практиками безопасности и постоянным мониторингом гарантирует, что ваши виртуальные машины останутся безопасными и доступными только для законных пользователей и целей. Благодаря этому практическому руководству специалисты по безопасности будут хорошо подготовлены к настройке, проверке и управлению JIT-доступом, что сделает их виртуальные машины Azure более устойчивыми и защищенными.
Ссылки:
[1] Microsoft Learn. Что такое JIT-доступ (точно в срок) к виртуальной машине?. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-overview. [2] Microsoft Learn. Включите своевременный доступ к виртуальным машинам. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-usage [3] Microsoft Learn. Управляйте безопасностью сервера с помощью Microsoft Defender для облака. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/tutorial-enable-servers-plan. [4] Microsoft Learn. Управляйте JIT-доступом (точно в срок) к вашим виртуальным машинам с помощью PowerShell. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-powershell