안드로이드 스마트폰 뱅킹 앱 무결성 검증 기능의 취약점 연구 A study on the vulnerability of integrity verification functions of android-based smartphone banking applications원문보기
최근, 정상 앱에 악성코드를 추가하여 안드로이드 마켓에 재배포 되는 악성 앱들이 발견되고 있다. 금융거래를 처리하는 뱅킹 앱들이 이와 같은 공격에 노출되면 인증정보 및 거래정보 유출, 부정거래 시도 등 많은 문제점들이 발생할 수 있다. 이에 대한 대응방안으로 금융당국이 관련 법규를 제정함에 따라 국내 은행들은 뱅킹 앱에서 무결성 검증기능을 제공하고 있지만, 해당 기능의 안전성에 대한 연구는 이루어진 바가 없어서 신뢰하기 어렵다. 본 논문에서는 안드로이드 역공학 분석 기법들을 이용하여 뱅킹 앱의 무결성 검증 기능 취약점을 제시한다. 또한, 제시한 취약점이 이용될 경우, 실제 뱅킹 앱의 무결성 검증 기능이 매우 간단하게 우회되어 리패키징을 통한 악성코드 삽입 공격이 이루어질 수 있으며 그 위험성이 높다는 것을 실험결과로 증명한다. 추가적으로, 취약점을 해결하기 위한 방안들을 구체적으로 제시함으로써 앱 위변조 공격에 대응하여 스마트폰 금융거래 환경의 보안 수준을 높이는데 기여한다.
최근, 정상 앱에 악성코드를 추가하여 안드로이드 마켓에 재배포 되는 악성 앱들이 발견되고 있다. 금융거래를 처리하는 뱅킹 앱들이 이와 같은 공격에 노출되면 인증정보 및 거래정보 유출, 부정거래 시도 등 많은 문제점들이 발생할 수 있다. 이에 대한 대응방안으로 금융당국이 관련 법규를 제정함에 따라 국내 은행들은 뱅킹 앱에서 무결성 검증기능을 제공하고 있지만, 해당 기능의 안전성에 대한 연구는 이루어진 바가 없어서 신뢰하기 어렵다. 본 논문에서는 안드로이드 역공학 분석 기법들을 이용하여 뱅킹 앱의 무결성 검증 기능 취약점을 제시한다. 또한, 제시한 취약점이 이용될 경우, 실제 뱅킹 앱의 무결성 검증 기능이 매우 간단하게 우회되어 리패키징을 통한 악성코드 삽입 공격이 이루어질 수 있으며 그 위험성이 높다는 것을 실험결과로 증명한다. 추가적으로, 취약점을 해결하기 위한 방안들을 구체적으로 제시함으로써 앱 위변조 공격에 대응하여 스마트폰 금융거래 환경의 보안 수준을 높이는데 기여한다.
In recent years, the malicious apps with malicious code in normal apps are increasingly redistributed in Android market, which may incur various problems such as the leakage of authentication information and transaction information and fraudulent transactions when banking apps to process the financi...
In recent years, the malicious apps with malicious code in normal apps are increasingly redistributed in Android market, which may incur various problems such as the leakage of authentication information and transaction information and fraudulent transactions when banking apps to process the financial transactions are exposed to such attacks. Thus the financial authorities established the laws and regulations as an countermeasures against those problems and domestic banks provide the integrity verification functions in their banking apps, yet its reliability has not been verified because the studies of the safety of the corresponding functions have seldom been conducted. Thus this study suggests the vulnerabilities of the integrity verification functions of banking apps by using Android reverse engineering analysis techniques. In case the suggested vulnerabilities are exploited, the integrity verification functions of banking apps are likely to be bypassed, which will facilitate malicious code inserting attacks through repackaging and its risk is very high as proved in a test of this study. Furthermore this study suggests the specific solutions to those vulnerabilities, which will contribute to improving the security level of smartphone financial transaction environment against the application forgery attacks.
In recent years, the malicious apps with malicious code in normal apps are increasingly redistributed in Android market, which may incur various problems such as the leakage of authentication information and transaction information and fraudulent transactions when banking apps to process the financial transactions are exposed to such attacks. Thus the financial authorities established the laws and regulations as an countermeasures against those problems and domestic banks provide the integrity verification functions in their banking apps, yet its reliability has not been verified because the studies of the safety of the corresponding functions have seldom been conducted. Thus this study suggests the vulnerabilities of the integrity verification functions of banking apps by using Android reverse engineering analysis techniques. In case the suggested vulnerabilities are exploited, the integrity verification functions of banking apps are likely to be bypassed, which will facilitate malicious code inserting attacks through repackaging and its risk is very high as proved in a test of this study. Furthermore this study suggests the specific solutions to those vulnerabilities, which will contribute to improving the security level of smartphone financial transaction environment against the application forgery attacks.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
악성코드를 추가한 뱅킹 앱이 안드로이드 운영체제의 스마트폰에서 정상적으로 실행되면서, 로그인 시에 해커의 웹서버로 공인인증서, 개인키 파일 및 공인인증서 비밀번호가 [그림 13]과 같이 정상적으로 전송되는지 확인한다. 그리고 계좌이체 시에 해커가 변조한 계좌로 정상적으로 입금이 되는지 확인한다.
본 논문에서는 다양한 분석 기법 및 도구들을 이용 하여 안드로이드 스마트폰 뱅킹 앱의 무결성 검증 기능에 존재하는 취약점을 분석하였다. 그리고 분석 결과로부터 뱅킹 앱의 무결성 검증 기능을 쉽게 우회할수 있는 취약점이 존재함을 확인하였다.
또한, 무결성 검증 기능을 우회하고 뱅킹 앱에 악성코드를 추가하여 재배포하는 방식으로 공인인증서 파일 및 비밀번호 등의 인증정보 유출, 계좌이체 시 수취계좌번호 변경 등심각한 위험에 노출될 수 있음을 해킹 시나리오를 토대로 한 실험결과로 증명하였다. 실제 서비스되고 있는 국내의 주요 7개 은행의 뱅킹 앱을 대상으로 분석및 실험을 수행함으로써 대부분의 뱅킹 앱이 취약점을 가지고 있다는 점, 그리고 그에 대한 대응방안을 구체적으로 제시하였다는 점에서 본 논문의 의의가 있다.
제안 방법
전체적인 분석 절차는 [그림 4]와 같다. APK 파일을 apktool로 언팩한 후에 생성되는 네이티브 라이브러리는 안드로이드 NDK의 arm-linux- androideabi-objdump로 디스어셈블링(disassembling) 하여 어셈블리 코드를 분석하거나 리눅스의 strings 명령어로 문자열 분석을 하고, smali 코드에는 디버그 로그 삽입 후에 apktool로 리패키징하여 변조된 APK를 만들어서 안드로이드 기기에 설치 및 실행하여 실행 로그 분석, 시스템 콜 추적, 메모리 덤프 분석을 한다. APK 파일 압축해제 후에 생성되는 classes.
∙ 자바 디컴파일, smali 코드 파일에 로그 삽입 후 실행 로그 분석, 시스템 콜 추적, 메모리 덤프(dump), 네이티브(native) 코드 라이브러리 분석 등 공격자가 사용할 수 있는 안드로이드 앱 분석 기법들을 체계적으로 정리하였다.
∙ 최초로, 국내 은행들의 안드로이드 스마트폰 뱅킹 앱 무결성 검증 기능에 관한 취약점을 분석하였다.
그리고 본 논문의 네이티브 라이브러리 분석 과정에서 확인한 바와 같이, 네이티브 코드도 어셈블리 코드 분석 및 strings 도구를 이용한 문자열 분석 공격 등이 이루어질 수 있으므로 반드시 코드 난독화를 적용해야 한다. 특히, 네이티브 코드의 기능이나 연산을 유추할 수 있는 함수명 또는 문자열들이 그대로 노출 되지 않도록 난독화 기법을 적용해야 한다.
다음으로, smali 코드와 자바 소스코드 및 시스템 콜 추적 등을 분석하여 무결성 검증 대상이 APK 파일인지 확인하고, 검증 대상이 APK 파일이라면 해당 파일에 접근하기 위해서 현재 실행중인 앱의 APK 파일 경로를 어떻게 얻어오는지 확인한다. 일반적으로, 현재 실행 중인 앱의 APK 파일 경로는 안드로이드 자바 API에서 제공하는 android.
그러나 최근에는 안티 디버깅 기술들이 연구되거나 적용되고 있어서 디버깅이 쉽지 않고 제약사항이 많다. 따라서 본 논문에서는 smali 파일에 디버그 로그를 삽입하여 제어흐름을 분석하는 기법을 사용하였다. 이 기법은 smali 코드 파일들을 읽어서 모든 메소드에 자동으로 디버그 로그를 삽입하는 프로그램을 만들고, 로그 삽입을 원하는 smali 파일들에 [그림 6]과 같이 로그를 삽입하는 방법이다.
네이티브 코드 라이브러리는 안드로이드 NDK에 포함된 arm-linux-androideabi-objdump 도구를 이용하여 디스어셈블링(disassembling)하고 어셈블리 코드를 분석할 수 있다. 또한, 리눅스 운영체제의 strings 명령어를 사용하여 라이브러리 파일에 포함되어 있는 문자열들을 추출하여 대략적인 기능을 추정하는 분석을 할 수 있다.
그런 다음, 동적으로 로드한 자바 클래스를 통해서 자바 코드 연산을 처리하고 무결성 검증용 해시값 HA 를 생성한다. 마지막으로 HA , HB 각각을 세션키 K 로 암호화한 EK (HA), EK (HB)값을 서버로 전송하고, 서버는 전송된 해시값을 이용하여 뱅킹 앱 및 동적 로딩 모듈인 a.dex 파일의 무결성 검증을 수행한다. 이와 같은 방법을 이용하면 본 논문에서 제시한 무결성 검증 우회 기법의 방어가 가능하다.
마지막으로, 공인인증서 로그인 시에 뱅킹 앱의 힙 (heap) 메모리를 덤프하여 공인인증서 비밀번호가 메모리에 평문으로 존재하는지 여부를 확인한다. [그림 11]과 같이 비밀번호가 메모리에 평문으로 존재한다면 평문 비밀번호의 탈취가 가능하다.
먼저, 뱅킹 앱에서 무결성 검증을 수행하는지 여부및 어느 지점에서 무결성 검증이 처리되는지 분석한다. 안드로이드 운영체제에 설치된 APK 파일을 PC 로 복사하여 언팩하면 자바 클래스 및 인터페이스 파일 단위로 smali 어셈블리 파일이 생성된다.
먼저, 변조되지 않은 원본 APK 파일을 변조할 앱의 assets 디렉토리에 추가하고 해당 앱이 실행될 때 원본 APK 파일을 자신의 데이터 디렉토리에 복사하도록 구현한다. 다음으로, 4.
따라서 안드로이드 앱에서 자체 수정 코드를 사용하기 위해서는 네이티브 라이브러리를 이용해야 한다. 별도의 네이티브 라이브러리 코드에서 리눅스의 mprotect() 함수 등을 이용하여 달빅 가상머신의 바이트코드 메모리 영역을 읽거나 쓰는 자체 수정 코드를 구현한다. 그리고 자바 코드에서 JNI 인터페이스를 이용하여 접근한다.
소스코드 난독화는 역공학 공격으로부터 소프트웨어를 보호하기 위한 기술이다. 본 논문에서 분석한 뱅킹 앱들의 자바 코드에는 패키지명, 클래스명, 메소드 명과 필드명 등의 지시자를 의미 없는 문자로 치환하는 코드 난독화 기법을 일부 패키지에 사용했다. 그리고 일부 은행은 switch-case 문을 이용한 제어 흐름 변환 기법, 코드에서 사용하는 문자열 상수들을 암호화하는 기법들도 사용했다.
본 논문에서는 안드로이드 스마트폰 뱅킹 앱을 대상으로 안드로이드 역공학 기법[7][8][9][10]들을 이용하여 무결성 검증 기능의 취약점, 메모리에 공인인증서 비밀번호가 평문으로 남는 취약점을 분석하였다. 분석 결과, 뱅킹 앱의 무결성 검증 기능은 APK 파일 전체 내용과 서버에서 받은 난수 값을 조합하여 해시값을 생성하는 방식으로 되어있어, 검증하고자 하는 APK 파일의 경로를 원본 APK 파일로 자바 코드에서 지정하면 쉽게 우회가 가능함을 확인하였다.
본 장에서는 Ⅲ장에서 기술한 분석 기법들을 이용하여 안드로이드 스마트폰 뱅킹 앱의 취약점을 파악하고, 해당 취약점을 이용하여 앱 무결성 검증을 우회하는 방법을 기술한다. 무결성 검증이 우회되면 smali 코드 수정을 통해서 악성코드를 삽입하더라도 뱅킹 서버에서 위변조된 앱으로 탐지하지 못한다.
본 장에서는 뱅킹 앱의 취약점 분석 및 무결성 검증 기능을 우회하기 위해서 필요한 배경지식을 알아본다.
본 장에서는 실험을 통해서 드러난 뱅킹 앱의 무결성 검증 취약점에 대한 대응방안 및 무결성 검증 강화방안을 구체적으로 제시한다.
실제로는 위변조된 APK 파일이 실행되지만 무결성 검증은 별도의 디렉토리에 보관된 원본 APK 파일을 읽어서 처리하기 때문에 무결성 검증용 해시값이 정상 앱과 동일하게 생성되어, 서버에서는 위변조된 앱을 정상 앱으로 판단하게 하는 방식이다. 이를 위해서 다음과 같이 정식 배포된 원본 APK 파일 자체를 위변조된 앱에 포함시키고 smali 코드 수정을 통해서 무결성 검증 대상 APK 파일의 경로를 원본 APK 파일의 경로가 되도록 변경하여 리패키징한다.
무결성 검증이 우회되면 smali 코드 수정을 통해서 악성코드를 삽입하더라도 뱅킹 서버에서 위변조된 앱으로 탐지하지 못한다. 이를 이용하여, 악성코드가 삽입된 위변조 앱이 정상적인 뱅킹 앱처럼 동작하면서 인증 정보를 탈취하거나 수취계좌를 변조하여 부정거래를 발생시키는 해킹 시나리오를 구성해 보았다.
안드로이드 운영체제에 설치된 APK 파일을 PC 로 복사하여 언팩하면 자바 클래스 및 인터페이스 파일 단위로 smali 어셈블리 파일이 생성된다. 직접 작성한 로그 삽입 프로그램을 이용하여 모든 smali 코드 파일들의 메소드 내에 디버그 로그를 자동으로 삽입하고 apktool을 이용하여 리패키징한다. 리패키징한 앱을 안드로이드 운영체제에 설치하고 실행 시, 위변조 관련 오류가 발생하고 종료된다면 앱 무결성 검증을 수행하고 있음을 알 수 있다.
대상 데이터
국내 주요 7개 은행의 안드로이드 스마트폰 뱅킹 앱을 대상으로 Ⅳ장의 공격 시나리오를 토대로 실험한 결과는 [표 2]와 같다. 7개 은행은 국내의 시중은행 6개와 특수은행 1개를 무작위로 선정하였다.
성능/효과
∙ 국내 주요 7개 은행들의 실제 뱅킹 앱을 대상으로 무결성 검증 우회 및 악성코드 삽입 테스트를 실시하여, 무결성 검증 취약점을 이용한 앱 위변조 공격의 위험성이 매우 높음을 보였다.
본 논문에서는 다양한 분석 기법 및 도구들을 이용 하여 안드로이드 스마트폰 뱅킹 앱의 무결성 검증 기능에 존재하는 취약점을 분석하였다. 그리고 분석 결과로부터 뱅킹 앱의 무결성 검증 기능을 쉽게 우회할수 있는 취약점이 존재함을 확인하였다. 또한, 무결성 검증 기능을 우회하고 뱅킹 앱에 악성코드를 추가하여 재배포하는 방식으로 공인인증서 파일 및 비밀번호 등의 인증정보 유출, 계좌이체 시 수취계좌번호 변경 등심각한 위험에 노출될 수 있음을 해킹 시나리오를 토대로 한 실험결과로 증명하였다.
실행중인 앱은 이러한 안드로이드 API 메소드들을 이용하여 자신의 APK 파일 경로를 얻어올 수 있는데, 자바 코드를 수정하면 해당 API 메소드들의 반환값을 변경할수 있다. 따라서 APK 파일을 이용한 무결성 검증 시, 무결성 검증 대상 APK 파일의 경로를 구하는 자바코드를 달빅 가상머신에 로드된 APK 파일이 아닌 원본 APK 파일의 경로를 반환하도록 수정함으로써 무결성 검증 우회가 가능하다. 실제로는 위변조된 APK 파일이 실행되지만 무결성 검증은 별도의 디렉토리에 보관된 원본 APK 파일을 읽어서 처리하기 때문에 무결성 검증용 해시값이 정상 앱과 동일하게 생성되어, 서버에서는 위변조된 앱을 정상 앱으로 판단하게 하는 방식이다.
그리고 분석 결과로부터 뱅킹 앱의 무결성 검증 기능을 쉽게 우회할수 있는 취약점이 존재함을 확인하였다. 또한, 무결성 검증 기능을 우회하고 뱅킹 앱에 악성코드를 추가하여 재배포하는 방식으로 공인인증서 파일 및 비밀번호 등의 인증정보 유출, 계좌이체 시 수취계좌번호 변경 등심각한 위험에 노출될 수 있음을 해킹 시나리오를 토대로 한 실험결과로 증명하였다. 실제 서비스되고 있는 국내의 주요 7개 은행의 뱅킹 앱을 대상으로 분석및 실험을 수행함으로써 대부분의 뱅킹 앱이 취약점을 가지고 있다는 점, 그리고 그에 대한 대응방안을 구체적으로 제시하였다는 점에서 본 논문의 의의가 있다.
실험에서는 공인인증서 정보만 탈취했으나, 앱 위변조 공격은 소스코드를 수정하는 방법이기 때문에 실제로는 거의 모든 입력정보를 탈취할 수 있을 것으로 판단된다. 또한, 실험에서 사용한 위변조 앱은 정상적인 앱과 동일한 기능을 하면서 악성코드를 실행시킨다는 점에서 사용자가 인지하기 어렵기 때문에 그 위험성이 매우 크다는 것을 알 수 있었다.
본 논문에서는 안드로이드 스마트폰 뱅킹 앱을 대상으로 안드로이드 역공학 기법[7][8][9][10]들을 이용하여 무결성 검증 기능의 취약점, 메모리에 공인인증서 비밀번호가 평문으로 남는 취약점을 분석하였다. 분석 결과, 뱅킹 앱의 무결성 검증 기능은 APK 파일 전체 내용과 서버에서 받은 난수 값을 조합하여 해시값을 생성하는 방식으로 되어있어, 검증하고자 하는 APK 파일의 경로를 원본 APK 파일로 자바 코드에서 지정하면 쉽게 우회가 가능함을 확인하였다. 이러한 취약점으로 인해 공인인증서 정보 탈취, 계좌이체 수취계좌번호의 변경과 같은 악성코드 삽입이 가능 함을 확인하였다.
실험 결과, 6개 은행은 APK 파일에 대한 언팩 및 리패키징이 가능했으며 그 중에 3개 은행은 로그인시에 앱에 대한 무결성 검증을 수행하고 있었다. 그러나 무결성 검증을 수행하는 3개 은행의 뱅킹 앱들은 무결성 검증 기능이 쉽게 우회되었다.
그리고 일부 은행은 switch-case 문을 이용한 제어 흐름 변환 기법, 코드에서 사용하는 문자열 상수들을 암호화하는 기법들도 사용했다. 실험 과정에서, 지시자 변환 및 문자열 암호화와 같은 소스코드 난독화는 분석 시간에 많은 영향을 주었다. 따라서 자바 코드에는 문자열 암호화 등 추가적인 난독화 기법들을 적용하고 기존의 지시자 치환도 확대함으로써 소스코드 분석을 어렵게 만들어야 한다.
분석 결과, 뱅킹 앱의 무결성 검증 기능은 APK 파일 전체 내용과 서버에서 받은 난수 값을 조합하여 해시값을 생성하는 방식으로 되어있어, 검증하고자 하는 APK 파일의 경로를 원본 APK 파일로 자바 코드에서 지정하면 쉽게 우회가 가능함을 확인하였다. 이러한 취약점으로 인해 공인인증서 정보 탈취, 계좌이체 수취계좌번호의 변경과 같은 악성코드 삽입이 가능 함을 확인하였다. 즉, 기존 기법은 공격자에 의한 앱 위변조 공격을 차단할 수 없으므로, 다음과 같은 대응방안을 제시한다.
본 논문에서 제시한 무결성 검증 취약점에 대한 대응방안은 다음과 같다. 첫째, 자바 코드의 동적 로딩, 자체 수정 코드(Self-modifying code) 기법을 이용 하여 무결성 검증과 관련된 자바 실행코드를 보호해야 하며, 자바와 네이티브 소스코드의 난독화 강화를 통해서 소스코드의 정적 분석을 어렵게 만들어야 한다. 둘째, APK 파일 외에도 달빅 가상머신에 로드된 바이트코드 메모리에 대한 무결성 검증을 추가하고 여러 실행 지점에서 무결성 검증을 실시하는 등 검증 대상및 범위를 확대해야 한다.
후속연구
첫째, 자바 코드의 동적 로딩, 자체 수정 코드(Self-modifying code) 기법을 이용 하여 무결성 검증과 관련된 자바 실행코드를 보호해야 하며, 자바와 네이티브 소스코드의 난독화 강화를 통해서 소스코드의 정적 분석을 어렵게 만들어야 한다. 둘째, APK 파일 외에도 달빅 가상머신에 로드된 바이트코드 메모리에 대한 무결성 검증을 추가하고 여러 실행 지점에서 무결성 검증을 실시하는 등 검증 대상및 범위를 확대해야 한다. 셋째, 무결성 검증 오류 발생 계정 및 접속 IP의 차단 및 무결성 미검증 버전의 기존 앱 사용 중지 등 관리적인 정책을 취해야 한다.
둘째, APK 파일 외에도 달빅 가상머신에 로드된 바이트코드 메모리에 대한 무결성 검증을 추가하고 여러 실행 지점에서 무결성 검증을 실시하는 등 검증 대상및 범위를 확대해야 한다. 셋째, 무결성 검증 오류 발생 계정 및 접속 IP의 차단 및 무결성 미검증 버전의 기존 앱 사용 중지 등 관리적인 정책을 취해야 한다. 공인인증서 비밀번호 평문 노출의 경우, 앱 무결성이 보장되면 메모리에 접근하기 어렵고 소스코드를 수정할 수 없기 때문에 탈취하기 어렵다.
질의응답
핵심어
질문
논문에서 추출한 답변
smali 코드는 어떻게 생성되는가?
smali 코드는 apktool에 의한 APK 파일 언팩 과정에서 디스어셈블러(disassembler)에 의해서 생성된다. smali 파일들은 자바 소스파일과 동일한 패키지 구조를 가지고 클래스 또는 인터페이스 단위로 생성되며, [그림 6]에서 보는 바와 같이 자바 소스코드 보다는 가독성이 떨어지지만 기능 및 제어흐름을 충분히 이해할 수 있는 코드로 작성되어 있다.
안드로이드 운영체제는 무엇으로 구성되는가?
안드로이드는 운영체제, 미들웨어(middleware)와 주요 애플리케이션들을 포함하고 있는 모바일 장치를 위한 소프트웨어 묶음이다[11]. 안드로이드 운영체제는 [그림 2]와 같이 Applications, Application Framework, Libraries, Android Runtime, Linux Kernel 5개의 주요 컴포넌트로 구성된다. Applications 계층에는 이메일, 전화, SMS, 브라우저 등의 기본 애플리케이션들이 있으며 사용자가 개발하거나 설치한 애플리케이션들은 여기에 위치하게 된다.
안드로이드가 악성코드 작성자들의 주요 표적이 되는 이유는 무엇인가?
이와 같이 안드로이드 운영체제가 악성코드 작성자들의 주요 표적이 되는 이유는 다음과 같다. 안드로이드 앱은 이식성이 높은 자바 언어로 구현되어, 역공학이 쉽기 때문에 앱 위변조를 이용한 악성코드 삽입과 리패키징(repackaging)이 용이하다. 또한, 구글의 공식 마켓인 Play스토어 이외에 써드파티(thirdparty) 마켓이 활성화되어 있고 직접 안드로이드 애플리케이션 패키지 파일(APK, 이하 APK)을 설치하는 것도 가능하기 때문에 악성 앱의 배포가 쉽다.
참고문헌 (19)
한국은행 보도자료, "2012년 3/4분기 국내 인터넷 뱅킹서비스 이용현황," 2012년 11월.
"Android Under Attack: Malware Levels for Google's OS Rise Threefold in Q2 2012," Kaspersky Lab, Aug. 2012, http://www.kaspersky.com/about/news/press/2012/Android_Under_Attack__Malware_Levels_for_Googles_OS_Rise_Threefold_in_Q2_2012
T. Bradley, "DroidDream Becomes Android Market Nightmare," PCWorld, Mar. 2011, http://www.pcworld.com/article/221247/droiddream_becomes_android_market_nightmare.html
전자금융감독규정, 제2012-26호, 제34조 7항, 2012년 10월.
최지선, 김태희, 민상식, 성재모, "스마트폰 뱅킹 앱 무결성 검증을 위한 보호기술 동향," 정보보호학회지, 23(1), pp. 54-59, 2013년 2월.
송형주 외, 인사이드 안드로이드, 위키북스, 경기도 파주시, pp. 79-81, 2010년 10월.
A. Shabtai, Y. Fledel, U. Kanonov, Y. Elovici, S. Dolev, and C. Glezer, "Google Android: A Comprehensive Security Assessment," IEEE Security and Privacy, vol. 8, no. 2, pp. 35-44, Mar.-Apr. 2010.
T. Blasing, L. Batyuk, A.-D. Schmidt, S.A. Camtepe, and S. Albayrak, "An Android Application Sandbox system for suspicious software detection," In 5th International Conference on Malicious and Unwanted Software (MALWARE' 2010), pp. 55-62, Oct. 2010.
http://www.eclipse.org/mat/
T. Strazzere, "Dex Education: Practicing Safe Dex," Blackhat USA 2012, Jul. 2012, http://www.strazzere.com/papers/DexEducation-PracticingSafeDex.pdf
H. Cai, Z. Shao and A. Vaynberg, "Certified Self-Modifying Code," Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, vol.42, no. 6, pp. 66-77, Jun. 2007
J.T. Giffin, M. Christodorescu and L. Kruger, "Strengthening software self-checksumming via self-modifying code," 21st Annual Computer Security Applications Conference, pp. 10-32, Dec. 2005.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.