포스팅 내용

악성코드 분석 리포트

'오퍼레이션 블랙버드(Operation Blackbird)', 금성121의 모바일 침공


안녕하세요? 이스트시큐리티 사이버 위협 인텔리전스(CTI) 전문조직인 시큐리티대응센터 (이하 ESRC) 입니다.


작년 12월 카카오톡을 통한 피싱 공격이 이루어 지고 있다는 언론의 보도가 있었습니다. 


해당 공격은 탈북자를 대상으로 앱을 직접 전달하거나 구글 플레이스토어의 설치 페이지를 알려 주어 앱을 설치하도록 유도하는 피싱 공격이었습니다. 이렇게 설치되는 앱은 피해자의 사생활 정보를 탈취하는 스파이앱으로 밝혀졌습니다. 


발견된 스파이앱을 제작한 공격주체는 “금성121”이라는 단체로 추정되며 한국을 대상으로 지속적인 사이버공격을 하고 있는 단체입니다. 금성121의 공격 대상 장비는 서버나 PC였으나 이번 스파이앱의 발견으로 모바일 영역까지 확대한 것을 알 수 있습니다. 그리고 금성121의 공격 대상은 군이나 정관계 또는 기업 등의 단체를 향한 공격이었다면 모바일을 통한 공격 대상은 탈북자나 탈북자와 관계 있는 개인을 표적으로 하는 것이 특징입니다. 


본 글의 내용은 위협인텔리전스 보고서 내용의 일부를 발췌하여 작성 되었으며 전체 내용은 ‘쓰렛 인사이드(Threat Inside)’의 위협인텔리전스 보고서를 통하여 확인 하실 수 있습니다.




Invasion of Mobile


이제부터 금성121이 모바일 환경에서 수행한 공격에 대하여 살펴보도록 하겠습니다. 다음 그림은 Operation Blackbird의 공격 흐름도입니다.



그림 1. Operation Blackbird의 공격 흐름도


공격 흐름을 살펴보면 공격자는 스파이앱을 유포하기위한 유포서버를 준비하고 피해자에게 링크를 전달하게 됩니다. 이때 피해자는 공격자가 선정한 대상으로 한정되며 탈취자료는 클라우드 서버나 해킹으로 탈취한 웹서버에 저장하는 흐름입니다. 


스파이앱의 초기 버전은 삼성이나 LG 기기를 대상으로 취약점을 통한 설치를 시도하였으나 이후 버전들은 피해자에게 도움이 되는 앱으로 위장하여 설치를 유도하였습니다. 


공격은 공격앱이 존재하는 서버의 링크를 전달하여 피해자가 다운로드 후 설치를 유도하는 식으로 이루어 집니다. 공격앱 설치링크의 전달은 SNS를 이용하며 피해자의 계정에 댓글을 남기거나 카카오톡과 같은 메신저를 통해 전달합니다. 


통상의 악성앱 유포 방법은 임의의 다수에게 무차별적으로 유포하기에 위와 같이 한정된 대상에게 직접 링크를 전달하는 경우는 극히 드물다고 할 수 있습니다. 


링크를 직접 전달한다는 것은 공격 대상을 한정하여 공격하는 표적공격에서 흔히 볼 수 있는 유포 방법이며 이는 Operation Blackbird 또한 표적공격을 하고 있는 것으로 추측되는 대목이기도 합니다. 아래의 뉴스 기사를 통해서도 이를 확인할 수 있습니다.



그림 2. 금성121의 공격 정황 관련 기사


지금부터 Operation Blackbird에 대하여 알아보도록 하겠습니다. 


우선 금성121이 유포한 것으로 추정되는 앱들의 히스토리를 살펴보고 초기 공격앱의 특징을 살펴보겠습니다. 그리고 공격자의 수집 데이터와 공격앱의 상세 코드를 살펴보도록 하겠습니다.


히스토리

 

아래 그림은 금성121이 제작한 것으로 추정되는 스파이앱들을 출현 시기별로 정리한 히스토리의 일부입니다. 전체 히스토리는 ‘쓰렛 인사이드(Threat Inside)’를 통하여 확인 하실 수 있습니다.

 


그림 3. Operation Blackbird의 유포앱 히스토리의 일부


히스토리(그림3)를 살펴보시면 최초 출현으로 의심되는 시기는 2017년 8월이며 이후 지속적으로 변종이나 신규 공격앱을 제작하여 유포하고 있음을 알 수 있습니다.


이어서 히스토리(그림3) 내 공격앱들에 대한 특징과 연관성을 살펴보도록 하겠습니다.


공격앱들의 특징


히스토리(그림 3)를 표현한 위의 그림에서는 스파이앱들의 특징을 코드&데이터, 인증서 핑거프린트 그리고 사용하는 C2에 따라 분류되어 있습니다.


C2는 dropbox와 Yandex 그리고 hacked web 서버로 분류되며 스파이앱들은 3종류 중 하나를 사용하고 있습니다. 

 

 

히스토리상의 인증서 핑거프린트와 코드 & 데이터 특징은 위 그림의 마킹 번호의 조합으로 분류하여 식별이 용이하도록 하였습니다.


인증서 핑거프린트는 인증서 내의 hash값으로 md5값을 사용하였습니다. 이 값이 같다면 동일 인증서를 사용한 앱임을 알 수 있습니다. 


마지막으로 코드 & 데이터 특징에 대하여 살펴보겠습니다. 코드 & 데이터 특징도 분류에 따라 위에 표기된 코드 조합으로 마킹 하였습니다.


다음 그림은 코드 & 데이터 특징 1번에 대한 내용을 정리한 것입니다.

 


그림 4. 코드 & 데이터 특징 1번


코드 & 데이터 특징 1번에 속하는 앱들은 드랍퍼입니다. 


이 드랍퍼들은 삼성과 LG 기기의 취약점을 이용하여 설치 되었으며 취약점이 존재하던 시기에 집중적으로 발견 되었습니다. 


히스토리(그림 3)를 살펴 보면 2017년 8월 이후 드랍퍼가 변경되었다는 것을 알 수 있습니다. 특징 1번에 속하는 앱들은 동일한 공격앱을 드랍하며 공격앱을 설치하는 코드도 동일한 특징이 있습니다. 더블어 동일한 스트링 데이터를 가지고 있습니다.


다음 그림은 코드 & 데이터 특징 2번에 대한 내용을 정리한 것입니다.


그림 5. 코드 & 데이터 특징 2번


코드 & 데이터 특징 2번은 드랍 되거나 다운로드 되는 앱에서 수집 되었으며 일부 단독으로 동작하는 앱에서도 특징 2번이 수집되었습니다. 특징 2번은 3가지 유형으로 나뉘어 있으나 클래스의 이름만 다를 뿐 코드 내용이 대동소이 합니다. 


이는 다운로드 하는 추가 모듈과 스트링 정보가 같다는 점으로도 쉽게 알 수 있습니다. 그리고 특징 2-3의 경우 오픈소스인 CallRecorder의 코드일부를 차용하여 사용하고 있다는 점이 특징입니다. 


CallRecorder는 통화 녹음 기능을 구현하고 있는 오픈소스로 통화 녹음을 설정에 따라 자동으로 처리하는 기능을 가지고 있습니다.


특징 2번은 실질적인 악성행위 코드로 구성되어 있습니다. 이런 이유로 꾸준하게 재사용되고 있음을 히스토리(그림 3)를 통하여 알 수 있습니다. 히스토리(그림 3)를 살펴보면 다수의 드랍앱에 특징 2번이 사용되었고 단독으로 실행 되는 일부 앱에서도 특징 2번이 발견되는 것을 알 수 있습니다.


수집 데이터 분석


공격앱 들의 연관성에서는 공격 앱들을 분석하여 연관성을 알아보았다면 지금부터는 C2에서 수집된 데이터를 분석해보고 이를 통해 금성121과의 연관성을 알아보도록 하겠습니다.


공격앱들이 사용하는 C2 중 dropbox의 특정 폴더에서 공격 앱들을 테스트한 데이터가 발견되었습니다. 


이 테스트 데이터에는 공격앱 제작자의 것으로 추정되는 이메일 계정과 카카오톡 프로필 정보, 그리고 공격에 사용된 익스플로잇 코드 등이 발견되었으며 다른 폴더에서는 피해자들의 민감한 개인정보가 다수 발견되었습니다. 수집된 데이터들을 살펴 보고 데이터의 특징과 이에 따른 공격자 정보 등을 살펴 보도록 하겠습니다.


다음 그림에 표기된 토큰으로 접근한 dropbox에서 공격자의 test 폴더가 발견되었습니다. 폴더 내 파일들의 이름은 기기를 식별하기 위한 식별 번호로 DeviceID를 사용하고 있습니다.

 


그림 6. C2인 dropbox내의 테스트 폴더


test 폴더 내 파일들은 기기 정보, 명령 리스트, 피해자 계정이 포함된 프로필 정보 그리고 문서 파일 등의 데이터 파일들입니다. 


test 폴더 내의 다양한 파일들을 분석하던 중 공격자의 테스트 기기에서 전송한 데이터로 추정되는 내용이 발견 되었습니다. 해당 파일에는 공격자의 것으로 추정되는 이메일 계정이 있었으며 검색엔진을 통하여 이를 확인할 수 있었습니다. 


그리고 test 기기의 DeviceID(358506075293260)와 같은 파일이 다른 폴더(토큰이 다름)에도 존해 하여 DeviceID가 같은 파일을 수집하여 분석을 진행하였습니다. 해당 파일들에는 금성121과 연관된 데이터가 다수 발견 되었으며 자세한 내용은 위협 인텔리전스 리포트에서 확인 하실 수 있습니다.



코드 분석


코드 분석에서는 앞서 분류한 스파이앱들의 분류 중 코드 & 데이터특징 1, 2번 앱을 분석하였습니다.


SamsungApps 

Hash : 948f1d50d1784908ece778614315a995

앱명 : SamsungApps

패키지명 : com.android.systemservice

코드특징 : 코드 & 데이터특징 1


그림 7. 삼성앱스의 실행 흐름 개념도


위 그림은 SamsungApps의 동작 흐름 개념도입니다. 해당 앱은 드랍퍼로 실제 악성 행위를 담당하는 앱을 드랍하는 코드를 가지고 있습니다. 


최초 드랍퍼의 설치는 삼성폰의 취약점(CVE-2015-7888)을 활용하여 설치됩니다. 드랍앱은 초기에 기기정보를 등록하고 cmd와 추가모듈(dex)을 다운받아 cmd에 정의된 대로 악성행위를 수행합니다. 



그림 8. APK내 드랍앱


해당앱의 assets 폴더내에 드랍되는 apk 파일이 존재하며 이 apk파일이 실제 악성행위를 수행합니다.


 

그림 9. 드랍앱 설치 코드


위 코드는 공격앱을 드랍하고 설치하는 코드입니다.


▶ 드랍앱 분석

Hash : 19a06965edc7b86f7b63d5a86b927a87

앱명 : SystemService

패키지명 : com.android.systemservice

C2 : YANDEX

코드특징 : 코드 & 데이터특징 2-1



그림 10. C2인 Yandex 주소


위코드는 드랍앱이 yandex와 통신하기 위한 Yandex 주소입니다. 



그림 11. 기기 정보 업로드 코드


위코드는 기기 정보를 업로드하기 위한 코드입니다. 기기의 세부적인 정보를 수집하고 있다는 것을 알 수 있습니다. 이렇게 수집되는 정보를 기반으로 각 기기를 식별하고 데이터를 분류하기 위한 자료로 쓰입니다.



그림 12. 공격자 코맨드 추출 코드


위는 cmd 파일을 다운 받은 후 코맨드 정보를 추출하여 적절한 정보로 변환 후 코맨드에 따라 앱을 설정합니다.



 

그림 13. 추가 모듈 다운로드 코드


위는 추가 모듈을 다운받는 코드입니다. 


 

그림 14. 추가 모듈 로딩 및 실행 코드


위 그림은 다운로드 받은 추가 모듈을 로딩 후 실행하는 코드입니다.

Custom.dex는 SamsungApps가 다운로드 받는 것과는 다른 버전으로 일부 메소드의 이름이 다르지만 기능은 대동소이 합니다.



그림 15. 추가 모듈의 코드 내용


각 메소드는 수집 데이터에 따라 나뉘어 있으며 각각의 파일로 저장이 됩니다. 이후 업로드시에 암호화하여 클라우드 서버에 저장됩니다.


ESRC에서는 “Operation Blackbird”로 명명하고 작년 하반기부터 금성121이 유포하는 스파이앱을 지속적으로 수집 및 분석하고 있으며 지속적인 추적과 연관성 분석을 수행하고 있습니다.


추가적인 내용들은 ‘쓰렛 인사이드(Threat Inside)’를 통하여 확인하실 수 있습니다. 더불어 ‘쓰렛 인사이드(Threat Inside)’에서는 체계적인 위협정보(IoC)와 전문화된 인텔리전스 리포트 서비스를 제공할 예정입니다.






티스토리 방명록 작성
name password homepage