Case
안드로이드는 어디서 앱을 다운받아야 하나, 굴리건(Googligan)
2016 12 07
  • Facebook
  • Twitter
  • Copy URL

몇 년전부터 안드로이드 기반의 악성 애플리케이션이 날이 갈수록 늘어나고 있다. 며칠 전, 구글 플레이(Google play)가 아닌 제3의 앱(App) 스토어에서 다운받은 애플리케이션(Application)을 통해 많은 기기가 악성코드에 감염되었다. 이 악성코드는 기기에 침입하여 해당 기기를 감염시키고 이를 통해 지메일(Gmail), 구글 포토, 구글 독스, 구글 플레이, 구글 드라이브 등 사용자의 여러 정보와 구글 계정을 탈취했으며 거의 역대 최대 피해라고 보고 있다.

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

‘굴리건(Googligan)’이라고 불리는 이 트로이 목마는 대규모의 안드로이드 기기를 감염시킨 악성코드다. 이 악성코드는 하루 평균 1만 3천대가 감염되었고 100만 명의 구글 계정이 유출되었다. 이 악성코드는 구글 플레이와 같이 일반적인 앱 스토어가 아닌 제3의 스토어에서 정상적인 애플리케이션처럼 업로드 되어 있었다. 더군다나 애플리케이션을 다운받고 설치한 후에도 매우 일반적인 애플리케이션의 형태를 보여 사용자는 의심하지 않았을 것이다. 기기가 악성코드에 감염되면 디바이스 내에 있는 데이터는 침입자에게 보내진다. 이런 정보를 다른 이가 탈취하는 것은 다른 누군가가 악의적으로 정보를 사용할 수도 있고 혹은 랜섬웨어 형식으로 금전적인 요구를 하는데 쓰일 수 있다.

침입자는 굴리건을 앱 스토어에 올려놓고 누군가가 다운로드를 하기를 기다린다. 앱 스토어에 올려진 이 굴리건을 누군가 다운받아 설치를 하면 기기는 감염이 된다. 감염되면 기기 안에 있는 데이터는 C&C 서버를 통해 침입자에게 전달이 되고 이 서버를 이용하여 기기를 제어한다. C&C서버 너머에 있는 침입자는 기기에 루트킷을 다운로드하고 루트에 접근을 시도한다. 이를 통해 접근 권한을 획득하면 원격 제어를 통해 디바이스를 완전하게 제어할 수 있다. 더불어 굴리건이 루트 접근에 성공하면 더 새로운 악성코드를 C&C서버에서 다운로드하고 감염된 단말기에 설치한다. 이 모듈은 구글 플레이 및 구글 모바일 서비스에서 동작하는 코드로 사용자의 행동을 모방하고 잠복한다. 그러면서 구글 계정 및 인증 토큰 정보를 훔치는 구글 플레이에서 앱을 마음대로 설치하고 높은 평가를 붙여 다른 이들의 신뢰감을 만들고 애드웨어를 설치하여 수익을 만들어낸다.

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

굴리건을 구글 플레이가 아닌 다른 앱 스토어를 통해 게시하는 이유로 구글 플레이는 업로드되는 애플리케이션이 안전한지 검사하기 때문이다. 더군다나 악의적인 코드가 담긴 애플리케이션이라 판단되면 빠르게 지워버린다. 구글 플레이가 악성 애플리케이션을 잡을 수 있었던 것은 애플리케이션이 게시되기 전에 잠재적으로 올린 이의 계정을 자동으로 검사한다. 또한, 사전에 정책 위반한 이를 파악하기 위해 앱 검토 프로세스를 도입했으며 사용자 또는 개발자 커뮤니티를 통해서도 추가 검토를 하여 앱을 검사한다. 하지만 타사의 앱 스토어 경우, 어떤 방식으로 악성 애플리케이션을 검사하는지 알 방법은 없다.

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

이렇게 유출된 데이터는 분명 사소한 문제는 아니다. 더군다나 요즘은 정보를 가지고 돈을 요구하기 위해 이렇게 모바일 기기의 루트 권한을 획득하는 애플리케이션들이 하루 3~4건정도가 앱 스토어에 올라온다고 한다. 굴리건을 처음 발견한 보안 회사 체크포인터(check pointer)의 사고 대응 책임자는 구글 플레이에서 애플리케이션을 다운 받을 때 가짜 앱이나 악의적인 코드가 담긴 앱을 탐지할 여러 탐지장치가 마련되어야 한다고 말했다. 또한, 구글 플레이가 아닌 다른 스토어에서 앱을 구매할 경우 진짜 프로그램을 얻기보다 반대로 돈을 잃고 개인정보는 그대로 노출될 수 있다고 덧붙였다.

특히나 안드로이드 기기를 사용하는 사용자들이 안드로이드 버전을 잘 업데이트하지 않는 것이 문제다. 더군다나 모바일 기기의 제조사마다 다른 업데이트로 이러한 악성 프로그램이 나왔을 때 광범위하게 업데이트를 해줄 주체가 없다는 것이다. 현재, 굴리안은 아시아 지역을 중점으로 안드로이드 4.1~5.1버전의 기기를 대상으로 하며 유출된 100만개의 계정 중 미국은 19%, 유럽은 9%, 아시아는 57%에 해당된다. 더욱이 이렇게 피해사례가 있더라도 여전히 많은 이들이 최신패치를 받지 않아 이 굴리안의 전염성이나 피해는 더 클 것으로 본다.

앱이 합법적인지 확인하는 가장 좋은 방법은 먼저 구글 플레이 스토어로 이동한 다음 검색엔진을 사용하는 대신 원하는 것을 검색하여 다운로드 한 다음 합법적인 출처인지 그렇지 않을 수도 있는 임의 링크인지 확인하는 것이다. 이렇게 플레이 스토어를 이용하면 안전한 앱을 다운로드 할 수 있다. 물론 공식 앱 스토어에 있는 애플리케이션이라면 공식 소스에서 가져오는 것이 가장 좋다. 그 이유로 구글 플레이는 이 애플리케이션이 어디서 공급한 것이고 누가 만들어 만든 것인지 믿을 수 있지만 구글 플레이가 아닌 다른 스토어는 무엇으로 검사하는지 알 수 없기 때문이다.

하지만 구글 플레이가 단 하나의 정답은 아니다. 2016년 10월, 구글 플레이 스토어에서 다운받을 수 있는 400개의 안드로이드 애플리케이션에 드레스 코드라는 트로이를 포함하고 있다고 밝혔다. 이 악성코드는 원래 8월 말에 체크 포인트이 연구팀 공식 구글 플레이 안드로이드 앱 스토어에서 드레스 코드의 인스턴스를 40개 발견하고 전체적으로 400개를 발견했다고 보도했다.

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

더욱이 이런 트로이 목마가 발견된 것은 최근 일이 아니다. 구글 플레이 앱 스토어에는 ‘ANDROIDOS_SOCKSBOT.A’와 같이 트로이 목마 코드를 포함한 적어도 3,000개의 트로이 목마 앱이 발견되었고 그 중 몇 개는 유명 안드로이드 애플리케이션에 포함하여 호스팅 되었다. 이 유명한 애플은 당시 50만 명의 사용자가 다운로드 하였으며 다른 악성코드는 크게 보이지 않았고 유달리 드레스 코드가 애플리케이션에 통해 꾸준히 퍼지고 있었다.

이러한 악성코드가 설치되면 TCP 소켓을 통해 명령 및 제어 C&C 서버에 연결할 수 있다. C&C가 응답할 때마다 공격자는 자신과 감염된 장치 간의 TCP 연결을 만들 수 있으며 이 링크를 통해 침입자는 감염된 장치를 완전하게 제어할 수 있다. 특히나, 공격자는 피해자의 네트워크 환경에 연결하여 NAT 장치를 우회해서 내부 서버에 침입할 수 있다. 또한, 네트워크에 연결된 다른 장치를 손상하거나 코드에 있는 SOCKS를 통해 더 확실하게 기기를 제어할 수 있다.

SCOKS를 기기에 설치하게 되면 장치를 제어하고 명령을 내릴 수 있는 범용 터널이 구축된다. 장치를 봇으로 바꾸고 봇넷을 구축하는데도 사용할 수 있다. 봇넷은 분산 서비스 거부 공격이나 스팸 메일 같이 다양한 곳에 사용될 수 있어 점점 더 심각한 문제를 초래하고 있다. 또한, 봇넷 악성코드가 생성한 프록시된 IP 주소를 사용하여 가짜 트래픽, 변장광고 클릭, 그리고 공격자에 대한 수익을 만들어 낼 수 있어 많은 여러 문제점을 만들어낼 수 있다.

하지만 이런 드레스 코드는 애플리케이션의 극히 일부분의 코드만 가지고 있기 때문에 사실상 발견하기는 어렵다. 그렇다 해도 분명한 것은 구글플레이 스토어에서 애플리케이션을 다운받고 설치할 때는 주의가 필요하다는 것이다. 이처럼 구글 플레이 스토어가 마냥 믿을 수 있는 것은 분명 아니다. 그나마 현재 구글 플레이가 알려진 가장 안전하고 신뢰할 수 있다는 것이다. 사실 가장 중요한 것은 의심스러운 애플리케이션은 설치도 다운 받지도 않는 것이 가장 큰 최선의 보안책일 것 같다.

분명 구글 플레어 스토어에서 보안을 위해 애플리케이션을 검사하는 기능을 제공하는 것은 악의적인 애플리케이션이 많아 상당한 투자가 필요할 것이다. 데스크톱의 사용량이 줄고 더 많은 사람이 모바일을 통해 인터넷을 보고 네트워크에 접속한다. 당연하게도 데스크탑 보다는 돈이 되는 모바일 쪽으로 몰리기 십상이다. 그런 의미로 애플리케이션 스토어 관계자들은 애플리케이션이 안전한지를 검증할 방법을 찾아내는 것이 가장 시급한 일이지 않을까 생각된다.

유성경 yuopboy@grayhash.com