Поделиться через


Краткое руководство. Отправка образов встроенного ПО в Defender для Интернета вещей с помощью Azure CLI

В этой статье объясняется, как использовать Azure CLI для отправки образов встроенного ПО в Defender для Интернета вещей.

Анализ встроенного ПО Defender для Интернета вещей — это средство, которое анализирует образы встроенного ПО и предоставляет представление об уязвимостях безопасности в образах встроенного ПО.

Необходимые компоненты

В этом кратком руководстве предполагается базовое понимание анализа встроенного ПО Defender для Интернета вещей. Дополнительные сведения см. в разделе "Анализ встроенного ПО для построителей устройств". Список поддерживаемых файловых систем см. в статье "Часто задаваемые вопросы о анализе встроенного ПО Defender для Интернета вещей".

Подготовка среды к работе с Azure CLI

  • Установите Azure CLI для локального выполнения команд CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

  • Выполните вход в Azure CLI с помощью команды az login. Выполните действия, отображаемые в терминале, чтобы завершить процесс проверки подлинности. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

  • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Установите расширение "Анализ встроенного ПО Defender для Интернета вещей", выполнив следующую команду:
      az extension add --name firmwareanalysis
      
  • Чтобы найти установленную версию и зависимые библиотеки, выполните команду az version. Чтобы обновить до последней версии, выполните команду az upgrade.

  • Подключение подписки к Анализу встроенного ПО Defender для Интернета вещей.

  • Выберите соответствующий идентификатор подписки, где вы хотите отправить образы встроенного ПО, выполнив команду az account set.

Отправка образа встроенного ПО в рабочую область

  1. Создайте образ встроенного ПО для отправки. Вставьте имя группы ресурсов, идентификатор подписки и имя рабочей области в соответствующие параметры.

    az firmwareanalysis firmware create --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default
    

Выходные данные этой команды включают свойство, которое является идентификатором name встроенного ПО. Сохраните этот идентификатор для следующей команды.

  1. Создайте URL-адрес SAS, который будет использоваться на следующем шаге для отправки образа встроенного ПО в служба хранилища Azure. Замените sampleFirmwareID идентификатор встроенного ПО, сохраненный на предыдущем шаге. URL-адрес SAS можно хранить в переменной, чтобы упростить доступ для будущих команд:

    $sasURL = $(az firmwareanalysis workspace generate-upload-url --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID --query "url")
    
  2. Отправьте образ встроенного ПО в служба хранилища Azure. Замените pathToFile путь к изображению встроенного ПО на локальном компьютере.

    az storage blob upload -f pathToFile --blob-url $sasURL
    

Ниже приведен пример рабочего процесса использования этих команд для создания и отправки образа встроенного ПО. Дополнительные сведения об использовании переменных в командах CLI см. в статье "Использование переменных в командах Azure CLI".

$filePath='/path/to/image'
$resourceGroup='myResourceGroup'
$workspace='default'

$fileName='file1'
$vendor='vendor1'
$model='model'
$version='test'

$FWID=$(az firmwareanalysis firmware create --resource-group $resourceGroup --workspace-name $workspace --file-name $fileName --vendor $vendor --model $model --version $version --query "name")

$URL=$(az firmwareanalysis workspace generate-upload-url --resource-group $resourceGroup --workspace-name $workspace --firmware-id $FWID --query "url")

$OUTPUT=(az storage blob upload -f $filePath --blob-url $URL)

Получение результатов анализа встроенного ПО

Чтобы получить результаты анализа встроенного ПО, необходимо убедиться, что состояние анализа готово:

az firmwareanalysis firmware show --firmware-id sampleFirmwareID --resource-group myResourceGroup --workspace-name default

Найдите поле "Состояние", чтобы отобразить "Готово", а затем выполните следующие команды, чтобы получить результаты анализа встроенного ПО.

Если вы хотите автоматизировать процесс проверка состояния анализа, можно использовать az resource wait команду.

Команда az resource wait имеет --timeout параметр, который является временем в секундах, что анализ завершится, если состояние не достигает "Готово" в течение интервала времени ожидания. Время ожидания по умолчанию — 3600, что составляет один час. Большие изображения могут занять больше времени для анализа, поэтому можно задать время ожидания с помощью --timeout параметра в соответствии с вашими потребностями. Ниже приведен пример использования az resource wait команды с --timeout параметром для автоматизации проверка состояния анализа, если вы уже создали встроенное ПО и сохранили идентификатор встроенного ПО в переменной с именем$FWID:

$ID=$(az firmwareanalysis firmware show --resource-group $resourceGroup --workspace-name $workspace --firmware-id $FWID --query "id")

Write-Host (‘Successfully created a firmware image with the firmware ID of ‘ + $FWID + ‘, recognized in Azure by this resource ID: ‘ + $ID + ‘.’)

$WAIT=$(az resource wait --ids $ID --custom "properties.status=='Ready'" --timeout 10800) 

$STATUS=$(az resource show --ids $ID --query 'properties.status')

Write-Host ('Firmware analysis completed with status: ' + $STATUS)

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

SBOM

Следующая команда извлекает SBOM в образе встроенного ПО. Замените каждый аргумент соответствующим значением для группы ресурсов, подписки, имени рабочей области и идентификатора встроенного ПО.

az firmwareanalysis firmware sbom-component --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Недостатки

Следующая команда извлекает CVEs, найденные в образе встроенного ПО. Замените каждый аргумент соответствующим значением для группы ресурсов, подписки, имени рабочей области и идентификатора встроенного ПО.

az firmwareanalysis firmware cve --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Двоичное ужесточение

Следующая команда извлекает результаты анализа на двоичное ужесточение в образе встроенного ПО. Замените каждый аргумент соответствующим значением для группы ресурсов, подписки, имени рабочей области и идентификатора встроенного ПО.

az firmwareanalysis firmware binary-hardening --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Синхронизация хэшей паролей

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

az firmwareanalysis firmware password-hash --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Сертификаты

Следующая команда извлекает уязвимые сертификаты шифрования, найденные в образе встроенного ПО. Замените каждый аргумент соответствующим значением для группы ресурсов, подписки, имени рабочей области и идентификатора встроенного ПО.

az firmwareanalysis firmware crypto-certificate --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID

Ключи

Следующая команда извлекает уязвимые ключи шифрования, найденные в образе встроенного ПО. Замените каждый аргумент соответствующим значением для группы ресурсов, подписки, имени рабочей области и идентификатора встроенного ПО.

az firmwareanalysis firmware crypto-key --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default --firmware-id sampleFirmwareID