2024년 월 이후로 부고장 유형의 악성 앱이 지속적으로 탐지되지 않도록 고도화되고 있는 것으로 확인되고 있다. 현재 유포되고 있는 악성 앱은 1부에서 분석된 악성 앱과 동일한 유형이지만 악성 행위 분석 방지 목적으로 newobfs가 적용된 부분과 별도의 DEX 파일을 동적 로딩하는 차이점이 존재한다. 이번 분석 대상 앱은 ‘부고장 알림 서비스’라는 이름으로 유포되고 있었으며 24년 3월 27일에 발견되었다.
악성 앱 해시 비교
최근 유포되는 부고장 유형의 악성 앱은 동일한 URL을 통해 APK 파일이 유포되고 있지만, 다운로드 된 APK 파일을 확인한 결과 APK 파일의 인증서와 MD5 해시 값이 모두 다른 파일임을 확인하였다.

[그림 1] 다운로드 시 변경되는 MD5 값과 인증서 SHA-1 값
동일 URL에서 다운로드 받은 악성 앱 APK 파일의 resources.arsc 파일, res 디렉토리 일부 파일, 인증서 파일이 위치하는 META-INF 디렉토리 해시 값이 변경되었으며 그 외 다른 부분은 동일한 것으로 확인되었다.

[그림 2] META-INF 폴더, res 폴더, resources.arsc 제거 후 해시(MD5) 값 비교
DEX 분석
newobfs가 적용된 APK 파일은 악성 행위를 수행하는 DEX 파일이 o~bf 형태의 이름을 가지고 있는 것으로 확인되었으며, 앱 실행 시 해당 파일들은 /data/data/[패키지 명]/newobfs/
경로에 o~bf
형식의 파일 개수 만큼 복사되고 헤더와 파일명이 변경되어 pobfs
파일로 저장된다.

[그림 3] o~bf 파일을 pobfs 파일로 변경하는 코드

[그림 4] o~bf 파일의 개수만큼 생성된 pobfs 파일

[그림 5] 앱 실행 시 헤더가 변경 된 o~bf 파일
생성된 pobfs 파일 분석 결과 악성 행위 코드가 포함된 DEX 파일로 확인되었다. 해당 DEX 파일은 앱 실행 시 동적 로딩된다.

[그림 6] pobfs 코드 확인(문자 정보 탈취)
문자열 인코딩
아래 그림과 같이 유출지 서버로 전송할 유출 대상의 데이터가 없을 경우 소스코드에 인코딩 처리되어 있는 문자열을 디코딩 후 전송하는 것으로 확인된다.

[그림 7] 디코딩 코드

[그림 8] 탈취할 연락처가 없을 시 동작 코드

[그림 9] 문자열 디코딩
분석 결과
분석 대상 ‘부고장 알림 서비스’ 앱은 아래 표에 정리한 것과 같이 기존 분석된 악성 앱과 유사한 악성 행위를 하고 있지만 DEX 파일의 동적 로딩 구성과 유출지, MQTT Broker 주소가 변경된 것으로 확인된다.

[그림 10] 유사앱 기능 비교 표
살펴본 바와 같이 악성 앱이 분석 방해 및 탐지 회피 목적을 위한 다양한 코드 보호 기법을 적용하고 있으며 이러한 추세는 앞으로도 지속될 것으로 예상된다.

[그림 11] 지속적으로 고도화 되어가는 부고장 유형 악성 앱