본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

2014년 08월 06일 (수)

ⓒ ITWorld, Lucian Constantin | PCWorld



최근 보안 연구원들이 앱과 단말기를 하이재킹(hijacking)하는데 악용될 수 있는 안드로이드 취약점을 발견해 화제가 됐었다. 그러나 보안업체 브로미엄(Bromium)에 따르면 이와 비슷한 문제가 이미 2년 전에 보고되었지만 아직까지도 문제가 해결되지 않고 있다고 한다.


이 문제는 2012년 12월, 안드로이드의 웹뷰(Webview) 컴포넌트 중‘addJavascriptInterface’ 이름의 안드로이드 API를 사용하는 애플리케이션 브라우저들을 대상으로 공격자가 자바스크립트를 사용해 악성코드를 실행할 수 있다는 보도를 통해 처음 드러났다.

애플리케이션에 내장된 수많은 애플리케이션과 광고 프레임워크들은 원격 서버로부터 로딩된 광고 등의 웹 콘텐츠를 표시하기 위해 웹뷰를 활용한다. 문제는 이들 앱 가운데 상당수가 웹뷰 콘텐츠를 로딩할 때 암호화된 HTTPS 연결을 사용하지 않는다는데 있다.

이러한 데이터 전송 암호화의 부재는 공격자가 취약한 앱에 접근을 유도해 악성코드를 실행할 수 있는 여지를 준다. 이를 ‘중간자 공격(man-in-the-middle)’이라 부른다.

만약 앱이 자체적으로 트래픽을 암호화하지 않고 웹뷰를 addJavascriptInterface와 함께 사용하면, 공격자가 자바스크립트 코드를 주입해 앱의 기능성 통제권을 얻고 시스템상의 권한을 악용할 수 있다. 이를 발견한 보안 연구원들은 또한, 공격자들이 그 기저 기기에 대한 제어를 위해 역 TCP 셸을 그들이 통제하는 서버로 열기 위해 이 취약점을 활용할 수 있다는 가능성도 보여주었다.

게다가 공격자는 addJavascriptInterface를 통한 원격 코드집행 공격을 다양한 안드로이드 버전에 영향을 미치는 몇 가지 권한상승(privilege escalation) 취약점을 이용해 강화하는 것으로 기기의 실질적인 통제권을 탈취할 수도 있다.

브로미엄의 한 보안 연구원은 “인스턴스의 퓨텍스(futex) 취약성(CVE-2014-3153)은 안드로이드에서 사용되는 모든 리눅스 커널 버전에 영향을 미치는데, 최근에는 갤럭시 S5의 루팅(rooting)에도 이 취약점이 악용됐다”고 밝혔다.

이와 관련해 구글은 2012년 11월 발표된 안드로이드 4.2에 부합하는 안드로이드 API 레벨 17에 addJavascriptInterface 공격에 대한 수정 사항을 추가했다. 하지만 그럼에도 불구하고 많은 애플리케이션과 기기들은 여전히 취약한 상태로 남아 있다.

브로미엄의 연구원은 “수많은 앱과 광고 프레임워크들은 단말기와의 호환성을 최대화하기 위해 종종 가장 낮은 API 버전에 맞춰 구축되곤 한다”며 “그 결과 해당 앱은 최종적으로 모든 패치가 설치된 안드로이드 4.2, 4.3, 4.4에서 구동하는 기기에서도 위협에 무방비 상태로 노출되고 만다”고 지적했다.

지난 5월, 연구원들은 구글 플레이 스토어에서 10만 2,189개의 무료 앱을 무작위로 다운로드해 테스트를 진행했다. 그 결과, 그 가운데에서 12.8%인 1만 3,119개의 앱이 addJavascriptInterface를 활용하고 있어서 잠재적인 공격 대상으로 분류됐다.

연구원들은 이어, 안드로이드 4.4.3에서 구동하는 넥서스 5와 안드로이드 오픈 소스 프로젝트(Android Open Source Project) 펌웨어 버전 4.2를 탑재한 삼성 XE700t 태블릿에서 취약 앱의 표본집단을 설치, 테스트했다. 테스트는 기기들이 연구원들이 통제하는 불량 무선 AP에 접속된 상태에서 이뤄졌다.

실험을 진행한 연구원들은 AP상에서 실행되는 중간자 웹 프록시로 주입된 악성 자바스크립트 코드를 로딩하는데 성공했고, “우리는 각각의 앱을 실행하고 단시간 이를 조작하는 것만으로도 50%가 넘는 확률로 코드를 원격으로 실행할 수 있었다”고 설명했다.

물론, 취약점이 있다고 해서 반드시 공격이 성공한다는 뜻은 아니다. 그러나 마찬가지로, 동일하게 취약하다고 해서 공격받을 확률 또한 같지는 않다. 다른 앱들에 비해 공격 대상으로 인기 있는 앱은 확실하게 존재한다.

브루미엄의 연구원은 “우리가 취약점을 직접 확인한 작은 샘플에서만 해도 구글 플레이스토어에서 이를 다운로드한 횟수가 1억 5,000만 건을 넘는다. 하지만 그렇다고 해서 취약 기기가 1억 5,000만 대에 달한다는 것은 아니다. 한 대의 기기에 취약 앱이 중복돼 설치되었을 가능성이 있기 때문이다. 그러나 우리가 분석에서 발견한 비율을 감안했을 때(샘플 가운데 10%가 잠재적으로 취약했고, 그 가운데 50%가 실제로 탈취 가능한 것으로 테스트되었다) 아주 많은 기기들이 공격에 취약하는 것은 확실하다”고 설명했다.

브루미엄 연구원들은 여기에서 더 나아가 이 실험 결과를 1만 9,606대의 기기을 대상으로 진행한 캠브리지 대학의 ‘디바이스 애널라이저(Device Analyzer)’ 프로젝트의 데이터와도 비교 분석했다.

연구원들은 “디바이스 애널라이저 데이터에서는 잠재적으로 취약한 앱이 하루 평균 0.4회에서 0.5회정도 실행된 것으로 나온다. 간단히 말해, 평균적인 사용자는 일주일에 2회 정도 공격에 노출된다는 이야기다”라고 설명했다.

브루미엄의 분석은 패치들에도 불구하고 몇몇 안드로이드 취약점들이 장기간 지속될 수 있다는 점을 시사한다. 여기에는 안드로이드 생태계의 파편화 현상이 주 원인으로 작용한다. 보안 문제가 발생했을 때 안드로이드 운영체제 개발자, 기기 제조사, 통신업체, 애플리케이션 개발자 등 여러 당사자들은 각자 따로따로 대응할 수밖에 없다.

이러한 중간자 공격은 특히 무선 네트워크 상에서 더 성공할 가능성이 높다. addJavascriptInterface 취약점 가운데 하나는 악성코드가 무선 네트워크 상의 다른 기기를 감염시킬 수 있다는 점이기 때문이다.

브루미엄의 연구원은 “한대의 기기가 침투당하면 그 기기가 속해있는 네트워크 상에서 일종의 ‘보균자’가 되어 그 공격을 계속 확산시킬 수 있다. 예를 들어 기업 와이파이 네트워크는 BYOD 세계에서 공격 대상으로 아주 인기가 높다”고 경고했다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.itworld.co.kr/news/88826]

맨 위로
맨 위로