애플의 아이메시지 앱에서 발견된 취약점, 공격자들이 장비 장악하도록 해
CVSS 9.8점의 치명적으로 위험한 취약점...NSKeyedUnarchiver API가 핵심[보안뉴스 문가용 기자] 구글 프로젝트 제로 팀의 연구원들이 아이메시지(iMessage)에서 발견된 취약점에 대한 상세 정보를 공개했다. 이 취약점은 작년에 패치된 것으로, 원격 익스플로잇이 가능하며, 성공할 경우 임의 코드를 실행할 수 있게 해준다.[이미지 = iclickart]
취약점의 공식 번호는 CVE-2019-8641이며, 치명적 위험도를 가진 것으로 분석되고 있다. CVSS 기준으로 9.8점이라는 높은 점수를 받았다. 구글 프로젝트 제로의 사무엘 그로브(Samuel Groß)와 나탈리 실바노비치(atalie Silvanovich)가 발견했다.
지난 해 9월 애플은 iOS 12.4.2를 공개하며 아이폰 5s, 아이폰 6, 아이폰 6 플러스, 아이패드 에어, 아이패드 미니, 아이패드 미니 3, 아이팟 터치 6세대에서 위 취약점을 해결했다. 당시 애플은 입력값을 보다 명확하고 확실하게 확인함으로써 아웃 오브 바운드(out-of-bounds) 취약점을 해결했다고 발표했었다.
이 취약점은 맥OS 모하비 10.14.6, 왓치OS 5.3.2, tvOS 12.4에서도 발견된 것이며, 애플은 이 부분 역시 패치로 해결했다.
그로브에 의하면 이 취약점을 익스플로잇 하는 데 성공할 경우 수분 만에 iOS 장비를 완전히 장악할 수 있다고 한다. 이 때 공격자는 피해자의 애플 ID를 알고 있어야만 한다. 기기 장악 후에는 파일, 비밀번호, 각종 인증 코드, 이메일, 문자 메시지 등의 민감한 데이터를 외부로 빼돌리는 게 가능하게 된다.
또한 CVE-2019-8641을 통해 공격자는 ASLR을 우회한 후 샌드박스 바깥에서 코드를 실행할 수 있게 된다고 그로브는 설명했다. iOS 12.4가 설치된 아이폰 XS 장비에서 실험된 개념증명용 코드가 공개되기도 했다. 개념증명용 코드에는 안전장치가 있지만, 어느 정도 실력이 있는 해커라면 이를 가져다가 안전장치를 제거할 수 있을 정도라고 한다.
원격 공격을 가능케 해주는 ‘공격 표면’에는 1) 아이메시지 데이터 포맷, 2) NSKeyedUnarchiver API가 있다. 샌드박스가 활성화 된 상태와 비활성화 된 상태 모두에서 발동될 수 있다.
취약점의 정확한 위치는 NSKeyedUnarchiver 요소 내부로, 조작된 페이로드를 아이메시지를 통해 전송함으로써 발동시킬 수 있다. ati 필드에 있는 데이터가 NSKeyedUnarchiver API로 디코딩 되는 과정에서 취약점 발동이 촉발되며, 특히 NSSharedKeyDictionary의 언아카이브 과정이 취약한 것으로 알려져 있다.
구글 프로젝트 제로의 두 연구원들은 “언아카이브 과정 중에 순환 객체 그래프(cyclic object graph)가 디코딩될 수 있는데, 이렇게 될 때 객체가 호출 스택 상위 단계에서 언아카이브 되는 와중에 참조 영역이 지정된다”고 설명한다. “객체 참조가 성급하게 이뤄지는 것인데, 이럴 때 메모리 변형이 일어납니다.”
이 오류를 해결하기 위해 애플은 먼저 취약한 코드를 아이메시지를 통해 접근하는 게 불가능하도록 막았다. 이는 12.4.1 버전에서 임시방편으로 취한 조치이며, iOS 13버전에 가서야 NSKeyedUnarchiver의 디코딩 과정이 샌드박스 환경에서만 진행될 수 있도록 만들었다.
3줄 요약
1. 아이폰 아이메시지에 있던 취약점, 패치 된 후 충분한 시간이 지나자 상세히 공개됨.
2. 취약점을 익스플로잇 하는 데 성공하면 장비를 원격에서 완전히 장악하는 게 가능해짐.
3. 애플은 iOS 12.4.1을 통해서 임시적으로, iOS 13을 통해서 완전히 문제를 해결함.
[국제부 문가용 기자(globoan@boannews.com)]
[출처 : 보안뉴스(www.boannews.com), https://www.boannews.com/media/view.asp?idx=85844&page=2&mkind=1&kind=1]