가상화 세계 소개 – 1부

작성자: Egidijus Lileika, 수석 보안 연구원

 

이 연구의 목표는 애플리케이션 가상화가 공격 벡터로 사용될 가능성을 파악하는 것입니다. 이 연구에서는 12개의 가상화 앱을 일반적인 사용 사례와 해킹 도구로 테스트했습니다. Android용 애플리케이션 보호 제품은 테스트된 모든 가상화 앱을 대상으로 완화 솔루션으로 평가되었습니다. 이 시리즈의 1부를 계속 읽어보세요.

"일반" 최종 사용을 위한 가상화 앱

"일반" 사용자가 사용할 수 있는 대부분의 가상화 앱은 Google Play 스토어에서 다운로드할 수 있습니다. 이러한 앱은 수억 건의 다운로드를 기록하고 있습니다. 가장 인기 있는 앱 중 하나는 Parallel Space입니다. 이러한 앱의 주요 타겟 고객은 소셜 미디어 앱과 같은 특정 앱에 두 개 이상의 계정을 사용하는 사람들입니다. 가상화 앱을 사용하면 최종 사용자는 로그아웃했다가 다른 계정으로 로그인할 필요 없이 단일 앱의 여러 인스턴스를 동시에 실행할 수 있습니다. 일부 가상화 앱은 개인정보 보호 강화 앱으로 위장하기도 합니다. 가상 공간에 설치된 앱은 종종 (항상 그런 것은 아니지만) 어떤 방식으로든 일반 Android 시스템과 분리됩니다.

위협 행위자 도구로서의 가상화 앱

사용자 스펙트럼의 반대편에는 위협 행위자가 있습니다. 가상화는 다양한 이유로 활용될 수 있습니다. 가상화의 주요 이점 중 하나는 가상화된 앱이 대상 앱보다 더 많은 권한을 가진 프로세스를 보유하여 가상화 앱이 대상 앱과 자유롭게 상호 작용할 수 있도록 한다는 것입니다. 가상화는 가상화 앱 샌드박스에서 더 관대한 환경을 조성하여 안드로이드의 보안 모델을 어떤 방식으로든 우회합니다. 많은 종류의 가상화 앱이 Xposed와 같은 후킹 프레임워크에서 제공하는 "가짜 루트" 접근 및 후킹 서비스를 제공합니다. 그리고 이 모든 것은 루팅되지 않은 휴대폰에서도 가능하므로, 검증된 기기에서도 악의적인 활동을 수행할 수 있습니다.

가상화된 환경은 다음과 같은 악의적인 활동의 가능성을 열어줍니다.

  • 게임에서의 부정행위: 가상화된 환경에서 실행되는 GameGuardian과 같은 소프트웨어는 루팅된 기기에서 할 수 있는 거의 모든 작업을 수행할 수 있습니다.
  • 후킹: VirtualXposed와 같은 가상화 소프트웨어는 가상화된 앱에 Xposed 모듈을 삽입하여 앱의 동작을 변경할 수 있도록 합니다. 예를 들어, VirtualXposed는 YouTube 앱의 광고를 우회하는 데 사용될 수 있습니다.
  • 가짜 뿌리: 일부 가상화 앱은 권한이 상승된 소프트웨어를 실행하기 위해 가짜 "슈퍼 유저"에게 접근 권한을 제공합니다. 예를 들어, 가짜 루트를 사용하여 루팅되지 않은 기기에서 Frida 서버를 실행할 수 있습니다.
  • 가상 위치: 대부분의 가상화 앱은 위치 스푸핑 서비스를 제공합니다. 이는 특히 위치 기반 인증을 우회하거나 포켓몬 고와 같은 위치 기반 게임에서 부정행위를 하는 데 유용합니다.
  • 동적 분석: 일부 인기 가상화 앱은 오픈 소스이며 사용자 정의 플러그인을 통해 수정할 수 있습니다. 사용자는 플러그인 내에서 가상화된 애플리케이션을 동적으로 계측하고, 애플리케이션 동작을 관찰하고, 네트워크 트래픽을 캡처할 수 있습니다.

그림 1 GameGuardian 사용자들의 각 가상 공간의 인기도

그림 1 – GameGuardian 사용자들의 각 가상 공간의 인기도

가상화 앱 카테고리

앱 가상화는 광범위한 용어입니다. 앱 가상화는 다양한 방식으로 구현될 수 있으며, 반드시 안드로이드 시스템을 가상화하는 것만으로 구현되는 것은 아닙니다. 앱 가상화는 불규칙한 환경에서 애플리케이션을 실행한다는 개념을 일반화하는 데 적합한 용어입니다. 다음은 다양한 앱 가상화 유형 중 몇 가지입니다.

작업 프로필 격리

일부 가상화 앱은 별도의 작업 프로필을 생성하고 가상화된 앱을 그 안에서 격리하여 가상화를 구현합니다.작업 프로필은 Android 기기에서 "업무" 앱 및 데이터를 개인 앱 및 데이터와 분리하기 위한 설정입니다.작업 프로필은 시스템의 나머지 부분과 격리된 기기의 별도 영역에 있습니다.작업 프로필로 앱을 격리하는 것이 반드시 좋은 것은 아닙니다.루트 액세스 권한이 있는 일반 사용자 공간에서 실행되는 잠재적으로 악성인 앱은 작업 프로필 격리 앱이 동일한 작업 프로필에 있는 앱만 볼 수 있기 때문에 탐지가 불가능할 수 있습니다.예를 들어, 이러한 공격 전략은 루트 권한이 있는 루팅된 기기에서 GameGuardian을 사용하고 격리된 작업 프로필에서 대상 애플리케이션을 실행하는 게임 위협 행위자에 의해 악용되고 있습니다.Island 앱은 Google Play 스토어에서 무료로 제공되는 애플리케이션으로, 사용자가 특정 애플리케이션을 복제할 수 있도록 합니다.Island 앱은 또한 "작업 프로필 격리"의 좋은 예입니다.

클로닝 및 리패키징

또 다른 종류의 가상화 앱은 대상 애플리케이션을 복제하거나 리패키징하여 가상화를 구현합니다. 일반적으로 이 과정은 간단합니다. 기본적으로 이러한 앱은 복제되고 패키지 이름은 일종의 고유한 패키지 이름으로 수정됩니다. 이러한 가상화 앱은 모든 종류의 검사 및 검증을 우회하기 위해 패키지 이름 및 서명 검색을 담당하는 메서드와 기타 메서드에 패치 또는 후크를 적용하는 자체 코드를 삽입하여 애플리케이션이 원본 앱인 것처럼 믿게 만듭니다. 애플리케이션 ID가 변경되었으므로 원본 앱과 복제된 앱이 동일한 Android 시스템에 공존할 수 있습니다. 이러한 가상화는 가상화 오버헤드가 없으므로 가장 빠릅니다. AppCloner 앱이 이러한 유형의 앱 중 하나입니다. AppCloner는 Google Play 스토어에서도 무료로 다운로드할 수 있습니다.

애플리케이션 호스트

"애플리케이션 호스트"는 또 다른 종류의 가상화 기술입니다. 애플리케이션 호스트는 대상 애플리케이션을 자신에게 로드하고 실행하여 가상화합니다. 이는 앱을 가상화하는 비교적 간단한 방법이지만, 몇 가지 제약이 있습니다. 예를 들어, 이러한 애플리케이션 호스트는 일반적으로 한 번에 하나의 앱 인스턴스만 실행하거나 매우 제한된 수의 앱만 동시에 실행할 수 있습니다. 이러한 전략을 사용하는 일부 가상화 기술은 SDK 형태로 제공되어 사용자가 특정 기능을 가진 특정 앱에 대한 자체 호스트 앱을 만들 수 있도록 합니다. 이러한 SDK는 또한 후킹 프레임워크를 사용하거나 계측을 통한 일반적인 애플리케이션 동적 분석을 수행할 수 있는 가능성을 열어줍니다. VirtualApk와 Phantom은 이러한 가상화 방식의 대표적인 예입니다.

전체 안드로이드 시스템 가상화

일부 가상화 앱은 전체 안드로이드 시스템을 가상화하고 있습니다. 심지어 어떤 앱은 ROM(읽기 전용 메모리) 이미지에서 전체 안드로이드 시스템을 부팅하기도 합니다. 이러한 가상화 방식은 가장 느리지만, 말 그대로 안드로이드 폰 전체를 에뮬레이션하기 때문에 가장 강력합니다. 커스텀 ROM 이미지나 파일은 패치, 사용자 정의, Magisk를 사용한 루팅 등이 가능합니다. 가상화된 애플리케이션이 외부 안드로이드 시스템과 상호 작용하여 내부에서 무슨 일이 일어나고 있는지 알 수 있는 방법은 거의 없습니다. 이러한 가상화는 루트 접근 없이도 일반적인 가상화된 안드로이드 시스템에서 대상 애플리케이션을 실행하는 데 사용될 수 있습니다. 하지만 원래 안드로이드 시스템을 루팅한 후 추가적인 동적 분석 소프트웨어를 실행하여 가상화된 앱을 조작할 수도 있습니다. Twoyi는 전체 안드로이드 시스템을 가상화하는 가장 인기 있는 앱 중 하나입니다.

부분적 안드로이드 런타임 가상화

마지막으로, 일부 가상화 앱은 부분적인 안드로이드 시스템 가상화를 구현합니다. 일반적으로 이러한 가상화 앱은 프록시와 더미 프로세스를 사용하여 안드로이드 시스템 대부분을 재생성합니다. 후킹은 가상화된 앱 프로세스와 나머지 시스템 간의 통신 과정에서 많은 부분을 가로채고 패치해야 하기 때문에 이러한 가상화 기술에서 매우 중요한 부분입니다. 또한, 이 방법은 서로 다른 안드로이드 버전과 서로 다른 안드로이드 기기 공급업체 간에 유지 관리가 복잡합니다. 일반적으로 이러한 가상화 방식은 안정성 문제가 있습니다. 그러나 부분 안드로이드 런타임 가상화 기술은 가장 강력한 가상화 기술 중 하나입니다. 잘 구현된 부분 안드로이드 런타임 가상화는 완전히 감지될 수 없습니다. VirtualApp은 가장 유명한 부분 안드로이드 런타임 가상화 중 하나입니다.

가상화 앱을 신뢰할 수 있나요?

앞서 언급했듯이, Google Play 스토어의 많은 가상화 앱들은 일반 사용자들에게 가상화가 사용자 개인정보 보호를 향상시킨다고 믿게 하기 위해 개인정보 보호 기능을 강화한다고 주장합니다. 하지만 이러한 주장은 근거가 부족합니다. 가상화된 앱이 시스템의 나머지 부분과 분리되어 있다는 사실 자체가 개인정보 보호를 강화합니다. 그러나 가상화 앱은 안드로이드 시스템에 설치된 다른 어떤 타사 애플리케이션보다 가상화된 앱에 대해 더 많은 권한을 가지고 있습니다. 가상화 앱이 이러한 권한을 사용하여 사용자의 개인 정보를 도용하지 않는다는 보장은 없습니다.

대부분의 가상화 앱은 광고로 가득 차 있습니다. 일부 앱은 가상화된 앱에 추가 애드웨어 코드를 삽입하기도 합니다. 사용자 동의 없이 가상화된 애플리케이션에 삽입될 수 있는 요소는 거의 무한합니다.

또한 가상화 소프트웨어를 사용하는 것은 가상화된 애플리케이션의 사용 약관에 위배될 수 있으며, 이는 가상화 소프트웨어를 사용하면 계정이 금지될 수 있음을 의미합니다.

 

블로그 시리즈의 두 번째 부분에서 대화를 계속하세요. 여기를 클릭해 문의해주세요.

당신은 또한 좋아할 거라