보안 제품정보


애플의 앱 스토어 공습한 엑스코드고스트 멀웨어의 의미 2015.09.22

개발자들, 여전히 보안 의식 부족하고 습관도 결여되어 있어

애플의 안전하다는 환경, 얼마나 더 신뢰받을 수 있을까


[보안뉴스 문가용] 애플의 폐쇄적인 개발 환경은 여태껏 앱 스토어와 맥, iOS 앱들을 안전하게 지키는 데에 성공한 편이라고 볼 수 있다. 하지만 몇 년 전부터 그러한 장점이 계속해서 무색해지는 소식들이 전해져 오고 있으며, 바로 최근에도 멀웨어가 발견된 바 있다. 팔로알토가 최근 발견한 엑스코드고스트(XcodeGhost)가 바로 그 주인공.

 

▲ 무너진 신뢰

엑스코드고스트는 애플의 앱 개발 소프트웨어인 엑스코드(Xcode)의 트로이목마 버전이다. 공격자들은 이를 중국의 클라우드 저장 공간이자 비공식 앱 스토어인 바이두 윤판(Bai여 Yunpan)에 업로드시키고 있는 중이다. 이 때문에 순수하게 개발을 목적으로 엑스코드를 다운로드 받은 개발자들이 감염이 되고 있다는 소식이다.


이런 절차를 거쳐 39개의 iOS 앱들이 악성코드를 내포하게 되었다. 이 중 세계에서 가장 인기가 높은 메시지 앱인 위챗(WeChat)도 포함되어 있어 전 세계 수천만 사용자들이 영향을 받게 되었다. 또한 뱅킹, 주식 관련, 게임 등의 앱들도 이 39개 앱에 들어있다.


멀웨어 페이로드는 기기와 앱의 정보를 C&C 서버에 업로드시키는 기능을 가지고 있다. 당연히 C&C 서버로부터 명령을 받는 것도 가능하다. 그러면 그 명령을 바탕으로 가짜 알람 메시지를 받아 사용자가 로그인 정보를 입력하도록 꾀어낸다. 또한 특정 URL의 하이재킹도 가능하며 iOS 시스템과 iOS 앱에 있는 취약점의 익스플로잇을 유발하기도 하고, 암호관리 툴에서 사용자가 복사하는 암호를 읽어들일 수도 있다.


하지만 중요한 건 이렇게 다양한 기능을 가진 페이로드가 아니다. 엑스코드고스트의 출현 자체가 애플의 개발 환경에 가지는 의미에 더 집중하는 모습이다. “이 사건에서 재미있는 건 앱 개발자들이 자기가 만든 앱에 멀웨어가 포함되어 있을 줄은 꿈에도 몰랐다는 겁니다.” 베라코드(Veracode)의 CTO이자 CISO인 크리스 와이소팔(Chris Wysopal)의 설명이다. “엑스코드는 애플이 자랑하는 개발 환경이었거든요. 그런데 그 환경자체가 오염의 시작이 된 것이니 얼마나 황당합니까.”


불과 3주 전에도 키레이더(KeyRaider)라는 iOS 멀웨어가 등장해 2십 2만 5천 개의 공식 애플 계정을 훔쳤다. 그럼에도 애플은 공식적인 대응을 하지 않았다. 도난당한 계정들이 전부 탈옥한 기기의 계정이었다는 게 그 이유였다. 이번에 팔로알토가 발견한 엑스코드고스크는 탈옥을 하지 않은 iOS 기기에도 영향을 주기 때문에 애플이 어떻게 나올지 궁금하지 않을 수 없다.


엑스코드고스트 공격이 성립할 수 있는 건 애플의 인증 시스템에 약점이 있기 때문이다. 일단은 공식 앱 스토어를 사용하지 않는 개발자들이 있다는 게 가장 큰 약점이었다. “중국의 인터넷 환경은 제약사항이 많고 감시도 많으며 지역에 따라 회선 속도도 좋지 않아서(해외 서비스 이용 시) 중국 사용자들은 현지의 ‘짝퉁’ 서비스를 사용하는 데에 큰 거부감이 없습니다.” 랜코프(Lancope)의 부회장인 게빈 레이드(Gavin Reid)의 설명이다. “이 지점에서 이미 오늘의 교훈이 하나 나오죠. 개발자들이 소스코드를 구함에 있어서도 주의를 기울여야 한다는 것입니다.”


중국 외에도 이런 식으로 ‘현지화 된’ 혹은 ‘비공식화 된’ 서비스를 제공하는 사이트들은 어마어마하게 존재한다. 그러므로 출처도 모르는 소스코드를 받아서 사용하는 건 위험을 자초하는 것이라고 래피드7(Rapid7)의 보안 관리자인 토드 비어드슬리(Tod Beardsley)는 설명한다. “엑스코드고스트가 성공했다는 건 개발자들이 인증 과정을 쉽게 생략하거나 아무거나 믿고 있다는 걸 반증합니다. 그런데 이는 이미 수차례, 수많은 매체에서 경고를 보낸 내용이잖아요? 아마 앞으로도 계속해서 비슷한 일이 일어날 겁니다.”


왜 같은 실수를 반복하는 걸까? “호되게 당해본 적이 없어서입니다. 이런 식으로 일어난 사고들은 보통 유야무야 덮어두고 넘어갈 수 있는 정도의 규모였기 때문이죠. 마치 무단횡단하는 것과 비슷하다고 보면 됩니다. 대부분 무단횡단 할 때 무사히 건너잖아요? 개발자들이 바보에다가 무심하다고 하는 게 아닙니다. 그냥 그건 사람의 본성이에요. 지난 번엔 괜찮았으니 이번에도 괜찮을 거라고 믿는 거요. 무단횡단을 해본 사람이라면 개발자들을 욕할 순 없을 겁니다.”


와이소팔은 “개발자들도 보안에 신경을 더 써야함을 드러내는 사건”이라는 결론이다. “바이너리 스태틱 평가(binary static assessment)나 행동 분석과 같은 멀웨어 탐지 기법들이 이미 존재하죠. 자신이 짠 코드를 컴파일링할 때 그런 기법들을 사용해 취약점 점검을 해보는 습관이 반드시 필요한 때입니다.”


씨지탈(Cigital)의 CTO인 게리 맥그로우(Gary McGraw)는 와이소팔과 같은 노선의 주장을 하지만 조금은 다르다. “코드를 짠 이후에 검사하는 것도 좋지만 코드를 짜면서 이미 보안 검사를 하는 편이 더 효율적입니다. 튼튼한 소프트웨어는 태생부터 튼튼하게 시작합니다. 설계 및 코딩 단계에서부터 판가름 나는 거죠. 다만 이런 방식의 코딩에는 ‘왕도’가 존재하지 않습니다. 시작부터 코딩의 전 단계에 걸쳐 보안검사를 해주는 툴도 없어요. 즉 개발자 자신이 직접 코딩을 해가면서 보안에 대한 생각을 한 순간도 놓치지 않고 해내는 것이 중요하다는 겁니다.”


팔로알토는 기술적인 측면에서 “트로이목마에 감염된 앱을 개발해 퍼트리는 게 얼마나 쉬워졌는지를 보여주는 예”라고 의견을 내비쳤다. “개발자들을 속이니 알아서 멀웨어가 퍼졌다는 거죠. 이 경우 개발자들이 해커의 자동화 장치 역할을 한 것이나 다름없습니다.”


긍정적인 이들도 있다. 비어드슬리가 바로 그런 부류다. “엑스코드 멀웨어로 입은 피해는 미비한 수준입니다. 그렇다면 이걸 너무 심각하게 받아들이는 게 아니라 ‘침투 테스트’나 ‘민방위훈련’으로 받아들여도 되지 않을까요. 결국 우리의 어느 부분이 현재 약하고 문제가 되는지는 충분히 드러났잖아요. 이제 고치는 작업에 들어가면 될 일입니다. 또한 아무 소스코드나 스토어에 접속하지 않는 습관도 이제부터 들여야 하겠고요.”

Copyrighted 2015. UBM-Tech. 117153:0515BC

[국제부 문가용 기자(globoan@boannews.com)]


<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>