테크레시피

아이폰을 무선 조작 가능한 취약점 있었다

구글 취약점 연구팀 프로젝트제로(Project Zero)가 무선으로 iOS 장비를 탈취해 사진과 메시니 응용 프로그램 등에 액세스할 수 있는 취약점을 발견했다.

PC에서 무선 신호를 보내 아이폰 화면이 차례로 사라진다. 전혀 손을 건드리지 않고 무선 통신만으로 아이폰을 재시작해버린다. 무선을 통해 iOS 커널을 충돌시켜 장치를 강제로 재부팅시킨 것이다. 이 취약점은 애플이 에어드롭 등 통신 프로토콜로 사용하는 AWDL(Apple wireless direct link)에 존재하는 것이다.

취약점은 구체적으론 AWDL을 제어하는 개체(IO80211PeerManager) 내 메소드(tlvCheckBounds)에서 호출한 방법(parseAwdlSyncTreeTLV) 처리에 존재하고 있었다. 소스 MAC 어드레스를 위장한 다수 AWDL 프레임을 빠르게 연속 전송해 IO80211PeerManager 개체 내 sync_tree_macs에 할당된 메모리 영역에 오버플로수킬 수 있었던 것. 이 취약점으로 인해 IO80211PeerManager 개체 내에서 메모리 손상을 일으키거나 메모리 공간에 인접한 다른 IO80211PeerManager 객체 내용을 참조할 수 있는 상태가 된다.

이 취약점을 이용해 iOS 기기를 공격하기 위해선 먼저 AWDL 데이터 프레임을 생성할 수 있는 클라이언트가 필요하다. 패킷 캡처를 하고 AWDL이 와이파이 채널 6과 44를 이용해 데이터를 송수신하는 걸 밝혀냈고 AWDL은 일반 와이파이 통신과 식별을 위해 전파를 16밀리초마다 구분, 동적으로 AWDL로 전환하면서 통신을 실시한다. 이 전환을 통해 무선랜에 연결하면서 에어드롭 등 무선 기능을 사용할 수 있게 한다고 설명하고 있다.

데이터 프레임 생성 방법을 분석하기 위해 AWDL 데이터 프레임 송수신 중인 iOS 시스템 정보를 취득해 처리 내용을 분석했다. 분석 결과를 바탕으로 AWDL 생성 프로세스를 구현하고 iOS 기기에 AWDL 데이터 프레임을 전송할 수 있게 된 것. 그럼에도 첫 공격에는 실패했지만 결국 iOS13에서 IO80211PeerManager 객체에 새로 추가된 ‘steering_msg_blob’이라는 메모리 영역은 ‘sync_tree_macs’ 영역에서 오버플로 데이터를 무시하고 읽을 수 있기 때문에 사진 앱에서 사진 읽기 등 공격에 성공했다. 결국에는 블루투스로 AWDL 통신에 성공하면서 같은 와이파이 액세스 포인트에 연결되어 있지 않아도 장치를 해킹할 수 있게 된 것이다.

AWDL을 이용한 공격은 장치 전원을 켠 뒤 한 번이라도 잠금이 해제되어 있으면 가능하다고 한다. 또 악용되는 장치는 자체가 다른 장치를 공격하는데 이용될 가능성도 있다고 한다. 이 취약점은 2020년 5월 발표된 iOS 13.5에서 수정되어 있다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사