[악성앱 분석 보고서] 안드로이드 피싱앱 행위 분석 (초대코드 입력앱)

1. 개요

디지털 환경이 발전할수록, 악성 앱과 피싱 앱은 그 기법을 점차 고도화하며 사용자들을 노리고 있다. 특히 스마트폰 사용이 일상화된 지금, 안드로이드 기기를 표적으로 한 악성 앱들이 빠르게 증가하고 있다. 이 포스팅에서는 이러한 악성 앱들이 어떻게 작동하며, 어떤 방식으로 사용자에게 위협을 가하는지 실제 사례와 함께 분석한다.

이 글을 통해 일상에서 자주 접할 수 있는 악성 앱의 흔적을 알아차리는 방법과, 안전하게 모바일 기기를 사용하는 팁을 제공하여 사용자의 정보 보안 의식을 높이는 데 도움을 주고자 한다.

 

DISCLAIMER

이 분석은 특정 시점에서 관찰된 악성 행위에 대해 서술하고 있으며, 해당 앱의 전체 기능이나 미래에 발생할 수 있는 모든 변동 사항을 다루지 않습니다. 따라서 이후에 앱이 업데이트되어 새로운 악성 행위가 추가되거나, 다른 유사한 앱에서 유사한 악성 행위가 발견될 수 있습니다. 이 포스팅은 참고 자료로서 제공되는 것이며, 특정 앱의 악성 여부를 완전히 보증하거나 모든 가능성을 포괄하지 않음을 알려드립니다.

 

2. 초대 코드 입력 피싱앱

 

악성 앱에서 '초대 코드' 입력을 요구하는 이유는 탐지를 피하고 특정 사용자에게만 기능을 제공하기 위해서이다. 분석가나 자동화된 분석 도구를 회피하고 앱 마켓의 검열을 피하고자 하는 목적도 있다. 또한, 정상 사용자와 공격 대상을 구분하여 초대 코드를 타겟으로 한 사용자에게만 부여하여 악성 기능을 활성화하게 하는 필터 역할을 한다. 모든 사용자에 대해 모든 악성 기능을 노출하는 대신, 코드 입력을 통해 선별된 사용자만 공격 대상으로 삼을 수 있다.

사회 공학적인 기법을 사용하여 초대 코드를 사용하면, 피해자에게 신뢰를 형성하거나 "초대된 사람"만 사용할 수 있다는 식으로 접근하여 심리적으로 방심하게 만들 수 있다.

필자는 피싱앱의 사용자도, 피해자도 아닌 분석가이기 때문에 앱 분석의 입장에서 악성행위를 어떻게 수행하는지 분석한다. 초대 코드가 없으면 악성 기능이 활성화되지 않기 때문에, 분석 중에 해당 기능이 드러나지 않아 앱이 정상적이라고 오인할 수 있다.

 

분석 대상 앱은 Bunny 앱이다. 분석을 수행한 앱중 가장 쉽게 초대 코드를 우회할 수 있었다.

 

앱 실행화면

 

앱을 처음 실행하면 초대코드를 입력하는 란과 허용된 사용자만 입장가능한 것처럼 꾸며놓은 버튼이 있다. 실시간으로 공격자에게 초대코드를 받지 않으면, 입장할 수 없는 구조이다. 

 

3. 분석

 

임의 초대코드 입력후 응답 확인

 

 

임의로 초대코드를 입력하고 프록시 도구를 이용하여 응답을 확인하면, 실제로 공격자의 서버로 초대코드가 전송되며 서버에서 검증하고 있는 것을 확인할 수 있다. 초대코드의 정합성 여부를 서버에서 검증하고, HTTP 응답을 받아 앱이 다음 동작을 정의하는 구조일 것으로 예상할 수 있다.

 

 

그러면 앱 코드를 분석한다. 어렵지 않게 메인 액티비티에서 구현된 코드를 확인할 수 있었다.

 

초대코드 검증 로직 소스 코드

 

HTTP 응답 코드에 따라 앱의 다음 동작 로직 실행 여부를 결정하고 있다. 200인 경우 정상 응답, 500인 경우 초대코드가 잘못된 것으로 판단하고 있다. 동시에 우회할 방법을 여러가지 생각할 수 있다. 프록시 도구를 통해 앱 패킷을 조작할 수 있는 경우 응답을 200으로 변경하면 될 것이고, 앱 파일을 코드패치하여 응답 코드가 200이 아닌 경우에도 실행되도록 할 수 있다. 또한 후킹을 이용하여 관련 함수가 실행될 때 인자를 바꾸는 방법도 고려해볼 수 있겠다. 제시한 방법 이외에도 다양한 방법이 있으니 상황에 맞게 적용한다.

 

4. 우회방법 1

 

HTTP 응답 변조

HTTP 응답을 변조했을 때 앱이 정상실행되는 것을 확인하였다. 최초화면 이후 다음 화면으로 진행된다.

 

"접속하기" 버튼으로 진행하면 앱 현재 기능과 무관하게 권한을 요청하며, 악성행위가 진행된다.

 

권한요청

 

 

5. 우회방법 2

 

다음은 코드패치를 이용한 우회를 적용해본다.

 

코드패치를 이용한 초대코드 앱 우회

디컴파일로 앱 디컴파일 이후 smali 코드에서 수정할 코드를 찾는다. 이 경우 조건문 우회를 통해 코드패치를 적용하였다.

 

잘못된 초대코드를 넣어도 다음 단계로 진행되는 것을 확인할 수 있다.

 

5. 결론

사용자는 Google Play 스토어 외부에서 앱을 설치할 때 신뢰할 수 있는 출처에서만 다운로드 해야 한다. 만약 앱이 의심스러운 동작을 보이거나 악성 행위가 우려되는 상황이라면, 보안 전문가의 도움을 받아 정확한 진단과 대응 조치를 받는 것이 중요하다. 안전한 모바일 환경을 유지하기 위해 신중한 접근과 정보 보안 의식이 필요하다.

반응형