Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом документе описывается функция автономного обновления аналитики безопасности Microsoft Defender для конечной точки в macOS.
Эта функция позволяет организации использовать локальный сервер размещения (в этом документе он называется сервером зеркало) для обновления аналитики безопасности (которые в этом документе называются определениями или подписями) на конечных точках macOS, которые имеют ограниченный доступ к Интернету или не имеют доступа к ним.
Сервер зеркало — это любой сервер в среде клиента, который может подключиться к облаку Майкрософт для скачивания подписей. Другие конечные устройства macOS получают сигнатуры с зеркального сервера через заранее заданные интервалы.
Перед началом работы ознакомьтесь с предварительными условиями для зеркального сервера и конечных точек macOS.
Основные преимущества
Ваша группа безопасности может контролировать частоту загрузки подписей на локальный сервер и частоту извлечения подписей с локального сервера конечными точками.
У вас есть дополнительный уровень защиты и контроля, так как скачанные сигнатуры можно протестировать на тестовом устройстве, прежде чем они будут распространены на весь парк.
Требуется меньшая пропускная способность сети, так как только один локальный сервер опрашивает облако Майкрософт, чтобы получить последние подписи от имени всего парка.
Сервер зеркало может работать под управлением Windows, Mac или Linux, и вам не нужно устанавливать Defender для конечной точки на этом сервере.
Вы получаете самую актуальную антивирусную защиту, так как подписи всегда скачиваются вместе с последней совместимой антивирусной подсистемой.
Более старые версии подписей (n-1) перемещаются в папку резервного копирования на сервере зеркало в каждой итерации. Если с последними обновлениями возникнет проблема, вы можете скопировать версию сигнатуры n-1 из папки резервного копирования на ваши устройства.
В редких случаях, когда автономное обновление завершается сбоем, можно настроить резервный вариант для получения обновлений по сети из облака Майкрософт.
Как работает автономное обновление аналитики безопасности
Организациям необходимо настроить сервер зеркало, который является локальным веб-сервером или сервером NFS, доступным в облаке Майкрософт.
Подписи скачиваются из облака Майкрософт на этот сервер зеркало путем выполнения скрипта с помощью планировщика заданий или задач cron на локальном сервере.
Конечные точки macOS, на которых работает Defender for Endpoint, извлекают загруженные сигнатуры с этого зеркального сервера через заданные пользователем интервалы времени.
Подписи, получаемые конечными точками macOS с локального сервера, сначала проходят проверку, прежде чем загружаются в антивирусный модуль.
Чтобы активировать и настроить процесс обновления, обновите json-файл управляемой конфигурации на конечных точках macOS.
Состояние обновления автономной аналитики безопасности можно увидеть в интерфейсе командной строки mdatp.
Процесс загрузки обновлений аналитики безопасности на сервер зеркало показан на следующей схеме.
Процесс обновления аналитики безопасности в конечной точке macOS показан на следующей схеме.
Сервер зеркало может запускать любую из следующих операционных систем:
- Linux (любой вкус)
- Windows (любая версия)
- Mac (любая версия)
Предварительные условия
На конечных точках macOS должен быть установлен Defender для конечной точки версии 101.25012.0003 или более поздней.
Конечные точки macOS должны иметь подключение к серверу зеркало.
На конечной точке macOS должна быть установлена одна из версий macOS, поддерживаемых Defender for Endpoint.
Сервер зеркало может быть сервером HTTP/HTTPS или сервером общей сети, например сервером NFS.
Сервер зеркало должен иметь доступ к следующим URL-адресам:
https://github.com/microsoft/mdatp-xplat.githttps://go.microsoft.com/fwlink/?linkid=2144709
Зеркальный сервер должен поддерживать bash или PowerShell.
Для сервера зеркало требуются следующие минимальные системные спецификации:
Ядро ЦП ОЗУ Бесплатный диск Обмен 2 ядра (предпочтительное 4 ядра) 1 ГБ min (предпочтительно 4 ГБ) 2 ГБ Зависимая от системы Примечание.
Эта конфигурация может отличаться в зависимости от количества обслуживаемых запросов и загрузки, которую должен обработать каждый сервер.
Настройка сервера зеркало
Примечание.
Управление зеркальным сервером и право собственности на него полностью остаются за заказчиком, поскольку он находится в частной среде заказчика.
В качестве сервера зеркало можно использовать любой HTTP-сервер. На зеркальном сервере не нужно устанавливать Defender for Endpoint.
Хотя управление сервером зеркало и владение ими лежит исключительно на клиенте, в этом разделе представлены два примера скриптов Bash, демонстрирующих использование Python 3 и Caddy для настройки базового файлового сервера HTTP в macOS. Эти скрипты предоставляются только в целях иллюстрации и должны быть адаптированы к вашим конкретным потребностям и среде.
-
python_http_server.sh: использует встроенный модуль HTTP-сервера Python 3 для обслуживания файлов из указанного каталога. -
caddy_http_server.sh: устанавливает и настраивает веб-сервер Caddy для обслуживания файлов из указанного каталога.
Чтобы проверить правильность настройки HTTP-файлового сервера, перейдите к разделу "https://localhost:8080".
Варианты использования в рабочей или расширенной среде см. в официальной документации по каждому серверу:
Всегда проверяйте и адаптируйте скрипты к своей среде и требованиям безопасности.
Пример скрипта. Настройка простого HTTP-файлового сервера в macOS с помощью Python 3
#!/bin/bash
# python_http_server.sh
# Starts a simple HTTP server using Python 3
# Check for Python 3
if ! command -v python3 &> /dev/null; then
echo "Python 3 is not installed. Please install it first."
exit 1
fi
PORT=8080
FOLDER="."
if [ ! -z "$1" ]; then
PORT=$1
fi
if [ ! -z "$2" ]; then
FOLDER=$2
fi
echo "Starting Python HTTP server on port $PORT (localhost only), serving folder: $FOLDER..."
python3 -m http.server "$PORT" --bind 127.0.0.1 --directory "$FOLDER"
Пример сценария. Настройка базового файлового сервера HTTP в macOS с помощью Caddy
#!/bin/bash
# caddy_http_server.sh
# Installs and configures Caddy HTTP server on macOS
PORT=8080
FOLDER="."
if [ ! -z "$1" ]; then
PORT=$1
fi
if [ ! -z "$2" ]; then
FOLDER=$2
fi
check_homebrew() {
if ! command -v brew &> /dev/null; then
echo "Homebrew is required to install Caddy."
read -p "Would you like to install Homebrew? (y/n): " install_brew
if [[ "$install_brew" =~ ^[Yy]$ ]]; then
echo "Installing Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
export PATH="/opt/homebrew/bin:$PATH"
else
echo "Please install Caddy manually and restart this script."
exit 1
fi
fi
}
install_caddy() {
if ! brew list caddy &> /dev/null; then
echo "Installing Caddy via Homebrew..."
brew install caddy
else
echo "Caddy is already installed."
fi
}
# Check for Caddy
if ! command -v caddy &> /dev/null; then
echo "Caddy is not installed."
check_homebrew
install_caddy
else
echo "Caddy is already installed."
fi
# Create a simple Caddyfile
cat <<EOL > Caddyfile
localhost:${PORT} {
root * ${FOLDER}
file_server browse
}
EOL
echo "Caddyfile created. Starting Caddy server on port $PORT..."
caddy run --config ./Caddyfile
Получите скрипт для скачивания аналитики безопасности в автономном режиме
Корпорация Майкрософт размещает скрипт автономного загрузчика аналитики безопасности в следующем репозитории GitHub: https://github.com/microsoft/mdatp-xplat.
Чтобы получить скрипт загрузчика, выполните следующие действия:
Вариант 1. Клонирование репозитория (предпочтительный)
Установите Git на сервере зеркало.
Перейдите в каталог, в котором вы хотите клонировать репозиторий.
Выполните команду: git clone https://github.com/microsoft/mdatp-xplat.git
Вариант 2. Скачивание ZIP-файла
Скачайте ZIP-файл репозитория: https://github.com/microsoft/mdatp-xplat/archive/refs/heads/master.zip.
Скопируйте ZIP-файл в папку, в которой вы хотите сохранить скрипт.
Извлеките zip-папку.
Примечание.
Запланируйте задание cron или запущенное задание , чтобы регулярно обновлять репозиторий или скачанный ZIP-файл до последней версии.
После клонирования репозитория или скачивания zip-файла структура локальных каталогов должна выглядеть следующим образом:
user@vm:~/mdatp-xplat$ tree linux/definition_downloader/
linux/definition_downloader/
├── README.md
├── settings.json
├── settings.ps1
├── xplat_offline_updates_download.ps1
└── xplat_offline_updates_download.sh
0 directories, 5 files
Примечание.
Просмотрите файл README.md, чтобы подробно понять, как использовать скрипт.
Файл settings.json состоит из нескольких переменных, которые пользователь может настроить для определения выходных данных выполнения скрипта.
| Имя поля | Значение | Описание |
|---|---|---|
downloadFolder |
строка | Соответствует местоположению, куда скрипт скачивает файлы. |
downloadLinuxUpdates |
bool | Если установлено значение true, скрипт скачивает обновления, предназначенные для Linux, в downloadFolder. |
logFilePath |
строка | Настраивает журналы диагностики в заданной папке. Этот файл можно предоставить корпорации Майкрософт для отладки скрипта при возникновении каких-либо проблем. |
downloadMacUpdates |
логический | Скрипт скачивает обновления, относящиеся к Mac, в downloadFolder. |
downloadPreviewUpdates |
логический тип | Скачивает предварительную версию обновлений, доступных для конкретной ОС. |
backupPreviousUpdates |
bool | Позволяет скрипту копировать предыдущее обновление в папку _back , а новые обновления скачиваются в downloadFolder. |
Выполнение скрипта загрузчика аналитики безопасности в автономном режиме
Чтобы вручную выполнить скрипт загрузчика, настройте параметры в файле settings.json (напримерdownloadFolderdownloadMacUpdates, и backupPreviousUpdates) с помощью описаний полей в таблице полейsettings.json и выполните одну из следующих команд на основе ОС зеркального сервера:
Bash:
./xplat_offline_updates_download.sh
Powershell:
./xplat_offline_updates_download.ps1
Примечание.
Запланируйте задание cron или задание launchd для выполнения этого скрипта, чтобы через регулярные промежутки времени загружать на зеркальный сервер последние обновления аналитики угроз.
Разместите автономные обновления аналитики безопасности на сервере-зеркале
После выполнения скрипта последние подписи загружаются в папку, настроенную в файле settings.json (updates.zip).
После загрузки ZIP-архива с сигнатурами его можно разместить на зеркальном сервере. Зеркальный сервер можно разместить на базе любого HTTP-/HTTPS-сервера или общего сетевого ресурса.
После размещения скопируйте абсолютный путь к размещению сервера (до каталога arch_*, но не включая его).
Например, если скрипт выполняется с помощью downloadFolder=/tmp/wdav-update, а HTTP-сервер (www.example.server.com:8000) обслуживает путь /tmp/wdav-update, соответствующий URI будет таким: www.example.server.com:8000/mac/production/.
Мы также можем использовать абсолютный путь к каталогу (локальная или удаленная точка подключения), например /tmp/wdav-update/mac/production.
После настройки зеркального сервера распространите этот URL-адрес на конечные точки Mac, задав его в качестве offlineDefinitionUpdateUrl значения в управляемом файле конфигурации (mdatp_managed.json), как описано в разделе "Настройка конечных точек".
Настройка конечных точек
Это важно
Defender для конечных точек должен быть уже установлен на устройстве с macOS, а для записи в /etc/opt/microsoft/mdatp/managed/ вам потребуются права root или sudo.
Используйте следующий пример файла mdatp_managed.json и обновите параметры в соответствии с конфигурацией, а затем скопируйте файл в расположение /etc/opt/microsoft/mdatp/managed/mdatp_managed.json.
{
"cloudService": {
"automaticDefinitionUpdateEnabled": true,
"definitionUpdatesInterval": 1202
},
"antivirusEngine": {
"offlineDefinitionUpdateUrl": "http://172.22.199.67:8000/mac/production/",
"offlineDefintionUpdateFallbackToCloud":false,
"offlineDefinitionUpdate": "enabled"
},
"features": {
"offlineDefinitionUpdateVerifySig": "enabled"
}
}
| Имя поля | Значения | Comments |
|---|---|---|
automaticDefinitionUpdateEnabled |
true/false |
Определяет, включена или отключена соответственно возможность Defender for Endpoint автоматически выполнять обновления. |
definitionUpdatesInterval |
Числовой | Время интервала между каждым автоматическим обновлением подписей (в секундах). |
offlineDefinitionUpdateUrl |
строка | Значение URL-адреса, созданное в процессе настройки зеркального сервера. Это может быть URL-адрес удаленного сервера или каталог (локальная или удаленная точка подключения). |
offlineDefinitionUpdate |
enabled/disabled |
Если задано значение enabled, функция "автономное обновление аналитики безопасности" включена, и наоборот. |
offlineDefinitionUpdateFallbackToCloud |
true/false |
Определите подход к получению обновлений аналитики безопасности Microsoft Defender для конечных точек, если автономный зеркальный сервер не может обработать запрос на обновление. Если задано значение true, обновление повторно выполняется через облако Майкрософт при сбое автономного обновления аналитики безопасности; в противном случае — наоборот. |
offlineDefinitionUpdateVerifySig |
enabled/disabled |
Если задано значение enabled, скачанные определения проверяются на конечных точках; в противном случае — наоборот. |
Проверка конфигурации
Чтобы проверить правильность применения параметров к конечным точкам macOS, выполните следующую команду:
mdatp health --details definitions
Пример результата будет выглядеть как в следующем фрагменте кода:
user@vm:~$ mdatp health --details definitions
automatic_definition_update_enabled : true [managed]
definitions_updated : Mar 14, 2024 at 12:13:17 PM
definitions_updated_minutes_ago : 2
definitions_version : "1.407.417.0"
definitions_status : "up_to_date"
definitions_update_source_uri : "https://go.microsoft.com/fwlink/?linkid=2144709"
definitions_update_fail_reason : ""
offline_definition_url_configured : "http://172.XX.XXX.XX:8000/mac/production/" [managed]
offline_definition_update : "enabled" [managed]
offline_definition_update_verify_sig : "enabled"
offline_definition_update_fallback_to_cloud : false[managed]
Активация обновлений аналитики безопасности в автономном режиме
Автоматическое обновление
Если полям
automaticDefinitionUpdateEnabledиoffline_definition_updateв управляемом json задано значениеtrue, то "автономные обновления аналитики безопасности" активируются автоматически через периодические интервалы.По умолчанию этот периодический интервал составляет 8 часов. Его можно настроить, задав
definitionUpdatesIntervalпараметр в управляемом файле JSON.Обновление вручную
Чтобы вручную запустить «автономное обновление аналитики безопасности» для загрузки сигнатур с зеркального сервера на конечных точках Mac, выполните следующую команду:
mdatp definitions update
Проверка состояния обновления
После активации "автономного обновления аналитики безопасности" автоматическим или ручным методом убедитесь, что обновление прошло успешно, выполнив команду : mdatp health --details --definitions.
Проверьте следующие поля:
user@vm:~$ mdatp health --details definitions
...
definitions_status : "up_to_date"
...
definitions_update_fail_reason : ""
...
Общие действия по устранению неполадок
Проверьте состояние функции "автономное обновление аналитики безопасности" с помощью следующей команды:
mdatp health --details definitionsЭта команда выводит понятное для пользователя сообщение в разделе definitions_update_fail_reason.
Проверьте, включены ли
offline_definition_updateиoffline_definition_update_verify_sig.Проверьте, равны ли
definitions_update_source_uriиoffline_definition_url_configured.-
definitions_update_source_uri— это источник, из которого были загружены подписи. -
offline_definition_url_configured— это источник, из которого следует скачать сигнатуры, упомянутый в управляемом файле конфигурации.
-
Попробуйте выполнить проверку подключения, чтобы проверить, доступен ли зеркальный сервер с узла:
mdatp connectivity testПопробуйте запустить обновление вручную с помощью следующей команды:
mdatp definitions update