2015.08.07

안드로이드를 괴롭히는 스테이지프라이트 취약점

Steven Max Patterson | CSO
오늘 아침 블랙 햇(Black Hat) 보안 컨퍼런스에서 진행된 포럼에서 구글의 안드로이드 보안 최고 엔지니어 애드리안 루드윅은 최근 10억 이상의 안드로이드 기기들에 영향을 미치는 규모로 보고되며 논란이 되고 있는 스테이지프라이트(Stagefright) 취약점에 대한 우려를 잠재우고자 노력하는 모습을 보여줬다.

스테이지프라이트 취약점에 대한 시장의 관심은 라스베가스에서 진행 중인 이번 블랙 햇 보안 컨퍼런스를 기점으로 매우 증가했다. 스테이지프라이트 취약점의 최초 발견자인 짐퍼리움(Zimperium)의 보안 애널리스트 조슈아 드레이크(Joshua Drake)는 블랙 햇 좌담회를 홍보하려는 목적으로 컨퍼런스 스케줄표를 공유하는 트윗을 게재했고, 해당 트윗이 게재된 지 며칠 후 국립 공영 라디오(NPR)와 스테이지프라이트 취약점에 관한 인터뷰를 나눴다. 이후 포브스(Forbes), 포춘(Fortune), 와이어드(Wired) 등의 유력 매체들이 이 문제에 관심을 가지기 시작하면서 전세계가 스테이지프라이트 취약점을 이야기하기 시작했다.

드레이크가 처음 취약점을 발견하고 이를 구글에 제보한 것은 4월의 일이다. NPR과의 인터뷰에서 드레이크는 “(취약점에 관함) 이메일을 보낸 지 이틀이 지나지 않아 구글로부터 답장이 왔다. 내가 제보한 모든 내용에 관한 패치가 완료됐다는 내용이었다. 멋진 대응이라고 생각했다. 또 구글은 외부 해커들이 이를 공략한 시도는 아직 없었다는 설명도 덧붙였는데, 이 역시 참 다행스러운 일이라 생각한다”고 이야기한 바 있다.

취약점 보안에 관해 보안 산업의 시각은 크게 둘로 나뉜다. 하나는 소프트웨어 제조업체들이 취약점에 패치를 적용할 시간을 주기 위해 일정 기간은 취약점에 대한 정보를 공개하는데 신중해야 한다는 입장이고, 다른 측에서는 위험 수준이 높고 제조업체들이 즉각적인 패치를 개발하기 어려운 상황이라면 취약점은 최대한 빨리 공개하는 것이 사회적 책임이라는 입장이다.

그러나 구글의 루드윅은 위 두 시각 모두를 부정하며(그리고 스테이지프라이트 취약점 문제가 처음 표면화되고 언론들이 보도하던 시각들과도 방향을 달리하며) 주소 공간 무작위 배치(ASLR, Address Space Layout Randomization)라는 기술을 통해 안드로이드 기기의 90%가 버퍼-오버플로(buffer-overflow) 취약점으로부터 보호받고 있음을 강조했다. 악성 코드가 주입된 비디오를 전송하는 방식으로 전달되는 스테이지프라이트 취약점의 주요 경로로 보고된 구글의 SMS 앱 메신저(Messenger)에는 업데이트가 적용될 예정이다.

구글은 또한 구형 안드로이드 기기를 활용한 실험에서 이메일을 통한 취약점 공략 가능성 역시 확인되었음을 발표했지만, 이러한 방식으로 인한 실제 피해 사례는 확인되지 않았다고 설명했다.

루드윅에 따르면 이러한 수정 사항과 차후의 대비책은 오늘 이후 모든 넥서스 기기들에 적용될 예정이며, 기업의 협력업체들에도 이미 해당 내용이 전달된 상태다. 루드윅은 안드로이드 환경의 주요 기기들 가운데 상당수가 8월 내 업데이트를 완료할 것이라 소개했다.

금일 업데이트는 구글이 넥서스 기기들의 보안 성능을 지속해서 보장하기 위해 구상한 월간 OTA(Over The Air) 업데이트의 시작을 의미한다. 구글의 협력업체 역시 매달 관련 소스 코드 업데이트를 전달받아 OTA 업데이트를 해나갈 예정이다.

버퍼 오버플로란?
안드로이드 스테이지프라이트 취약점은 전통적인 버퍼-오버플로 익스플로잇으로 분류된다. 버퍼 오버플로 익스플로잇은 모든 유형의 컴퓨팅 기기에 적용될 수 있다는 장점으로 인해 해커들에게 오랜 기간 사랑을 받아온 공략이다. 악의적 활용 사례가 많은 만큼 학계나 보안 연구소들의 연구 역시 활발한 분야고, 그에 따라 방어 수단 역시 체계화되어 있다는 점 역시 버퍼 오버플로의 특징이라 할 수 있다.

안드로이드 스테이지프라이트 문제의 특징에 관해선 스택익스체인지(stackexchange.com)의 포스팅이 적절하게 설명하고 있다:

“이는 3GPP 비디오 메타데이터 내 특정 영역이 버퍼 오버플로 공격에 취약해 발생하는 문제로 보인다. 3GPP 비디오에 특정 길이를 초과하는 메타데이터 스트링이 주어질 수 있고, 그로 인해 결과적으로 어플리케이션들이 제한되는 메모리 영역에 자리하는 머신 코드를 포함하게 되는 것이다.”

일반적인 버퍼 오버플로 익스플로잇은 코드 실행에 이용되는 메모리 지점으로의 오버플로가 이뤄질 때까지 데이터를 작성한다. 하지만 스테이지프라이트 취약점의 경우 기본 안드로이드 MMS와 행아웃(Hangout) 메시징 앱으로 수신된 악성 코드에 의해 비디오가 감염됨으로써 버퍼 오버플로가 발생한다. 안드로이드 기기는 수신된 비디오를 자동으로 내려받는다. 취약점의 이름인 스테이지프라이트는 안드로이드 2.2에서 소개된 로컬 파일 재생 장치 및 HTTP 프로그레시브 스트리밍 지원 미디어 프레임워크에서 따온 것이다.

구글의 조기 경보 시스템
구글은 구글 플레이 스토어 및 안드로이드 기기들에서 발견되는 위험 앱들을 지속적으로 모니터링하고 있다. 질병 통제국의 질병 통제 모형을 본떠서 개발된 이 시스템은 위험 요소를 완전히 차단하진 못하더라고 생태계에 악성 신호가 감지될 경우 조기 경보를 내보내 확산을 방지하는데 목표를 두고 있다.

구글 조기 경보 시스템의 핵심은 베리파이 앱스(Verify Apps)다. 베리파이 앱스 모듈은 앱 설치 과정들을 점검하며 악성 프로그램을 감지하고, 매일 수억 건의 바이러스형 스캔을 구동해 기기와 시스템에 위협을 줄 수 있는 코드 및 앱 활동을 검색한다. 이러한 방식은 위협의 규모가 커짐에 따라 대응 강도 역시 강력해지는 비례형 구조로써 효율성을 보장한다.

드레이크에 따르면 비디오를 감염시키는 악성 코드는 메신저 앱을 통해 자동으로 다운로드되고 실행된다. 하지만 구글의 루드윅은 자신의 구글플러스 포스트를 통해 ‘악성 코드가 사용자 몰래 메모리를 차지하고 실행될 수 있다는 사실이 그 위험성을 반증하는 근거는 될 수 없다’고 반박한다. ASLR 등 오늘날의 운영체제들이 갖추고 있는 방어 체계는 버퍼 오버플로 익스플로잇을 방지하는 데 초점을 두고 있기 때문이다.

그러나 루드윅의 설명처럼 구글의 방어 체계가 확실하고, 실제로도 사용자들의 스마트폰에서 취약성 발견 사례가 없었다고 해도 문제의 심각성이 줄어드는 것은 아니다. 컨퍼런스에서의 세션 이후 진행된 NPR과의 대담에서 루드윅은 이번 사태가 구글 보안 팀의 위협 수준 기준에서 ‘고위험군’에 속한다고 이야기했다.

안드로이드의 선천적 결함인가?
스테이지프라이트 취약점의 배경엔 안드로이드의 오픈 소스 전략이 자리하고 있다. 오픈 소스 정책은 다양한 안드로이드를 개성의 하드웨어 제조사들이 함께하는 다채로운 환경으로 만들어줬으며, 적시 생산(JIT, Just In Time) 편집과 안드로이드 런타임(ART, Android RunTime)은 안드로이드와 앱이 구글 안드로이드 개발팀의 손을 거치지 않고도 모든 하드웨어 설계에서 동작하도록 했다.

하지만 구글 플레이 스토어를 통해 판매되는 넥서스 모바일 기기 이외에는 구글이 안드로이드 OTA를 직접적 업데이트할 수 없다는 맹점 역시 있다. 구글은 각 기기 제조사들에 업데이트를 요청해야 하고, 또 일부 경우엔 제조사들이 다시금 통신사에 관련 승인을 요청해야 하는 상황도 발생한다. 하드웨어와 그 안의 소프트웨어까지 모두 통제하며 필요한 업데이트를 즉각적으로 진행할 수 있는 애플과는 상반되는 구조다. 그렇다면 이런 구조가 안드로이드를 보안 익스플로잇에 취약하게 만드는 주범일까? 확언하긴 어렵다. 안드로이드는 오픈 소스 프로젝트로, 그것의 소스 코드는 사이버 범죄자와 보안 연구자 모두에게 공평하게 열려있다. 칼과 방패 모두를 만들 수 있는 쇳물인 것이다. 덧붙이자면, 안드로이드에서 발생하는 익스플로잇은 더욱 많은 주목을 받게 된다. 그것의 개방성으로 인해 학계와 업계는 더욱 자유로운 연구가 가능하기 때문이다. 반면 iOS와 같은 폐쇄적인 플랫폼은 외부에서 논의되는 것 자체가 어렵다.

시장의 세 모바일 플랫폼(iOS, 안드로이드, 윈도우 10 모바일) 가운데 어느 것이 상대적으로 안전하다고 확언하기란 어려운 일이다. 구글은 2013년 바이러스 불레틴(Virus Bulletin) 컨퍼런스에서 처음 안드로이드 멀웨어에 관한 보고를 진행한 이후, 올해부터는 안드로이드 보안에 관한 포괄적인 보고서를 분기별로 발간하고 있다. 2014 안드로이드 보안 리뷰에서는 각종 안드로이드 익스플로잇들의 유형과 발생 빈도에 대한 심층적인 소개가 있었다. 당시 보고서에서 구글은 구글 플레이 스토어를 이용하는 기기들 가운데 유해 앱 설치 가능성이 있는 기기의 비율은 0.15% 이내라고 발표한 바 있다. 애플과 마이크로소프트에서는 자사 플랫폼에 영향을 미치는 익스플로잇에 관한 별도 보고가 없었기 때문에 비교할 수 없었다. editor@itworld.co.kr  


2015.08.07

안드로이드를 괴롭히는 스테이지프라이트 취약점

Steven Max Patterson | CSO
오늘 아침 블랙 햇(Black Hat) 보안 컨퍼런스에서 진행된 포럼에서 구글의 안드로이드 보안 최고 엔지니어 애드리안 루드윅은 최근 10억 이상의 안드로이드 기기들에 영향을 미치는 규모로 보고되며 논란이 되고 있는 스테이지프라이트(Stagefright) 취약점에 대한 우려를 잠재우고자 노력하는 모습을 보여줬다.

스테이지프라이트 취약점에 대한 시장의 관심은 라스베가스에서 진행 중인 이번 블랙 햇 보안 컨퍼런스를 기점으로 매우 증가했다. 스테이지프라이트 취약점의 최초 발견자인 짐퍼리움(Zimperium)의 보안 애널리스트 조슈아 드레이크(Joshua Drake)는 블랙 햇 좌담회를 홍보하려는 목적으로 컨퍼런스 스케줄표를 공유하는 트윗을 게재했고, 해당 트윗이 게재된 지 며칠 후 국립 공영 라디오(NPR)와 스테이지프라이트 취약점에 관한 인터뷰를 나눴다. 이후 포브스(Forbes), 포춘(Fortune), 와이어드(Wired) 등의 유력 매체들이 이 문제에 관심을 가지기 시작하면서 전세계가 스테이지프라이트 취약점을 이야기하기 시작했다.

드레이크가 처음 취약점을 발견하고 이를 구글에 제보한 것은 4월의 일이다. NPR과의 인터뷰에서 드레이크는 “(취약점에 관함) 이메일을 보낸 지 이틀이 지나지 않아 구글로부터 답장이 왔다. 내가 제보한 모든 내용에 관한 패치가 완료됐다는 내용이었다. 멋진 대응이라고 생각했다. 또 구글은 외부 해커들이 이를 공략한 시도는 아직 없었다는 설명도 덧붙였는데, 이 역시 참 다행스러운 일이라 생각한다”고 이야기한 바 있다.

취약점 보안에 관해 보안 산업의 시각은 크게 둘로 나뉜다. 하나는 소프트웨어 제조업체들이 취약점에 패치를 적용할 시간을 주기 위해 일정 기간은 취약점에 대한 정보를 공개하는데 신중해야 한다는 입장이고, 다른 측에서는 위험 수준이 높고 제조업체들이 즉각적인 패치를 개발하기 어려운 상황이라면 취약점은 최대한 빨리 공개하는 것이 사회적 책임이라는 입장이다.

그러나 구글의 루드윅은 위 두 시각 모두를 부정하며(그리고 스테이지프라이트 취약점 문제가 처음 표면화되고 언론들이 보도하던 시각들과도 방향을 달리하며) 주소 공간 무작위 배치(ASLR, Address Space Layout Randomization)라는 기술을 통해 안드로이드 기기의 90%가 버퍼-오버플로(buffer-overflow) 취약점으로부터 보호받고 있음을 강조했다. 악성 코드가 주입된 비디오를 전송하는 방식으로 전달되는 스테이지프라이트 취약점의 주요 경로로 보고된 구글의 SMS 앱 메신저(Messenger)에는 업데이트가 적용될 예정이다.

구글은 또한 구형 안드로이드 기기를 활용한 실험에서 이메일을 통한 취약점 공략 가능성 역시 확인되었음을 발표했지만, 이러한 방식으로 인한 실제 피해 사례는 확인되지 않았다고 설명했다.

루드윅에 따르면 이러한 수정 사항과 차후의 대비책은 오늘 이후 모든 넥서스 기기들에 적용될 예정이며, 기업의 협력업체들에도 이미 해당 내용이 전달된 상태다. 루드윅은 안드로이드 환경의 주요 기기들 가운데 상당수가 8월 내 업데이트를 완료할 것이라 소개했다.

금일 업데이트는 구글이 넥서스 기기들의 보안 성능을 지속해서 보장하기 위해 구상한 월간 OTA(Over The Air) 업데이트의 시작을 의미한다. 구글의 협력업체 역시 매달 관련 소스 코드 업데이트를 전달받아 OTA 업데이트를 해나갈 예정이다.

버퍼 오버플로란?
안드로이드 스테이지프라이트 취약점은 전통적인 버퍼-오버플로 익스플로잇으로 분류된다. 버퍼 오버플로 익스플로잇은 모든 유형의 컴퓨팅 기기에 적용될 수 있다는 장점으로 인해 해커들에게 오랜 기간 사랑을 받아온 공략이다. 악의적 활용 사례가 많은 만큼 학계나 보안 연구소들의 연구 역시 활발한 분야고, 그에 따라 방어 수단 역시 체계화되어 있다는 점 역시 버퍼 오버플로의 특징이라 할 수 있다.

안드로이드 스테이지프라이트 문제의 특징에 관해선 스택익스체인지(stackexchange.com)의 포스팅이 적절하게 설명하고 있다:

“이는 3GPP 비디오 메타데이터 내 특정 영역이 버퍼 오버플로 공격에 취약해 발생하는 문제로 보인다. 3GPP 비디오에 특정 길이를 초과하는 메타데이터 스트링이 주어질 수 있고, 그로 인해 결과적으로 어플리케이션들이 제한되는 메모리 영역에 자리하는 머신 코드를 포함하게 되는 것이다.”

일반적인 버퍼 오버플로 익스플로잇은 코드 실행에 이용되는 메모리 지점으로의 오버플로가 이뤄질 때까지 데이터를 작성한다. 하지만 스테이지프라이트 취약점의 경우 기본 안드로이드 MMS와 행아웃(Hangout) 메시징 앱으로 수신된 악성 코드에 의해 비디오가 감염됨으로써 버퍼 오버플로가 발생한다. 안드로이드 기기는 수신된 비디오를 자동으로 내려받는다. 취약점의 이름인 스테이지프라이트는 안드로이드 2.2에서 소개된 로컬 파일 재생 장치 및 HTTP 프로그레시브 스트리밍 지원 미디어 프레임워크에서 따온 것이다.

구글의 조기 경보 시스템
구글은 구글 플레이 스토어 및 안드로이드 기기들에서 발견되는 위험 앱들을 지속적으로 모니터링하고 있다. 질병 통제국의 질병 통제 모형을 본떠서 개발된 이 시스템은 위험 요소를 완전히 차단하진 못하더라고 생태계에 악성 신호가 감지될 경우 조기 경보를 내보내 확산을 방지하는데 목표를 두고 있다.

구글 조기 경보 시스템의 핵심은 베리파이 앱스(Verify Apps)다. 베리파이 앱스 모듈은 앱 설치 과정들을 점검하며 악성 프로그램을 감지하고, 매일 수억 건의 바이러스형 스캔을 구동해 기기와 시스템에 위협을 줄 수 있는 코드 및 앱 활동을 검색한다. 이러한 방식은 위협의 규모가 커짐에 따라 대응 강도 역시 강력해지는 비례형 구조로써 효율성을 보장한다.

드레이크에 따르면 비디오를 감염시키는 악성 코드는 메신저 앱을 통해 자동으로 다운로드되고 실행된다. 하지만 구글의 루드윅은 자신의 구글플러스 포스트를 통해 ‘악성 코드가 사용자 몰래 메모리를 차지하고 실행될 수 있다는 사실이 그 위험성을 반증하는 근거는 될 수 없다’고 반박한다. ASLR 등 오늘날의 운영체제들이 갖추고 있는 방어 체계는 버퍼 오버플로 익스플로잇을 방지하는 데 초점을 두고 있기 때문이다.

그러나 루드윅의 설명처럼 구글의 방어 체계가 확실하고, 실제로도 사용자들의 스마트폰에서 취약성 발견 사례가 없었다고 해도 문제의 심각성이 줄어드는 것은 아니다. 컨퍼런스에서의 세션 이후 진행된 NPR과의 대담에서 루드윅은 이번 사태가 구글 보안 팀의 위협 수준 기준에서 ‘고위험군’에 속한다고 이야기했다.

안드로이드의 선천적 결함인가?
스테이지프라이트 취약점의 배경엔 안드로이드의 오픈 소스 전략이 자리하고 있다. 오픈 소스 정책은 다양한 안드로이드를 개성의 하드웨어 제조사들이 함께하는 다채로운 환경으로 만들어줬으며, 적시 생산(JIT, Just In Time) 편집과 안드로이드 런타임(ART, Android RunTime)은 안드로이드와 앱이 구글 안드로이드 개발팀의 손을 거치지 않고도 모든 하드웨어 설계에서 동작하도록 했다.

하지만 구글 플레이 스토어를 통해 판매되는 넥서스 모바일 기기 이외에는 구글이 안드로이드 OTA를 직접적 업데이트할 수 없다는 맹점 역시 있다. 구글은 각 기기 제조사들에 업데이트를 요청해야 하고, 또 일부 경우엔 제조사들이 다시금 통신사에 관련 승인을 요청해야 하는 상황도 발생한다. 하드웨어와 그 안의 소프트웨어까지 모두 통제하며 필요한 업데이트를 즉각적으로 진행할 수 있는 애플과는 상반되는 구조다. 그렇다면 이런 구조가 안드로이드를 보안 익스플로잇에 취약하게 만드는 주범일까? 확언하긴 어렵다. 안드로이드는 오픈 소스 프로젝트로, 그것의 소스 코드는 사이버 범죄자와 보안 연구자 모두에게 공평하게 열려있다. 칼과 방패 모두를 만들 수 있는 쇳물인 것이다. 덧붙이자면, 안드로이드에서 발생하는 익스플로잇은 더욱 많은 주목을 받게 된다. 그것의 개방성으로 인해 학계와 업계는 더욱 자유로운 연구가 가능하기 때문이다. 반면 iOS와 같은 폐쇄적인 플랫폼은 외부에서 논의되는 것 자체가 어렵다.

시장의 세 모바일 플랫폼(iOS, 안드로이드, 윈도우 10 모바일) 가운데 어느 것이 상대적으로 안전하다고 확언하기란 어려운 일이다. 구글은 2013년 바이러스 불레틴(Virus Bulletin) 컨퍼런스에서 처음 안드로이드 멀웨어에 관한 보고를 진행한 이후, 올해부터는 안드로이드 보안에 관한 포괄적인 보고서를 분기별로 발간하고 있다. 2014 안드로이드 보안 리뷰에서는 각종 안드로이드 익스플로잇들의 유형과 발생 빈도에 대한 심층적인 소개가 있었다. 당시 보고서에서 구글은 구글 플레이 스토어를 이용하는 기기들 가운데 유해 앱 설치 가능성이 있는 기기의 비율은 0.15% 이내라고 발표한 바 있다. 애플과 마이크로소프트에서는 자사 플랫폼에 영향을 미치는 익스플로잇에 관한 별도 보고가 없었기 때문에 비교할 수 없었다. editor@itworld.co.kr  


X