1. 개요
- 업데이트된 윈도우 시스템의 보안을 무너뜨릴 수 있는 두 개의 제로데이 취약점이 공개 (Windows Downdate 공격) [1]
- 다운그레이드 공격을 통해 윈도우 서버 시스템이 이전의 취약한 상태로 되돌아갈 수 있음
> 윈도우 업데이트의 액션 리스트를 조작함으로써 시스템의 구성 요소를 다운그레이드
> 공격자는 NT 커널, DLL, VBS, UEFI 기능까지 다운그레이드할 수 있음
1.1 Windows Update Architecture
- Windows Update는 COM을 통해 통신하는 업데이트 클라이언트와 업데이트 서버가 포함
> 업데이트 클라이언트는 Administrator, 업데이트 서버는 Trusted Installer가 적용되며, 업데이트 파일은 Trusted Installer만 액세스 가능
- 업데이트 흐름
① 클라이언트는 서버가 제공하는 업데이트 폴더에 포함된 업데이트를 수행하도록 서버에 요청
> 업데이트 폴더에는 업데이트 구성 요소가 들어 있음
구분 | 설명 |
MUM 파일 | - MS 업데이트 메타데이터 - 메타데이터 정보, 구성 요소 종속성, 설치 순서 등을 포함 - 명시적으로 서명되어 있지 않지만 Catalog 파일에 서명되어 있음 |
Manifest 파일 | - 파일 경로, 레지스트리 키, 설치 프로그램에서 실행할 설치 프로그램 등과 같은 설치 관련 정보가 포함 - 명시적으로 서명되어 있지 않지만 Catalog 파일에 서명되어 있음 |
Differential 파일 | - 기본 파일의 델타 파일 - 기본 파일과 델타 파일을 합치면 전체 업데이트 파일이 나옴 - 서명되지 않음 |
Catalog 파일 | - MUM과 Manifest 파일의 디지털 서명 - 여러 파일을 한 번에 서명할 수 있도록 함 - 파일 자체적으로 디지털 서명이 되어 있어 수정 불가 |
② 서버는 업데이트 폴더의 무결성 검증
③ 무결성 검증 후, 클라이언트가 액세스할 수 없는 서버 제어 폴더에 업데이트 파일을 저장
④ 서버는 서버 제어 폴더에 작업 목록을 Pending.xml 파일로 저장하며, 해당 파일에 업데이트 작업이 포함
> 파일 생성, 파일 삭제, 파일 이동, 파일 하드 링크, 레지스트리 키 및 값 생성, 키 및 값 삭제 등의 기능을 제공하는 XML 파일
⑤ OS가 재부팅되면 작업 목록 작동 및 재부팅 중 업데이트 진행
2. 주요내용
- 윈도우 시스템을 다운그레이드 할 수 있는 제로데이 공격 Windows Downdate 발견
> CVE-2024-38202 (CVSS: 7.3): Windows Update Stack 권한 상승 취약성
> CVE-2024-21302 (CVSS: 6.7): Windows Secure Kernel Mode 권한 상승 취약성
2.1 Differential 파일 및 Action List
- 해당 공격에서는 Differential 파일 악용을 시도하였으나, 그러지 못함
> 예상 업데이트 파일의 해시 값이 Manifest 파일에 하드코딩되어 있음
> Manifest 파일 변경 시 Catalog 파일의 서명이 깨짐
- Action List의 경우 Trusted Installer가 적용되어 내용을 변경할 수 없음
> 레지스트리에서 Action List 경로를 검색해보니 PoqexecCmdline 키 발견 (목록과 목록 경로를 구문 분석하는 실행 파일을 포함)
> 해당 키의 보안 속성을 확인한 결과 Trusted Installer가 적용되지 않음
- 다운그레이드를 수행하기 위해 다음 작업을 수행
> 식별자는 무결성 확인을 위해 작업 목록의 식별자와 비교되는 숫자
> 다음 세 가지 작업 모두 Trusted Installer가 적용되지 않음
> 이를 통해 사용자 지정 다운그레이드 작업 목록으로 시스템을 업데이트할 수 있었음
* 작업 목록은 검증 후 생성되므로 검증을 가정하기 때문에 모든 무결성 검증을 우회
2.2 VBS UEFI 잠금 우회
- VBS (Virtualization-Based Security): 하드웨어 가상화 및 Windows 하이퍼바이저를 사용하여 시스템을 여러 개의 격리된 환경으로 나누고, 각 환경을 보호함으로써 전체 시스템의 보안을 강화하는 기술 [3]
- UEFI (Unified Extensible Firmware Interface): 운영 체제가 시작되기 전에 시스템을 검사하고, 보안 부팅(Secure Boot) 등의 기능을 통해 보안성을 높임 [4]
> UEFI 잠금 기능을 구현하여 VBS를 비활성화로부터 보호
> 사용자가 VBS를 비활성화하려면 MS에서 서명한 EFI 애플리케이션을 로드해야 함
> EFI는 부팅 중 사용자에게 VBS 비활성화를 물리적으로 승인하도록 요청하며, 승인 시 VBS 비활성화
- OS로더가 정상적으로 부팅되고 VBS의 파일 중 하나를 검증하지 못하면 VBS를 포기
> 해당 프로세스를 통해 VBS 비활성화 및 UEFI 잠금을 우회할 수 있었음 [5]
2.3 Exploit
- VBS의 보안 경계는 다음을 권한 상승으로 간주
> VTL0(일반적인 실행 환경) -> VTL1(보안이 강화된 환경)
> Ring3(일반적인 실행 환경)/0(커널) -> Ring -1(하이퍼바이저)
- 연구에서는 세 가지 경우를 대상으로 다운그레이드 수행
① 보안 모드의 격리된 사용자 모드 프로세스 대상
- Credential Guard
> Ring3-VTL1에서 LsaIso.exe라는 이름의 격리된 사용자 모드 프로세스로 구현
> Credential Guard를 실행하면 비밀이 원래 LSASS 프로세스 대신 VTL1의 LsaIso.exe에 저장
- CVE-2022-34709로 다운그레이드 진행 및 다운그레이드 감지 없이 허용 (Ring3-VTL0 -> Ring3-VTL1)
> CVE-2022-34709: Windows Defender Credential Guard 보안 기능 우회 취약성 [6]
② 보안 모드 커널 대상
- 보안 커널이란 일반 커널에 보안 기능을 추가하여 안전성을 강화한 커널
- CVE-2021-27090로 다운그레이드 진행 및 다운그레이드 감지 없이 허용 (Ring3-VTL0 -> Ring3-VTL1)
> CVE-2021-27090: Windows 보안 커널 모드 권한 상승 취약성 [7]
③ 하이퍼바이저 대상
- 하이퍼바이저 권한 상승 취약점이 다수 있었으나, 구체적인 내용은 공유되지 않음
> 하이퍼바이저를 2년 전 버전으로 다운그레이드 시도 및 다운그레이드 감지 없이 허용 (Ring3-VTL0 -> Ring3-VTL1)
- 24.02 MS에 내용 전달 및 MS는 24년 8월 정기 보안 업데이트에서 해당 취약점을 포함한 다수의 취약점에 대한 패치를 제공 [9]
3. 참고
[1] https://www.safebreach.com/blog/downgrade-attacks-using-windows-updates/
[2] https://www.safebreach.com/wp-content/uploads/2024/08/AFD-Downgrade-Kernel-Code-Execution.mp4
[3] https://learn.microsoft.com/ko-kr/windows-hardware/design/device-experiences/oem-vbs
[4] https://namu.wiki/w/UEFI
[5] https://www.safebreach.com/wp-content/uploads/2024/08/Credential-Extraction-PPL-and-UEFI-Lock-Bypass.mp4
[6] https://nvd.nist.gov/vuln/detail/CVE-2022-34709
[7] https://nvd.nist.gov/vuln/detail/cve-2021-27090
[8] https://www.safebreach.com/wp-content/uploads/2024/08/Hyper-V-Hypervisor-Downgrade.mp4
[9] https://msrc.microsoft.com/update-guide/releaseNote/2024-Aug
[10] https://www.dailysecu.com/news/articleView.html?idxno=158444
'취약점 > 기타' 카테고리의 다른 글
Kia 차량 해킹 (3) | 2024.10.03 |
---|---|
Air-Gap RAMBO(Radiation of Air-gapped Memory Bus for Offense) Attack (0) | 2024.09.11 |
SmartScreen 및 Windows Smart App Control 설계상 취약점 (0) | 2024.08.10 |
GrimResource 공격 (0) | 2024.06.26 |
Wi-Fi SSID 혼동 공격 (CVE-2023-52424) (0) | 2024.05.18 |