Управление JIT-доступом для виртуальных машин Azure

Управление 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, вам потребуются следующие элементы:

  1. Активная подписка Azure: подписка Azure для создания ресурсов и управления ими.
  2. Административный доступ: учетная запись с ролью «Владелец», «Участник» или «Администратор безопасности» в подписке Azure или в группе ресурсов, где расположены виртуальные машины.
  3. Microsoft Defender for Cloud Standard (или Defender для серверов): JIT — это премиум-функция Microsoft Defender для облака, требующая включения плана Защитника для серверов в подписке, содержащей виртуальные машины [3].
  4. Существующие виртуальные машины Azure: виртуальные машины Azure, которые вы хотите защитить с помощью JIT. В этом руководстве мы предполагаем, что у вас уже развернуты виртуальные машины.
  5. Azure CLI или Azure PowerShell: установлены и настроены инструменты командной строки для взаимодействия с Azure.

Шаг за шагом: включение и управление JIT-доступом

Давайте настроим JIT для ваших виртуальных машин Azure.

1. Включение плана «Защитник для серверов»

Как упоминалось в предварительных требованиях, JIT требует активации плана Защитника для серверов.

  1. Откройте браузер и перейдите на портал Azure: https://portal.azure.com.
  2. Войдите в систему под учетной записью, имеющей необходимые разрешения.
  3. В верхнем поле поиска введите «Защитник для облака» и выберите его из результатов.
  4. На панели управления Защитника для облака выберите Настройки среды.и в левой панели навигации.
  5. Выберите подписку Azure, содержащую ваши виртуальные машины.
  6. На странице планов Защитника убедитесь, что план Защитник для серверов активирован. Если это не так, нажмите «Включить» и следуйте инструкциям, чтобы включить его.

2. Включение JIT-доступа для виртуальных машин

Вы можете включить JIT для отдельных виртуальных машин или для нескольких виртуальных машин одновременно.

  1. На панели управления Defender for Cloud выберите Защита рабочей нагрузки на левой панели навигации.
  2. Прокрутите вниз до раздела «Дополнительная защита» и нажмите Немедленный доступ к виртуальной машине.
  3. На вкладке «Виртуальные машины» вы увидите три подвкладки: «Настроено», «Рекомендуется» и «Не настроено».

    • «Рекомендуется»: список виртуальных машин, которые Центр безопасности рекомендует защитить с помощью JIT.
    • «Не настроено»: список виртуальных машин, которые не защищены JIT, но имеют на это право.
  4. На вкладке «Рекомендуется» или «Не настроено» выберите виртуальные машины, для которых вы хотите включить JIT.

  5. Нажмите Включить JIT на виртуальной машине.

  6. Настройка политики JIT. Для каждой выбранной виртуальной машины вы можете настроить следующие параметры:

    • Порты: порты управления, которые будут защищены (например: 22, 3389, 5985, 5986). Вы можете добавить собственные порты.
    • Протокол: протокол для каждого порта (например, TCP, UDP).
    • Максимальное время запроса: максимальное время (в часах), в течение которого дверь может быть открыта после одобрения запроса. По умолчанию — 3 часа.
    • Утвержденные исходные IP-адреса: необязательно, но настоятельно рекомендуется. Ограничивает доступ к определенным IP-адресам или блокам IP-адресов. По умолчанию это «Любой» («*»), что означает, что любой IP-адрес может запрашивать доступ.
  7. Нажмите Сохранить, чтобы применить политику JIT к выбранным виртуальным машинам.

3. Запрос оперативного доступа к виртуальной машине

Когда пользователю или администратору требуется доступ к виртуальной машине, защищенной JIT, они должны запросить доступ.

  1. На панели управления Центра безопасности выберите Защита рабочей нагрузки > Немедленный доступ к виртуальной машине.
  2. На вкладке «Виртуальные машины» выберите виртуальную машину, к которой вы хотите получить доступ (она должна находиться на вкладке «Настроено»).
  3. Нажмите Запросить доступ.

  4. В окне Запросить доступ укажите:

    • Двери: двери, которые вам нужно открыть.
    • Исходный IP-адрес: общедоступный IP-адрес, с которого вы будете подключаться. Вы можете выбрать «Мой IP-адрес» (текущий общедоступный IP-адрес вашего устройства) или «Пользовательский», чтобы указать IP-адрес или CIDR.
    • Период времени: продолжительность доступа (ограниченная «Максимальным временем запроса», настроенным в политике JIT).
    • Обоснование: краткое описание причины запроса доступа.
  5. Нажмите Открыть порты.

    • Примечание. Если политика JIT требует утверждения, запрос будет отправлен настроенным утверждающим лицам до открытия портов.

4. Утверждение запросов доступа JIT (если настроено)

В сценариях, где требуется утверждение (через Azure Logic Apps или Функции Azure), процесс может отличаться. По умолчанию JIT открывает порты сразу по запросу, если не настроена автоматизация рабочего процесса.

  • Совет. Для рабочих процессов утверждения вы можете использовать Azure Logic Apps для мониторинга журналов аудита Azure или событий Центра безопасности Azure и запуска процесса утверждения (например, отправьте электронное письмо группе безопасности для утверждения вручную).

5. Проверка статуса доступа JIT

После запроса доступа вы можете проверить статус на портале.

  1. На панели управления Центра безопасности выберите Защита рабочей нагрузки > Немедленный доступ к виртуальной машине.
  2. На вкладке «Виртуальные машины» виртуальная машина, к которой вы запросили доступ, должна отображать статус, указывающий, что доступ — «Активный» или «Ожидание» (если он одобрен).
  3. В столбце «Оставшееся время» будет показано, сколько времени доступа осталось.

6. Отключение JIT-доступа (необязательно)

Если вам нужно отключить JIT для виртуальной машины, выполните следующие действия:

  1. На панели управления Центра безопасности выберите Защита рабочей нагрузки > Немедленный доступ к виртуальной машине.
  2. На вкладке «Виртуальные машины» выберите настроенную виртуальную машину.
  3. Нажмите Отключить JIT на виртуальной машине.

Проверка и тестирование

Проверка эффективности JIT Access имеет решающее значение для обеспечения защиты ваших виртуальных машин и предоставления доступа при необходимости.

1. Тестирование D-блокаи стандартный доступ

  1. Попробуйте получить доступ к порту управления (например, RDP 3389 или SSH 22) с виртуальной машины, защищенной JIT, не запрашивая доступ JIT.
    • Ожидаемый результат: В соединении должно быть отказано или истекло время ожидания, поскольку порты по умолчанию закрыты.

2. Тестирование одобренного JIT-доступа

  1. Запросите JIT-доступ к нужной виртуальной машине и порту, используя ее общедоступный IP-адрес.
  2. После одобрения (или немедленного открытия, если одобрение не настроено) попробуйте получить доступ к виртуальной машине через RDP или SSH с того же общедоступного IP-адреса.

    • Ожидаемый результат: Соединение должно быть успешным.
  3. Подождите, пока истечет время доступа JIT (или отмените доступ вручную).

  4. Попробуйте снова получить доступ к виртуальной машине.
    • Ожидаемый результат: В соединении снова должно быть отказано.

3. Проверка журналов аудита

Все операции JIT регистрируются в журналах аудита Azure, предоставляя полную информацию о том, кто, что, когда и откуда запрашивал.

  1. На портале Azure перейдите к своей группе ресурсов или конкретной виртуальной машине.
  2. На левой панели навигации выберите Журнал активности.
  3. Отфильтруйте события, связанные с «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