Защита параметров безопасности macOS с помощью защиты от незаконного изменения

Область применения:

Хотите попробовать Defender для конечной точки? Зарегистрироваться для бесплатной пробной версии.

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

Важно!

Начиная с марта 2023 г. Microsoft Defender для конечной точки в macOS учитывает выбор защиты от незаконного изменения, применяемый с помощью глобального переключателя защиты от незаконного изменения в разделе дополнительных параметров на портале Microsoft Defender (https://security.microsoft.com). Вы можете применить (блокировать,аудит/отключить) собственные параметры защиты от незаконного изменения в macOS с помощью решения для управления мобильными устройствами (MDM), например Intune или JAMF (рекомендуется). Если параметр защиты от незаконного изменения не был применен через MDM, локальный администратор может вручную изменить параметр с помощью следующей команды: sudo mdatp config tamper-protection enforcement-level --value (chosen mode).

Вы можете настроить защиту от незаконного изменения в следующих режимах:

Статья Описание
Отключено Защита от незаконного изменения полностью отключена.
Аудит Операции изменения регистрируются, но не блокируются. Этот режим используется по умолчанию после установки.
Блокировка Защита от незаконного изменения включена; Операции незаконного изменения блокируются.

Если защита от незаконного изменения настроена в режим аудита или блокировки, можно ожидать следующих результатов:

Режим аудита:

  • Действия по удалению агента Defender для конечной точки регистрируются (аудит)
  • Редактирование или изменение файлов Defender для конечной точки регистрируется (выполняется аудит)
  • Создание новых файлов в разделе Расположение Defender для конечной точки регистрируется (проверяется)
  • Удаление файлов Defender для конечной точки регистрируется (выполняется аудит)
  • Переименование файлов Defender для конечной точки регистрируется (аудит)

Режим блокировки:

  • Действия по удалению агента Defender для конечной точки заблокированы
  • Редактирование или изменение файлов Defender для конечной точки заблокировано
  • Создание новых файлов в разделе Расположение Defender для конечной точки заблокировано
  • Удаление файлов Defender для конечной точки заблокировано
  • Переименование файлов Defender для конечной точки заблокировано
  • Сбой команд для остановки агента (wdavdaemon)

Ниже приведен пример системного сообщения в ответ на заблокированное действие:

Снимок экрана: сообщение о блокировке операции.

Вы можете настроить режим защиты от незаконного изменения, указав имя режима в качестве уровня принудительного применения.

Примечание.

  • Изменение режима будет применено немедленно.
  • Если вы использовали JAMF во время начальной конфигурации, вам также потребуется обновить конфигурацию с помощью JAMF.

Подготовка к работе

  • Поддерживаемые версии macOS: Big Sur (11) или более поздняя версия
  • Минимальная требуемая версия для Defender для конечной точки: 101.70.19

Важно!

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

Настоятельно рекомендуемые параметры:

  • Включена защита целостности системы (SIP). Дополнительные сведения см. в разделе Отключение и включение защиты целостности системы.

  • Используйте средство управления мобильными устройствами (MDM) для настройки Microsoft Defender для конечной точки.

  • Убедитесь, что Defender для конечной точки имеет полную авторизацию доступа к диску .

    Примечание.

    Поддержка SIP и вся конфигурация с помощью MDM не являются обязательными, но требуются для полностью защищенного устройства, так как в противном случае локальный администратор по-прежнему может вносить изменения, которыми управляет macOS. Например, включение TCC (прозрачность, согласие & управление) с помощью решения для управления мобильными устройствами, такого как Intune, устраняет риск отзыва глобальным администратором авторизации полного доступа к диску локальным администратором.

Настройка защиты от незаконного изменения на устройствах macOS

Microsoft Defender оценивает эти параметры в следующем порядке. Если настроен параметр более высокого приоритета, остальные игнорируются:

  1. Профиль управляемой конфигурации (параметр tamperProtection/enforcementLevel):

  2. Настройка вручнуюmdatp config tamper-protection enforcement-level --value { disabled|audit|block })

  3. Если на портале Microsoft Defender включена защита от незаконного изменения, используется режим блокировки (в предварительной версии; доступен не всем клиентам).

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

Подготовка к работе

Убедитесь, что устройство лицензировано и работоспособно (отчеты о соответствующих значениях true):

mdatp health
healthy                                     : true
health_issues                               : []
licensed                                    : true
...
tamper_protection                           : "audit"

tamper_protection сообщает об уровне эффективного применения.

Настройка вручную

  1. Используйте следующую команду, чтобы переключиться в самый строгий режим:
sudo mdatp config tamper-protection enforcement-level --value block

Изображение команды настройки вручную

Примечание.

На рабочих устройствах необходимо использовать управляемый профиль конфигурации (развернутый через MDM). Если локальный администратор изменил режим защиты от незаконного изменения с помощью ручной конфигурации, он также может в любое время изменить его на менее строгий режим. Если режим защиты от незаконного изменения был задан с помощью управляемого профиля, только глобальный администратор сможет отменить его.

  1. Проверьте результат.
healthy                                     : true
health_issues                               : []
licensed                                    : true
engine_version                              : "1.1.19300.3"
app_version                                 : "101.70.19"
org_id                                      : "..."
log_level                                   : "info"
machine_guid                                : "..."
release_ring                                : "InsiderFast"
product_expiration                          : Dec 29, 2022 at 09:48:37 PM
cloud_enabled                               : true
cloud_automatic_sample_submission_consent   : "safe"
cloud_diagnostic_enabled                    : false
passive_mode_enabled                        : false
real_time_protection_enabled                : true
real_time_protection_available              : true
real_time_protection_subsystem              : "endpoint_security_extension"
network_events_subsystem                    : "network_filter_extension"
device_control_enforcement_level            : "audit"
tamper_protection                           : "block"
automatic_definition_update_enabled         : true
definitions_updated                         : Jul 06, 2022 at 01:57:03 PM
definitions_updated_minutes_ago             : 5
definitions_version                         : "1.369.896.0"
definitions_status                          : "up_to_date"
edr_early_preview_enabled                   : "disabled"
edr_device_tags                             : []
edr_group_ids                               : ""
edr_configuration_version                   : "20.199999.main.2022.07.05.02-ac10b0623fd381e28133debe14b39bb2dc5b61af"
edr_machine_id                              : "..."
conflicting_applications                    : []
network_protection_status                   : "stopped"
data_loss_prevention_status                 : "disabled"
full_disk_access_enabled                    : true

Обратите внимание, что tamper_protection теперь для задано значение block.

JAMF

Настройте режим защиты от незаконного изменения в профиле конфигурации Microsoft Defender для конечной точки, добавив следующие параметры:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>tamperProtection</key>
    <dict>
      <key>enforcementLevel</key>
      <string>block</string>
    </dict>
  </dict>
</plist>

Примечание.

Если у вас уже есть профиль конфигурации для Microsoft Defender для конечной точки, необходимо добавить в него параметры. Не следует создавать второй профиль конфигурации.

Intune

Каталог параметров

Вы можете создать новый профиль каталога параметров, чтобы добавить конфигурацию защиты от незаконного изменения, или добавить ее в существующий. Параметр "Уровень принудительного применения" можно найти в разделе "Microsoft Defender" и подкатегории "Защита от незаконного изменения". Затем выберите нужный уровень.

Настраиваемый профиль

В качестве альтернативы можно также настроить защиту от незаконного изменения с помощью пользовательского профиля. Дополнительные сведения см. в разделе Настройка параметров Microsoft Defender для конечной точки в macOS.

Примечание.

Для конфигурации Intune можно создать новый файл конфигурации профиля, чтобы добавить конфигурацию защиты от незаконного изменения, или добавить эти параметры в существующий. Выберите нужный уровень.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1">
    <dict>
        <key>PayloadUUID</key>
        <string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadOrganization</key>
        <string>Microsoft</string>
        <key>PayloadIdentifier</key>
        <string>com.microsoft.wdav</string>
        <key>PayloadDisplayName</key>
        <string>Microsoft Defender for Endpoint settings</string>
        <key>PayloadDescription</key>
        <string>Microsoft Defender for Endpoint configuration settings</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadEnabled</key>
        <true/>
        <key>PayloadRemovalDisallowed</key>
        <true/>
        <key>PayloadScope</key>
        <string>System</string>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadUUID</key>
                <string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
                <key>PayloadType</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadOrganization</key>
                <string>Microsoft</string>
                <key>PayloadIdentifier</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadDisplayName</key>
                <string>Microsoft Defender for Endpoint configuration settings</string>
                <key>PayloadDescription</key>
                <string/>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadEnabled</key>
                <true/>
                <key>tamperProtection</key>
                <dict>
                             <key>enforcementLevel</key>
                             <string>block</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

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

Проверьте состояние защиты от незаконного изменения, выполнив следующую команду:

mdatp health --field tamper_protection

В результате отображается значение "блокировать", если защита от незаконного изменения включена:

Изображение защиты от незаконного изменения в блок-режиме

Вы также можете выполнить полный mdatp health запуск и найти "tamper_protection" в выходных данных.

Чтобы получить дополнительные сведения о состоянии защиты от незаконного изменения, выполните команду mdatp health --details tamper_protection.

Проверка профилактических возможностей защиты от незаконного изменения

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

Проверка режима блокировки

На портале Microsoft Defender создается оповещение о незаконном изменении

Снимок экрана: оповещение о незаконном изменении, возникающее на портале Microsoft Defender.

Проверка режима блокировки и режима аудита

  • При использовании расширенной охоты отображаются оповещения о незаконном изменении
  • События незаконного изменения можно найти в журналах локальных устройств: sudo grep -F '[{tamperProtection}]' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log

Снимок экрана: журнал защиты от незаконного изменения.

Сценарии DIY

  • Если для защиты от незаконного изменения задано значение "блокировать", попробуйте различными методами удалить Defender для конечной точки. Например, перетащите плитку приложения в корзину или удалите защиту от незаконного изменения с помощью командной строки.

  • Попробуйте остановить процесс Defender для конечной точки (kill).

  • Попробуйте удалить, переименовать, изменить, переместить файлы Defender для конечной точки (как это делает злоумышленник), например:

    • /Applications/Microsoft Defender.app/
    • /Library/LaunchDaemons/com.microsoft.fresno.plist
    • /Library/LaunchDaemons/com.microsoft.fresno.uninstall.plist
    • /Library/LaunchAgents/com.microsoft.wdav.tray.plist
    • /Library/Managed Preferences/com.microsoft.wdav.ext.plist
    • /Library/Managed Preferences/mdatp_managed.json
    • /Library/Managed Preferences/com.microsoft.wdav.atp.plist
    • /Library/Managed Preferences/com.microsoft.wdav.atp.offboarding.plist
    • /usr/local/bin/mdatp

Отключение защиты от незаконного изменения

Вы можете отключить защиту от незаконного изменения с помощью любого из следующих методов.

Настройка вручную

Используйте следующую команду:

sudo mdatp config tamper-protection enforcement-level --value disabled

JAMF

Измените enforcementLevel значение на "отключено" в профиле конфигурации и отправьте его на устройство:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>tamperProtection</key>
    <dict>
      <key>enforcementLevel</key>
      <string>disabled</string>
    </dict>
  </dict>
</plist>

Intune

Добавьте следующую конфигурацию в профиль Intune:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1">
    <dict>
        <key>PayloadUUID</key>
        <string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadOrganization</key>
        <string>Microsoft</string>
        <key>PayloadIdentifier</key>
        <string>com.microsoft.wdav</string>
        <key>PayloadDisplayName</key>
        <string>Microsoft Defender for Endpoint settings</string>
        <key>PayloadDescription</key>
        <string>Microsoft Defender for Endpoint configuration settings</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadEnabled</key>
        <true/>
        <key>PayloadRemovalDisallowed</key>
        <true/>
        <key>PayloadScope</key>
        <string>System</string>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadUUID</key>
                <string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
                <key>PayloadType</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadOrganization</key>
                <string>Microsoft</string>
                <key>PayloadIdentifier</key>
                <string>com.microsoft.wdav</string>
                <key>PayloadDisplayName</key>
                <string>Microsoft Defender for Endpoint configuration settings</string>
                <key>PayloadDescription</key>
                <string/>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadEnabled</key>
                <true/>
                <key>tamperProtection</key>
                <dict>
                  <key>enforcementLevel</key>
                  <string>disabled</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Исключения

Примечание.

Доступно в версии или более поздней.101.98.71

Защита от незаконного изменения не позволяет любому процессу macOS вносить изменения в ресурсы Microsoft Defender или останавливать процессы Microsoft Defender. К защищенным ресурсам относятся файлы установки и конфигурации.

При определенных обстоятельствах Microsoft Defender делает исключения для определенных процессов macOS. Например, macOS может обновить пакет Defender, если защита от незаконного изменения проверяет подлинность пакетов. Существуют и другие исключения. Например, процесс MDM macOS может заменить управляемые файлы конфигурации Microsoft Defender.

Бывают ситуации, когда глобальный администратор должен перезапустить Defender на всех или некоторых управляемых устройствах. Обычно это делается путем создания и запуска политики JAMF, которая выполняет скрипт на удаленных устройствах (или аналогичные операции для других поставщиков MDM).

Чтобы избежать маркировки этих операций, инициированных политикой, Microsoft Defender обнаруживает эти процессы политики MDM для JAMF и Intune и разрешает операции незаконного изменения. В то же время защита от незаконного изменения блокирует перезапуск Microsoft Defender для того же скрипта, если он запускается из терминала локально.

Однако эти процессы, выполняемые политикой, зависят от поставщика. Хотя Microsoft Defender предоставляет встроенные исключения для JAMF и Intune, он не может предоставить эти исключения для всех возможных поставщиков MDM. Вместо этого глобальный администратор может добавить собственные исключения для защиты от незаконного изменения. Исключения можно сделать только с помощью профиля MDM, а не локальной конфигурации.

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

После определения пути процесса у вас есть несколько вариантов настройки исключения:

  • По самому пути. Это самый простой (у вас уже есть этот путь) и наименее безопасный способ сделать это, другими словами, не рекомендуется.
  • Получив идентификатор подписи из исполняемого файла TeamIdentifier или идентификатор подписи, запустив codesign -dv --verbose=4 path_to_helper (найдите Идентификатор и TeamIdentifier, последний недоступен для собственных средств Apple.)
  • Или с помощью сочетания этих атрибутов.

Пример:

codesign -dv --verbose=4 /usr/bin/ruby
Executable=/usr/bin/ruby
Identifier=com.apple.ruby
Format=Mach-O universal (x86_64 arm64e)
CodeDirectory v=20400 size=583 flags=0x0(none) hashes=13+2 location=embedded
Platform identifier=14
VersionPlatform=1
VersionMin=852992
VersionSDK=852992
Hash type=sha256 size=32
CandidateCDHash sha256=335c10d40db9417d80db87f658f6565018a4c3d6
CandidateCDHashFull sha256=335c10d40db9417d80db87f658f6565018a4c3d65ea3b850fc76c59e0e137e20
Hash choices=sha256
CMSDigest=335c10d40db9417d80db87f658f6565018a4c3d65ea3b850fc76c59e0e137e20
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=16384
Executable Segment flags=0x1
Page size=4096
Launch Constraints:
  None
CDHash=335c10d40db9417d80db87f658f6565018a4c3d6
Signature size=4442
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Signed Time=Apr 15, 2023 at 4:45:52 AM
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=64

Настройте параметры, например для JAMF:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>tamperProtection</key>
    <dict>
      <key>enforcementLevel</key>
      <string>block</string>
      <key>exclusions</key>
      <array>
        <dict>
          <key>path</key>
          <string>/usr/bin/ruby</string>
          <key>teamId</key>
          <string/>
          <key>signingId</key>
          <string>com.apple.ruby</string>
          <key>args</key>
          <array>
            <string>/usr/local/bin/global_mdatp_restarted.rb</string>
          </array>
        </dict>
      </array>
    </dict>
  </dict>
</plist>

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

Чтобы свести к минимуму риск, рекомендуется использовать дополнительные args , чтобы разрешить выполнение только определенных скриптов с интерпретаторами сценариев. В приведенном выше примере перезапуск Defender разрешен только /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb . Но, например, /usr/bin/ruby /Library/Application Support/Global Manager/global_mdatp_restarted.rb или даже /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb $USER не разрешены.

Предупреждение

Всегда используйте самые строгие критерии, чтобы предотвратить непредвиденные атаки!

Устранение неполадок с конфигурацией

Проблема. Защита от незаконного изменения сообщается как отключенная

Если выполнение команды mdatp health сообщает о том, что защита от незаконного изменения отключена, даже если вы включили ее и с момента подключения прошло более часа, вы можете проверить, правильно ли настроена конфигурация, выполнив следующую команду:

mdatp health --details tamper_protection
tamper_protection                           : "audit"
exclusions                                  : [{"path":"/usr/bin/ruby","team_id":"","signing_id":"com.apple.ruby","args":["/usr/local/bin/global_mdatp_restarted.rb"]}] [managed]
feature_enabled_protection                  : true
feature_enabled_portal                      : true
configuration_source                        : "local"
configuration_local                         : "audit"
configuration_portal                        : "block"
configuration_default                       : "audit"
configuration_is_managed                    : false
  • tamper_protection является эффективным режимом. Если этот режим предназначен для использования, все готово.
  • configuration_source указывает, как установлен уровень принудительного применения защиты от незаконного изменения. Он должен соответствовать настроенной защите от незаконного изменения. (Если вы задали его режим с помощью управляемого профиля и configuration_source отображаете что-то другое, скорее всего, вы неправильно настроили свой профиль.)
    • mdm — он настраивается с помощью управляемого профиля. Только глобальный администратор может изменить его с обновлением профиля!
    • local — он настроен с помощью mdatp config команды
    • portal — уровень принудительного применения по умолчанию, заданный на портале безопасности.
    • defaults — не настроено, используется режим по умолчанию.
  • Если feature_enabled_protection имеет значение false, защита от незаконного изменения не включена для вашей организации (это происходит, если Defender не сообщает о лицензировании).
  • Если feature_enabled_portal задано значение false, настройка режима по умолчанию на портале безопасности пока не включена.
  • configuration_local, configuration_portalуказывает режим, который будет использоваться, если используется соответствующий канал конфигурацииconfiguration_default. (В качестве примера можно настроить защиту от незаконного изменения в режиме блокировки с помощью профиля MDM и configuration_default сообщить вам audit. Это означает только, что если вы удалили профиль и режим не был задан с mdatp config помощью портала безопасности или с помощью портала безопасности, он использует режим по умолчанию, то есть audit.)

Примечание.

Чтобы получить те же сведения до версии 101.98.71, необходимо проверить журналы Microsoft Defender. Ниже приведен пример.

$ sudo grep -F '[{tamperProtection}]: Feature state:' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log | tail -n 1

Совет

Хотите узнать больше? Обратитесь к сообществу Майкрософт по безопасности в техническом сообществе Microsoft Defender для конечной точки Tech Community.