$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

DEX와 ELF 바이너리 역공학 기반 안드로이드 어플리케이션 호출 관계 분석에 대한 연구
Android Application Call Relationship Analysis Based on DEX and ELF Binary Reverse Engineering 원문보기

情報保護學會論文誌 = Journal of the Korea Institute of Information Security and Cryptology, v.29 no.1, 2019년, pp.45 - 55  

안진웅 (숭실대학교) ,  박정수 (숭실대학교) ,  응웬부렁 (숭실대학교) ,  정수환 (숭실대학교)

초록
AI-Helper 아이콘AI-Helper

DEX 파일과, SO 파일로 알려진 공유 라이브러리 파일은 안드로이드 어플리케이션의 행위를 결정짓는 중요한 구성요소이다. DEX 파일은 Java 코드로 구현된 실행파일이며, SO 파일은 ELF 파일 형식을 따르며 C/C++와 같은 네이티브 코드로 구현된다. Java 영역과 네이티브 코드 영역은 런타임에 상호작용할 수 있다. 오늘날 안드로이드 악성코드는 지속적으로 증가하고 있으며, 악성코드로 탐지되는 것을 회피하기 위한 다양한 우회 기법을 적용한다. 악성코드 분석을 회피하기 위하여 분석이 어려운 네이티브 코드에서 악성 행위를 수행하는 어플리케이션 또한 존재한다. 기존 연구는 Java 코드와 네이티브 코드를 모두 포함하는 함수 호출 관계를 표시하지 못하거나, 여러 개의 DEX을 포함하는 어플리케이션을 분석하지 못하는 문제점을 지닌다. 본 논문에서는 안드로이드 어플리케이션의 DEX 파일과 SO 파일을 분석하여 Java 코드 및 네이티브 코드에서 호출 관계를 추출하는 시스템을 설계 및 구현한다.

Abstract AI-Helper 아이콘AI-Helper

DEX file and share objects (also known as the SO file) are important components that define the behaviors of an Android application. DEX file is implemented in Java code, whereas SO file under ELF file format is implemented in native code(C/C++). The two layers - Java and native can communicate with...

주제어

표/그림 (7)

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 본 논문에서는 안드로이드 어플리케이션의 DEX(Dalvik EXecutable) 파일과 ELF(Executable and Linkable Format) 파일 구조 및 어플리케이션을 분석하기 위한 리버스 엔지니어링 툴과 기존 연구에 대해 소개하고, 기존 연구의 한계점을 보완하고 자바 코드와 네이티브 코드를 포함하는 정적 분석을 통해 함수의 호출관계를 추출하는 시스템을 제안 및 구현한다.
  • 본 논문에서는 자바 코드로 구현된 DEX 파일과 네이티브 코드로 구현되는 SO 파일에 대해서 정적 분석을 수행하여 자바 코드와 네이티브 코드 모두를 포함하여 함수 호출 관계를 추출할 수 있는 시스템을 제안 및 구현하였다. 기존 연구에서는 악성 앱 분석 시 자바 코드 혹은 네이티브 코드를 개별로 분석한다는 문제점을 지녀, 자바 코드와 네이티브 코드에서 상호간 민감 정보가 전달되는 경우 분석에 어려움이 존재하였다.
  • 2장에서 기존 연구에선 안드로이드 어플리케이션의 네이티브 코드에 대한 분석이 불가능하거나 DEX 파일이 다수인 경우, 분석이 불가능한 한계를 설명하였다. 본 논문에서는 자바 코드로 구현된 DEX 파일에 대한 정적 분석을 진행할 수 있는 분석 프로그램을 설계하고, 네이티브 코드로 구현된 ELF 파일 형식의 SO 파일에 대한 정적 분석을 진행하여 자바 코드와 네이티브 코드를 모두 포함한 함수 호출 관계를 분석하는 프로그램을 설계한다.
  • 스마트폰에서 사용하는 안드로이드 운영체제는 대부분 ARM 아키텍처를 채택하였으므로 네이티브 코드는 일반적으로 ELF 파일 형식의 Arm instruction 기반 SO 파일로 저장된다. 본 절에서는 안드로이드 DEX 파일과 SO 파일을 정적 분석할 수 있는 툴과 기존 연구에 대해 소개한다.
  • DroidSafe[9]는 안드로이드 어플리케이션에서 악성 코드를 확인하고 제거하는 기술에 대한 연구이다. 안드로이드 어플리케이션의 소스코드 혹은 자바 바이트코드를 통해 앱의 흐름을 분석하는 정적 분석에 대한 연구이다. AndroidManifest.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
정적 분석이란? 악성 어플리케이션을 분석하는 방법으로 정적 분석과 동적 분석 두 가지 방법이 있다. 정적 분석은 안드로이드 어플리케이션 파일을 실제로 실행하지 않고 분석하는 방식으로, 바이트코드 혹은 디컴파일 된 소스코드를 이용하여 분석을 진행한다. 바이트코드를 이용한 분석 시, apk 파일을 디컴파일하여 AndroidManifest.
악성 어플리케이션을 분석하는 방법으로 어떤 방법이 있는가? 이에 따라 안드로이드 악성 어플리케이션의 분석에 대한 중요성이 높아지고 있다. 악성 어플리케이션을 분석하는 방법으로 정적 분석과 동적 분석 두 가지 방법이 있다. 정적 분석은 안드로이드 어플리케이션 파일을 실제로 실행하지 않고 분석하는 방식으로, 바이트코드 혹은 디컴파일 된 소스코드를 이용하여 분석을 진행한다.
바이트코드만으로 악성 어플리케이션을 분석하면 한계는? dex 파일을 분석하여 악성 행위를 탐지한다. 그러나 최근 지능화된 일부 악성 어플리케이션은 분석이 어려운 네이티브(native) 코드로 구현된 SO (Shared Object)파일에서 악성행위를 수행하여 정적 분석을 우회하는 기법이 적용되고 있다. 이에 따라 자바 코드와 네이티브 코드를 모두 분석할 수 있는 시스템이 필요하다.
질의응답 정보가 도움이 되었나요?

참고문헌 (17)

  1. Suman R Tiwari, "A survey of android malware detection technique," Journal of Network Communications and Emerging Technologies (JNCET), vol. 8, no. 4, pp. 332-334, Apr. 2018. 

  2. StateCounter, "Mobile operation market" http://gs.statcounter.com/os-market-share/mobile/worldwide, 2018-09-05. 

  3. McAfee Labs, "mcAfee mobile threat" https://www.mcafee.com/enterprise/en-us/assets/reports/rp-mobile-threat-report-2018.pdf, 2018-09-06. 

  4. McAfee Labs, "mcAfee mobile threat" https://www.mcafee.com/enterprise/en-us/assets/reports/rp-mobile-threat-report-2017.pdf, 2018-09-06. 

  5. dex2jar, "dex2jar github" https://github.com/pxb1988/dex2jar, 2018-09-10. 

  6. apktool, "apktool" https://ibotpeaches.github.io/Apktool, 2018-09-10. 

  7. Smalisca, "smalisca github" https://github.com/dorneanu/smalisca, 2018-09-10. 

  8. Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel, "Flowdroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps," Acm Sigplan Notices, vol.49, no.6, pp. 259-269, Jun. 2014. 

  9. Michael I. Gordon, Deokhwan Kim, Jeff Perkins, Limei Gilham, Nguyen Nguyen, and Martin Rinard, "Information Flow Analysis of Android Applications in DroidSafe," NDSS, vol.15, pp. 110, Feb. 2015. 

  10. Patrik Lantz and Bjorn Johansson, "Towards bridging the gap between dalvik bytecode and native code during static analysis of android applications," Wireless Communications and Mobile Computing Conference (IWCMC), IEEE, pp. 587-593, Aug. 2015. 

  11. Fengguo Wei, Xingwei Lin, Xinming Ou, Ting Chen, and Xiaosong Zhang, "JN-SAF: Precise and Efficient NDK/JNI-aware Inter-language Static Analysis Framework for Security Vetting of Android Applications with Native Code," Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, pp. 1137-1150, Oct. 2018. 

  12. Yan Shoshitaishvili, Ruoyu Wang, Christopher Salls, Nick Stephens, Mario Polino, Andrew Dutcher, John Grosen, Siji Feng, Christophe Hauser, Christopher Kruegel and Giovanni Vigna, "Sok:(state of) the art of war: Offensive techniques in binary analysis," 2016 IEEE Symposium on Security and Privacy, pp 138-157, May. 2016. 

  13. Dalvik Executable format, "DEX format" https://source.android.com/devices/tech/dalvik/dex-format, 2018-09-15. 

  14. Fengguo Wei, Sankardas Roy, and Xinming Ou, "Amandroid: a precise and general inter-component data flow analysis framework for security vetting of android apps," Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, pp. 1329-1341, Nov. 2014. 

  15. Dalvik Bytecode, "dalvik bytecode" https://source.android.com/devices/tech/dalvik/dalvik-bytecode, 2018-09-15. 

  16. Capstone Project, "disassembly framework" https://www.capstone-engine.org, 2018-09-23. 

  17. John Ellson, Emden Gansner, Lefteris Koutsofios, North Stephen C, and Gordon Woodhull, "Graphviz-open source graph drawing tools," In International Symposium on Graph Drawing, Springer Berlin Heidelberg, vol.2265, pp. 483-484, Feb. 2002. 

저자의 다른 논문 :

LOADING...

관련 콘텐츠

오픈액세스(OA) 유형

FREE

Free Access. 출판사/학술단체 등이 허락한 무료 공개 사이트를 통해 자유로운 이용이 가능한 논문

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로