안드로이드 악성코드의 진화: 드로퍼

Post image

시큐리온은 안드로이드 악성 앱의 발전 양상을 지속적으로 추적해 왔습니다. 초기 악성 앱은 보안 우회 기법 없이 단순히 단말기 정보를 수집하는 기초적인 형태였습니다. C2(명령 제어) 서버 주소가 내부에 하드코딩되어 그대로 노출되었고 암호화되지 않은 HTTP 통신을 사용해 모든 데이터가 쉽게 들여다보일 정도였죠.

image0.png

[그림 1] 과거 악성 앱


하지만 시간이 지남에 따라 악성 앱은 점점 고도화되기 시작했습니다. 이제는 난독화, 안티 디버깅, 가상 환경 탐지 등 분석을 방해하는 기술은 기본으로 탑재됩니다. 악성 기능 또한 단순히 연락처나 문자 메시지를 훔치는 것을 넘어 기기를 원격으로 조작해 사용자를 직접 위협하는 단계까지 이르렀습니다.

오늘 이 글에서는 이처럼 교묘하게 진화한 악성 앱의 핵심 전략 중 하나인 드로퍼(Dropper)에 대해 살펴보겠습니다.


드로퍼의 전략

드로퍼는 그 자체로는 악성 행위를 수행하지 않는 ‘위장 앱’입니다. 계산기, 파일 관리자, 또는 정부 기관 앱 등 정상 앱으로 보이는 이 앱의 진짜 임무는 보안망을 통과한 뒤 악성 페이로드(Payload)를 기기로 은밀히 가져와 설치하는 역할을 하는 것입니다.

드로퍼의 성공 핵심은 ‘생존 시간(Dwell Time)’ 확보에 있습니다. 초기 버전에는 악성 기능이 전혀 없으므로 구글 플레이 프로텍트와 같은 보안 검사를 쉽게 통과합니다. 사용자가 몇 주간 앱을 사용하며 신뢰를 쌓게 되면 이후의 업데이트나 권한 요청에 무감각해지기 쉽습니다. 민감한 권한 요청은 진짜 악성 페이로드가 설치된 이후로 미루기 때문에 사용자는 아무런 의심 없이 드로퍼 앱을 기기에 설치하고 방치하게 됩니다.

이처럼 드로퍼는 신뢰를 먼저 얻고 공격은 나중에 감행하는 ‘시간차 공격’을 통해 안드로이드의 보안 체계를 무력화시킵니다.


Anatsa 뱅킹 트로이목마

이러한 드로퍼 전략을 활용하는 대표적인 예시가 바로 ‘Anatsa’ 뱅킹 트로이목마입니다. Anatsa의 드로퍼 앱은 ‘PDF 리더’, ‘QR 코드 스캐너’와 같이 유틸리티 앱으로 위장하여 구글 플레이 스토어에 등록됩니다.

사용자가 이 앱을 설치하면 처음에는 정상적으로 작동하며 앱이 초기에 요구하는 권한에도 민감한 권한은 포함되어 있지 않습니다.

image1.png

[그림 2] Anatsa 드로퍼가 요구하는 권한


하지만 일정 시간이 지난 뒤, 공격자는 정상적인 기능 개선을 위장한 자체 업데이트를 배포합니다. 사용자가 무심코 이 업데이트를 설치하면 앱 내부에 드로퍼 기능이 활성화됩니다.

활성화된 드로퍼는 C2(명령 제어) 서버와 통신을 시작하고 분석을 회피하기 위해 현재 실행 환경이 에뮬레이터나 샌드박스가 아닌지 먼저 확인합니다. 분석 환경이 아닌 것이 확인되면 비로소 앱은 C2 서버에 접속하여 진짜 악성 페이로드인 Anatsa를 내려받을 준비를 마칩니다.

마지막으로, 드로퍼는 ‘새로운 기능 사용을 위해 추가 설치가 필요하다’는 식의 거짓 메시지를 띄워 사용자가 직접 접근성 서비스 권한을 허용하고 악성 APK 설치에 동의하도록 유도합니다. 이 권한이 넘어가는 순간, Anatsa는 실제 은행 앱 위에 똑같이 생긴 가짜 로그인 화면을 띄우거나(오버레이 공격), SMS 인증번호를 가로채고 키 입력을 기록하여 사용자의 모든 금융 정보를 탈취하고 자금을 이체하는 등 공격을 수행하게 됩니다.

image2.png

[그림 3] Anatsa 전개 과정


국내 은행 사칭 드로퍼 심층 분석

드로퍼는 크게 서버에서 악성 APK를 내려받는 유형과 앱 내부에 악성 APK를 숨겨두고 설치하는 유형으로 나뉩니다. 지금부터 앱 내부에 악성 APK를 숨겨두는 임베디드 방식의 ‘하나원큐 저축은행’ 사칭 앱을 통해 공격 기법을 더 깊이 들여다보겠습니다.

image3.png

[그림 4] 하나원큐 저축은행 전개 과정


악성 앱은 실행과 동시에 사용자에게 수많은 권한을 요구합니다. 이 과정을 ‘런타임 퍼미션’이라고 하는데 일반적으로 사용자는 반복되는 권한 요청에 의심을 품기 마련입니다. 하지만 공격자는 이 과정을 사용자가 인지하지 못하게 자동으로 처리하기 위해 ‘접근성 서비스’를 악용합니다.

본래 신체가 불편한 사용자를 돕기 위해 만들어진 이 접근성 기능은 활성화되면 화면의 모든 내용을 읽고 사용자를 대신해 클릭까지 할 수 있어 안드로이드 시스템의 마스터 키와 같은 막강한 권한을 제공합니다. 공격자는 “앱을 정상적으로 사용하기 위해 [하나원큐 저축은행]의 접근성 설정을 활성화해야 합니다.“와 같은 메시지로 사용자를 속여 이 권한을 획득합니다. 그 후로는 모든 권한 동의 창이 뜰 때마다 드로퍼가 자동으로 ‘허용’ 버튼을 클릭하여 모든 과정을 은밀하게 처리합니다.

image4.png

[그림 5] 샘플 실행 과정 ①


접근성 권한을 획득한 드로퍼 앱은 내부에 숨겨둔 악성 앱을 설치합니다. 이 악성 앱은 통화 기록, 위치 정보, 설치된 앱 목록 탈취 등 각종 스파이웨어 기능을 담고 있습니다. 특히 은행 앱을 사칭하는 드로퍼의 경우, ‘CleanMasterX’ 와 같이 잘 알려진 유틸리티 앱이나 시스템 앱으로 위장한 악성 앱을 설치하는 경우가 많습니다. 이번 샘플에서는 ‘디지털보안’이라는 앱이 사용되었습니다.

image5.png

[그림 6] 샘플 실행 과정 ②


드로퍼 앱의 코드를 통해 앱의 동작을 상세히 살펴보겠습니다.

(사진 상의 코드는 난독화 해제 도구를 이용하여 복호화한 코드입니다.)

해당 샘플은 분석을 어렵게 하기 위해 암호화와 난독화는 물론, 인증서 검증, 루팅 탐지 등과 같은 안티 디버깅 기법까지 적용되어 있었습니다.

image6.png

[그림 7] 디버거 탐지

image7.png

[그림 8] 인증서 검증


모든 보호 및 분석 방해 기법을 통과하면 드로퍼 앱은 내부에 있는 APK 파일을 외부 저장소에 저장합니다. 이후 FileInputStream을 통해 해당 APK를 불러오고 Intent 를 생성하여 APK 설치를 요구합니다.

image8.png

[그림 9] 내부 APK 저장

image9.png

[그림 10] 악성 앱 설치


사용자가 접근성 서비스 동의를 했기 때문에 이 모든 설치 과정과 이후의 민감한 권한 요구는 자동으로 수락됩니다. 이렇게 설치된 ‘디지털 보안’ 앱은 사용자 런처에 아이콘이 나타나지 않아 설치 사실조차 인지하기 어렵습니다.

설치된 악성 앱은 ‘설정’ - ‘애플리케이션’ 메뉴에서만 확인할 수 있습니다. 하지만 악성 앱의 이름이 ‘디지털 보안’이므로 사용자는 이를 기존에 설치된 보안 앱으로 착각하기 쉽습니다. 결국 사용자가 원본 드로퍼 앱(하나원큐 저축은행)을 삭제하더라도 숨겨진 악성 앱은 기기에 남아 공격에 계속 노출된 상태가 됩니다.

image10.png

[그림 11] 사용자 런처 화면


악성 앱 설치가 완료되면 사용자의 디바이스는 공격자의 C2 서버에 등록되고 공격자는 원격으로 명령을 내려 다음과 같은 악성 행위를 수행합니다.

악성 기능 상세 설명
정보 탈취 연락처, SMS, 통화 기록, 설치된 앱 목록, 위치 정보, 기기 정보 탈취
파일 시스템 접근 기기 내 특정 파일을 공격자 서버로 업로드
기기 제어 마이크 도청, 카메라 접근, 블루투스 제어, 소리 모드 변경, SMS/통화 기록 삭제 등
알림 감청 금융 앱, 인증 앱에서 발생하는 모든 알림 내용 가로채기
보이스 피싱 통화 가로채기, 무단 자동 발신, 통화 강제 종료, 가짜 전화 화면 표시

분석 시점에서 해당 악성 앱이 접속하려던 C2 도메인은 만료된 상태였습니다. 따라서 DNS 요청이 실패하여 실제 통신 및 악성 행위는 발생하지 않았습니다. 하지만 공격자가 추후 도메인을 다시 활성화한다면 이 악성 앱은 언제든 활동을 재개할 수 있습니다.

image11.png

[그림 12] 통신 내역


결론

드로퍼의 진화는 안드로이드 악성코드가 단순한 악성 프로그램을 넘어, 사용자의 신뢰를 악용하는 사회 공학적 기법으로 발전했음을 보여줍니다. 이제 ‘의심스러운 앱’을 설치하지 않는 것만으로는 부족해졌습니다. 최근 공격자들은 보안 시스템의 허점뿐만 아니라 사람의 심리를 이용하여 공격을 수행합니다.


이처럼 지능적인 위협에 맞서는 가장 효과적인 방어책은 사용자 개개인의 보안 습관입니다.

  • ‘접근성 서비스’ 권한은 기기의 ‘마스터 키’ 임을 명심하세요.

    이 권한은 화면의 모든 것을 보고 사용자를 대신해 기기를 조작할 수 있게 합니다. 앱의 핵심 기능과 직접적인 관련이 없다면 그 어떤 이유를 제시하더라도 절대 허용해서는 안됩니다.

  • 공식 스토어에 있다고 무조건 신뢰하지 말고, 개발자 정보를 확인하세요.

    공격자들은 정교한 방법으로 스토어의 검수 시스템을 우회합니다. 앱 설치 전, 리뷰를 꼼꼼히 읽는 것과 더불어 신뢰할 수 있는 인증된 개발자의 앱인지 확인하는 습관이 중요합니다. 비정상적으로 다운로드 수가 적거나 개발자 정보가 불분명한 앱은 일단 의심하는 자세가 필요합니다.

  • 공식 스토어 업데이트와 앱에서 직접 제공하는 업데이트를 구분하세요.

    운영체제와 구글 플레이 스토어를 통한 공식 앱 업데이트는 보안 취약점을 해결하는 가장 중요한 방어 조치이므로 반드시 최신 상태를 유지해야 합니다. 하지만 앱 내부에서 팝업을 띄우는 등 자체적으로 요구하는 업데이트는 조심해야 합니다. 본문에서 살펴봤듯이, 공격자들은 정상적인 기능 개선으로 위장한 자체 업데이트를 통해 악성 기능을 활성화시킬 수 있습니다.

보안 기술이 발전하는 만큼 공격 기법 또한 끊임없이 진화할 것입니다. 고가의 보안 솔루션도 사용자의 작은 부주의 한 번에 무력화될 수 있습니다. 결국 우리의 소중한 정보와 자산을 지키는 가장 강력한 보안 시스템은 지금 이 글을 읽고 있는 독자님들의 현명한 판단과 주의 깊은 습관입니다.

IOC
MD5 hash
8f68c9f8efad5f747e5a9383ba68aae2
10c70ba71ac0337cebf2d0c9b52b3da8
718659f464c3231dc0eeeacfdcbdfa74
7d7ad87deac2a62b4beba94c7612eddd

You May Also Like

신규 유행 교통정보센터 사칭 악성 앱 분석
신규 유행 교통정보센터 사칭 악성 앱 분석

최근 발견된 ‘교통정보센터’ 사칭 악성 앱은 설치 직후 ‘조회하기’ 버튼 클릭만으로 실제 정부 공식 사이트(예: 환경부, 정부24 등)로 즉시 …

최근 발견된 ‘교통정보센터’ 사칭 악성 앱은 설치 직후 ‘조회하기’ 버튼 클릭만으로 실제 정부 공식 사이트(예: 환경부, 정부24 등)로 즉시 리디렉션되어, 사용자가 별다른 의심 없이 정상 서비스로 오인하도록 설계된 것이 특징이다. 이 악성 앱은 다음과 같이 동작한다.