빠른 시작: 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를 선택합니다.
작업 영역에 펌웨어 이미지 업로드
업로드할 펌웨어 이미지를 만듭니다. 리소스 그룹 이름, 구독 ID 및 작업 영역 이름을 해당 매개 변수에 삽입합니다.
az firmwareanalysis firmware create --resource-group myResourceGroup --subscription 123e4567-e89b-12d3-a456-426614174000 --workspace-name default
이 명령의 출력에는 펌웨어 ID인 속성이 포함됩니다 name
. 다음 명령에 대해 이 ID를 저장합니다.
다음 단계에서 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
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