제목 그대로 ARE 환경을 소개 하려는 글이다. 현재 Android 악성 App을 분석할 수 있게 도와주는 여러 도구들은 꽤 많이 배포되고 업데이트 되고 있다. 하지만 이 대부분의 도구들을 하나의 환경에서 설치하고 실행하기란 여간 귀찮고 까다로운일이 아닐 수 없다. 이러한 작업들을 Honeynet에서 대신해주었다. 바로 지금부터 소개할 ARE 프로젝트이다. ARE 프로젝트는 여러가지의 Android 악성 App 분석 도구들을 하나의 OS, 즉 ubuntu에 모아 설치하여 분석가에게 편의를 제공하는 프로젝트이다.

이러한 환경은 오라클에서 개발하고 배포하는 무료 가상 소프트웨어 Virtual Box 이미지로 배포되고 있다.


프로젝트 및 다운로드 주소 : http://redmine.honeynet.org/projects/are/wiki


해당 환경에 설치 된 도구들은 다음과 같다.



일단 ARE 환경은 tar로 압축되어 배포 되고 있는데 압축을 해제 한 후 로딩하여 보면(로그인 패스워드는 android) 다음과 같이 Main 화면을 볼 수 있다.


[그림 1 - ARE Main]


처음에 환경을 로딩하고 나서 수정해주어야 할 점이 있다. 바로 adb 명령 path 설정이다. 왜 설정이 안되어 있는지는 모르겠지만 일단 adb 설정이 안되어 있으면 DroidBox 등을 실행 할 경우 굉장히 귀찮아진다.(소스 수정까지 해야 한다.)


그렇기 때문에 아래와 같이 수정을 해주어야 한다.


터미널을 Open 한 후 


#vi .bashrc


/home/android/tools/android/android-sdk-linux_x86/tools/

/home/android/tools/android/android-sdk-linux_x86/platform-tools/


위 두가지를 PATH에 추가한다. 아래 처럼!



[그림 2 - 환경변수 PATH 수정]


export 명령을 사용해도 되지만 부팅 시 export 명령으로 한 설정은 사라지기 때문에 이렇게 설정하는 것이다.


그리고 sdk를 업데이트 해주어야 한다. 아무래도 프로젝트가 현재 진행이 되질 않다보니 환경에 있는 안드로이드 에뮬레이터 또한 최신 버전등이 없다. 


#/home/android/tools/android/android-sdk-linux_x86/tools/android update sdk


위 명령을 실행하게 되면 다음과 같이 SDK Manager 대화상자가 나오고 업데이트 해야 할 목록들이 나오게 된다.



[그림 3 - SDK Manager]


업데이트 할 목록들을 선택하여 Accept를 해주어도 되고 모두 설치하려면 Accept All을 클릭해주고 Install 버튼을 누르면 된다.


이제 분석할 환경설정이 모두 끝이 났다. 간단하게 DroidBox를 통해 동적분석을 수행해 보자.


 * 참고 : 사용자 홈 디렉토리의 하위 디렉토리인 tools 디렉토리에 분석 도구들이 설치되어 있다.


DroidBox는 Apk 파일을 Sandbox 환경에서 실행시켜 어떤 동작을 하는지 모니터링 한 후 그 결과를 사용자에게 출력하여 준다. 정적분석을 할 때 만약 암호화 되어 있는 주소나 포트등이 있다고 하더라도 결국 동적 분석에서 모두 알 수 있다. DroidBox는 기본적으로 다음과 같은 행동들을 모니터링 한다.


  • Incoming/outgoing network data
  • File read and write operations
  • Started services and loaded classes through DexClassLoader
  • Information leaks via the network, file and SMS
  • Circumvented permissions
  • Cryptography operations performed using Android API
  • Listing broadcast receivers
  • Sent SMS and phone calls

대부분 악성 App이 하는 악성 행동만을 모니터링 한다.

일단 DroidBox는 안드로이드 에뮬레이터를 이용하기 때문에 DroidBox 디렉토리 안에 있는 startemu.sh로 에뮬레이터를 실행 시켜준다.

[그림 4 - startemu.sh]


Android21은 AVD 이미지 이름으로 /home/android/.android/avd 에 존재한다. 그래서 이전에 에뮬레이터 버전들을 업데이트 해 준것이다. SDK Manager를 실행하여 에뮬레이터 이미지를 생성하여 주면 여러 버전에서 App를 테스트하여 볼 수 있다.

에뮬레이터가 정상적으로 실행 됬다면 droidbox.sh를 실행하여 준다.

#./droidbox.sh sample.apk

이 명령으로 실행하여주면 아래와 같이 분석을 수행한다.

[그림 5 - DroidBox 분석화면]


분석결과가 실시간으로 출력되지는 않는다. Collected~ 문자열에서 숫자는 모니터링 한 로그 수를 의미하는데 이 로그가 높으면 높을 수록 조금 더 정확한 결과와 많은 결과를 얻을 수 있다. 필자가 테스트 해 본 결과 80~85 로그수가 제일 적당하다. 100이상을 넘어가면 터미널 창에서 모든 결과가 보이지 않아 다시 실행해야 하는 낭패를 볼 수 있다. 아니면 > 를 이용하여 출력화면을 저장해도 좋다. 


아래는 잠깐의 분석을 통해 나온 결과이다.


[Info]

     ------

        File name: sample.apk

        MD5: c3a0f5d584cc2c3221bbd79486578208

        SHA1: 81781c90e79bf19ea0acb67df6b9bf636a520367

        SHA256: c6eb43f2b7071bbfe893fc78419286c3cb7c83ce56517bd281db5e7478caf995

        Duration: 578.77789402s



     [File activities]

     -----------------


        [Read operations]

        -----------------

           [149.832055092] Path: /data/data/com.android.calendar/shared_prefs/_has_set_default_values.xml(

            Data: <?xml version='1.0' encoding='utf-8' standalone='yes' ?>

<map>

<boolean name="_has_set_default_values" value="true" />

</map>




        [Write operations]

        ------------------


     [Crypto API activities]

     -----------------------


     [Network activity]

     ------------------


        [Opened connections]

        --------------------

           [43.371598959] Destination: incorporateapps.com Port: 80


        [Outgoing traffic]

        ------------------

           [43.7593550682] Destination: incorporateapps.com Port: 80

            Data: POST /wat.php HTTP/1.1

Content-Length: 284

Content-Type: application/x-www-form-urlencoded

Host: incorporateapps.com

Connection: Keep-Alive

User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)

Expect: 100-Continue





        [Incoming traffic]

        ------------------


     [DexClassLoader]

     -----------------

     [Broadcast receivers]

     ---------------------

     [Started services]

     ------------------

     [Enforced permissions]

     ----------------------


     [Permissions bypassed]

     ----------------------


     [Information leakage]

     ---------------------

           [56.98290205] Sink: Network

            Destination: incorporateapps.com

            Port: 80

            Tag: TAINT_IMEI

            Data: SECOND_TABLE=0&imei=357242043237517&timestamp=1336213509&phoneinfo=System+-+generic%2Fgeneric%2Fgeneric%2F%3A2.1-update1%2FEPE54B%2Feng.pjlantz.20110606.044729%3Aeng%2Ftest-keys%0AModel%3A+unknown-GT-I9000-Samsung+GT-I9000%0A+Brand%3ASamsung+%0AOSVers%3A2.1-update1+Locale%3Aen_US+%0A


     [Sent SMS]

     ----------


     [Phone calls]

     -------------


어떠한 행동을 하는지 확인되었다면 그만큼 정적 분석은 쉬워질 것이다. 왜 File 을 Write하고 정확히 유출하는 정보는 무엇인지 정적분석을 통해 알아내면 된다.

'[+] Information > [-] RCE' 카테고리의 다른 글

소소한 Unpacking TIP  (8) 2013.01.09
ARE(Android Reverse Engineering) 환경 소개  (5) 2012.05.05
Oter : Android Revese Engineering Tool  (8) 2012.01.30
PE 구조 (8)  (0) 2012.01.01
PE 구조 (7)  (0) 2012.01.01
  1. Favicon of https://extr.tistory.com BlogIcon extr 2013.03.05 23:16 신고

    잘봤습니다 ㅎㅎ

  2. Android 2014.04.04 00:56

    안녕하세요. 설치하는데 굉장히 시간이 오래 걸리던데, 설치 후 tar 로 압축만 풀면 진행이 되나요?..
    저 같은 경우 압축 푸니깐 파일 두개가 생기던데...어디서 잘못되었는지 모르겠내요.

    virtual box는 따로 설치를 해야하는건가요?...

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2014.04.04 11:16 신고

      버츄얼박스는 따로 설치하셔야 하고, tar 파일을 풀면 버츄얼 박스 이미지 파일들이 나옵니다.

  3. Favicon of https://roomb16.tistory.com BlogIcon 포착 2016.05.24 00:25 신고

    덕분에 잘 설치했습니다. 감사합니다!

Toorcon2011 에서 발표된 안드로이드 리버싱 툴 입니다.(관련기사 :  http://www.dailysecu.com/news_view.php?article_id=1567)

파일을 올리려고 했으나 티스토리 파일 업로드 제한 크기인 10MB를 조금 넘어 다운로드 링크를 걸어 둡니다.

링크가 죽었거나 하면 댓글 남겨주세요. 보내드리겠습니다.


위 이미지는 Mac OS X Lion으로 돌렸을 때의 인터페이스 입니다.

다운로드 URL :  http://otertool.com/toorcon2011/

'[+] Information > [-] RCE' 카테고리의 다른 글

소소한 Unpacking TIP  (8) 2013.01.09
ARE(Android Reverse Engineering) 환경 소개  (5) 2012.05.05
Oter : Android Revese Engineering Tool  (8) 2012.01.30
PE 구조 (8)  (0) 2012.01.01
PE 구조 (7)  (0) 2012.01.01
  1. 2012.08.13 20:00

    비밀댓글입니다

  2. 2012.10.18 19:59

    비밀댓글입니다

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2012.12.07 20:43 신고

      답변이 너무 늦었군요 ㅠㅠ ...

      그나저나 메일이 어디에 있는걸까요 ㅎㅎ;

  3. 2012.12.30 20:23

    비밀댓글입니다

  4. Favicon of https://asecbug.tistory.com BlogIcon Asecbug 2012.12.31 11:42 신고

    감사합니다 :) 새해복 많이받으세요 ^^

  5. 2016.02.03 09:58

    비밀댓글입니다


배포는 자유, 수정은 금물.

'[+] Information > [-] RCE' 카테고리의 다른 글

PE 구조 (2)  (0) 2011.12.29
PE 구조 (1)  (0) 2011.12.29
Lena's Tutorial 11 상세 분석  (0) 2011.10.13
Lena's Tutorial 9 상세 분석  (0) 2011.10.12
Lena's Tutorial 8 상세 분석  (0) 2011.10.11


배포는 자유 수정은 금물.

'[+] Information > [-] RCE' 카테고리의 다른 글

PE 구조 (1)  (0) 2011.12.29
Lena's Tutorial 11 상세 분석  (0) 2011.10.13
Lena's Tutorial 9 상세 분석  (0) 2011.10.12
Lena's Tutorial 8 상세 분석  (0) 2011.10.11
Lena's Tutorial 7 상세분석  (0) 2011.10.10


배포는 자유 수정은 금물.


'[+] Information > [-] RCE' 카테고리의 다른 글

Lena's Tutorial 9 상세 분석  (0) 2011.10.12
Lena's Tutorial 8 상세 분석  (0) 2011.10.11
Lena's Tutorial 7 상세분석  (0) 2011.10.10
Lena's Tutorial 4 상세분석  (0) 2011.10.08
Lena's Tutorial 3 상세분석  (0) 2011.10.08

+ Recent posts