미니 잡담: 예전에 버튜버가 발견한 것으로 유명해진 취약점은...
- Section31
- 조회 수 676
- 2023.10.17. 13:46
예전에 일명 '버튜버가 발견한 macOS 취약점'으로 유명해진 영상이 있는데,
알고보니 그 취약점은 매우 광범위한 수의 디바이스에 영향을 끼칠 수 있었던 중대한 취약점으로,
CVE-2022-32947 로 명명되었으며, 대략 15만 달러(!!!!)의 포상금에 상당하는 수준이었습니다.
어떻게 뚫었냐면....
1) 이 취약점에는 펌웨어 읽기-쓰기 권한이 있는 사용자, Apple의 페이지 번역 조회 테이블, 레지스터 및 uPPL을 사용하는 것이 포함되었습니다.
2) 반환 지향 프로그래밍(Return Oriented Programming)을 사용합니다.
- 먼저 여러 구성 요소를 하드웨어의 마이크로 시퀀스에 통합합니다.
- 다음, 이 마이크로 시퀀스로 가짜 페이지 테이블을 생성한 다음,
- 새 페이지 테이블을 가리키도록 레지스터를 변경하고,
- 조회 테이블을 호출해서 uPPL을 실행하도록 하는 셰이더를 만듭니다.
3) uPPL에는 페이지 테이블 내용을 수정할 수 있는 기능이 있는데,
- 조회 테이블에는 uPPL 호출을 무제한으로 수행할 수 있는 기능이 있습니다.
- 공격자는 이를 통해 레지스터에서 참조하는 가짜 페이지 테이블로 루트 권한을 얻을 수 있습니다.
4) 가짜 페이지 테이블이 uPPL-Lookup Table 취약점의 원본 위에 매핑되고 레지스터가 재설정되면,
- 공격자는 루트로 실행되도록 변수를 수정할 수 있습니다.
5) 이 결과 맥 OS 운영체제의 사용자 중에서 루트 유저의 권한이 뚫리게 됩니다.
- 정상적인 맥이라면 루트리스(rootless) 기능으로 인해 접근할 수 없는 상황이죠.
다음의 운영체제 버전에 해당하는 모든 디바이스가 이 취약점의 영향을 받았습니다.
버전 업데이트를 통해 해당 취약점을 없앨 수 있습니다.
1) 아이폰 : iOS 16.1 까지
2) 아이패드: iPadOS 16.0 까지
3) 맥 : macOS 13.0 까지
4) 애플 워치 : watchOS 9.1 까지
맥은 루트 뚫리는 버그가 참 심심찮게..
애플이 빠르게 대응을 잘 해주는 점은 다행입니다.