2018년 2월 8일, 애플의 상징적인 모바일 운영체제인 iOS의 방대한 소스 코드가 GitHub에 익명으로 게시되면서 세상에 공개되었습니다. 안드로이드와 달리 철저히 비밀에 부쳐져야 하는 애플의 코드가 유출되면서 상당한 혼란이 일었습니다. 이번 사건이 아이폰과 아이패드 등 iOS 기기 사용자에게 실질적인 위협이 되는지, 소문 속에서 진실을 가려내 살펴보겠습니다.
무슨 일이 일어났나?

핵심부터 짚고 넘어가겠습니다. iOS의 핵심 운영체제 일부가 익명의 인물에 의해 GitHub에 유출되면서 적지 않은 화제와 커다란 불안감을 낳았습니다.
애플은 평소 운영체제 코드를 최대한 철저히 잠가두는 방식으로 운영해 왔습니다. 특히 하드웨어와 소프트웨어가 긴밀하게 결합된 구조라서, 코드가 충분히 노출되면 역설계될 위험이 있기 때문입니다.
이번에 유출된 iOS의 부분은 'iBoot'로 알려진 구성 요소입니다. iBoot는 운영체제가 안전하게 부팅되는지 확인하고, 커널과 하드웨어에 애플의 '공식 서명'이 있는지 검증한 뒤, 홈 화면과 아이콘으로 사용자를 맞이하는 OS 본체를 불러오는 역할을 합니다.
좀 더 익숙하게 비유하자면 PC의 BIOS와 같습니다. 하드웨어 정보를 읽어 모든 부품이 제대로 갖춰졌는지 확인한 후, 운영체제를 탐색해 로드하는 과정이라 할 수 있습니다.
애플이 때때로 공개했던 iOS의 다른 구성 요소들과 달리, 회사는 iBoot 코드가 외부에 새어 나가지 않도록 각별히 신경 써 왔습니다. iBoot는 여러 상황에서 iOS를 다른 하드웨어에서 구동할 수 있게 해 주는 일종의 '마스터 키'이기 때문입니다.
해커들이 이를 악용할 수 있을까?

iBoot 코드는 사실상 언제든 역설계가 가능했던 대상입니다. 하지만 대부분의 해커는 애플의 원본을 어설프게 흉내 내는 코드에 큰 관심을 두지 않습니다.
실력 좋은 해커라면 iBoot와 매우 유사한 것을 역설계할 수는 있어도 완전한 제품을 재현하기는 어렵습니다. 위조범이든 해커든 결국 원본 확보가 중요합니다.
현재 iBoot를 샅샅이 뒤져 악용 가능한 허점을 찾으려는 사람들이 분명 많을 것입니다. 독자가 이 글을 읽는 바로 지금 이 순간에도 보안 연구원과 해커 모두 그 작업에 한창 몰두하고 있을 겁니다.
다만 주목할 점은, 유출된 코드가 iOS 9에 해당한다는 사실입니다. 즉, 상당 부분이 이미 낡았을 가능성이 높습니다. 반면, 애플의 부팅 전 과정이 어떻게 작동하는지에 대한 귀중한 단서를 제공할 수 있고, 위조업체들이 iOS를 탑재한 자체 플랫폼을 만드는 데 활용되어 '아이폰 복제품' 시장이 더 커질 우려도 있습니다.
게다가 iOS 9의 iBoot에서 발견된 취약점이 iOS 11을 실행하는 하드웨어에서도 여전히 유효할 수 있습니다. 아이폰 하드웨어는 자주 바뀌지만, 부팅과 직접 관련된 부분은 굳이 함께 변경될 필요가 없는 경우가 많기 때문입니다.
애플 기기가 대량으로 감염될까 걱정하는 분들에게 말씀드리자면, iBoot 취약점을 악용해 실질적인 피해를 입히려면 상당한 노력이 필요합니다. 애플이 하드웨어와 소프트웨어 양쪽에 여러 겹의 안전장치를 마련해 두어, 대규모 감염 자체가 쉽지 않기 때문입니다.
해커들이 이런 안전장치를 뚫을 수 있을까요? 그리고 이번 유출의 배후는 누구일까요? 여러분의 생각을 댓글로 알려주세요!