M5 칩 MIE, 5일 만에 뚫렸다! 메모리 보안의 새로운 도전.

by DD
1주 전
조회수 8

애플 M5 칩의 메모리 무결성 강화(MIE)가 5일 만에 우회되는 취약점이 발견됨

정수 오버플로우(Integer Overflow) 취약점을 활용, 권한 상승(Privilege Escalation) 공격 성공

MIE는 메모리 태깅(Memory Tagging), 읽기 전용 영역(Read-only Zones) 등 다층 방어 기법을 사용했으나, 신뢰할 수 있는 라이터(Trusted Writer)의 입력 검증 실패로 무력화됨

공격자는 _zalloc_ro_mut 함수의 인자 검증(Argument Validation) 과정에서 발생하는 취약점을 악용하여 cr_uid 값을 조작, root 권한 획득

MIE 아키텍처와 공격 성공의 배경

MIE는 애플의 하드웨어 기반 메모리 보안(Hardware-Level Memory Safety) 기술로, 메모리 태깅(Memory Tagging)과 읽기 전용 영역(Read-only Zones)을 활용하여 메모리 안전성을 강화한다. 하지만, _zalloc_ro_mut 함수 내 인자 검증(Argument Validation) 과정에서 발생한 정수 오버플로우(Integer Overflow) 취약점으로 인해 MIE가 우회되었다. 이는 신뢰할 수 있는 라이터(Trusted Writer)의 입력 검증 실패가 핵심 원인으로 작용했다.

정수 오버플로우(Integer Overflow) 취약점 분석

공격은 _zalloc_ro_mut 함수 내에서 target + len 연산 시, 오버플로우(Overflow)가 발생하도록 len 값을 조작하는 방식으로 진행되었다. 이로 인해, 잘못된 메모리 주소(Incorrect Memory Address)로의 쓰기가 가능해졌고, ucred 구조체의 cr_uid 값을 0으로 변경하여 root 권한을 획득했다. 특히, 이 취약점은 MIE의 메모리 태깅(Memory Tagging)읽기 전용 영역(Read-only Zones)을 모두 우회했다는 점에서 주목할 만하다.

취약점 패치 및 방어 전략

애플은 _zalloc_ro_mut 함수의 오버플로우 검사(Overflow Check) 순서를 변경하고, CPU별 바운드(Per-CPU Bound)를 추가하는 방식으로 해당 취약점을 패치했다. 하지만, 신뢰할 수 있는 라이터(Trusted Writer)의 입력 검증 취약점은 여전히 존재할 수 있으며, 추가적인 MIE 우회 시도가 예상된다. 따라서, 지속적인 보안 업데이트(Continuous Security Updates)와 함께, 다양한 방어 기법(Defense-in-Depth)을 병행하는 것이 중요하다.

공격 기법 및 향후 전망

공격자는 csops_audittoken 또는 mac_set_* 함수를 통해 _zalloc_ro_mut 함수를 호출하고, heap shaping 기법을 활용하여 ucred 구조체를 조작했다. 향후에는 _zalloc_ro_mut과 유사한 기능을 가진 다른 함수들, 즉 신뢰할 수 있는 라이터(Trusted Writer)에 대한 공격이 시도될 가능성이 높다. 또한, AI를 활용한 공격 기법 개발이 가속화될 것으로 예상되며, 이에 대한 선제적 대응(Proactive Response)이 필요하다.

Pardon MIE? - How Researchers Found First Ever Bypass Of Apple's Memory Integrity Enforcement