분석 정보/모바일 분석 정보

디지털 인증서를 탈취하는 SoumniBot

TACHYON & ISARC 2024. 5. 16. 17:41

최근 국내 사용자를 대상으로 모바일 악성 앱 SoumniBot을 유포해 디지털 인증서를 탈취하는 캠페인이 발견됐다. 디지털 인증서는 국가에서 일반 국민을 대상으로 발급하는 전자 서명용 공인 인증서로, 서버와 클라이언트 간의 신원을 확인하고 송수신되는 네트워크 데이터를 보호하는데 사용된다. 이번 캠페인에서 활용된 SoumniBot은 모바일 부고장 또는 민원 목적 등의 정상 앱으로 위장해 사용자의 설치를 유도한다. 이후, 감염된 디바이스의 NPKI 폴더에서 디지털 인증서와 개인키 파일을 훔치며, 이로 인한 인증서 유출은 심각한 추가 피해를 야기할 수 있어 주의가 필요하다.

 

민원APP으로 위장한 SoumniBot을 실행하면 사용자에게 연락처, SMS 메시지 및 저장소 등에 접근할 수 있는 권한을 요청하며, 해당 권한을 획득 후 백그라운드에서 정보 수집과 C&C 서버 연결 등의 동작을 수행한다.

 

[그림 1] 앱 정보 및 권한 요청 화면

 

SoumniBot에는 Application 클래스를 상속받는 하위 클래스가 정의돼 있으며, [그림 2]AndroidManifest.xml 파일에서 해당 클래스의 이름을 확인할 수 있다. Application은 전역 응용 프로그램 상태를 유지하는 기본 클래스로 Application 클래스 또는 Application의 하위 클래스는 앱 프로세스가 생성될 때 가장 먼저 초기화된다.

 

[그림 2] AndroidManifest.xml

 

Application을 상속받은 하위 클래스는 APK 내의 Assets에 포함된 데이터를 복호화해 Dex 파일로 드롭한다. 이후, 클래스 로더를 이용해 Dex 파일을 로드하고 실행한다.

 

[그림 3] Dex 파일 드롭 및 실행 코드

 

실행된 Dex 파일은 사용자 디바이스에서 디바이스 정보, 연락처 및 SMS 메시지 등의 정보를 수집하며, 추가로 다음 경로에서 디지털 인증서 파일을 찾는다. [그림 4]는 디지털 인증서 수집 코드로, 코드 사이에 삽입된 더미 데이터를 제거한 후 실제 실행과 관련된 코드를 재조합했다.

-       디지털 인증서 저장 경로 : /storage/emulated/0/NPKI/yessign/

 

[그림 4] 디지털 인증서 수집 코드 더미 데이터 제거 전 (위), 제거 후 (아래)

 

NPKI 폴더에서 디지털 인증서를 발견하면 해당 파일을 ZIP 아카이브로 압축해 다음 경로에 저장한다.

-       ZIP 아카이브 저장 경로 : /storage/emulated/0/NPKI.zip

 

[그림 5] 디지털 인증서 파일 압축 코드

 

정보 수집이 완료된 후, 공격자가 운영하는 C&C 서버와 통신해 [1]의 명령 코드를 수신하고 코드에 따른 추가 동작을 수행한다. , 분석 시점에서 서버와 연결되지 않아 실제 동작은 확인되지 않는다.

 

[표 1] C&C 서버 명령 코드 및 동작

 

SoumniBot 악성 앱은 감염된 디바이스에서 디지털 인증서를 탈취하며, 공격자는 이를 악용해 피해자의 온라인 뱅킹 서비스에 접근할 수 있어 주의가 필요하다. , 안드로이드 버전 11부터 구글 보안 정책이 변경돼 NPKI 폴더 접근이 제한된다. 따라서, 출처가 불분명한 앱의 설치를 지양하고 OS를 최신버전으로 유지할 것을 권고한다.