brunch

You can make anything
by writing

C.S.Lewis

by 시류아 Jun 07. 2019

Triada, 지능적인 안드로이드 대상 트로이목마

점점 발견하기 힘들어지고 있는 안드로이드 대상 악성코드(멀웨어)

 구글 온라인 보안 블로그에 안드로이드 보안 관련하여 매우 재미있게 읽을 수 있는 글이 하나 올라왔습니다. PHA Family Highlights : Triada 란 제목으로, 지난 2016년 카이퍼스키(Kaspersky) 랩을 통해서 최초로 공개된 Triada 란 트로이 목마에 대해서 그동안 어떻게 변화해 왔으며, 구글은 이에 대해서 어떻게 대응했는지에 대한 글이 기재되었습니다. 오늘은 이 내용을 바탕으로 간단하게나마 Triada 가 무엇인지 한 번 알아볼까 합니다.



글을 시작하기 앞서서..

본 글은 영문을 의역하여 정리하다 보니 다소 틀릴 수 있습니다.

틀린 부분을 발견하셨다면 어디가 틀렸다고 친절하게 말씀해주시면 감사하겠습니다.







알고 넘어가자! PHA란?


PHA는 Potentially Harmful Application의 약자로 잠재적으로 유해한 애플리케이션을 이야기합니다. 구글은 총 14가지의 범주를 바탕으로 유해한 앱을 정의하고 Google Play Protect를 통해서 대응하고 있습니다.


자세히 알아보기 : https://developers.google.com/android/play-protect/phacategories





Triada란 무엇인가?


 Triada는 2016년 카이퍼스키 랩 블로그를 통해서 처음 공개된 안드로이드 장치에서 동작하는 트로이 목마입니다. su 바이너리를 설치하여 안드로이드 기기에서 루트 권한을 획득하고 이후 Triada 제작자에게 이익이 가는 행동을 진행합니다.


 이 트로이목마는 다운로드 및 설치가 진행되면 모델명, OS 버전, 저장 공간 크기, 설치된 앱 목록 및 시스템 정보 등 기기의 정보를 수집하여 C&C(Command & Control)로 전송하고, 이후 장치의 식별 번호 및 각종 설정을 포함하는 구성 파일과 모듈을 다운로드해서 설치를 진행합니다.


 이렇게 설치된 모듈은 사용자에게 광고 노출, 백그라운드 상에서 광고 표시, 프로그램 인앱 구매 시 SMS를 사용하는 경우 이를 탈취하여 수익 가로채기, 4개의 웹 브라우저[AOSP(com.android.browser), 360 Secure(com.qihoo.browser), Cheetah(com.ijinshan.browser_fast), Oupeng(com.oupeng.browser)]에 코드를 삽입, 페이지에 표시되는 광고 배너를 변경하여 Triada 제작자에게 이익이 되는 광고로 변경 등을 통해서 Triada 제작자가 수익을 얻을 수 있도록 동작합니다.


 문제는.. Triada가 이러한 동작을 진행되는 것을 감지하기 어려웠으며, 이에 따라서 발견이 쉽지 않았다고 합니다.





왜 감지하기 어려운가?


출처 : 카이퍼스키 랩


 Triada 같은 경우 동작을 시작하게 되면 모든 애플리케이션을 빠르게 구동하기 위해 미리 Fork 시켜놓는 안드로이드 핵심 프로세스인 Zygote Process를 수정, 실행 중인 프로세스 및 설치된 애플리케이션 목록에서 Triada와 관련된 것을 모조리 숨김 처리하여, 시스템상에서 실제로 이상한 프로세스가 동작하고 있는 것을 확인 불가능하게 만들어 감지 영역에서 회피합니다.





2016년 공개된 이후 어떻게 변화했는가?


출처 : 구글 온라인 보안 블로그


 구글은 2017년 여름(약 7월 경) Triada가 새로운 버전에서 변화가 있는 것을 발견했습니다. su 권한을 획득하는 것이 어려워짐에 따라서 사전에 안드로이드 프레임워크에 설치된 백도어 형태로 변화되었으며, 특정한 함수를 수정하여 해당 함수를 호출할 때마다 추가적인 코드가 실행되는 형태로 바뀌었습니다.


 그리고 Google Play 앱을 변조, 알 수 없는 출처에 대한 설치를 허용하지 않아도 모든 앱이 바로 설치될 수 있도록 바꾸었으며, Google Play에서 설치한 것과 동일하게 인식하도록 만들어서 동작했습니다.





가장 큰 문제는 감염경로



출처 : 구글 온라인 보안 블로그


 Triada가 변형된 이후 가장 큰 문제점은 감염경로입니다. 왜냐하면, 사용자의 비정상적인 설치를 통해서 Triada가 감염된 것이 아니라, OEM 제조사에서 시스템 이미지를 만들기 위해 서드파티 벤더와 협력하는 과정에서 감염이 이루어졌습니다.


 즉, OEM 제조사에서 서드파티 벤더와의 협력을 통해서 특정한 기능을 추가하기 위해 시스템 이미지를 주고받고 하는 과정에서, 서드파티 벤더가 기능을 추가하여 새롭게 만들어낸 시스템 이미지에서 Triada가 비활성화 상태로 포함되고, 이 상태로 OEM 제조사에게 감염된 시스템 이미지가 전달되고, 이것이 배포되면서 디바이스 감염이 이루어졌습니다.





구글은 어떻게 대응했는가?


 변형된 Triada의 확산을 줄이고 감염을 제거하기 위해 구글은 OEM 제조사들과의 협력을 진행했습니다. 보안 지침(보안패치)을 제공하고 이를 바탕으로 OTA(Over-the-Air)를 제공,  이를 통해서 Triada의 확산을 줄이고 감염을 제거했습니다.


 그리고 BTS(Build Test Suite)를 통해서 시스템 이미지에 대한 감염이 없도록 철저한 보안 검토를 수행하고, Google Play Protect를 통해서 Triada 및 Triada 관련 애플리케이션 중 알려져 있는 버전에 대해서 계속 추적하여, 사용자의 기기에 설치되는 경우를 방지하고 혹여나 설치되어있다면 삭제를 진행하고 있습니다.





마치며..


 구글 온라인 보안 블로그에 적힌 내용의 마지막 부분을 보게 되면 다음과 같은 내용이 적혀있습니다.

The Triada case is a good example of how Android malware authors are becoming more adept.
This case also shows that it’s harder to infect Android devices, especially if the malware author requires privilege elevation.

Triada 사례는 안드로이드 대상 악성코드 작성자가 더욱 숙달되는 방식의 좋은 예입니다.
이 경우 특히 안드로이드 대상 악성코드 작성자가 권한 상승을 요구하는 경우, 안드로이드 기기를 감염시키는 것이 어렵다는 것을 보여줍니다.

출처 : 구글 온라인 보안 블로그


 즉, 이번 Triada 사례는 두 가지 양면성을 보여주고 있습니다. 


 가장 먼저 떠오르는 부정적인 요소만 놓고 생각해보게 되면, 안드로이드 대상 악성코드가 점점 지능적으로 변화되었고, 이제는 시스템 위 · 변조까지 진행해서 쉽게 발견할 수 없는 상태가 되고 있어서 걱정이 될 수밖에 없습니다.


 하지만 반대로 생각해봅시다. 이번 Triada 같은 경우 감염 경로가 사용자 단에서 su 권한 탈취가 아닌, 시스템이 만들어지는 과정에서 서드파티 벤더에서 기능을 추가하는 과정에서 감염이 발생되었습니다. 이는 시스템이 만들어지는 과정에서 끼워 넣지 않는다면, 아무리 오픈소스로 공개되어있는 안드로이드라도 악성코드 감염이 어려울 정도로 보안이 철저하다는 것을 증명하고 있습니다.


 정말이지.. 생각할수록 걱정과 안도감을 동시에 주고 있는 참 웃픈 사례입니다.





참고한 글

https://security.googleblog.com/2019/06/pha-family-highlights-triada.html

https://www.kaspersky.com/blog/triada-trojan/11481/

https://securelist.com/everyone-sees-not-what-they-want-to-see/74997/

https://news.drweb.com/show/?i=11390&lng=en

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari