Computer Science%/Mobile App

안드로이드 앱 진단

ch4rli3kop 2017. 11. 11. 20:46
반응형

안드로이드 앱 진단 과정에 대해 정리하기 위한 글이다. SUA 활동을 진행하면서 얻은 지식들을 토대로 작성할 것이다.


먼저, 안드로이드 앱 진단에 필요한 사전 준비를 할 필요가 있다. 필요한 프로그램들은 다음과 같다.


  • adb
  • frida
  • fridump
  • apktool
  • signapk
  • jeb
  • wingrep
  • wireshark
  • burp suite

각 도구들이 어떻게 이용되는지 간단하게 설명해보자.



adb : Android debug bridge 라는 것의 약자인데, 이 도구를 이용하여 PC에서 안드로이드에 접속하여 원하는 작업을 수행하도록 할 수 있다.



frida : frida는 DBI(Dynamic Binary Instrumentation)이라고도 하는 동적 바이너리 조사를 가능하게 해주는 도구이다. 기존 앱의 바이너리에 자바스크립트의 어떤 스니펫(코드 모음)이나 사용자의 라이브러리를 삽입(Inject)하여 파이프를 만들고, 그 파이프를 통해 명령을 주고 받으면서 바이너리를 조사한다. 다른 방법으로도 사용할 수 있다고 하는데, 잘 설명해주신 사이트가 있으니 참고하도록 하자. frida 공식 홈페이지도 같이 올린다. 튜토리얼과 예제들이 있으니 많은 도움이 될 것이다. 

http://hyunmini.tistory.com/94 (참고)

https://www.frida.re/docs/home/ (frida 공식 홈페이지)



fridump : 메모리를 덤프하는 오픈 소스 도구로, 프리다 프레임워크(frida framework)를 사용한다. 그냥 메모리를 덤프할 때 사용한다고 생각하면 될 것 같다.

http://pentestcorner.com/introduction-to-fridump/ (fridump 소개)

https://github.com/Nightbringer21/fridump (fridump 다운)




apktool : 앱의 리버스 엔지니어링을 위해 개발된 도구로, 앱을 디컴파일 및 빌드(재패키지)를 가능하게 한다. 앱을 분석하고 만들 때 많이 사용한다. 다음의 사이트에서 최신 버전의 도구를 다운로드 받을 수 있다.

https://ibotpeaches.github.io/Apktool/



signapk : 안드로이드는 모든 apk 파일을 설치하기 전에 디지털 서명을 요구한다. 이에대한 서명이 이루어지지 않았을 경우, 정상적으로 설치를 진행할 수 없다. 서명이 존재해야 안드로이드는 이 apk에 대한 업데이트같은 수정사항들이 원래 작성자에 의해 이루어진 것임을 알 수 있다. signapk는 디지털 서명이 없는 apk에 이러한 디지털 서명을 해줄수 있는 도구이다.



jeb : jeb은 뭐 안드로이드에 대한 ida? 정도로 생각하면 될 것 같다. 강력한 디컴파일 능력으로 리버싱을 가능하게 해준다. 자세한 사항은 다음의 홈페이지에서 참고하면 좋을 것 같다. 

https://www.pnfsoftware.com/



wingrep : 이 도구를 간단하게 설명하자면, 내가 찾고자 하는 문자열이 존재하는 파일을 찾아주는 프로그램이다. 메모리를 덤프하고 나서, 분석할 때 사용한다. 유용하게 잘 쓰고 있다. 다음의 사이트에서 다운로드가 가능하다.(freeware이다.) 

http://download.cnet.com/Windows-Grep/3000-2351_4-75805915.html



wireshark : 앱의 송수신시, 패킷을 살펴보는데 사용한다. (워낙 유명하니 따로 설명하지는 않겠다.)



burp suite : 앱의 서버와 통신할 때, 입력 값 검증이나 사용자 식별 정보를 조작하여 취약 여부를 확인할 때 사용한다. (사실 이 부분에 대한 지식이 부족하다. 많은 가르침 바람. 프록시 설정하기 까다롭다,,)



의 도구들 뿐만 아니라 필요에 의해서 더 많은 도구들이 사용 될 수 있다. 



반응형