다음을 통해 공유


빠른 시작: Azure CLI를 사용하여 펌웨어 분석에 펌웨어 이미지 업로드

이 문서에서는 Azure CLI를 사용하여 펌웨어 이미지를 펌웨어 분석에 업로드하는 방법을 설명합니다.

펌웨어 분석은 펌웨어 이미지를 분석하고 펌웨어 이미지의 보안 취약성을 이해하는 도구입니다.

필수 조건

이 빠른 시작에서는 펌웨어 분석에 대한 기본적인 이해를 가정합니다. 자세한 내용은 디바이스 빌더의 펌웨어 분석을 참조하세요. 지원되는 파일 시스템 목록은 펌웨어 분석에 대한 질문과 대답을 참조 하세요.

Azure CLI에 대한 환경 준비

  • Azure CLI를 설치 하여 CLI 명령을 로컬로 실행합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.

  • az login 명령을 사용하여 Azure CLI에 로그인합니다. 터미널에 표시되는 단계에 따라 인증 프로세스를 완료합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.

  • 메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.

    • 다음 명령을 실행하여 펌웨어 분석 확장을 설치합니다.
      az extension add --name firmwareanalysis
      
  • 설치된 버전 및 종속 라이브러리를 찾으려면 명령 az 버전을 실행합니다. 최신 버전으로 업그레이드하려면 az upgrade 명령을 실행합니다.

  • 펌웨어 분석에 구독을 등록 합니다.

  • 명령 az 계정 집합을 실행하여 펌웨어 이미지를 업로드하려는 적절한 구독 ID를 선택합니다.

작업 영역에 펌웨어 이미지 업로드

  1. 업로드할 펌웨어 이미지를 만듭니다. 리소스 그룹 이름, 구독 ID 및 작업 영역 이름을 해당 매개 변수에 삽입합니다.

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

이 명령의 출력에는 펌웨어 ID인 속성이 포함됩니다 name . 다음 명령에 대해 이 ID를 저장합니다.

  1. 다음 단계에서 Azure Storage에 펌웨어 이미지를 보내는 데 사용할 SAS URL을 생성합니다. 이전 단계에서 저장한 펌웨어 ID로 바꿉 sampleFirmwareID 니다. 이후 명령에 더 쉽게 액세스할 수 있도록 SAS URL을 변수에 저장할 수 있습니다.

    set resourceGroup=myResourceGroup
    set subscription=123e4567-e89b-12d3-a456-426614174000
    set workspace=default
    set firmwareID=sampleFirmwareID
    
    for /f "tokens=*" %i in ('az firmwareanalysis workspace generate-upload-url --resource-group %resourceGroup% --subscription %subscription% --workspace-name %workspace% --firmware-id %firmwareID% --query "url"') do set sasURL=%i
    
  2. Azure Storage에 펌웨어 이미지를 업로드합니다. 로컬 컴퓨터의 펌웨어 이미지 경로로 바꿉 pathToFile 니다.

    az storage blob upload -f "pathToFile" --blob-url %sasURL%
    

다음은 이러한 명령을 사용하여 펌웨어 이미지를 만들고 업로드하는 방법의 예제 워크플로입니다. CLI 명령에서 변수를 사용하는 방법에 대한 자세한 내용은 Azure CLI 명령에서 변수를 사용하는 방법을 참조하세요.

set filePath="/path/to/image"
set resourceGroup="myResourceGroup"
set workspace="default"

set fileName="file1"
set vendor="vendor1"
set model="model"
set version="test"

for /f "tokens=*" %i in ('az firmwareanalysis firmware create --resource-group %resourceGroup% --workspace-name %workspace% --file-name %fileName% --vendor %vendor% --model %model% --version %version% --query "name"') do set FWID=%i

for /f "tokens=*" %i in ('az firmwareanalysis workspace generate-upload-url --resource-group %resourceGroup% --workspace-name %workspace% --firmware-id %FWID% --query "url"') do set URL=%i

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 시간 제한 프레임 내에서 "status"가 "Ready"에 도달하지 않으면 분석이 종료되는 시간(초)인 매개 변수가 있습니다. 기본 시간 제한은 1시간인 3600입니다. 큰 이미지는 분석하는 데 더 오래 걸릴 수 있으므로 필요에 따라 매개 변수를 --timeout 사용하여 시간 제한을 설정할 수 있습니다. 다음은 이미 펌웨어를 az resource wait 만들고 펌웨어 ID를 변수$FWID에 저장한 것으로 가정하여 매개 변수와 함께 --timeout 명령을 사용하여 분석 상태 확인을 자동화하는 방법의 예입니다.

set resourceGroup="myResourceGroup"
set workspace="default"
set FWID="yourFirmwareID"

for /f "tokens=*" %i in ('az firmwareanalysis firmware show --resource-group %resourceGroup% --workspace-name %workspace% --firmware-id %FWID% --query "id"') do set ID=%i

echo Successfully created a firmware image with the firmware ID of %FWID%, recognized in Azure by this resource ID: %ID%.

for /f "tokens=*" %i in ('az resource wait --ids %ID% --custom "properties.status=='Ready'" --timeout 10800') do set WAIT=%i

for /f "tokens=*" %i in ('az resource show --ids %ID% --query "properties.status"') do set STATUS=%i

echo Firmware analysis completed with status: %STATUS%

분석 상태가 "준비됨"으로 확인되면 명령을 실행하여 결과를 끌어올 수 있습니다.

SBOM

다음 명령은 펌웨어 이미지에서 SBOM을 검색합니다. 각 인수를 리소스 그룹, 구독, 작업 영역 이름 및 펌웨어 ID에 대한 적절한 값으로 바꿉니다.

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

취약점

다음 명령은 펌웨어 이미지에 있는 CVE를 검색합니다. 각 인수를 리소스 그룹, 구독, 작업 영역 이름 및 펌웨어 ID에 대한 적절한 값으로 바꿉니다.

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

이진 강화

다음 명령은 펌웨어 이미지의 이진 강화에 대한 분석 결과를 검색합니다. 각 인수를 리소스 그룹, 구독, 작업 영역 이름 및 펌웨어 ID에 대한 적절한 값으로 바꿉니다.

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

암호 해시

다음 명령은 펌웨어 이미지에서 암호 해시를 검색합니다. 각 인수를 리소스 그룹, 구독, 작업 영역 이름 및 펌웨어 ID에 대한 적절한 값으로 바꿉니다.

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

인증서

다음 명령은 펌웨어 이미지에서 발견된 취약한 암호화 인증서를 검색합니다. 각 인수를 리소스 그룹, 구독, 작업 영역 이름 및 펌웨어 ID에 대한 적절한 값으로 바꿉니다.

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

구성

다음 명령은 펌웨어 이미지에서 발견된 취약한 암호화 키를 검색합니다. 각 인수를 리소스 그룹, 구독, 작업 영역 이름 및 펌웨어 ID에 대한 적절한 값으로 바꿉니다.

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