서명된 정책을 사용하여 변조로부터 비즈니스용 App Control 보호
참고
비즈니스용 App Control의 일부 기능은 특정 Windows 버전에서만 사용할 수 있습니다. App Control 기능 가용성에 대해 자세히 알아보세요.
서명된 비즈니스용 앱 제어 정책은 조직에 Windows에서 사용할 수 있는 최고 수준의 보호를 제공합니다. 이러한 정책은 관리자 권한으로 실행되는 맬웨어와 같이 정책의 관리 변조를 검색하도록 설계되었으며 부팅 실패 또는 파란색 화면이 발생합니다. 이 목표를 염두에 두고 서명된 App Control 정책을 제거하는 것이 훨씬 더 어렵습니다. 서명된 App Control 정책에 대해 이 보호를 제공하려면 SecureBoot를 사용하도록 설정해야 합니다.
현재 정책에 서명하는 데 사용할 수 있는 코드 서명 인증서가 없는 경우 사용자 고유의 용도로 코드 서명 인증서 가져오기를 참조하세요.
Warning
서명 인증서가 다음 규칙을 따르지 않는 경우 부팅 실패 또는 파란색 화면이 발생할 수 있습니다.
- 기본 및 추가를 포함한 모든 정책은 PKCS 7 Standard 따라 서명되어야 합니다.
- 2K, 3K 또는 4K 키 크기로만 RSA 키를 사용합니다. ECDSA는 지원되지 않습니다.
- SHA-256, SHA-384 또는 SHA-512를 Windows 11 다이제스트 알고리즘으로 사용할 수 있으며, 2022년 11월 누적 보안 업데이트를 적용한 후 Windows 10 및 Windows Server 2019 이상을 사용할 수 있습니다. 다른 모든 디바이스는 SHA-256만 지원합니다.
서명된 정책을 배포하기 전에 먼저 서명되지 않은 버전의 정책을 배포하여 정책 규칙과 관련된 문제를 확인해야 합니다. 또한 규칙 옵션 9 - 사용:고급 부팅 옵션 메뉴 및 10 - 사용:부팅 감사 실패 시 관리자가 문제 해결 옵션을 사용할 수 있도록 설정하는 것이 좋습니다. 규칙 옵션을 사용하도록 설정하려면 옵션이 이미 활성화되어 있는지 확실하지 않더라도 과 같은 Set-RuleOption -FilePath <PathAndFilename> -Option 9
명령을 실행할 수 있습니다. 이 경우 명령은 아무런 영향을 주지 않습니다. 유효성이 검사되고 엔터프라이즈 배포 준비가 되면 이러한 옵션을 제거할 수 있습니다. 규칙 옵션에 대한 자세한 내용은 비즈니스용 앱 제어 정책 규칙을 참조하세요.
참고
기존 추가 정책이 있는 기본 정책에 서명할 때 모든 추가 항목에 대해 서명된 정책으로 전환해야 합니다. 기본 정책에 규칙을 추가하여 서명된 <SupplementalPolicySigner>
추가 정책에 권한을 부여합니다.
서명을 위한 App Control 정책 준비
관리자 권한 Windows PowerShell 세션을 열고 사용할 변수를 초기화합니다.
$PolicyPath=$env:userprofile+"\Desktop\" $PolicyName="FixedWorkloadPolicy_Enforced" $LamnaServerPolicy=$PolicyPath+$PolicyName+".xml"
참고
이 예제에서는 참조 컴퓨터에서 비즈니스용 앱 컨트롤 정책 만들기 문서에서 만든 App Control 정책의 적용된 버전을 사용합니다. 다른 정책에 서명하는 경우 $PolicyPath 및 $PolicyName 변수를 올바른 정보로 업데이트해야 합니다.
작업 디렉터리로 데스크톱으로 이동합니다.
cd $PolicyPath
App Control 정책에 정책 서명 인증서에 대한 규칙이
<UpdatePolicySigner>
아직 포함되어 있지 않은 경우 추가해야 합니다. ConvertFrom-CiPolicy를 사용하여 정책 XML을 변환하려면 하나<UpdatePolicySigner>
이상의 규칙이 있어야 합니다.Add-SignerRule을 사용하고 인증서 파일(.cer)에서 규칙을 만듭니
<UpdatePolicySigner>
다. 코드 서명 인증서를 구입했거나 자체 PKI(공개 키 인프라)에서 인증서를 발급한 경우 인증서 파일을 내보낼 수 있습니다.참고
정책에서 추가 정책을 허용하지 않는 경우 다음 명령에서 -Supplemental 스위치를 생략해야 합니다.
Add-SignerRule -FilePath $LamnaServerPolicy -CertificatePath <Path to exported .cer certificate> -Update -Supplemental
중요
이 단계를 수행하지 못하면 이 정책을 수정하거나 사용하지 않도록 설정할 수 없게 되며 부팅 실패가 발생합니다. 부팅 실패를 유발하는 서명된 정책을 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 부팅 중지 실패를 유발하는 비즈니스용 앱 제어 정책 제거를 참조하세요.
Set-RuleOption을 사용하여 서명되지 않은 정책 규칙 옵션을 제거합니다.
Set-RuleOption -FilePath $LamnaServerPolicy -Option 6 -Delete
(선택 사항) Set-CIPolicyIdInfo 를 사용하여 정책 ID를 다시 설정하고 정책 이름을 변경합니다.
(선택 사항) Set-CIPolicyVersion을 사용하여 VersionEx 정책을 변경합니다.
중요
서명된 정책을 업데이트할 때 업데이트된 정책의 VersionEx는 현재 정책보다 크거나 같아야 합니다. 서명된 정책을 더 낮은 버전으로 바꾸면 부팅 실패가 발생합니다.
ConvertFrom-CIPolicy를 사용하여 정책을 이진 형식으로 변환합니다.
$PolicyID= Set-CIPolicyIdInfo -FilePath $LamnaServerPolicy -ResetPolicyID $PolicyID = $PolicyID.Substring(11) $CIPolicyBin = $env:userprofile + "\Desktop\" + $PolicyID + ".cip" ConvertFrom-CIPolicy $LamnaServerPolicy $CIPolicyBin
정책 서명
signtool.exe 사용하여 정책 서명
코드 서명 인증서를 구입했거나 사용자 고유의 PKI에서 인증서를 발급한 경우 SignTool.exe 사용하여 App Control 정책 파일에 서명할 수 있습니다.
.pfx 코드 서명 인증서를 서명이 수행되는 컴퓨터의 사용자 개인 저장소로 가져옵니다. 이 예제에서는 선택 사항: 비즈니스용 App Control에 대한 코드 서명 인증서 만들기에서 만든 인증서를 사용합니다.
SignTool.exe 사용하여 App Control 정책에 서명합니다.
<Path to signtool.exe> sign -v -n "ContosoSigningCert" -p7 . -p7co 1.3.6.1.4.1.311.79.1 -fd sha256 $CIPolicyBin
참고
<signtool.exe에 대한 경로> 변수는 SignTool.exe 유틸리티의 전체 경로여야 합니다. ContosoSigningCert 는 정책에 서명하는 데 사용할 인증서의 주체 이름입니다. 이 인증서를 정책 서명에 사용하는 컴퓨터의 개인 인증서 저장소로 가져와야 합니다.
완료되면 명령은 확장명을 사용하여 서명된 정책 파일을 .p7
출력해야 합니다. 파일 {GUID}.cip
이름을 원래 App Control 정책 XML의 <PolicyId> 인 "{GUID}"로 바꿔야 합니다.
서명된 정책 확인 및 배포
certutil.exe 또는 PowerShell을 사용하여 서명된 파일을 확인할 수 있습니다. 출력을 검토하여 이 문서의 맨 위에 있는 경고에 설명된 대로 서명 알고리즘을 확인합니다.
certutil.exe -asn <path to signed policy file>
$CIPolicyBin = 'path to signed policy file'
Add-Type -AssemblyName 'System.Security'
$SignedCryptoMsgSyntax = New-Object -TypeName System.Security.Cryptography.Pkcs.SignedCms
$SignedCryptoMsgSyntax.Decode([System.IO.File]::ReadAllBytes($CIPolicyBin))
$SignedCryptoMsgSyntax.Certificates | Format-List -Property *
배포를 계속하기 전에 대표 컴퓨터 집합에서 서명된 정책을 철저히 테스트합니다. 부팅 오류가 발생하지 않도록 서명된 App Control 정책을 적용한 후 테스트 컴퓨터를 두 번 이상 다시 부팅해야 합니다.
서명된 정책을 확인했으면 기본 배포 방법을 사용하여 배포합니다. 정책 배포에 대한 자세한 내용은 비즈니스용 앱 제어 정책 배포를 참조하세요.
참고
서명된 정책에 대한 변조 방지 보호는 서명된 정책이 컴퓨터에 적용되면 첫 번째 다시 부팅 후에 적용됩니다. 이 보호는 UEFI 보안 부팅이 사용하도록 설정된 컴퓨터에만 적용됩니다.