M5 칩 MIE, 5일 만에 뚫렸다! 메모리 보안의 새로운 도전.
애플 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)이 필요하다.