iOS와 맥OS 모두에서 코드 서명을 우회해 임의 코드를 실행할 수 있는 취약점이 발견됐다. 이 취약점을 악용하면 공격자는 iOS와 맥OS 탑재 단말 사진과 통화 기록, 메시지 등에 액세스할 수 있다.
초대 아이폰에 iOS가 탑재된 이래 애플은 자사 모바일 기기에서 실행할 수 있는 소프트웨어에 신중하게 제한을 부과해왔다. 구체적으로 아이폰에선 애플이 신뢰하는 개발자 인증서로 서명된 애플리케이션만 실행 가능하며 애플스크립트 같은 스크립팅 언어는 iOS에는 존재하지 않는다. 코드를 동적으로 실행하는 기능은 거의 완전히 제거되어 악성 프로그램을 실행하는 방법을 찾아야 하는 악용에는 강력한 장벽이 형성되어 있다고 할 수 있다. 애플은 맥OS에도 iOS 기능을 이식해 맥OS에서도 코드 서명을 엄밀하게 강제하게 했다.
하지만 사이버 보안 기업 트렐릭스(Trellix) 연구 부문(Trellix Advanced Research Center)은 iOS와 맥OS에서 코드 서명을 우회해 여러 플랫폼 애플리케이션 컨텍스트에서 임의 코드를 실행할 수 있도록 허용할 수 있는 새로운 취약점을 발견했다. 이 취약점은 iOS와 맥OS 모두에서 권한 승격, 샌드박스 회피를 가능하게 한다. 이 취약점이 악의적 애플리케이션이나 익스플로잇에 이용되면 사용자 메시지와 위치 정보, 통화 이력, 사진 등 기밀 정보에 액세스할 가능성이 있다. 이 취약점 심가도는 중간치보다 높으며 CVSS 점수는 5.1∼7.1이다.
2021년 시티즌랩은 아이폰용 스파이웨어인 페가수스(Pegasus)에서 사용된 제로 클릭 익스플로잇(FORCEDENTRY)을 발표했다. 시티즌랩이 구글 사내 제로데이 취약성 발견을 임무로 하는 보안팀(Project Zero)과 협력해 이를 분석한 결과 iOS가 이미지를 그리는데 사용하는 프레임워크인 코어그래픽스(Core Graphics) PDF 처리에 존재하는 취약성을 표적으로 하는 것으로 복수 코드를 실행 가능하게 한 것이나 샌드박스 회피 구조를 지니고 있다는 게 밝혀지고 있다.
이런 샌드박스 회피 메커니즘에는 개발자가 임의 객체 목록을 필터링할 수 있는 게(NSPredicate) 포함되어 있다. 이 구문은 완전한 스크립팅 언어여서 iOS에서 코드를 동적으로 생성하고 실행할 수 있다. 이는 맥OS와 iOS 프로세스간 보안을 완전히 깨뜨릴 수 있는 완전히 새로운 취약점이 생긴 것이라는 설명이다.
트렐릭스가 발견한 취약점은 기기 동작에 대한 데이터를 수집하는 프로세스(coreduetd)에 존재한다. 메시지나 사파리 같은 적절한 자격을 가진 프로세스에서 코드를 실행하고 악의적 ‘NSPredicate’를 전송해 이 프로세스 권한으로 코드를 실행할 수 있게 된다는 것이다. 이 프로세스는 맥OS에서 루트 권한으로 실행되므로 공격자는 사용자 캘린더, 연락처와 사진에 액세스할 수 있다. 또 공격자가 취약한 XPC 서비스를 사용해 장치에 대한 액세스가 많은 프로세스에서 코드를 실행할 수 있다는 것 같은 영향을 가진 유사 문제가 관련 프로세스(contextstored)에도 존재한다. 이런 데몬과 통신할 수 있는 프로세스를 제어하는 공격자는 취약점을 악용해 시스템 앱을 포함한 모든 응용 프로그램을 설치할 수 있다.
이런 취약점은 자격이 필요 없는 모든 앱에서 액세스할 수 있는 서비스에도 존재한다. 트렐릭스가 취약점을 처음 발견한 건 XPC 서비스 중 하나(OSLogService)이며 시스템 로그(syslog)에서 잠재적으로 중요한 정보를 읽는데 이용될 수 있다고 한다. 또 공격자는 아이패드 내 UI키트코어(UIKitCore) 취약점(NSPredicate)을 악용해 위치 정보와 카메라, 마이크, 통화 기록, 사진 등 기밀 데이터에 액세스하거나 이런 데이터를 단말에서 삭제하는 것도 가능해질 수 있다.
이 취약점은 애플이 출시한 맥OS 13.2와 iOS 16.3에서 수정됐다. 관련 내용은 이곳에서 확인할 수 있다.