분리된 비즈니스용 Windows Hello 키를 정리하기 위해 WHfBTools PowerShell 모듈 사용

적용 대상
Windows Server 2019, all editions Windows Server 2016, all editions

요약​​

고객이 TPM 취약성의 영향을 받는 분리된 WHfB(비즈니스용 Windows Hello) 키를 식별할 수 있도록 Microsoft는 관리자가 실행할 수 있는 PowerShell 모듈을 게시했습니다. 이 문서에서는 ADV190026 | “취약한 TPM에서 생성되어 비즈니스용 Windows Hello에 사용되는 분리된 키를 정리하는 방법에 대한 Microsoft 지침”에 설명되어 있는 문제 해결 방법에 대해 설명합니다.

중요 참고 분리된 키를 제거하기 위해 WHfBTools를 사용하기 전에 ADV170012의 지침에 따라 취약한 TPM의 펌웨어를 업데이트해야 합니다. 이 지침을 따르지 않으면 업데이트되지 않은 펌웨어가 있는 장치에서 생성된 새 WHfB 키가 계속해서 CVE-2017-15361 (ROCA)의 영향을 받습니다.

WHfBTools PowerShell 모듈을 설치하는 방법

다음 명령을 실행하여 모듈을 설치하십시오.

WHfBTools PowerShell 모듈 설치
PowerShell을 통한 설치

PS> Install-Module WHfBTools

PS> # Save the current execution policy so it can be reset later

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module WHfBTools

또는 PowerShell 갤러리에서 다운로드하여 설치

  1. https://www.powershellgallery.com/packages/WHfBTools
  2. 원시 .nupkg 파일을 로컬 폴더에 다운로드하고 .zip 확장명으로 이름을 바꿉니다.
  3. 로컬 폴더에 압축을 풉니다. 예: C:\ADV190026


PowerShell을 시작하고 다음 명령을 복사하여 실행합니다.

PS> # Save the current execution policy so it can be reset later

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV190026\WHfBTools

PS> Import-Module .\WHfBTools.psd1

모듈 사용에 대한 종속성을 설치합니다.

WHfBTools 모듈 사용에 대한 종속성 설치
분리된 키에 대해 Azure Active Directory를 쿼리하는 경우 MSAL.PS PowerShell 모듈을 설치합니다.

PowerShell을 통한 설치

PS> Install-Module -Name MSAL.PS -RequiredVersion 4.5.1.1

PS> Import-Module MSAL.PS

또는 PowerShell 갤러리 다운로드를 사용하여 설치

  1. https://www.powershellgallery.com/packages/MSAL.PS/4.5.1.1
  2. 원시 .nupkg 파일을 로컬 폴더에 다운로드하고 .zip 확장명으로 이름을 바꿉니다.
  3. 로컬 폴더에 압축을 풉니다. 예: C:\MSAL.PS
PowerShell을 시작하고 다음 명령을 복사하여 실행합니다.

PS> CD C:\MSAL.PS

PS> Import-Module .\MSAL.PS.psd1

분리된 키에 대해 Active Directory를 쿼리하는 경우 RSAT(원격 서버 관리자 도구): Active Directory Domain Services 및 경량 디렉터리 서비스 도구를 설치합니다.

설정을 통해 설치(Windows 10, 버전 1809 이상)

  1. 설정 - 앱 ->> 선택적 기능 -> 기능 추가로 이동
  2. RSAT: Active Directory Domain Services 및 경량 디렉터리 서비스 도구 선택
  3. 설치를 선택합니다
또는 PowerShell을 통해 설치

PS> dism /online /Add-Capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

또는 다운로드를 통해 설치
  1. https://www.microsoft.com/en-us/download/details.aspx?id=45520(Windows 10 링크)로 이동합니다.
  2. Windows 10 설치 관리자용 원격 서버 관리 도구 다운로드.
  3. 다운로드가 완료되면 설치 관리자를 실행합니다.

WHfBTools PowerShell 모듈 실행

환경에 Azure Active Directory 가입 및 하이브리드 Azure Active Directory 가입 장치가 있는 경우 Azure Active Directory 단계를 수행하여 키를 식별하고 제거합니다. Azure의 키 제거는 Azure AD Connect를 통해 Active Directory에 동기화됩니다.

온-프레미스 전용 환경인 경우 Active Directory 단계를 수행하여 키를 식별하고 제거합니다.

분리된 키와 CVE-2017-15361(ROCA)에 의해 영향을 받은 키에 대한 쿼리
다음 명령을 사용하여 Azure Active Directory의 키를 쿼리합니다.

PS> Get-AzureADWHfBKeys -Logging -Report -Tenant contoso.com -All | Export-Csv C:\AzureKeys.csv

이 명령은 등록된 모든 비즈니스용 Windows Hello 공개 키에 대해 "contoso.com" 테넌트 를 쿼리하고 해당 정보를 에 C:\AzureKeys.csv출력합니다. contoso.com 를 테넌트 이름으로 바꾸어 테넌트 쿼리를 합니다.

Csv 출력 AzureKeys.csv에는 각 키에 대한 다음 정보가 포함됩니다.

  • 사용자 계정 이름
  • 서비스
  • 사용법
  • 키 ID
  • 만든 시간
  • 분리된 상태
  • 알림 상태 지원
  • ROCA 취약성 상태
Get-AzureADWHfBKeys 는 쿼리된 키의 요약도 출력합니다. 이 요약은 다음 정보를 제공합니다.

  • 스캔한 사용자 수
  • 스캔한 키 수
  • 키를 소유한 사용자 수
  • ROCA 취약 키 수
참고 Azure AD 테넌트에는 부실 장치 및 이와 관련된 비즈니스용 Windows Hello 키가 있을 수 있습니다. 이러한 장치가 적극적으로 사용되지 않더라도 이러한 키는 분리된 것으로 보고되지 않습니다. 방법: Azure AD 부실 디바이스를 관리하여 분리된 키를 쿼리하기 전에 오래된 디바이스를 클린 것이 좋습니다.



다음 명령을 사용하여 Active Directory의 키를 쿼리합니다.

PS> Get-ADWHfBKeys -Logging -Report -Domain contoso | Export-Csv C:\ADKeys.csv

이 명령은 등록된 모든 비즈니스용 Windows Hello 공개 키에 대해 "contoso" 도메인을 쿼리하고 해당 정보를 에 C:\ADKeys.csv출력합니다. contoso을 도메인 이름으로 바꾸어 도메인을 쿼리합니다.

Csv 출력 ADKeys.csv에는 각 키에 대한 다음 정보가 포함됩니다.

  • 사용자 도메인
  • 사용자 SAM 계정 이름
  • 사용자 식별 이름
  • 키 버전
  • 키 ID
  • 만든 시간
  • 키 자료
  • 키 원본
  • 키 사용
  • 키 장치 ID
  • 대략적인 마지막 로그온 타임스탬프
  • 생성 시간
  • 사용자 지정 키 정보
  • KeyLinkTargetDN
  • 분리된 상태
  • ROCA 취약성 상태
  • KeyRawLDAPValue
Get-ADWHfBKeys 는 쿼리된 키의 요약도 출력합니다. 이 요약은 다음 정보를 제공합니다.

  • 스캔한 사용자 수
  • 키를 소유한 사용자 수
  • 스캔한 키 수
  • ROCA 취약 키 수
  • 분리된 키 수(-SkipCheckForOrphanedKeys가 지정되지 않은 경우)
참고: Azure AD 조인된 디바이스가 있는 하이브리드 환경이 있고 온-프레미스 도메인에서 "Get-ADWHfBKeys"를 실행하는 경우 분리된 키의 수가 정확하지 않을 수 있습니다. Azure AD 가입 장치가 Active Directory에 없고 Azure AD 가입 장치와 연결된 키가 분리된 것으로 표시될 수 있기 때문입니다.
디렉터리에서 분리된 ROCA 취약한 키 제거
다음 단계를 수행하여 Azure Active Directory에서 키를 제거합니다.

  1. 의 분리된 열과 RocaVulnerable 열을 true로 필터링합니다.AzureKeys.csv
  2. 필터링된 결과를 새 파일에 복사합니다. C:\ROCAKeys.csv
  3. 다음 명령을 실행하여 키를 삭제합니다.
PS> Import-Csv C:\ROCAKeys.csv | Remove-AzureADWHfBKey -Tenant contoso.com -Logging

이 명령은 분리된 ROCA 취약한 키 목록을 가져오고 테넌트에서 contoso.com 제거합니다. contoso.com를 테넌트 이름으로 바꾸어 테넌트에서 키를 제거합니다.

N ote 아직 분리되지 않은 ROCA 취약한 WHfB 키를 삭제하면 사용자에게 중단이 발생합니다. 디렉터리에서 키를 제거하기 전에 분리된 키가 맞는지 확인하십시오.



다음 단계를 사용하여 Active Directory에서 키를 제거합니다.

참고 하이브리드 환경에서 Active Directory에서 분리된 키를 제거하면 Azure AD Connect 동기화 프로세스의 일부로 키가 다시 만들어질 수 있습니다. 하이브리드 환경에 있는 경우 Azure AD에서만 키를 제거합니다.

  1. 의 OrphanedKey ROCAVulnerable 열을 true로 필터링합니다.ADKeys.csv
  2. 필터링된 결과를 새 파일에 복사합니다. C:\ROCAKeys.csv
  3. 다음 명령을 실행하여 키를 삭제합니다.
PS> Import-Csv C:\ROCAKeys.csv | Remove-ADWHfBKey -Logging

이 명령은 분리된 그리고 ROCA 취약 키 목록을 가져오고 도메인에서 이를 제거합니다.

참고 아직 분리되지 않은 ROCA 취약한 WHfB 키를 삭제하면 사용자에게 중단이 발생합니다. 디렉터리에서 키를 제거하기 전에 분리된 키가 맞는지 확인하십시오.