Vulnerability
MAC에서 권한상승하기
2017 11 29
  • Facebook
  • Twitter
  • Copy URL

컴퓨터가 해킹당했을 때 가장 결정적인 공격은 무엇일까, 원격제어? 권한 상승? 무엇이 가장 결정적인지 정확하게 말할 수는 없을 것 같다. 상황에 따라 달라지고, 해당 운영체제에 따라도 달라질 터이니 말이다. 그 외에도 여러 변수가 존재하지 않을까 생각한다. 실제로 윈도 운영체제에서 권한 상승 버그가 생각 외로 많기도 하다. 반면에 리눅스나 유닉스, Mac 운영체제에서는 얘기가 좀 다르다. 상대적으로 리눅스, 유닉스, Mac은 윈도 운영체제보다 권한 상승 취약점과 관련한 위협 영향권이 더 넓기도 하다. 리눅스, 유닉스, Mac은 하나의 컴퓨터에서 각각의 파일, 폴더 자체에 사용자의 권한을 주고 사용되기 때문에 공공의 컴퓨터에서 내가 접근할 수 있는 파일이나 폴더가 다르다. 이는 파일이나 폴더에 접근할 때 제한되는 ‘권한’이 상대적으로 윈도보다 더 중요하게 보는 것 같다. 그런 의미로 며칠 전, Mac 컴퓨터인 Apple의 최신 운영체제, MacOS High Sierra에서 권한상승이라는 취약점들이 대거 공개되었다.[1][2][3] 어떤 내용인지 한번 알아보자.

이미지를 불러오는데 실패했습니다.

MacOS High Sierra는 이전의 OS X의 13번째 버전으로, 2016년 6월에 처음 공개되었다. 명칭에서 사용된 Sierra는 캘리포니아의 시에라 네바다 산맥의 이름을 딴 것으로, 바탕 화면인 Lone Pine Peak는 자주 봤을 것이다.[4] MacOS Sierra는 일반적으로 긍정적인 리뷰를 받았는데, Siri의 추가나 Safari, Apple Pay와 관련한 기능 추가가 높은 평가를 받은 듯하다. 예를 들어, Macworld는 5점 만점 중, 4.5점을 주었고[5], Engadget은 100점 만점 중, 87점을 주며 살짝은 아쉬운 말 남기기도 했다. 뭐, Auto Unlock과 관련하여 Siri가 과연 제대로 Lock 기능을 실현시킬 것인지나, 운영체제에서 의존하는 PDFKit 라이브러리의 근본적인 변경으로 불안정하고 잠재적인 데이터 손상이 발생할 가능성에 대해 우려 섞인 말이었다.[6]

하지만 문제는 그런 것이 아니었다. 그건 바로, 비밀번호와 관련하여 권한 상승을 할 수 있는 새로운 취약점이었다. 더욱이, 한 개도 아닌 무려 3개였다. 먼저,  Lemi Orhan이 발견한 취약점은 매우 간단한 버그였다.[7] 이는 누구나 할 수 있는 공격으로, 신뢰할 수 없는 사용자가 물리적으로 접근만 할 수 있다면 패스워드나 보안 체크 없이 Mac에서 루트 권한을 획득할 수 있는 취약점이었다. 그것도 다른 도구도 필요 없고, 복잡한 과정도 필요 없이 빠르게 권한을 획득할 수 있었다. 그는 이 취약점을 회사에서 계정을 로그아웃하고 다시 로그인하는 과정에서 발견했으며 이에 대해, 취약점에 원인이나 자세한 내용은 언급하지 않았지만 해당 취약점에 대해 트위터에 공개했다. 

공격은 무척이나 간단하다. MacOS High Sierra에서는 여러 사용자가 있는 컴퓨터에 로그인하기 전, 사용자 이름과 암호를 묻는 메시지가 뜬다. 이때, 사용자 이름을 ‘root’로 입력하고, 비밀번호 창을 비워둔 후, ‘unlock’을 두 번 누르면 즉시 패스워드 칸에 패스워드가 가득 차게 된다. 그리고 엔터를 치면, 암호 없이 로그인되는 것이다. Lemi Orhan은 이 취약점은 단순히 악성코드에 의한 것도 아니었고, 단순히 애플의 실수 때문에 발생한 버그였다는 정도만 언급했다.

이미지를 불러오는데 실패했습니다.

Lemi Orhan외에도, 보안 업체인 Synack의 연구 책임자인 Patrick Wardle은 MacOS High Sierra에서 악의적인 코드를 실행하여 키 체인에서 암호를 도용할 수 있다고 경고했다.[8] 본래, Apple은 키 체인을 사용하여 사용자의 암호를 저장한다. 저장된 키 체인은 Mac 소유자만 접근할 수 있어야 하고, 일반적으로 모든 로그인은 마스터 비밀번호로 잠금 해제를 할 수 있다. 하지만 이 취약점을 공개한 Wardle은 딱히 패스워드를 알지 못해도 평문의 비밀번호를 포함하여, 키 체인을 덤프하고 그의 모든 내용을 공격자에게 전송할 수 있음을 보여주었다. 당연히 일반적인 일은 아니다. Wardle은 이에 대해 공격코드나 공격에 대해 자세한 얘기를 하진 않았지만, 그는 동영상을 통해 해당 공격을 공개했다. 아래에는 그가 시연한 해킹 동영상이다. 실제로, 그는 이 공격이 실제로 사용될 경우, Apple 시스템에서 악의적인 코드를 실행할 수 있는 초기 공격 포인트가 될 수 있다고 얘기했다.

반면에, Matheus Mariano가 발견한 취약점은 APFS 컨테이너를 생성하여 새로운 맥 OS를 설치하는 경우, 비밀번호는 비밀번호 힌트에 일반 텍스트로 저장된다는 사실을 공개했다.[9] 그 역시 이 취약점에 대해 근본적인 이유를 설명하지 않았지만, 그는 자신의 블로그에 해당 취약점에 대한 게시물을 올렸다. 게시물을 보면 앱에서 ‘볼륨 추가’를 통해 APFS 볼륨을 추가한 후, 암호화된 형식의 볼륨을 선택한다. 이후에는 암호 대화 상자에서 암호 및 힌트를 입력하라 하는데, 각각을 적은 후 볼륨을 생성하여 추가해서 만든다. 그리고 마운트를 해제하고, 다시 암호화된 APFS 볼륨을 마운트하려 시도하면 암호 입력란이 표시되는데, 이 창에서 힌트 표시를 클릭하면 힌트가 아닌 암호가 UI에 표시된다는 것이다. 여기에서 포인트는 ‘힌트’가 아닌 ‘암호’가 표시된다는 것인데, 패스워드 힌트 인스턴스 변수가 잘못 저장되었음을 대충은 예상할 수 있다. 현재로썬, 해당 버그는 애플에 의해 고쳐진 상태이고 좀 더 자세히 알고 싶으면 해당 블로그에서 확인할 수 있다.

이처럼, 계속해서 발생하는 MacOS High Sierra의 권한 상승 취약점은 현재 애플의 보안 업데이트로 수정되고, 고쳐져 가는 상황으로 보인다. 하지만 앞서 얘기한 Wardle에 말에 따르면, 오늘날 Mac에서 악성코드를 실행하는 것은 어렵지 않은 일이며, 계속 발생하는 취약점에 경계해야 할 것이라고 얘기했다. 더욱이, 대부분의 공격처럼 ‘사회 공학 기법’을 사용하여 공격하면 사용자는 문제없이, 어쩌면 매우 성공적으로 공격에 당할지도 모른다는 점이다. 여기에서 언급한 권한 상승 취약점이 비록 간단하고 어떻게 보면 단순해보일지도 모른다. 키 체인을 이용하거나 클릭 몇 번, 타자기 몇 번 두드리는 것을 권한 상승이라 말하기 거창해보일지도 모른다는 것이다. 하지만, 간단하고 화려하지 않다고 해서 취약점이 아닌 것은 아니다. 대부분의 공격은 작은 곳에서 시작되는 것이 아니겠는가.  

유성경 yuopboy@grayhash.com