사이버 보안 회사인 Kaspersky는 올해 6월 회사 직원 중 일부가 사용하는 iPhone이 손상되었다는 공개 보고서를 발표했습니다. 공격자는 매우 정교한 여러 개의 제로클릭 취약점을 사용하여 iPhone을 감염시키고 피해자와의 상호 작용 없이 지속적인 모니터링을 달성했습니다. Kaspersky에서는 이 사건을 IOSTriangulation이라고 명명했습니다. 관련 취약점이 Apple에 보고된 후 Apple은 6월 말에 취약점을 수정하기 위한 여러 업데이트를 출시했습니다.
그러나 해당 취약점에 대한 세부 정보는 당시 발표되지 않았습니다. 결국 iPhone 업그레이드에는 시간이 걸립니다. 일반적으로 연구원들은 일부 사용자가 아직 업그레이드하지 않은 동안 공격자가 취약점을 악용할 기회를 포착하는 것을 방지하기 위해 취약점에 대한 세부 정보 게시를 연기합니다.
취약점이 공개된 지 반년이 지났습니다. 최근 카오스 커뮤니케이션 콩그레스(Chaos Communication Congress)에서 Kaspersky 팀의 연구원들은 다른 보안 연구원들과 공유할 수 있는 자세한 보고서와 기술 세부 정보를 공개했습니다.
이스라엘 상업용 스파이웨어 개발업체인 NSO 그룹의 Pegasus가 채굴한 iMessage 제로 클릭 취약점은 기술적으로 가장 정교한 취약점 중 하나로 알려져 있으며 삼각 측량 공격도 마찬가지로 무서운 수준에 있는 것으로 보인다고 Kaspersky는 말했습니다.
다음은 피해자의 장치에 대한 루트 액세스 권한을 얻는 데 사용되는 4개의 0day 취약점을 포함하여 Kaspersky가 발표한 전체 공격 체인입니다.
1. 공격자는 대상 사용자에게 악성 iMessage 첨부 파일을 보냅니다. 피해자의 iPhone이 메시지를 받으면 iMessage는 알림을 제공하지 않고 자동으로 첨부 파일을 처리합니다.
2. 이 악성 첨부 파일은 Apple의 고유한 ADJUSTTrueType 글꼴 지시문에 있는 문서화되지 않은 원격 코드 실행 취약점 CVE-2023-41990을 악용합니다.
3. 악성 코드는 반환/점프 지향 프로그래밍과 NSExpression/NSPredicate 쿼리 언어로 작성된 여러 단계를 사용한 다음 JavaScriptCore 라이브러리 환경을 사용하여 권한 상승을 수행합니다.
4. 공격자가 악용한 JavaScript 취약점이 난독화되어 코드를 읽을 수 없게 되었습니다. 그러나 연구원들은 공격자가 주로 JavaScriptCore 및 메모리 구문 분석 작업에 약 11,000줄의 코드를 사용했다는 사실을 발견했습니다.
5. 공격자는 JavaScriptCore 디버깅 기능인 DollarVM($vm)을 사용하여 스크립트에서 JavaScriptCore 메모리를 조작하고 기본 API를 실행할 수 있는 능력을 얻습니다.
6. 공격자는 기존 iPhone과 신형 iPhone을 모두 지원하기 위해 최신 iPhone에서 사용할 수 있는 포인터 인증 코드가 포함된 우회 기능도 만들었습니다.
7. 공격자는 XNU 메모리 매핑 시스템의 정수 오버플로 취약점 CVE-2023-32434를 악용하여 장치의 전체 물리적 메모리에 대한 사용자 수준 읽기/쓰기 액세스 권한을 얻습니다.
8. 공격자는 하드웨어 메모리 매핑 I/O 레지스터를 사용하여 페이지 보호 계층을 우회합니다. 이 문제는 CVE-2023-38606을 통해 완화되었습니다.
9. 모든 취약점이 악용되면 JavaScript 취약점은 스파이웨어 실행을 포함하여 장치에 대해 무엇이든 할 수 있지만 공격자는 다음을 선택합니다.
에이. IMAgent 프로세스를 시작하고 페이로드를 삽입하여 장치의 악용 흔적을 지웁니다.
비. Safari 프로세스를 보이지 않는 모드에서 실행하고 다음 공격 단계에 사용되는 웹 페이지로 전달합니다.
10. 웹 페이지에는 피해자를 확인하는 스크립트가 있습니다. 탐지가 통과되면 다음 단계인 Safari 공격으로 진행됩니다.
11. Safari는 CVE-2023-32435를 악용하여 쉘코드를 실행합니다.
12. 쉘코드는 Mach 타겟 파일 형태로 또 다른 커널 취약점 익스플로잇을 실행합니다. 이는 동일한 취약점(CVE-2023-32434 및 CVE-2023-38606)을 사용합니다. 이는 JavaScript로 작성된 커널 취약점과는 완전히 다릅니다. 그러나 대상은 메모리 구문 분석 작업에도 사용되지만 대부분의 기능은 공격자가 이후 단계에서 사용하지 않습니다.
13. 익스플로잇은 루트 권한을 획득하고 스파이웨어 로딩 등의 다른 단계로 진행됩니다.
카스퍼스키는 공격자들이 공격 체인의 거의 모든 측면을 리버스 엔지니어링했다고 밝혔는데, 이는 공격자들의 목표가 일반적인 목적이 아니라는 점, 즉 주요 목적이 실제로 간첩 활동이나 정치적 목적일 수 있음을 보여줍니다.
Kaspersky 팀은 2024년에 삼각 측량 공격에 대한 더 많은 기사를 게시할 계획입니다. 이 기사에 관심이 있는 사용자는 각 취약점에 대한 분석이 포함된 원본 Kaspersky 보고서를 읽어야 합니다: https://securelist.com/eration-triangulation-the-last-hardware-mystery/111669/