때때로 해킹은 아주 어려운 문제로만 되는 것이 아니다. 생각 외로 무척 간단한 버그 혹은 원인으로 해킹될 때가 있다. 더군다나 꼭 루트 권한을 가져와야지만 해킹이라 칭할 수 있는 것도 아니다. 해킹이란 현재는 컴퓨터나 전자기기, 전자회로, 네트워크 등 본래 설계된 프로그램, 완성품을 역으로 분석하여 구조를 살피거나 본래 설계된 구조를 변경하는 등과 같은 행위를 통칭할 때 쓰인다.[1] 하지만 사실 초창기 해킹의 뜻은 자신이 알고 있는 기술을 동원해 재미있는 장난을 치는 행위를 말한다. 본래 MIT 대학생들이 장난을 하며 많이 쓰인 말이지만 현재까지도 MIT에서는 여전히 해킹이란 단어를 그런 의미로 쓴다.[2] 오늘은 일반적으로 보안이 단단하다고 생각되는 아이폰(iPhone)의 아이 메시지(iMessage)를 간단하게 해킹해볼까 한다. 아이폰도 어쩔 수 없이 사람이 만든 기기이며 소프트웨어다.
2015년 5월 27일 간단한 아랍어를 포함한 텍스트 메시지를 상대방에게 보내면 iOS가 이를 읽으면서 충돌을 일으키고 재부팅하는 메시지 버그를 발견했다.[3] 이 메시지 버그는 당시 아이폰 뿐만 아니라 iPod Touch, iPad 등 iOS 모바일 운영체제에서 충돌을 일으켜 애플과 관련된 모바일 기기에서 문제가 되었다.[4] 특히, 누구든지 쉽게 아랍어를 포함한 메시지를 보낼 수 있다는 점과 사용자가 따로 메시지를 읽지 않고 메시지만 받아도 디바이스에서 이를 받아들이지 못해 충돌을 일으켜 더욱 문제가 되었다. 이는 Apple 운영체제에서 아랍어 문자를 렌더링 하는 방식에 문제가 생겨 나타난 버그였다.[5] 즉, 다른 이로부터 받은 아랍어를 기기가 받아들이는 과정에서 컴퓨터가 인식할 수 없는 문자로 받아들여져 문제가 난 것이다. 좀 더 자세히 설명하자면 기기에 문자메시지가 오면 시스템은 문자 메시지의 내용을 줄여 축약한 상태로 잠금 상태 또는 화면상에 작게 창을 띄워 사용자에게 알린다. 하지만 축약되는 문자열에 라틴계, 아랍계, 중국어 계통의 문자열이 들어오면 아이폰은 이를 읽지 못하고 시스템이 충돌하고 재부팅이 된다.[6] 이 버그에 공격받은 일부 사용자들은 이러한 메시지를 받고 더 이상 메시지에 접근할 수 없는 증상이 나오기도 했다. 이 같은 버그가 발생하는 것을 막기 위한 임시방편으로 아이 메시지에 알림 배너를 비활성화하면 막을 수 있다.[7] 또한, 일부 사용자들은 사진 앱을 통해 사진을 자신에게 보내면 메시지 함에 접근할 수 있어 원인이 되는 대화를 삭제하고 충돌원인을 제거할 수 있다고 얘기했다. 다른 방법으로는 아이폰의 시리(Siri)기능을 이용하여 자신에게 메시지를 보내 메시지 앱에 접근하여 원인이 되는 메시지를 삭제하거나 원인이 되는 메시지를 강제로 읽으라고 요청한다[8] 당시 애플은 이 같은 소동에서 특정 일련의 유니 코드 문자열로 인하여 발생하는 아이 메시지 버그를 알고 있었으며 소프트웨어 업데이트를 통해 보안패치 할 것이라고 밝혔다.[9] 현재 이 버그는 보안패치가 완료된 상태다.
2016년 10월 20일 또 다른 아이 메시지 버그는 메시지 알림 창에 확인을 터치하는 순간, 중국어가 가득한 다량의 메시지가 수신된다.[10] 정확히 말하면 버그보다 감염되었다는 말이 더 맞는 말이다. 이 바이러스에 감염되면 중국어 광고물을 포함한 다량의 메시지가 수신되고 사용자의 애플 계정 ID가 제대로 보호받지 못한다는 알림이 뜬다. 실제로 Mashable의 한 직원은 아이폰 아이 메시지 앱에 중국어로 가득한 메시지를 잔뜩 받고 애플 ID가 다른 장치에서 사용되고 있다는 알림을 받았다.[11] 더욱이 이 같은 피해를 본 이가 한 둘이 아니어서 피해자 중 몇몇은 이미 게시판, 트위터 등 자신이 피해본 것에 대한 글을 인터넷에 올렸다. 한 가지 다행인 점은 계속해서 메시지가 수신되어도 이동 통신사의 요금이 청구되지는 않는다.[12] 애플은 이 같은 문제를 보고 애플 ID의 암호를 변경하고 2단계 인증을 설정하라 권장했다.[13]
2017년 1월 2일 이번에는 아이 메시지를 이용하여 아이폰 사용을 완전히 막는 버그가 발생했다. 소프트웨어 개발업체인 Vincedes3가 발견한 이 버그는 vCard를 사용하여 메시지 앱을 오버로드 한다.[14] vCard는 전자 명함의 세계 표준 파일 형식으로 주로 이메일에 덧붙여 보내거나 메시지 형태로도 보낼 수 있다. 보통 vCard에는 이름, 주소, 전화번호, 이메일, 웹사이트, 로고, 사진, 소리 등 문자, 멀티미디어 자료도 넣을 수 있다.[15] vCard는 일반적으로 200-300 줄 정도 길이의 글만 포함하지만 더 많은 줄의 글을 첨부하면 앱에서는 정해진 기준치보다 더 많은 내용이 들어와 이를 처리하지 못하고 앱이 다운되고 모바일 디바이스가 멈추게 된다.[16] 공격자는 악성 스크립트를 포함한 메시지를 사용자에게 보내면 사용자는 아무것도 모르고 메시지를 확인하는 순간 모바일 디바이스는 어떠한 터치도 받아들여지지 않는다. 또한 홈 버튼을 두 번 눌러 바탕화면에 나갔다 메시지 앱을 다시 실행하더라도 메시지 앱은 실행되지 않고 흰색 화면만 나온다. 이는 버그가 더 최근 메시지에 적용이 되어 메시지를 열 때마다 계속 발생하게 된다.[17] 따라서 이를 고치기 위해서는 아이 메시지 앱을 열지 않고 원인의 메시지를 삭제할 수 있는 방법을 찾아야 한다. 이러한 버그를 고치는 방법은 Safari에 있는 스크립트를 통해 자신에게 메시지를 보내 문제를 일으키는 vCard를 삭제하여 필요한 공간을 확보한다. 또 다른 방법으로는 아이폰 시리를 통해 매시지를 열면 메시지 앱에 대한 접근 권한이 부여되어 문제가 되는 vCard를 삭제할 수 있다.[18]
2017년 1월 17일 아이폰에 메시지가 수신되는 순간 폰은 멈춰버리고 아무 것도 터치되지 않는다.[19] 이번에는 홈 버튼을 누르더라도 반응이 없고 단순히 기다리는 수 밖에 없다. 어느 정도 시간이 지나면 아이폰은 스스로 재부팅을 한다. 이 버그는 아이폰 10.1.1 버전 이하에서만 적용되는 텍스트 버그로 메시지에 하얀 깃발(White Flag), 0, 무지개(Rainbow)의 아이콘을 적어 보내면 그 메시지를 받은 핸드폰은 그대로 죽어버린다.[20] 이 같은 일이 발생한 이유는 위에 있는 아이콘을 이모티콘으로 바꾸는 과정에서 아이콘들을 처리할 수 없어 충돌 나는 것으로 보고 있다. 특히나, 이 버그는 사용자가 따로 메시지를 확인하지 않더라고 메시지를 받는 순간 충돌을 일으켜 받는 순간 문제가 되는 것으로 추측한다.[21] 이 버그를 이용해 친구를 골탕먹이는 방법은 간단하다. 사이트에서 아이콘을 복사한 후 컴퓨터를 이용해 해당 사용자에게 메시지를 보내면 된다. iOS의 경우 메시지를 보내기 전에 iCloud 드라이브에 저장해야 한다.[22] 사용자는 이 메시지를 받고 디바이스가 재부팅되면 아이 메시지로 들어가 원인이 되는 메시지를 삭제하면 된다. 만약, 이 같은 메시지를 계속 보내는 이가 있다면 그 사람 번호는 차단하자.
이처럼 버그는 생각지도 못한 곳에서 일어나기 마련이다. 아이폰 기본 앱인 아이 메시지를 통해 그것도 아주 간단한 방법으로 디바이스가 멈추거나 충돌을 일으킬 수 있다. 버그나 취약점은 개발자의 실수나 생각지도 못한 곳에서 생겨난다. 모든 기기는 사람이 만든 것이고 완벽한 프로그램은 존재하지 않는다. 아이폰 역시 마찬가지다. 오늘의 이야기를 보면 누구나 해커가 될 수 있다.