• 제목/요약/키워드: DEX File

검색결과 12건 처리시간 0.02초

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

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

안드로이드 덱스클래스로더 실행흐름 변경을 통한 원본 앱 노출 방지 기법 (A Hiding Original App Method by Altering Android DexClassLoader Execution Flow)

  • 조홍래;최준태;하동수;신진섭;오희국
    • 정보보호학회논문지
    • /
    • 제27권6호
    • /
    • pp.1271-1280
    • /
    • 2017
  • 런타임 실행 압축 기술을 이용하는 안드로이드 패커(packer) 서비스는 덱스클래스로더(DexClassLoader)를 이용하여 원본 어플리케이션으로 전환한다. 하지만 덱스클래스로더의 API 인터페이스는 로드할 덱스(Dalvik EXcutable)의 경로와 컴파일 된 파일의 경로를 입력 받으므로 원본이 파일시스템에 드러나는 문제점이 있다. 따라서 해당 API를 패커 서비스에 그대로 사용하는 것은 안전하지 않다. 본 논문에서는 이 문제를 해결하기 위해 덱스클래스로더 API의 컴파일 흐름과 로드 흐름을 변경하여 해결하였다. 이 변경된 실행 흐름으로 인해 컴파일 된 파일을 암호화하여 파일 시스템에 두거나 메모리에만 존재하도록 하고, 이후 로드할 때 복호화 또는 치환을 하여 원본 앱 전환을 가능하게 한다. 제안하는 기법을 통해 원본 파일이 파일시스템에 노출되지 않음으로써 패커의 안정성이 올라갈 것이라 예상한다.

AES 알고리즘을 사용하여 안드로이드 어플리케이션을 보호하기 위한 견고한 역공학 방지기법 (Robust Anti Reverse Engineering Technique for Protecting Android Applications using the AES Algorithm)

  • 김정현;이강승
    • 정보과학회 논문지
    • /
    • 제42권9호
    • /
    • pp.1100-1108
    • /
    • 2015
  • 안드로이드 운영체제의 실행파일인 classes.dex파일은 Java 바이트코드 형식이므로 누구나 쉽게 역공학으로 소스코드를 분석하고 수정이 가능하다. 이러한 특징 때문에 많은 어플리케이션들이 불법 복제되어 유통됨에 따라 피해가 증가하고 있다. 이러한 문제를 해결하기 위해 본 논문은 classes.dex파일을 AES 암호화 알고리즘으로 암호화하여 배포하고, 암호화된 어플리케이션을 복호화하여 실행하는 어플리케이션 불법복제를 방지하는 기법을 제안한다. 암호화 및 복호화에 사용되는 Key는 랜덤한 값인 Salt값를 기반으로 조합하여 Hash함수에 대입하여 얻어진 Hash값을 Key로 사용하여 역공학 공격으로부터 견고함을 더했다. 실험을 통해 제안한 기법이 어플리케이션의 불법복제를 방지하는데 효과적이고, 역공학 공격을 불가능하게 하여 어플리케이션의 원천기술 보호와 리패키징으로 인한 악성코드의 전파도 방지할 수 있음을 보였다.

안드로이드 환경에서 자바 리플렉션과 동적 로딩을 이용한 코드 은닉법 (A Code Concealment Method using Java Reflection and Dynamic Loading in Android)

  • 김지윤;고남현;박용수
    • 정보보호학회논문지
    • /
    • 제25권1호
    • /
    • pp.17-30
    • /
    • 2015
  • 본 논문은 기존에 널리 사용되는 바이트코드(bytecode) 중심의 안드로이드 어플리케이션 코드 난독화 방법과 달리 임의의 안드로이드 어플리케이션의 DEX 파일 자체를 추출하여 암호화하고, 암호화한 파일을 임의의 폴더에 저장한 후 코드를 수행하기 위한 로더 앱을 만드는 방법을 제시한다. 이벤트 처리 정보를 은닉하기 위하여, 로더 앱 내부의 암호화된 DEX 파일은 원본 코드와 Manifest 정보 일부를 포함한다. 로더 앱의 Manifest는 원본 앱의 Manifest 정보 중에서 암호화된 클래스에 포함되지 않은 정보만을 기재하였다. 제안기법을 사용시, 첫째로 공격자는 백신을 우회하기 위해 난독화된 코드를 포함한 악성코드 제작이 가능하고, 둘째로 프로그램 제작자의 입장에서는 제안기법을 이용하여 저작권 보호를 위해 핵심 알고리즘을 은폐하는 어플리케이션 제작이 가능하다. 안드로이드 버전 4.4.2(Kitkat)에서 프로토타입을 구현하고 바이러스 토탈을 이용하여 악성코드 난독화 능력을 점검해서 제안 기법의 실효성을 보였다.

실행코드 암호화 및 무결성 검증을 적용한 안드로이드앱 보호 기법 (A Technique for Protecting Android Applications using Executable Code Encryption and Integrity Verification)

  • 심형준;조상욱;정윤식;이찬희;한상철;조성제
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제10권1호
    • /
    • pp.19-26
    • /
    • 2014
  • 본 논문에서는 안드로이드 애플리케이션(앱)을 역공학 공격으로부터 방어하는 기법을 제안한다. 이 기법에서 서버는 안드로이드 패키지 파일인 APK 내에 있는 원본 실행코드(DEX)를 암호화하고, 실행 시 이를 복호화 할 수 있는 스텁(stub) 코드를 APK에 삽입하여 배포한다. 스텁 코드는 자신에 대한 공격을 탐지하기 위해 무결성 검증 코드를 포함한다. 사용자가 해당 APK를 설치·실행할 때, 스텁 코드는 자체의 무결성을 검증한 후, 암호화된 원본 실행코드를 복호화하고, 이를 동적 로딩(dynamic loading)하여 실행한다. 앱의 원본 실행코드는 암호화되어 배포되므로 지적재산권을 효과적으로 보호할 수 있다. 또한, 스텁 코드에 대해 무결성을 검증하므로, 제안 기법의 우회 가능성을 차단한다. 우리는 15개의 안드로이드 앱에 제안 기법을 적용하여 그 유효성을 평가하였다. 실험 결과, 13개의 앱이 정상적으로 동작함을 확인하였다.

달빅 DEX 파일 브라우저의 설계 및 구현 (Design and Implementation of Dalvik DEX File Browser)

  • 소경영;정택희;박종필;고광만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.1228-1230
    • /
    • 2012
  • 안드로이드 플랫폼에 적합한 어플리케이션 보급이 급증하면서 달빅(dalvik)에 관련된 다양한 연구 시도가 진행되고 있다. 특히, Java 클래스 파일로부터 dx에 의해 생성되는 DEX 파일의 구조 및 상세 정보를 시각적으로 분석하고 이를 응용하기 위한 노력은 다양한 성능 향상의 효과를 기대할 수 있다. 이 논문에서는 달빅 가상머신의 실행 파일인 DEX 파일의 구조 및 정보를 세분화하여 시각적으로 쉽게 접근할 수 있는 브라우저를 설계하고 구현한다. 이를 통해서, DEX 파일의 구조 및 정보를 보다 쉽게 접근하고 이용할 수 있으며 디어셈블러(smali/baksmali) 편리하게 사용할 수 있도록 하였다.

DEX 파일을 이용한 효율적인 안드로이드 변종 악성코드 탐지 기술 (Efficient Detection of Android Mutant Malwares Using the DEX file)

  • 박동혁;명의정;윤주범
    • 정보보호학회논문지
    • /
    • 제26권4호
    • /
    • pp.895-902
    • /
    • 2016
  • 스마트폰 보급률이 증가하여 이용자 수가 증가함에 따라 이를 노린 보안 위협도 증가하고 있다. 특히, 안드로이드 스마트폰의 경우 국내에서 약 85%에 달하는 점유율을 보이고 있으며 안드로이드 플랫폼 특성상 리패키징이 용이하여 이를 노린 리패키징 악성코드가 꾸준히 증가하고 있다. 안드로이드 플랫폼에서는 이러한 악성코드를 방지하기 위해 다양한 탐지 기법을 제안하였지만, 정적 분석의 경우 리패키징 악성코드 탐지가 쉽지 않으며 동적 분석의 경우 안드로이드 스마트폰 자체에서 동작하기 어려운 측면이 있다. 본 논문에서는 리패키징 악성코드의 코드 재사용 특징을 이용하여 안드로이드 애플리케이션에서 DEX 파일을 추출해 역공학 과정을 거치지 않고 DEX 파일에 기록된 클래스 이름과 메소드 이름 같은 특징으로 악성코드를 정적 분석하는 방법과 이를 이용하여 리패키징 악성코드를 보다 효율적으로 탐지하는 방법을 제안한다.

Mepelyzer : 서버 기반 다형상 모바일 앱에 대한 메소드 및 퍼미션 유사도 기반 악성앱 판별 (Mepelyzer : Malicious App Identification Mechanism based on Method & Permission Similarity Analysis of Server-Side Polymorphic Mobile Apps)

  • 이한성;이형우
    • 한국융합학회논문지
    • /
    • 제8권3호
    • /
    • pp.49-61
    • /
    • 2017
  • 안드로이드 플랫폼에서 다양한 모바일 애플리케이션이 개발/배포되면서 편리함과 유용성이 더욱 증가하고 있으나 지속적으로 악성 모바일 애플리케이션(Malicious Mobile Application) 또한 급증하고 있어 스마트폰 사용자도 모르게 단말 내 중요 정보 등이 외부로 유출되고 있다. 악성앱 검출을 위해 안드로이드 플랫폼을 대상으로 다양한 모바일 백신이 개발되었지만 최근에 발견된 서버 기반 다형상 모바일 악성앱인 경우 은닉 우회 기법을 포함하고 있으며, C&C 서버 기반 다형상 생성기에 의해서 각 사용자 단말에 매번 조금씩 다른 형태의 악성앱이 생성 및 설치되기 때문에 기존 모바일 백신에 손쉽게 검출되지 않는다는 문제점이 있다. 이에 본 논문에서는 서버 기반 다형상 모바일 악성앱에 대한 APK 역컴파일 과정을 통해 핵심 악성 코드를 구성하는 DEX 파일내 메소드에 대한 유사도와 접근권한 유사도 측정을 통해 상관관계를 분석하여 SSP 악성앱을 판별하는 기법을 제시하였다. DEX 메소드 유사도와 퍼미션 유사도 분석 결과 SSP 악성앱에 대한 동작 방식의 특징을 추출할 수 있었으며 정상앱과 구별 가능한 차이점을 발견할 수 있었다.

아두이노 환경에서 웰니스를 위한 WPHR 서비스 (A WPHR Service for Wellness in the Arduino Environment)

  • 조영복;우성희;이상호
    • 한국정보통신학회논문지
    • /
    • 제22권1호
    • /
    • pp.83-90
    • /
    • 2018
  • 본 논문에서는 안드로이드 환경에서 개인 건강로그 정보를 분석하고 개인별 맞춤형 운동정보 제공 및 보행자의 상태를 모니터링 할 수 있는 알고리즘을 제안한다. 개인 건강로그 정보 수집은 아두이노 기반의 MPU6050 센서를 이용해 사용자의 이동 raw data를 센싱하고 분석한다. 이동 정보의 구분을 위해 노이즈를 제거하고 연령별 임계값을 적용하였다. 또한 개인정보 보호를 위해 APK 파일의 디컴파일링 방지 및 암/복호화를 제공함으로 안전성을 강화하였다. 실험결과 MPU6050 센서를 손목에 부착하는 경우보다 발목에 부착한 경우가 평균 98.97% 정확하게 데이터가 측정되었고, SEED 128비트 암호화 기반의 DEX파일의 로딩시간은 평균 시간을 0.55ms로 오버헤드를 최소화하였다.

지문 인증과 동적 로딩을 이용한 안드로이드 애플리케이션 코드 보호 기법 (Android Application Code Protection Scheme Using Fingerprint Authentication and Dynamic Loading)

  • 류환일;석재혁;박진형;이동훈
    • 정보보호학회논문지
    • /
    • 제27권6호
    • /
    • pp.1361-1372
    • /
    • 2017
  • 비공개 애플리케이션 또는 핑거프린팅 기법이 적용된 애플리케이션을 외부의 공격자가 복사해 가져가는 경우 비공개 정보가 유출되거나 정당한 사용자가 애플리케이션의 불법 재배포자로 오인될 수 있어 심각한 보안 문제가 초래될 수 있다. 이러한 문제를 해결하기 위하여 본 논문에서는 지문 인증과 동적 로딩을 이용한 안드로이드 애플리케이션 코드 보호 기법을 제안한다. 본 논문에서 제안하는 기법은 하나의 애플리케이션을 CLR(Class LoadeR)과 SED(SEperated Dex)로 구성한다. CLR은 SED를 동적으로 로드하는 기능을 가진 APK 파일이며, SED는 애플리케이션 실행에 필요한 클래스들이 포함된 파일이다. SED는 암호화된 상태로 스마트폰 내부에 보관되며, 사용자는 지문 인증을 성공한 경우에만 SED를 복호화할 수 있다. 본 논문에서 제안하는 기법은 사용자의 스마트폰을 물리적으로 획득한 공격자로부터 애플리케이션 코드를 안전하게 보호할 수 있다.