Post

APKiD for Device

난독화 도구, 패커 등을 식별할 수 있는 디바이스 레벨의 어플리케이션

APKiD for Device

Introduction

오픈소스로 공개된 APKiD 라는 프로젝트가 있다. 이는 apk 가 어떻게 개발되었는지 보안솔루션이나 패커, 난독화 도구 나아가 RASP 솔루션까지 확인할 수 있는 정적 분석 도구이다.

What is that

소프트웨어를 개발할 때 그리고 이걸 뜯어볼 때 APKiD 는 정말 편리하다. 소프트웨어 보호장치를 여러가지 보다보면 비슷한 거 같기도 아닌 거 같은 앱들이 무수히 많다.

이는 기존에 소프트웨어 보호장치에 대하여 분석 결과가 있다면 이를 토대로 알려지지 않은 앱을 분석하지 않아도 기존에 확인된 데이터 셋을 바탕으로 알려지지 않은 앱에 해당 소프트웨어 보호장치가 적용되었는지 확인할 수 있다.

이때 한 가지 불편한 점이 있었는데 apk 를 취할 때 해당 apk 가 실제 디바이스와 다를 수 있다.(버전, 아키텍쳐 등). 또한 다이렉트로 얻은 apk 가 아니라 웹에서 얻은 apk 에는 어떤 코드가 숨어있을지 어떤 것이 숨어있을지 모른다.

그렇다고 매번 확인하고자 하는 앱을 뽑아서 점검하는 것은 정말 번거로웠다.

결과적으로 이를 자동화스럽게 만들 계기가 생겼다. 실제 디바이스에 있는 앱을 APKiD 에 요청하여 분석 결과를 받아볼 수 있는 앱을 만들었다.

이는 살짝 투박하지만 원하는 목적을 달성하기에는 아주 간단하면서 재밌습니다.

단점이라면 공개된 서버에 요청하는 것이 아니라 로컬 서버에 요청하는 것이다. 사용자가 로컬 PC 에 APKiD 에 대한 API 서버를 공개하여 앱에서 해당 서버 IP 를 설정해야 한다는 점이다.

APKiD for Device

IP 를 설정하였으면 앱에서 확인하고 싶은 apk 를 선택하여 업로드하면 된다. 그러면 조금 기다리면 결과를 반환해준다.

Conclusion

추후 파워풀한 LLM 을 추가하여 좀 더 스마트한 인프라를 구축해볼 수 있을 거 같다. 현재는 단순히 정적으로 분석하고 패턴을 찾는 것이지만 무의미한 패턴 속에서도 정형화된 형식을 찾는 방법을 고안해볼 필요가 있을 것 같다.

This post is licensed under CC BY 4.0 by the author.
If you find any errors, please let me know by comment or email. Thank you.

© Ruffalo. Some rights reserved.

I'm

Using the Chirpy theme for Jekyll.