KR20210083780A - Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템 - Google Patents

Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템 Download PDF

Info

Publication number
KR20210083780A
KR20210083780A KR1020190176411A KR20190176411A KR20210083780A KR 20210083780 A KR20210083780 A KR 20210083780A KR 1020190176411 A KR1020190176411 A KR 1020190176411A KR 20190176411 A KR20190176411 A KR 20190176411A KR 20210083780 A KR20210083780 A KR 20210083780A
Authority
KR
South Korea
Prior art keywords
security
app
dex file
server
dex
Prior art date
Application number
KR1020190176411A
Other languages
English (en)
Inventor
문경곤
김동현
Original Assignee
주식회사 린아레나
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 린아레나 filed Critical 주식회사 린아레나
Priority to KR1020190176411A priority Critical patent/KR20210083780A/ko
Publication of KR20210083780A publication Critical patent/KR20210083780A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Abstract

본 발명은 DEX 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템에 관한 것으로, 그 목적은 개발사가 개발한 원본 앱의 dex 파일을 기능별로 분할 후 보안서버에 저장하고, dex 파일이 제거되고보안모듈이 적용된 앱을 다운로드 받은 사용자 단말기는 보안서버로부터 난독화된 dex 파일을 전달하여 앱이 실행되도록 함으로써 dex 파일의 위변조를 원천적으로 방지할 수 있는 안드로이드 앱 보안성 향상 방법 및 시스템을 제공하는데 있다.
본 발명의 구성은 a) 보안서버가 원본 앱을 디패키징하여 dex 파일을 추출 후 분석하여 복수개의 기능별 dex 파일로 분할 저장하는 단계와; b) 보안서버가 보안모듈을 제작하여 원본 dex 파일을 삭제하여 대체한 앱을 재패키징하는 단계와; c) 보안서버가 보안모듈이 적용된 앱을 개발사 서버로 전송하는 단계와; d) 보안서버가 사용자단말기로부터 요청받은 Main Activity 코드 또는 Activity 코드에 대응하는 dex 파일을 기능별로 분할된 dex 파일 중에서 찾아 난독화된 dex 코드를 실시간 생성하는 단계와; e) 보안서버가 난독화된 dex 코드를 사용자단말기로 전송하여 Main Activity 코드 또는 Activity가 실행되도록 하는 단계;를 포함하는 것을 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법과 이를 구현하는 시스템을 발명의 특징으로 한다.

Description

DEX 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템{Method and system for improving android app security by DEX file segmentation and obfuscation}
본 발명은 DEX 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템에 관한 것으로, 보다 상세하게는 안드로이드 기반 앱에 포함된 dex 파일의 역공학 분석을 통한 앱 위변조를 방지하여 소스코드 유출, 보안 프로세스 우회 등을 사전에 방지함으로써 안드로이드 앱의 보안성을 향상시키는 방법 및 시스템에 관한 것이다.
dex란 안드로이드 패키지(APK) 내에 있는 원본 실행 코드로 앱 구동시 사용되는 실행 파일이며, dex 파일에는 컴파일 된 코드 등이 들어 있다.
상기와 같은 dex 파일을 포함하는 종래 안드로이드 기반 어플리케이션 프로그램(이하 '앱'이라 칭한다)은 개발사가 dex 파일을 포함하는 앱을 앱마켓에 업로드하고, 사용자는 스마트폰과 같은 단말기를 이용하여 앱 마켓에 업로드 된 앱을 검색 후 필요한 앱을 단말기에 다운로드하여 실행하는 과정을 가지도록 구성된다.
사용자는 단말기에 설치된 앱을 실행하면 dex 파일이 실행되면서 앱 개발사의 서버와 통신하면서 앱을 사용하게 된다.
하지만 상기와 같은 안드로이드 기반 앱은 기본적으로 정상적인 파일 다운로드 경로를 거친 dex 파일의 변조를 방지할 별도의 보안 방안이 없다는 문제점이 있다.
이러한 문제점 때문에 해커 등이 앱마켓에 업로드된 앱을 정상적인 다운로드 경로를 통해 받은 후 개발사 몰래 dex 파일을 변조할 수 있다는 구조적 단점이 있다.
만약 불손한 의도를 가진 해커가 dex 파일을 변조한 앱을 웹페이지나 블러그 등을 통해 첨부시켜 놓은 후 스마트폰 또는 단말기를 통해 접속한 사용자에게 앱 마켓을 통하지 않고 직접 다운로드 받게 유인할 수 있다.
불법적인 경로를 통해 변조된 dex 파일이 포함된 앱이 사용자의 스마트폰에서 다운로드 된 후 실행될 경우 해당 단말기는 해커에 의해 저장장치에 저장된 사용자의 개인정보나 금융정보 등의 정보를 탈취하여 악용할 수 있게 된다는 구조적 문제점이 있다.
또 다른 문제점으로는 dex 파일의 구조를 분석하여 직접 개발사 서버를 공격하여 해당 서버에 포함된 모든 사용자들의 다양한 정보를 탈취하여 악용하거나 개발사 서버에 저장된 아이템 또는 기타 금전화가 가능한 정보를 탈취할 수 있다는 구조적인 문제점이 있다.
한편, 상기와 같은 문제점을 해결하기 위한 종래의 dex 파일 변조 방지를 위한 보안방법으로 dex 파일의 암호화를 통한 역공학 분석을 방지하는 방법이 있다. 이러한 dex 파일의 암호화 방법은 jar파일 또는 java 클래스 등의 앱 소스코드 유출 및 보안프로세스 우회 등의 피해를 최소화 할 수 있다는 장점이 있다.
하지만 APK 내부에 dex파일이 존재하여 역공학 분석이 가능하다는 구조적 문제점을 해결하지는 못했다는 단점이 있다.
한국 등록특허공보 등록번호 10-1498820(2015.02.26.) 한국 등록특허공보 등록번호 10-1391982(2014.04.28.) 한국 등록특허공보 등록번호 10-1642267(2016.07.19.) 한국 등록특허공보 등록번호 10-1734663(2017.05.02.)
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 개발사가 개발한 원본 앱의 dex 파일을 기능별로 분할 후 보안서버에 저장하고, dex 파일이 제거되고보안모듈이 적용된 앱을 다운로드 받은 사용자 단말기는 보안서버로부터 난독화된 dex 파일을 전달하여 앱이 실행되도록 함으로써 dex 파일의 위변조를 원천적으로 방지할 수 있는 안드로이드 앱 보안성 향상 방법 및 시스템을 제공하는데 있다.
상기한 바와 같은 목적을 달성하고 종래의 결점을 제거하기 위한 과제를 수행하는 본 발명은 안드로이드 기반 앱의 보안성을 향상시키는 방법에 있어서,
a) 보안서버가 개발사 서버로부터 전달받은 원본 앱을 디패키징하여 dex 파일을 추출 후 분석하여 복수개의 기능별 dex 파일로 분할 저장하는 단계와;
b) 보안서버가 보안모듈을 제작하여 원본 dex 파일을 삭제하여 대체한 앱을 재패키징하는 단계와;
c) 보안서버가 보안모듈이 적용된 앱을 개발사 서버로 전송하는 단계와;
d) 보안서버가 보안모듈이 적용된 앱을 다운로드 받은 후 보안모듈을 실행시킨 사용자단말기로부터 요청받은 Main Activity 코드 또는 Activity 코드에 대응하는 dex 파일을 기능별로 분할된 dex 파일 중에서 찾아 난독화된 dex 코드를 실시간 생성하는 단계와;
e) 보안서버가 난독화된 dex 코드를 사용자단말기로 전송하여 Main Activity 코드 또는 Activity가 실행되도록 하는 단계;를 포함하는 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법을 제공함으로써 달성된다.
바람직한 실시예로, 상기 d) 또는 e)단계에서 Activity 코드는 보안서버가 Main Activity 코드를 사용자 단말기로 난독화된 dex 파일 전송하여 실행된 후 사용자단말기로부터 요청되는 기능별 Activity 코드일 수 있다.
바람직한 실시예로, 상기 보안모듈은 사용자 단말기로부터 종료 Activity 코드 실행을 요청 받게 되면 메모리에 저장된 캐쉬 값을 삭제한 후 앱을 종료하는 역할을 수행하는 것일 수 있다.
바람직한 실시예로, 상기 a)단계에서 보안서버는 추출된 dex 파일을 activity 별로 자동분류하여 복수개로 분할할 수 있다.
바람직한 실시예로, 상기 d)단계에서 난독화된 dex 파일 생성시 avtivity가 종료 후 동일한 기능을 하는 avtivity 코드가 요청될 경우 매번 새롭게 난독화된 dex 파일을 생성 후 전송하도록 구성될 수 있다.
바람직한 실시예로, 상기 d)단계에서 보안모듈이 적용된 앱은 개발사 서버가 업로드한 마켓 앱 서버 또는 개발사 서버에서 다운로드 받은 앱일 수 있다.
본 발명은 다른 실시양태로,
보안서버, 개발사 서버, 앱마켓 서버 및 사용자 단말기로 구성되어 안드로이드 기반 앱의 보안성을 향상시키는 시스템에 있어서,
상기 보안서버는,
개발사 서버에서 전송된 앱을 디패키징하여 원본 dex 파일을 분석하여 복수의 dex 파일로 분할하고 저장하는 기능별 dex 분할 모듈과;
개발사 서버에서 전송된 앱 중에 포함된 원본 dex 파일 대신에 포함될 보안모듈을 제작하여 재패키징하는 보안모듈 생성 및 재패키징 모듈과;
사용자 단말기에서 보안모듈이 적용된 앱 실행시 activity 기능별로 대응하여 전송할 dex 파일을 난독화하여 전송하는 기능별 dex 난독화 모듈;을 포함하여 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템을 제공함으로써 달성된다.
바람직한 실시예로, 상기 기능별 dex 분할 모듈은 추출된 원본 dex 파일을 activity 기능별로 자동 구분하여 복수개의 분할된 dex 파일을 생성하도록 구성될 수 있다.
바람직한 실시예로, 상기 보안서버에서 보안모듈이 적용되어 재패키징된 앱은 개발사 서버로 전송된 후, 개발사 서버에서 앱마켓 서버에 업로드하여 사용자단말기가 다은로드 하도록 구성할 수 있다.
바람직한 실시예로, 상기 보안서버에서 보안모듈이 적용되어 재패키징된 앱은 개발사 서버로 전송된 후, 사용자단말기가 다은로드 하도록 구성할 수 있다.
바람직한 실시예로, 상기 기능별 dex 난독화 모듈은 난독화된 dex 파일 생성시 avtivity가 종료 후 동일한 기능을 하는 avtivity 코드가 요청될 경우 매번 새롭게 난독화된 dex 파일을 생성 후 전송하도록 구성할 수 있다.
바람직한 실시예로, 상기 보안서버는 앱 실행과정에서 사용자 단말기 또는 개발사 서버에서 생성되거나 저장되는 데이터가 전송되어 저장되지 않도록 구성할 수 있다.
바람직한 실시예로, 상기 사용자단말기에서 실행중인 보안모듈은 사용자 단말기로부터 종료 Activity 코드 실행을 요청 받게 되면 사용자단말기의 메모리에 저장된 캐쉬 값을 삭제한 후 앱을 종료하도록 구성할 수 있다.
상기와 같은 특징을 갖는 본 발명은 개발사가 개발한 앱을 앱 마켓 서버에 업로드 전에 개발사서버로부터 원본 앱을 전달받아 dex 파일을 기능별로 분할 후 앱 실행을 위한 기능별 보안모듈이 적용되고 dex 파일이 제거된 앱을 개발사 서버에 전달하여 앱 마켓 서버에 업로하도록 하고, 이를 다운로드 받은 사용자 단말기가 앱의 기능을 실행시킬때 마다 이에 대응하는 기능별 난독화된 dex 파일을 사용자에게 전달하여 앱이 실행되도록 함으로써 dex 파일의 위변조가 원천적으로 방지된 앱이 유통됨으로써 앱 보안이 획기적으로 증대된다는 장점을 가진 유용한 발명으로 산업상 그 이용이 크게 기대되는 발명인 것이다.
도 1은 본 발명의 한 실시예에 따른 개략적인 시스템 구성도이고,
도 2는 본 발명의 한 실시예에 따른 보안서버의 구성을 보인 구성도이고,
도 3은 본 발명의 한 실시예에 따른 DEX 파일 분할 및 보안모듈이 적용된 앱의 제작 과정을 순서도이고,
도 4는 본 발명의 한 실시예에 따른 보안모듈이 적용된 앱을 사용자단말기가 실행시 난독화 과정을 통한 기능별 DEX 파일의 생성, 전달 및 실행 과정을 보인 순서도이다.
이하 본 발명의 실시 예인 구성과 그 작용을 첨부도면에 연계시켜 상세히 설명하면 다음과 같다. 또한 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
도 1은 본 발명의 한 실시예에 따른 개략적인 시스템 구성도이고, 도 2는 본 발명의 한 실시예에 따른 보안서버의 구성을 보인 구성도이다.
도시된 바와 같이 본 발명의 시스템은 보안서버(1), 개발사 서버(2), 앱마켓 서버(3) 및 사용자 단말기(4)로 구성된다.
상기 보안서버(1)는,
개발사 서버에서 전송된 앱을 디패키징하여 원본 dex 파일을 분석하여 복수의 dex파일로 분할하고 저장하는 기능별 dex 분할 모듈(11)과;
개발사 서버에서 전송된 앱 중에 포함된 원본 dex 파일 대신에 포함될 보안모듈을 제작하여 재패키징하는 보안모듈 생성 및 재패키징 모듈(12)과;
사용자 단말기에서 보안모듈이 적용된 앱 실행시 activity 기능별로 대응하여 전송할 dex 파일을 난독화하여 전송하는 기능별 dex 난독화 모듈(13);을 포함하여 구성된다.
상기와 같이 구성된 보안서버는,
개발사 서버(2)로부터 원본 어플리케이션을 전송(또는 전달) 받으면 기능별 dex 분할 모듈(11)에서 전송된 앱을 디패키징 후 원본 dex 파일(실행 코드가 포함된 파일)을 추출하고, 추출된 원본 dex 파일을 기능별(activity)로 자동 구분하여 분석 후 복수개의 분할된 dex 파일로 생성하고 저장한다. 이때 분할된 dex 파일의 저장은 별도의 저장장치(도시생략)에 앱 별로 저장하게 된다.
상기에서 디패키징이란 분석을 위해 전송된 앱을 작은 파일 단위로 분해하는 것을 말한다.
또한 dex 파일이란 안드로이드 앱 실행 코드가 포함된 파일을 말한다.
이와 같이 dex 파일을 기능별로 자동분류하여 각각 저장하는 이유는 전체 dex 파일을 해커 등이 확인할 수 없도록 하기 위함이다. 전체 dex파일을 알 수 없으면 해커가 해당 앱의 dex파일에 대한 위변조가 불가능하게 된다.
또한 보안서버는 보안모듈 생성 및 재패키징 모듈(12)을 통해 개발사 서버에서 전송된 앱 중에 포함된 원본 dex 파일 대신 앱에 포함될 보안모듈을 생성하여 재패키징한다.
재패키징시 원본 dex 파일은 삭제된다. 재패키징된 앱에서 원본 dex 파일을 삭제하는 이유는 앱마켓 서버(3) 또는 개발사 서버를 통해 정상경로로 사용자 단말기(4)로 다운로드 받은 앱에 dex 파일이 존재하지 않도록 함으로써 만약 해커가 정상경로를 통해 다운받아도 dex 파일을 위변조할 수 없어서 앱의 보안성이 획기적으로 증대되도록 하기 위함이다.
보안모듈이 적용되어 재패키징된 앱은 개발사 서버(2)로 전송된 후, 개발사 서버에서 앱마켓 서버(3)로 업로드(배포)된다. 업로드 또는 배포된 앱을 사용자 단말기(4)에서 다운로드 받아 설치한 다음 실행시 보안모듈이 활성화되면서 main avtivity 코드 요청이 보안서버로 전송되도록 구성된다. 이때 보안모듈은 실행 후 해당 앱이 정상적으로 종료될때까지 활성화된 상태를 유지하도록 구성된다.
또한 상기 보안모듈이 적용되어 재패키징된 앱은 개발사 서버(2)에서 직접 사용자 단말기(4)가 다운로드 받아 설치한 다음 실행시 보안모듈이 활성화되면서 main avtivity 코드 요청이 보안서버로 전송되도록 구성할 수 도 있다. 이때 보안모듈은 실행 후 해당 앱이 정상적으로 종료될때까지 활성화된 상태를 유지하도록 구성된다.
보안서버(1)는 사용자 단말기(4)로부터 상기 요청이 전송되면 보안서버의 저장장치에 저장된 기능별로 분할된 dex 파일 중 요청에 대응되는 기능별 avtivity를 담당하는 dex 파일을 불러와 기능별 dex 난독화 모듈(13)을 통해 난독화된 dex 파일을 생성한다.
난독화된 dex 파일은 사용자 단말기로 전송하여 요청된 avtivity 코드가 실행되도록 한다. 이와 같은 과정을 거치기 때문에 dex 파일이 앱에 포함되지 않아도 앱이 실행될 수 있게 된다.
또한 난독화된 dex 파일 생성시 avtivity가 종료 후 동일한 기능을 하는 avtivity 코드가 요청될 경우 매번 새롭게 난독화된 dex 파일을 생성 후 전송하도록 구성된다. 이에 따라 해커에 의한 dex파일의 위변조가 불가능하게 된다.
한편, 사용자단말기에서 실행중인 보안모듈은 사용자 단말기로부터 종료 Activity 코드 실행을 요청 받게 되면 메모리에 저장된 캐쉬 값을 삭제한 후 앱을 종료하는 역할을 수행한다.
한편, 보안서버(1)는 앱 실행과정에서 사용자 단말기(4) 또는 개발사 서버(2)에서 생성되거나 저장되는 데이터가 전송되어 저장되지 않도록 구성된다. 이와 같은 데이터는 사용자 단말기(4)와 개발사 서버(2) 간에만 연결되어 앱 실행에 필요한 데이터를 전송받거나 생성된 데이터를 전송하여 앱을 사용하도록 시스템이 구성된다.
개발사 서버(2)는 dex 파일이 포함된 원본 앱(App)을 보안서버(1)에 전달하고, 보안서버(1)로부터 dex 파일이 제거되고, 보안모듈이 새로 포함된 앱을 전달받아 앱마켓 서버(3)에 업로드한다.
이후 개발사 서버(2)는 사용자 단말기(4)가 앱마켓 서버(3)에 업로드된 앱을 다운받아 실행시 앱 실행에 필요한 데이터를 전송하거나 사용자 단말기에서 생성된 데이터를 전송받아 서비스 하도록 구성된다.
앱마켓 서버(3)는 개발사 서버(2)로부터 업로드된 dex 파일이 제거되고, 보안모듈이 새로 포함된 앱을 저장하고 있다가 사용자 단말기(4)가 접속하여 다운받고자 할 경우 해당 파일을 전송하도록 구성된다.
사용자 단말기(4)는 안드로이드 기반 앱을 앱마켓 서버에 접속하여 다운로드 받아 실행하는 단말기로, 스마트폰, 테블릿PC와 같은 단말기이다. 사용자는 사용자 단말기를 통해 다운로드 받은 보안모듈이 포함된 앱을 실행하게 된다.
이때 사용자가 다운로드 받은 앱을 설치 후 실행하게 되면 dex 파일이 삭제된 앱이기 때문에 dex파일이 아닌 보안모듈이 실행되면서 main activity가 실행되면서 보안서버(1)와 연결된다.
이후 사용자 단말기에서 사용하고자 하는 기능별 activity 코드를 보안서버(1)에 요청하면 보안서버(1)는 저장장치에 기능별로 분할된 dex 파일 중 해당되는 기능별 avtivity 코드에 해당하는 dex 파일을 불러와 기능별 dex 난독화 모듈(13)을 통해 난독화된 dex 파일을 생성후 전송하고, 이를 전송받은 사용자 단말기는 Activity 코드를 실행하여 앱을 사용하게 된다.
또한 앱이 실행될 경우 사용자 단말기(4)와 개발사 서버(2)가 연결되어 앱 실행에 필요한 데이터를 전송받거나 생성된 데이터를 전송하여 앱을 사용하게 된다. 이러한 앱 실행과정에서 생성되거나 저장되는 데이터는 보안서버(1)가 관여하지 않도록 구성된다.
이하에서는 상기와 같은 구성을 가진 본 발명의 보안성 향상 시스템을 이용한 보안성 향상 방법을 보다 구체적으로 설명한다.
도 3은 본 발명의 한 실시예에 따른 DEX 파일 분할 및 보안모듈이 적용된 앱의 제작 과정을 순서도이다.
도시된 바와 같이 보안서버(1)는 개발사 서버(2)로부터 안드로이드 기반으로 제작된 dex 파일이 포함된 원본 앱(App)을 전달받는 단계를 가진다.(S1)
이후 보안서버(1)는 원본 앱을 디패키징하여 dex 파일을 추출하는 단계를 가진다.(S2) 이 단계는 기능별 dex 분할 모듈(11)에서 수행한다.
상기 디패키징이란 분석을 위해 전송된 앱을 작은 파일 단위로 분해하는 것을 말한다. 또한 dex 파일이란 안드로이드 앱 실행 코드가 포함된 파일을 말한다.
이후 보안서버(1)는 추출된 원본 dex 파일을 분석하여 복수개의 기능별(activity) dex 파일로 분할하는 dex 기능 분석 및 분할 단계를 가진다.(S3) 이 단계는 기능별 dex 분할 모듈(11)에서 수행한다.
이와 같은 단계는 사용자 단말기(4)의 요청에 맞는 실행 코드를 전달해주기 위한 작업이다.
이후 보안서버(1)는 분할한 dex 파일을 서버의 저장장치에 저장하는 단계를가진다.(S4) 이 단계는 기능별 dex 분할 모듈(11)에서 수행한다.
이후 보안서버(1)는 원본 dex를 대체하여 앱을 실행할 수 있도록 보안모듈을 제작하는 단계를 가진다.(S5) 이 단계는 보안모듈 생성 및 재패키징 모듈(12)에서 수행한다.
이후 보안서버(1)는 제작된 보안 모듈이 포함되고 원본 dex 파일을 제거하여 재패키징한 앱을 생성하는 단계를 가진다.(S6) 이 단계는 보안모듈 생성 및 재패키징 모듈(12)에서 수행한다.
이후 보안서버(1)는 보안 모듈이 적용된 앱을 개발사 서버(2)로 전달하는 단계를 가진다.(S7) 이 단계는 전송모듈(도시 생략)을 통해 수행한다.
이러한 앱이 전송되면 개발사 서버(2)는 해당 앱을 앱마켓 서버(3)에 업로드 하게 된다. 또한 선택적으로 개발사 서버(2)는 사용자 단말기(4)가 직접 다운로드 받을 수 있도록 구성할 수 있다.
도 4는 본 발명의 한 실시예에 따른 보안모듈이 적용된 앱을 사용자단말기가 실행시 난독화 과정을 통한 기능별 DEX 파일의 생성, 전달 및 실행 과정을 보인 순서도이다.
도시된 바와 같이 개발사 서버(2)에 의해 보안모듈이 적용된 앱이 앱마켓 서버(3)에 업로드 되면 사용자 단말기(4)는 앱을 다운로드 받아 휴대폰 또는 테블릿 PC와 같은 안드로이드 기기에 설치하고 실행하게 된다.
이를 위해 사용자 단말기(4)는 앱을 터치하여 보안모듈을 실행시켜 Main Activity 코드를 보안서버에 요청하는 단계를 가진다. 이 단계는 기능별 dex 난독화 모듈(13)이 수행한다.
이후 보안서버(1)는 사용자 단말기로부터 요청받은 Main Activity 코드에 대응하는 dex 파일을 저장장치에 저장된 기능별로 분할된 dex 파일 중에서 찾아 난독화된 dex 코드를 실시간 생성하는 단계를 가진다.(S8) 이 단계는 기능별 dex 난독화 모듈(13)에서 수행하여 난독화된 파일을 생성하게 된다. 여기서 난독화라는 것은 분석을 어렵게 하기 위하여 코드를 쉽게 인지할 수 없는 복잡한 문자로 바꾸는 기법을 말한다.
이후 보안서버(1)는 사용자 단말기(4)에 난독화된 dex 코드를 전송하는 단계를 가진다.(S9)
이후 사용자단말기는 전송된 난독화된 dex 파일로 Main Activity 코드를 실행하여 앱의 첫 페이지가 디스플레이 상에 출력되도록 하는 단계를 가진다.
이후 보안서버(1)는 사용자 단말기로부터 종료가 아닌 앱 기능을 실행하기 위한 Activity 코드 실행을 요청 받게 되면 해당 Activity 코드에 대응하는 dex 파일을 저장장치에 저장된 기능별로 분할된 dex 파일 중에서 찾아 난독화된 dex 코드를 실시간 생성하는 단계를 가진다.(S10)
이후 보안서버(1)는 사용자 단말기(4)에 사용자 단말기(4)에 난독화된 dex 코드를 전송하는 단계를 가진다.(S11)
이후 사용자 단말기(4)는 전송된 난독화된 dex 코드로 Activity 코드를 실행하여 앱이 디스플레이 상에 출력되도록 하는 단계를 가진다.
이후 사용자단말기와 보안서버간에는 종료 Activity 코드가 종료 요청이 아닐 경우 상기 (S10)과 (S11) 단계를 반복하게 된다.
상기에서 보안서버에 전달되는 Activity 코드 실행 요청 데이터란, 로그인 일 경우 사용자 아이디, 패스워드 그리고 요청하는 Activity 번호 값 등이다.
상기에서 난독화된 Activity 코드를 실행하면 앱이 각각의 앱 기능을 수행하게 된다.
또한 사용자단말기에서 실행중인 보안모듈은 사용자 단말기로부터 종료 Activity 코드 실행을 요청 받게 되면 메모리에 저장된 캐쉬 값을 삭제한 후 앱을 종료하는 역할을 수행한다.
이와 같은 단계가 필요한 이유는 앱을 실행하여 특정 기능을 사용할 경우, 해당 코드 값들이 메모리에 남아있게 되는데 이 경우 해커 등의 공격자가 Memory Cache를 분석할 수 있기 때문에 이를 방지하기 위해 삭제하는 과정을 거치게 된다.
본 발명은 상술한 특정의 바람직한 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
(1) : 보안서버 (2) : 개발사 서버
(3) : 앱마켓 서버 (4) : 사용자 단말기
(11) : 기능별 dex 분할 모듈 (12) : 보안모듈 생성 및 재패키징 모듈
(13) : 기능별 dex 난독화 모듈

Claims (13)

  1. 안드로이드 기반 앱의 보안성을 향상시키는 방법에 있어서,
    a) 보안서버가 개발사 서버로부터 전달받은 원본 앱을 디패키징하여 dex 파일을 추출 후 분석하여 복수개의 기능별 dex 파일로 분할 저장하는 단계와;
    b) 보안서버가 보안모듈을 제작하여 원본 dex 파일을 삭제하여 대체한 앱을 재패키징하는 단계와;
    c) 보안서버가 보안모듈이 적용된 앱을 개발사 서버로 전송하는 단계와;
    d) 보안서버가 보안모듈이 적용된 앱을 다운로드 받은 후 보안모듈을 실행시킨 사용자단말기로부터 요청받은 Main Activity 코드 또는 Activity 코드에 대응하는 dex 파일을 기능별로 분할된 dex 파일 중에서 찾아 난독화된 dex 코드를 실시간 생성하는 단계와;
    e) 보안서버가 난독화된 dex 코드를 사용자단말기로 전송하여 Main Activity 코드 또는 Activity가 실행되도록 하는 단계;를 포함하는 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법.
  2. 청구항 1에 있어서,
    상기 d) 또는 e)단계에서 Activity 코드는 보안서버가 Main Activity 코드를 사용자 단말기로 난독화된 dex 파일 전송하여 실행된 후 사용자단말기로부터 요청되는 기능별 Activity 코드인 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법.
  3. 청구항 1에 있어서,
    상기 보안모듈은 사용자 단말기로부터 종료 Activity 코드 실행을 요청 받게 되면 메모리에 저장된 캐쉬 값을 삭제한 후 앱을 종료하는 역할을 수행하는 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법.
  4. 청구항 1에 있어서,
    상기 a)단계에서 보안서버는 추출된 dex 파일을 activity 별로 자동분류하여 복수개로 분할하는 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법.
  5. 청구항 1에 있어서,
    상기 d)단계에서 난독화된 dex 파일 생성시 avtivity가 종료 후 동일한 기능을 하는 avtivity 코드가 요청될 경우 매번 새롭게 난독화된 dex 파일을 생성 후 전송하도록 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법.
  6. 청구항 1에 있어서,
    상기 d)단계에서 보안모듈이 적용된 앱은 개발사 서버가 업로드한 마켓 앱 서버 또는 개발사 서버에서 다운로드 받은 앱인 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 방법.
  7. 보안서버(1), 개발사 서버(2), 앱마켓 서버(3) 및 사용자 단말기(4)로 구성되어 안드로이드 기반 앱의 보안성을 향상시키는 시스템에 있어서,
    상기 보안서버(1)는,
    개발사 서버에서 전송된 앱을 디패키징하여 원본 dex 파일을 분석하여 복수의 dex 파일로 분할하고 저장하는 기능별 dex 분할 모듈(11)과;
    개발사 서버에서 전송된 앱 중에 포함된 원본 dex 파일 대신에 포함될 보안모듈을 제작하여 재패키징하는 보안모듈 생성 및 재패키징 모듈(12)과;
    사용자 단말기에서 보안모듈이 적용된 앱 실행시 activity 기능별로 대응하여 전송할 dex 파일을 난독화하여 전송하는 기능별 dex 난독화 모듈(13);을 포함하여 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
  8. 청구항 7에 있어서,
    상기 기능별 dex 분할 모듈(11)은 추출된 원본 dex 파일을 activity 기능별로 자동 구분하여 복수개의 분할된 dex 파일을 생성하도록 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
  9. 청구항 7에 있어서,
    상기 보안서버(1)에서 보안모듈이 적용되어 재패키징된 앱은 개발사 서버(2)로 전송된 후, 개발사 서버에서 앱마켓 서버(3)에 업로드하여 사용자단말기(4)가 다은로드 하도록 구성한 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
  10. 청구항 7에 있어서,
    상기 보안서버(1)에서 보안모듈이 적용되어 재패키징된 앱은 개발사 서버(2)로 전송된 후, 사용자단말기(4)가 다은로드 하도록 구성한 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
  11. 청구항 7에 있어서,
    상기 기능별 dex 난독화 모듈(13)은 난독화된 dex 파일 생성시 avtivity가 종료 후 동일한 기능을 하는 avtivity 코드가 요청될 경우 매번 새롭게 난독화된 dex 파일을 생성 후 전송하도록 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
  12. 청구항 7에 있어서,
    상기 보안서버(1)는 앱 실행과정에서 사용자 단말기(4) 또는 개발사 서버(2)에서 생성되거나 저장되는 데이터가 전송되어 저장되지 않도록 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
  13. 청구항 7에 있어서,
    상기 사용자단말기(4)에서 실행중인 보안모듈은 사용자 단말기로부터 종료 Activity 코드 실행을 요청 받게 되면 사용자단말기의 메모리에 저장된 캐쉬 값을 삭제한 후 앱을 종료하도록 구성된 것을 특징으로 하는 DEX 파일 분할 및 난독화를 통한 안드로이드 보안성 향상 시스템.
KR1020190176411A 2019-12-27 2019-12-27 Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템 KR20210083780A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190176411A KR20210083780A (ko) 2019-12-27 2019-12-27 Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190176411A KR20210083780A (ko) 2019-12-27 2019-12-27 Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20210083780A true KR20210083780A (ko) 2021-07-07

Family

ID=76862118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190176411A KR20210083780A (ko) 2019-12-27 2019-12-27 Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20210083780A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023279319A1 (en) * 2021-07-08 2023-01-12 Irdeto B.V. Protected data packages

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101391982B1 (ko) 2012-08-28 2014-05-07 바른소프트기술 주식회사 안드로이드 어플리케이션의 디컴파일 방지를 위한 암호화 방법
KR101498820B1 (ko) 2013-11-06 2015-03-05 순천향대학교 산학협력단 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법
KR101642267B1 (ko) 2014-11-28 2016-08-01 주식회사 티모넷 앱 위변조 방지시스템 및 그 방법
KR101734663B1 (ko) 2015-03-19 2017-05-24 단국대학교 산학협력단 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101391982B1 (ko) 2012-08-28 2014-05-07 바른소프트기술 주식회사 안드로이드 어플리케이션의 디컴파일 방지를 위한 암호화 방법
KR101498820B1 (ko) 2013-11-06 2015-03-05 순천향대학교 산학협력단 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법
KR101642267B1 (ko) 2014-11-28 2016-08-01 주식회사 티모넷 앱 위변조 방지시스템 및 그 방법
KR101734663B1 (ko) 2015-03-19 2017-05-24 단국대학교 산학협력단 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023279319A1 (en) * 2021-07-08 2023-01-12 Irdeto B.V. Protected data packages

Similar Documents

Publication Publication Date Title
KR101379527B1 (ko) 클라우드 기반 실시간 앱 프라이버시 대시보드
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US8479291B1 (en) Systems and methods for identifying polymorphic malware
CN103886252A (zh) 受信进程地址空间中执行的软件代码的恶意性的选择评估
Ntantogian et al. Evaluating the privacy of Android mobile applications under forensic analysis
WO2015096695A1 (zh) 一种应用程序的安装控制方法、系统及装置
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
US20160057228A1 (en) Application execution program, application execution method, and information processing terminal device that executes application
US8839436B2 (en) Method and system for antivirus by SIM card combined with cloud computing
KR20140016897A (ko) 디바이스 상의 앱들의 보안화 및 관리
US20200242251A1 (en) Providing application security, validation and profiling to an application
US11500904B2 (en) Local data classification based on a remote service interface
TW201337620A (zh) 用於部分保全記憶體處理的軟體修改技術
WO2014150339A2 (en) Method and system for enabling communications between unrelated applications
US20190199512A1 (en) Re-encrypting data on a hash chain
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
US9990493B2 (en) Data processing system security device and security method
Lim et al. Structural analysis of packing schemes for extracting hidden codes in mobile malware
CN111585995A (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
KR101557455B1 (ko) 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법
KR20210083780A (ko) Dex 파일 분할 및 난독화를 통한 안드로이드 앱 보안성 향상 방법 및 시스템
CN103530169B (zh) 虚拟机文件保护方法和用户终端
US11443058B2 (en) Processing requests at a remote service to implement local data classification
EP3975015B1 (en) Applet package sending method and device and computer readable medium
Eterovic‐Soric et al. Windows 7 antiforensics: a review and a novel approach

Legal Events

Date Code Title Description
E601 Decision to refuse application