새로운 안드로이드 뱅킹 트로이안 샤크봇(Sharkbot)의 공격 방법과 보안 방안

MaxxHan·2022년 12월 27일
12

LIAPP TECH BLOG

목록 보기
12/12

안티 바이러스 앱인 줄 알았는데 알고 보니 멀웨어?

해킹을 방지하기 위해 다운받은 안티 바이러스 앱, 하지만 이 앱이 오히려 사용자의 모바일 기기에 침투하여 은행 어플들을 조작, 자산을 외부로 송금하는 악성 멀웨어로 밝혀져 논란이 되고 있습니다.
바로 작년 10월 처음 등장하여 현재까지도 구글을 애먹이고 있는 뱅킹 트로이목마 샤크봇(Shark Bot)입니다. 이들은 구글 플레이스토어 등 공식 스토어에서 쉽게 다운받을 수 있었는데요, 사용자의 스마트폰에 설치된 뒤 어느 순간 악성 앱으로 돌변합니다.

샤크봇이 뭔가요?

샤크봇은 2021년 10월 말 보안업체 클리파이(Cleafy)의 Threat Intelligence 팀에서 발견한 차세대 Android 뱅킹 트로이목마입니다. 샤크봇은 모바일 백신 앱, 혹은 일반적으로 많이 쓰이는 앱으로 가장하여 일반적인 이름과 아이콘 형태를 지닙니다.

샤크봇이란 이름은 APK 파일의 바이너리에서 “Sharked”라는 단어를 이용한 것으로 알려졌으며, 악성코드가 설치되면 키로깅, SMS 메시지 가로채기, 오버레이 공격, 원격제어 명령을 수행합니다. 이 어플들은 이미 전 세계적으로 15,000명 이상의 사용자가 다운 받았으며, 대부분의 피해자는 영국과 이탈리아에 있는 것으로 추정됩니다. 구글은 물론 발빠르게 문제가 되는 어플들을 삭제했고, 샤크봇으로 추정되는 다른 어플들도 찾아내 조치했다고 발표했습니다.

하지만 어떻게 구글을 속였을까?

보통 구글 플레이와 같은 공식 스토어에 앱을 등록할 때는 반드시 사전 점검 과정을 거쳐야 합니다. 하지만 샤크봇은 몇 번이나 구글의 눈을 피해 안전한 어플인 것처럼 등록되어 있었습니다. 어떻게 이런 일이 가능했을까요?
분석에 따르면, 샤크봇은 다양한 분석 방해 기능을 가지고 있어 샌드박스 환경을 탐지하거나 해킹 기능의 발동 시간을 자유롭게 조정할 수 있다고 합니다. 그리고 무엇보다도 본격적인 악성 기능은 외부의 C&C 서버에서 추가로 다운로드를 받습니다. 그래서 구글 플레이 스토어의 점검 과정에선 아무런 문제가 발견되지 않았던 것이죠.
외부 C&C 도메인을 자유롭게 변경할 수 있는 도메인 생성 알고리즘(DGA)과, 특정 지역에서는 악성 기능이 발동되지 않도록 설정하는 지오펜스 기능까지 가지고 있어 샤크봇을 잡아내는 것은 굉장히 어렵습니다. 별도의 명령 없이는 멀쩡한 어플인 채로 사용자의 시스템에 잔존할 수 있는 것이죠.

샤크봇의 사용권한 획득 방법

이렇게 사용자의 스마트폰에 다운로드 된 샤크봇은 외부로부터 명령을 받은 순간 본색을 드러냅니다. 샤크봇은 앱 설치 시 다른 유사한 악성코드인 TeaBot, UBEL과 마찬가지로 사용자의 중요 정보를 훔칠 수 있도록 반복적으로 광범위한 권한 부여를 요구하는 악성 팝업을 표시합니다.

사용자의 권한 수락으로 접근성 권한 및 서비스가 활성화되면 샤크봇이 뱅킹 앱을 해킹하는데 필요한 모든 권한(AndroidManifest 파일 내 선언됨)을 얻을 수 있게 됩니다.
이후 샤크봇은 안드로이드의 접근성 서비스 권한을 활용해 정상적인 모바일 뱅킹 앱 위에 오버레이 된 창을 띄워 피해자의 정보를 입력하도록 유도하고 획득한 은행 앱의 로그인 자격 증명을 획득하여 이를 악성 서버로 전송합니다.

샤크봇의 자동 전송 시스템(ATS)

이렇게 입력된 정보는 이메일, 소셜 미디어, 온라인 은행 계정 등에 접근하는데 사용됩니다. 위 그림에 표시된 권한으로 샤크봇은 문자 메시지를 읽거나 보내고, 오버레이 공격 수행이 가능합니다. 특히, REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 권한으로 Android의 doze 구성 요소를 우회할 수 있고 C2서버에 연결되어 악의적인 동작을 계속할 수 있습니다.
이제 피해자의 은행 계좌로부터 외부로 돈이 송금됩니다. 이 과정에서 샤크봇은 장치의 SMS 메시지를 가로채 은행에서 보낸 2FA를 얻는 데 사용할 수 있습니다. 이렇게 공격자가 사기 행위를 위해 새 장치를 등록하지 않아도 되기 때문에 피해자의 은행 계좌로부터 외부로 돈이 송금되어도 자금이 탈취되고 있다는 사실을 탐지하기 어렵습니다.

샤크봇의 회피 기능

또한, 샤크봇에는 안티바이러스 탐지 방지 및 회피 기술도 있습니다. 여기에는 에뮬레이터 검사와 실행, 원격 서버와의 명령 및 제어 통신 암호화, 설치 후 홈화면에서 아이콘 숨기기 등 분석 및 탐지를 피하기 위한 여러 기능이 포함되어 있습니다. 문자열을 난독화하여 정적 분석 속도를 늦추고 멀웨어에서 사용하는 모든 명령과 중요 정보를 모두 숨길 수도 있습니다. 아래는 그 밖의 샤크봇이 사용중인 회피기능을 나열한 것입니다

  • 안티 에뮬레이터 : 악성 프로그램이 디바이스에 설치되면 실제 전화인지 에뮬레이터인지 확인
  • 외부 ATS 모듈 : 설치된 악성프로그램은 C2에서 추가 모듈을 다운로드하며, 외부 모듈은 ATS공격을 수행하는데 사용되는 모든 기능이 포함된 “.JAR”파일로 되어 있음 이 모듈은 샤크봇이 ATS(자동 전송 시스템)모듈의 단락에서 분석
  • 아이콘 앱 숨김 : 악성 프로그램이 설치되면 샤크봇은 앱의 아이콘을 디바이스 화면에서 숨김
  • 삭제방지 : 다른 멀웨어와 마찬가지로 샤크봇도 내게 필요한 옵션 서비스를 이용, 사용자가 설정옵션에서 프로그램을 제거하지 않도록 막음
  • 암호화된 통신 : 멀웨어와 C2사이의 모든 통신은 Base64로 암호화되고 인코딩되며, 이외에도 도메인 생성 알고리즘인 (DGA)를 사용

샤크봇을 탐지, 예방하려면 어떻게 해야할까?

현재까지 샤크봇은 해외 특정 국가들을 대상으로 공격을 시도하기 때문에 국내 사용자들에게 직접적인 영향은 미비할 것으로 보입니다. 또한, 각종 보안업체 및 스토어들이 촉각을 곤두세우고 이를 방어하려 하고 있지만, 더 이상 애플스토어, 구글 플레이 등의 보안을 마냥 신뢰하는 것은 안전하지 않은 방법입니다.
이제 뱅킹을 해킹하려는 악성 앱은 꾸준하게 새로운 버전이 발견되고 있으므로 사용자들은 경각심을 가질 필요가 있습니다. 그렇기 때문에 출처가 불분명하거나 과도한 권한을 요구하는 앱 설치를 피하고 주기적으로 합법적인 백신을 최신 버전으로 업데이트해야 합니다. 또한 개개인이 앱을 다운로드 받을 때 마다 리뷰, 다운로드 수, 개발자 정보를 직접 꼼꼼하게 확인하는 것이 중요합니다. 또한 접근성 서비스에 대한 권한을 요청하는 앱은 특수한 경우가 아니면 일단 의심하고 보는 것이 좋습니다.
또한, 뱅킹 앱을 서비스하는 기업에서도 앱 자체의 보안을 강화하고, 악성 멀웨어를 탐지하고 이를 차단할 수 있도록 사전에 조치를 취해야합니다. LIAPP은 샤크봇으로 알려진 앱을 패턴 감지를 통해 탐지할 수 있습니다. 또한, LIAPP의 오버레이 탐지, 원격 제어 프로그램 감지, 화면 캡쳐 프로그램 방지 등의 기능을 해 샤크봇의 뱅킹앱 해킹을 막을 수 있습니다. 뱅킹 앱을 서비스하시는 기업에서 샤크봇과 관련한 문의로 LIAPP팀에 연락주시면 더욱 상세한 상담을 진행해드리겠습니다.

LIAPP 홈페이지 바로가기

LIAPP, 최상의 서비스만을 제공합니다.

0개의 댓글