보안 연구 회사인 Paradigm Shift는 오늘 "usbliter8"이라는 개념 증명 익스플로잇과 함께 Apple의 A12 및 A13 칩에 영향을 미치는 새로운 BootROM 취약점에 대한 세부 정보를 발표했습니다.
BootROM 또는 SecureROM은 iPhone이 켜질 때 실행되는 첫 번째 코드입니다. 이는 제조 시 칩에 직접 구워지기 때문에 발견된 취약점은 소프트웨어 업데이트로 해결할 수 없습니다. 즉, 영향을 받는 장치는 평생 동안 취약한 상태로 유지됩니다.
이러한 종류의 마지막 공개 BootROM 익스플로잇은 2019년에 출시된 "checkm8"로, iPhone 4S부터 iPhone X까지의 장치에 영향을 미쳤습니다. usbliter8은 이제 그 역사를 iPhone XS부터 iPhone 11 시리즈까지 포괄하는 차세대 칩으로 확장합니다.
이 익스플로잇은 Apple 칩에 내장된 USB 컨트롤러의 버그를 활용하여 작동합니다. iPhone이 시작하는 동안 USB 데이터를 수신하면 컨트롤러는 메모리 버퍼를 사용하여 수신 패킷을 저장합니다. Paradigm Shift는 비정상적으로 작은 패킷의 특정 시퀀스를 전송함으로써 메모리를 통해 뒤로 이동하는 방식으로 내부 하드웨어 포인터를 조작하여 절대 도달해서는 안되는 위치에 데이터를 쓸 수 있음을 발견했습니다. 연구원들은 이것이 Apple 소프트웨어가 아닌 USB 컨트롤러 하드웨어 자체의 버그인 것으로 보인다고 말했습니다.
iPhone X에 사용되는 A11 칩은 USB 드라이버가 각 패킷 후에 포인터를 수동으로 재설정하기 때문에 영향을 받지 않습니다. A14 이상의 칩은 BootROM 수준에서 메모리 보호 기능을 올바르게 구성하므로 안전합니다. A12와 A13은 둘 사이의 취약한 중간 지점에 위치합니다.
A12 장치에서는 코드 실행을 얻는 것이 비교적 간단합니다. A13 장치에서는 Apple이 특정 유형의 메모리 변조를 감지하고 차단하는 PAC(포인터 인증 코드)라는 보안 기능을 도입했기 때문에 상황이 훨씬 더 어렵습니다. Paradigm Shift는 A13에서 PAC를 해결하려면 연구원들이 마침내 프로세서를 제어할 수 있기 전에 긴 다단계 프로세스가 필요하다고 말했습니다.
일단 제어되면 이 익스플로잇은 장치를 다시 시작해도 유지되는 사용자 지정 처리기를 설치하고 장치의 보안 설정을 일시적으로 낮추고 확인 확인 없이 서명되지 않은 소프트웨어를 부팅하는 두 가지 기능을 추가합니다. 또한 장치가 손상되었다는 신호로 iPhone의 USB 일련 번호에 전통적인 "PWND" 문자열을 삽입합니다. 이는 checkm8 및 이전 공격에서 이어진 규칙입니다.
Paradigm Shift는 usbliter8이 Secure Enclave에 직접 영향을 미치지는 않지만 이런 종류의 BootROM 손상은 이를 공격할 수 있는 더 넓은 경로를 열어준다고 지적합니다. 회사는 조사 결과를 발표하기 전에 Apple 제품 보안 부서에 보고했으며 조정된 공개를 위해 Apple과 협력했다고 밝혔습니다. 전체 개념 증명 코드는 ps.tc에 글과 함께 게시되었습니다.
