티스토리 뷰

지인에게 소개받은 안드로이드 앱 분석 플랫폼(koodous)에 대해 주요 부분을 소개하고자 합니다. 이와 비슷한 플랫폼으로 대표적으로 HybridAnalysis, Malwares.com, Virustotal.com (이름 순)이 있습니다. 현재 BETA 버전으로, 현재 무료 기능이 언젠가는 유료 서비스로 변경될 것으로 예상이 됩니다. Koodous docs에 따르면 Koodous는 방대한 APK 저장소를 통해 분석가 간의 사회적 상호 작용을 결합한 Android 악성코드 연구를 위한 협업 플랫폼이라고 소개합니다. 방대한 기능 중에 제가 흥미로운 몇 가지만 작성해보려고 합니다.

[그림 1]은 무료로 가입(이메일 인증 필요)하면 표시되는 대시보드 화면입니다. 탐지된 샘플의 갯수들과 사용자들이 선택하는 앱의 vote 결과가 표시됩니다.

[그림 1]

 

Koodous에서는 사용자가 룰을 생성 및 관리, 룰에 탐지된 샘플의 알림을 받을 수 있습니다. 해당 기능은 Virustotal Intelligence 서비스에서 Yara룰을 이용해 헌팅하는 기능과 매우 유사한 것으로 보아 어느정도 벤치마킹을 한 것으로 보입니다. (Koodous는 only android); [그림 2]는 각 분석가들이 만든 YARA룰을 확인할 수 있는 Rulesets/Community Rulesets 탭입니다. 해당 탭에 올라온 룰들은 Public 옵션을 지정하면 보여지며, 룰을 생성할 때, Private 옵션을 지정하면 안보인다고 합니다.

[그림 2]

 

@mwhunter님이 작성한 BankBot 룰을 살펴보면, Yara 룰을 기반으로 3개의 모듈이 존재하는 것을 볼 수 있습니다. cuckoo 모듈은 Virustotal에서 만든 모듈이며, cuckoo에서 분석된 로그를 Yara 룰로 탐지할 수 있습니다. file은 모르겠고... androguard 모듈은 Koodous가 독자적으로 만든 것으로, Virustotal Intelligence Service에서도 androguard를 적용(했나?? 모름..)하면 좋을 듯 싶습니다.

룰을 간단하게 해석해보면, 룰 이름은 Trojan(BankBot)으로 지정했으며, meta는 출처 및 룰에 대한 소개를 작성하는 곳으로 룰 실행에 영향을 끼치지 않습니다. strings는 바이너리 내부의 텍스트 및 바이너리를 특정 옵션(nocase 등등)을 지정하여 변수($~~)로 선언할 수 있습니다. 여기서는 $c2_* 변수에 URL 주소의 PATH와 단순 문자열을 선언했습니다.. 최근에는 하드코딩으로 C2 정보, 문자열을 포함하지 않고, 인코딩을 사용해 우회하는데, 해당 룰을 통해 잡고 싶은 악성 앱은 하드코딩으로 작성한 파일로 유추할 수 있습니다.. 드디어 androguard 모듈을 condition(룰 조건)에서 사용합니다. 크게 and 조건으로 $c2로 시작하는 변수가 2개 이상 탐지, android의 permission에 RECEIVE_SMS, READ_SMS가 있으면 해당 룰이 탐지됩니다.

[그림 3]

 

[그림 3]과 같이 [그림 4]에서는 사용자가 룰을 직접 작성할 수 있으며, default로 윤곽을 잡아줍니다.

[그림 4]

 

[그림 5]는 apk의 샘플 중 한 개를 클릭한 것으로, 간략 정보(해시, 탐지 AV, App Package 등)가 표시됩니다. 제일 중요한 것은.. 다운로드가 됩니다. 테스트 및 연구를 진행할 때, 소스가 필요하신 분들에게 좋은 소식이네요.. 안타까운 점은 특정 언어로 작성된 REST API가 없다는 것이 아쉽습니다..

[그림 5]

 

더 많은 정보(사실 많지도 않음)는 https://docs.koodous.com/에서 확인할 수 있습니다.

감사합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함