적용 대상: Windows Server 2025
보안 기능 하드웨어 적용 스택 보호 는 사용자 모드 프로세스를 보호하고 Windows 10에서 스택의 하이재킹을 방지하기 위해 도입되었습니다. 하드웨어 적용 스택 보호는 이제 커널 모드로 확장되어 ROP(반환 지향 프로그래밍 기반 공격)로부터 커널의 스택을 보호합니다. ROP는 공격자가 프로그램 실행 흐름을 하이재킹하고 공격 체인을 계속하여 공격자 원하는 코드를 실행하는 일반적인 방법입니다.
이제 사용자 모드 스택이 보호되고 커널 모드 코드에서 반환 주소 수정을 방지하므로 공격자는 메모리 안전 취약성을 악용할 수 없습니다. 고객은 커널 모드 하드웨어 적용 스택 보호가 바이러스 및 맬웨어와 관련된 드라이버가 악의적인 페이로드를 실행하는 것을 방지하는 방법을 이미 보고 있습니다.
커널 모드 하드웨어 적용 스택 보호 는 기본적으로 꺼져 있지만 필수 구성 요소가 충족되면 고객은 이를 켤 수 있습니다. 이 문서에서는 커널 모드 하드웨어 적용 스택 보호에 대한 자세한 정보를 제공하고 Windows 보안 앱 및 그룹 정책을 통해 기능을 사용하도록 설정하는 방법을 보여 줍니다.
Prerequisites
- Windows 11 2022 업데이트 이상
- Windows 보안 앱 버전 1000.25330.0.9000 이상
- Intel CET(제어 흐름 적용 기술) 또는 AMD 섀도 스택을 지원하는 하드웨어입니다.
- Intel의 경우 11세대 Intel Core Mobile 프로세서 및 AMD Zen 3 Core(이상)입니다.
- VBS(가상화 기반 보안) 및 HVCI(하이퍼바이저 적용 코드 무결성)가 사용하도록 설정됩니다.
섀도 스택을 사용하여 제어 흐름의 무결성 적용
커널 모드 하드웨어 적용 스택 보호를 사용하면 모든 커널 스택에는 해당 제어 흐름의 무결성을 적용하는 해당 섀도 스택이 있습니다. 공격자가 메모리 안전 취약성을 악용하는 경우 다음 단계는 프로그램의 제어 흐름을 공격자의 원하는 위치로 리디렉션하는 것입니다.
섀도 스택은 제어 흐름 하이재킹을 방지합니다. Windows는 Control Flow Guard를 사용하여 간접 호출에 대한 무결성을 적용하고, 하드웨어 적용 스택 보호는 프로그램 실행 흐름을 리디렉션하는 것을 목표로 하는 악용으로부터 보호하기 위해 반환에 무결성을 적용합니다. Control Flow Guard는 비트맵을 사용하여 유효한 점프 대상에 주석을 추가하여 손상된 간접 호출이 제어 흐름을 임의의 위치로 리디렉션하지 못하도록 합니다.
섀도 스택은 모든 호출 스택에 대해 (하드웨어로 보호된) 보조 스택을 유지 관리하며, CALL 또는 RET 명령이 값을 스택에 푸시하거나 팝할 때마다 해당 항목이 섀도 스택에 상주합니다. 반환 주소가 일치하지 않으면 시스템에서 의도하지 않은 프로그램 제어 동작을 방지하기 위해 파란색 화면을 트리거합니다.
자세한 내용은 하드웨어 적용 스택 보호 이해에 대한 블로그 게시물을 참조하세요.
Windows 보안 커널 모드 하드웨어 적용 스택 보호 사용
VBS(가상화 기반 보안) 및 HVCI(하이퍼바이저 적용 코드 무결성)는 커널 모드 하드웨어 적용 스택 보호의 필수 구성 요소입니다. 계속하기 전에 먼저 이러한 기능을 사용하도록 설정해야 합니다. 최소 하드웨어 요구 사항을 충족하는 Windows 시스템에서 자동으로 사용할 수 있습니다.
다음 단계를 사용하여 VBS 및 HVCI를 사용하도록 설정합니다.
Windows 보안 앱을 엽니다.
Device Security > Core 격리 세부 정보 > 메모리 무결성으로 이동합니다.
기능을 켜기/해제 합니다.
이렇게 변경한 후에는 디바이스를 다시 시작해야 합니다.
커널 모드 하드웨어 적용 스택 보호 켜기
Windows 보안 앱을 엽니다.
Device Security > Core 격리 세부 정보 > 커널 모드 하드웨어 적용 스택 보호로 이동합니다.
기능을 켜기/해제 합니다.
로컬 그룹 정책 편집기에서 커널 모드 하드웨어 적용 스택 보호 사용
엔터프라이즈 고객의 경우 그룹 정책을 사용하여 커널 모드 하드웨어 적용 스택 보호를 사용하도록 설정할 수 있습니다.
로컬 그룹 정책 편집기를 엽니다.
컴퓨터 구성 > 관리 템플릿 > 시스템 > Device Guard > 켜기 가상화 기반 보안으로 이동합니다.
가상화 기반 보안이 사용하도록 설정되어 있는지 확인합니다.
옵션 아래에서 커널 모드 하드웨어 적용 스택 보호를 찾습니다. 적용 모드에서 [사용]을 선택합니다.
적용을 선택합니다. 그런 다음 확인합니다.
호환되지 않는 드라이버
아직 호환되지 않는 작은 드라이버 집합이 있습니다. 제어 흐름 정책을 가져오기 위해 반환 주소를 하이재킹하는 것과 같이 잠재적으로 악의적인 동작을 보이는 드라이버는 호환되지 않으며 커널 모드 하드웨어 적용 스택 보호를 위한 취약한 드라이버 차단 목록에 추가됩니다. 드라이버 공급업체와 협력하여 섀도 스택 규격 방식으로 코드 난독화를 수행한 후에는 해당 드라이버가 허용됩니다.
좋은 사용자 환경을 제공하고 컴퓨터 파란색 화면을 방지하기 위해 Windows는 커널 모드 하드웨어 적용 스택 보호를 위해 알려진 호환되지 않는 드라이버 차단 목록을 유지 관리합니다. 커널에서 반환 주소를 하이재킹하는 것으로 알려진 드라이버입니다. 이 기능을 켜면 드라이버가 로드할 수 없습니다(반환 주소 하이재킹을 시도할 때 파란색 화면이 아님). 또한 시스템에 차단 목록에 드라이버가 이미 설치된 경우 이 기능을 사용하도록 설정하지 못합니다. 연결된 드라이버를 제거하여 이 기능을 사용하도록 설정할 수 있습니다.
호환되지 않는 드라이버 검토
드라이버 공급업체에서 업데이트된 버전을 사용하거나 드라이버를 설치한 애플리케이션을 제거하여 비호환성이 해결될 때까지 이 기능을 사용하도록 설정할 수 없습니다. 호환되지 않는 드라이버 목록을 보려면 "호환되지 않는 드라이버 검토"를 선택합니다.
특정 앱은 커널 모드 하드웨어 적용 스택 보호와 호환되지 않는 드라이버를 사용합니다. 예를 들어 난독 처리 엔진을 사용하여 IP를 보호하고 섀도 스택과 호환되지 않는 난독 처리 제어 흐름을 사용하는 앱입니다. 안전하지 않은 드라이버가 이 보안 기능을 사용하도록 설정하여 로드하려고 하면 "드라이버가 이 디바이스에서 로드할 수 없습니다"라는 메시지가 표시됩니다.
필요에 따라 보안 기능을 사용하지 않도록 설정할 수 있지만 이렇게 하면 디바이스의 보안이 다운그레이드됩니다. 언제든지 Windows 보안 애플리케이션에서 이 기능을 다시 사용하도록 설정할 수 있습니다.