안드로이드 모바일 백신 애플리케이션, 앱에 내장 or 외부 다운로드?

2013년 4월 24일 at 3:32 pm

안드로이드는 구글 플레이에서 다운받는 방법 외의 방법으로 애플리케이션을 설치할 수 있으며 아이폰에 비해 폰의 기능을 관대하게 애플리케이션에 허용하는 편이기 때문에 많은 멀웨어와 유통경로가 존재한다. 그리고 멀웨어 중 일부는 폰의 exploit을 이용하여 자신의 권한을 상승시키고(루트 권한 획득) 이를 이용해 타애플리케이션의 활동을 감시한다.

이로 인해 조심해야 할 부분 중 하나가, 금융거래 애플리케이션이 공인인증 로그인을 하는 과정이 감시당하지 않도록 하는 것이다. 공인인증 로그인 절차를 멀웨어가 감시할 경우 공인인증서와 함께 패스워드를 유출시킬 수 있다(꼭 감시해야만 패스워드를 알아낼 수 있다고 말하진 않겠다). 이 때문에 공인인증 로그인이 들어갈 경우 앱의 위변조 체크 외에도 해당 앱에서 멀웨어가 동작중인지, 폰이 루팅되지 않았는지 등의 확인 작업이 필요하다(강제사항이라고 말하진 않겠다).

이때 앱에 모바일 애플리케이션을 내장하기 위한 방법으로 앱 자체에 백신 엔진을 포함하는 방법과 앱 최초 실행시 구글 플레이 스토어에서 다운 받는 방법이 있다. 이 두 가지 방법을 비교해보자.

 

백신 엔진 내장 방식
장점 단점
  • 백신을 별도로 다운 받을 필요가 없다.
  • 백신의 엔진이 업데이트될 경우 그 엔진을 내장한 애플리케이션도 함께 업데이트하여 스토어에 업로드해야한다.
  • 앱 로딩시 백신이 함께 구동될 필요가 없어 시작 시간이 단축된다.
  • 백신 엔진 업데이트시마다 애플리케이션을 다시 (자체) 검수해야 한다.
 
  • 백신의 엔진 업데이트 후 애플리케이션 업데이트까지는 시간이 걸린다. 이 시간차를 이용한 공격(zero-day attack)에 속수무책이 된다.

 

마켓 다운로드 방식
장점 단점
  • 애플리케이션이 백신과 API 를 통해서만 연계되므로 백신 업데이트로 인한 유지보수가 불필요하다.
  • 애플리케이션 최초 구동시 구글 플레이스토어로 이동, 백신 다운로드 및 설치 과정이 필요하다.
 
  • 고객이 백신을 삭제했을 경우 다음번 구동시 구글 플레이스토어로 이동, 백신 다운로드 및 설치 과정이 필요하다.

이외에도 국민은행 앱처럼 백신을 구글 플레이가 아닌 자체 사이트에서 다운로드받도록 하는 방법이 있는데, 이는 구글 플레이의 가이드라인에 위배되니 참고하자. 이유는 아마 보안상의 이유가 주일 것이며, 그 외에도 부분유료 앱의 결제경로 등 몇몇 문제가 얽혀있을 것이다.