KR101369254B1 - 악성 애플리케이션 진단장치 및 방법 - Google Patents

악성 애플리케이션 진단장치 및 방법 Download PDF

Info

Publication number
KR101369254B1
KR101369254B1 KR1020130043772A KR20130043772A KR101369254B1 KR 101369254 B1 KR101369254 B1 KR 101369254B1 KR 1020130043772 A KR1020130043772 A KR 1020130043772A KR 20130043772 A KR20130043772 A KR 20130043772A KR 101369254 B1 KR101369254 B1 KR 101369254B1
Authority
KR
South Korea
Prior art keywords
application
file
malicious
hash information
signature
Prior art date
Application number
KR1020130043772A
Other languages
English (en)
Other versions
KR20140007736A (ko
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 KR1020130043772A priority Critical patent/KR101369254B1/ko
Publication of KR20140007736A publication Critical patent/KR20140007736A/ko
Application granted granted Critical
Publication of KR101369254B1 publication Critical patent/KR101369254B1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

본 발명에서는 안드로이드 OS 기반의 스마트폰 등의 휴대용 단말기에서 악성 애플리케이션을 진단함에 있어서, 애플리케이션의 apk 파일내 포함된 모든 개별 파일의 해쉬 정보를 가지고 있는 인증서 파일인 manifest.mf 파일만을 압축 해제한 후, 압축 해제된 인증서 파일내 존재하는 apk 파일내 모든 개별 파일에 대한 해쉬 정보와 기 저장된 시그니처 해쉬 정보를 비교함으로써 단말기의 성능 저하를 방지하면서도 악성 애플리케이션을 보다 신속하고 정확하게 진단할 수 있다.

Description

악성 애플리케이션 진단장치 및 방법{APPARATUS AND METHOD FOR DETECTING MALICIOUS APPLICATION}
본 발명은 악성 애플리케이션의 진단에 관한 것으로, 특히 안드로이드 OS 기반의 스마트폰 등의 휴대용 단말기에서 악성 애플리케이션을 진단함에 있어서, 애플리케이션의 설치파일인 apk 파일내 포함된 모든 개별 파일의 해쉬 정보를 가지고 있는 인증서 파일인 manifest.mf 파일만을 압축 해제한 후, 압축 해제된 인증서 파일내 존재하는 apk 파일내 모든 개별 파일에 대한 해쉬 정보와 기 저장된 시그니처 해쉬 정보를 비교함으로써 단말기의 성능 저하를 방지하면서도 악성 애플리케이션을 보다 신속하고 정확하게 진단할 수 있도록 하는 악성 애플리케이션 진단장치 및 방법에 관한 것이다.
근래에 들어 유무선 인터넷뿐만 아니라 이동통신 기술의 발달로, 단순히 전화통화 기능뿐만이 아닌 무선 인터넷 기능 등 다양한 기능을 갖춘 휴대폰이 보급되고 있다. 특히 최근에 보급이 확산되고 있는 스마트폰(smartphone)은 멀티미디어 재생기능 등의 다양한 기능의 응용프로그램의 설치가 가능하여, 사용자들이 여러 용도로 스마트폰을 이용하고 있다.
일반적으로 스마트폰은 휴대전화와 개인휴대단말기(personal digital assistant : PDA)의 장점을 합친 것으로, 휴대 전화기에 일정관리, 팩스 송수신 및 인터넷 접속 등의 데이터 통신기능을 통합시켜 구현된다. 통상 스마트폰에는 와이파이(wifi)와 같은 무선통신모듈이 장착되어 인터넷망을 통한 데이터 송수신도 가능하며, 인터넷 정보검색은 물론 액정디스플레이에 전자펜으로 문자를 입력하거나 약도 등 그림 정보를 송수신할 수 있다.
이러한 스마트폰은 저마다의 운영체제가 존재하며, 해당 운영체제에 의해 실행 가능한 응용프로그램의 개발이 활발히 이루어지고 있다.
위와 같은 스마트폰의 운영체제 중 안드로이드(Android) 플랫폼은 구글(Google) 사가 주도하는 OHA(Open Handset Alliance)에서 공개한 오픈 소스 플랫폼으로, 리눅스(Linux) 커널, 가상머신(VM : Virtual Machine), 프레임워크(Framework), 응용프로그램을 모두 포함하는 소프트웨어 패키지를 의미한다.
현재 안드로이드 플랫폼에 대한 사용자들의 기대가 상승하고, 단말 제조사와 이동 통신 서비스 제공사의 높은 호응으로 안드로이드 플랫폼을 탑재하는 스마트폰 등의 휴대용 단말기가 점점 늘어남에 따라 안드로이드 응용프로그램 시장이 활성화되기 시작하였고, 양질의 안드로이드 응용프로그램 공급에 대한 요구가 높아지고 있다.
한편, 위와 같이 안드로이드 플랫폼을 탑재한 스마트폰 사용자가 늘어남에 따라 안드로이드 OS를 타겟으로 하는 악성코드 또한 급격히 증가하고 있으며, 안드로이드 악성코드 제작자들은 기존의 PC환경에서 익혔던 다양한 기술을 안드로이드 악성 애플리케이션의 제작에 반영하여 PC에서의 것보다 빠르게 발전시켜 나가고 있다.
위와 같은 안드로이드 악성 애플리케이션 제작에 있어서 종래에는 안드로이드 애플리케이션 APK 파일에 포함된 classes.dex와 AndroidManifest.xml 파일을 일부 수정하는 방식으로 악성 애플리케이션을 제작하는 것이 대표적이다.
이에 따라, 위와 같은 안드로이드 악성 애플리케이션을 탐지하기 위해서는 안드로이드 애플리케이션의 apk 파일을 압축해제하여 모든 apk 압축 해제 파일에 대해 해쉬값을 검출하여 악성 애플리케이션에 대한 시그니처를 가지고 있는 DB와 비교하여 탐지를 수행하게 된다.
(특허문헌)
한국공개특허번호 제2011-0084693호(공개일자 2011년 07월 26일)
그러나, 애플리케이션의 apk 파일을 모두 압축해제하여 압축해제된 전체 파일에 대해 해쉬정보를 구하고, 이를 토대로 시그니처 해쉬정보와 비교하여 악성 애플리케이션을 진단하는 종래의 방법에서는 apk 파일을 압축해제 하는데 시간이 많이 소요되며, 그에 따른 휴대용 단말기의 성능 저하 등의 문제점이 있었다.
따라서, 본 발명은 안드로이드 OS 기반의 스마트폰 등의 휴대용 단말기에서 악성 애플리케이션을 진단함에 있어서, 애플리케이션의 설치파일인 apk 파일내 포함된 모든 개별 파일의 해쉬 정보를 가지고 있는 인증서 파일인 manifest.mf 파일만을 압축 해제한 후, 압축 해제된 인증서 파일내 존재하는 apk 파일내 모든 개별 파일에 대한 해쉬 정보와 기 저장된 시그니처 해쉬 정보를 비교함으로써 단말기의 성능 저하를 방지하면서도 악성 애플리케이션을 보다 신속하고 정확하게 진단할 수 있도록 하는 악성 애플리케이션 진단장치 및 방법을 제공하고자 한다.
상술한 본 발명은 악성 애플리케이션 진단장치로서, 휴대용 단말기에 설치될수 있는 애플리케이션에 대한 정상 또는 악성의 시그니처 해쉬정보가 저장된 시그니처 DB와, 상기 애플리케이션으로부터 상기 애플리케이션의 해쉬정보를 가지는 manifest.mf 파일을 추출하는 인증서 파일 추출부와, 추출된 상기 manifest.mf 파일로부터 상기 애플리케이션의 해쉬정보를 읽어들여 상기 시그니처 데이터베이스에 기 저장된 시그니처 해쉬정보와 비교한 후, 해당 애플리케이션의 악성 여부를 진단하는 진단부를 포함한다.
또한, 상기 인증서 파일 추출부는, 상기 애플리케이션의 설치파일인 apk 파일로부터 상기 manifest.mf 파일을 검색하여 추출하는 것을 특징으로 한다.
또한, 상기 진단 엔진부는, 상기 manifest.mf 파일을 압축해제하여 상기 애플리케이션의 전체파일에 대한 해쉬정보를 추출하는 것을 특징으로 한다.
또한, 상기 manifest.mf파일은, 상기 애플리케이션에 대한 전자서명시 상기 애플리케이션의 설치파일인 apk 파일 내부에 하나의 파일로 생성되는 것을 특징으로 한다.
또한, 상기 manifest.mf파일은, 상기 전체파일에 대한 해쉬정보를 텍스트 형태로 저장하고 있는 것을 특징으로 한다.
또한, 상기 진단 엔진부는, 상기 애플리케이션이 포함하는 모든 파일들에 대한 개별 파일 각각의 해쉬정보들 중에서 상기 시그니처 DB에 저장되어 있는 정상 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 발견될 경우 해당 애플리케이션을 정상 애플리케이션으로 판단하는 것을 특징으로 한다.
또한, 상기 진단 엔진부는, 상기 애플리케이션이 포함하는 모든 파일들에 대한 개별 파일 각각의 해쉬정보들 중에서 상기 시그니처 DB에 저장되어 있는 악성 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 발견될 경우 해당 애플리케이션을 악성 애플리케이션으로 판단하는 것을 특징으로 한다.
또한, 상기 진단 엔진부는, 악성 애플리케이션으로 진단된 해당 애플리케이션에 대해서는 상기 휴대용 단말기로의 설치를 차단시키거나, 이미 설치된 애플리케이션에 대해서는 해당 애플리케이션을 삭제시키는 것을 특징으로 한다.
또한, 상기 휴대용 단말기는, 안드로이드 OS가 탑재된 전자기기 인 것을 특징으로 한다.
또한, 상기 애플리케이션은, 안드로이드 OS용 애플리케이션인 것을 특징으로 한다.
또한, 악성 애플리케이션 진단방법으로서, 휴대용 단말기에 설치될 수 있는 애플리케이션의 apk 파일로부터 상기 애플리케이션의 해쉬정보를 가지는 manifest.mf 파일을 추출하는 단계와,상기 manifest.mf 파일로부터 상기 애플리케이션의 전체파일에 대한 해쉬정보를 읽어들이는 단계와, 상기 애플리케이션이 포함하는 모든 파일에 대한 각각의 해쉬정보들 중에 기 저장된 정상 또는 악성의 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지 비교하는 단계와, 상기 비교결과를 기반으로 상기 애플리케이션의 악성 또는 정상여부를 판단하는 단계를 포함한다.
또한, 상기 판단하는 단계는, 상기 애플리케이션의 모든 파일에 대한 각각의 해쉬정보들 중에 상기 정상 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지 검색하는 단계와, 상기 검색결과와 일치하는 것이 하나 이상 발견될 경우 상기 애플리케이션을 정상 애플리케이션으로 판단하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 판단하는 단계는, 상기 애플리케이션의 모든 파일에 대한 각각의 해쉬정보들 중에 상기 악성 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지 검색하는 단계와, 상기 검색 결과에서 해쉬정보와 일치하는 파일이 하나 이상 발견될 경우 상기 애플리케이션을 악성 애플리케이션으로 판단하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 애플리케이션이 악성 애플리케이션으로 판단되는 경우, 상기 애플리케이션에 대해서는 상기 휴대용 단말기로의 설치를 차단시키는 단계와, 상기 애플리케이션이 상기 휴대용 단말기에 이미 설치된 경우에는 상기 애플리케이션을 삭제시키는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 manifest.mf 파일은, 상기 애플리케이션에 대한 전자서명시 상기 애플리케이션의 apk 파일 내부에 하나의 파일로 생성되는 것을 특징으로 한다.
또한, 상기 manifest.mf 파일은, 상기 애플리케이션의 전체파일에 대한 해쉬정보를 텍스트 형태로 저장하고 있는 것을 특징으로 한다.
본 발명은 안드로이드 OS 기반의 스마트폰 등의 휴대용 단말기에서 악성 애플리케이션을 진단함에 있어서, 애플리케이션의 설치파일인 apk 파일내 포함된 모든 개별 파일의 해쉬 정보를 가지고 있는 인증서 파일인 manifest.mf 파일만을 압축 해제한 후, 압축 해제된 인증서 파일내 존재하는 apk 파일내 모든 개별 파일에 대한 해쉬 정보와 기 저장된 시그니처 해쉬 정보를 비교함으로써 단말기의 성능 저하를 방지하면서도 악성 애플리케이션을 보다 신속하고 정확하게 진단할 수 있는 이점이 있다.
도 1은 본 발명의 실시예에 따른 악성 애플리케이션 진단장치의 상세 블록 구성도,
도 2는 본 발명의 실시예에 따른 악성 애플리케이션 진단 개념도,
도 3은 본 발명의 실시예에 따른 악성 애플리케이션을 진단하는 동작 제어 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 실시예에 따른 휴대용 단말기의 악성 애플리케이션을 진단하는 진단장치(100)의 상세 블록 구성을 도시한 것으로, 인증서 파일 추출부(102), 진단 엔진부(104), 시그니처(signature) DB(database)(106) 등을 포함한다. 이러한 휴대용 단말기는 스마트폰과 테블릿 PC 등의 단말기를 포함할 수 있다.
이하, 도 1을 참조하여 본 발명의 악성 애플리케이션 진단장치(100) 각부에서의 동작을 상세히 살펴보기로 한다.
먼저, 시그니처 DB(106)는 휴대용 단말기에 설치되는 애플리케이션에 대한 정상 시그니처(white signature) 해쉬정보 및/또는 악성 시그니처(malware signature) 해쉬정보를 저장한다.
인증서 파일 추출부(102)는 휴대용 단말기에 새로이 다운로드(download)되어 설치되거나 이전 설치된 애플리케이션에 대해 애플리케이션의 압축 해제된 파일 중 애플리케이션의 해쉬정보를 가지는 인증서 파일을 추출한다.
안드로이드 플랫폼에 설치되는 모든 애플리케이션은 Java의 jar 형식을 가지는 압축파일인 apk(android package) 파일 형식을 가지며, 통상적으로 전자서명(signing)이 이루어진 후에 휴대용 단말기에 설치 및 실행이 가능하다.
이때, 위와 같은 애플리케이션에 전자 서명이 되는 경우 apk 파일 내부에 인증서 파일인 manifest.mf 파일이 생성되는데, 이와 같은 인증서 파일에는 apk 파일에 포함된 모든 파일에 대한 해쉬 정보가 포함된다. 이러한 해쉬 정보는 SHA-1 해쉬를 포함하여 MD5, SHA-256 등, 인증서에 명시된 다른 해쉬 알고리즘 또한 사용될 수 있다.
즉, 인증서 파일 추출부(102)는 apk 파일에 포함된 파일 중 애플리케이션을 구성하는 모든 파일의 해쉬 정보를 가지고 있는 인증서 파일인 manifest.mf 파일을추출하게 된다.
진단 엔진부(104)는 인증서 파일 추출부(102)로부터 추출된 인증서 파일을 압축 해제하여 애플리케이션을 구성하는 모든 파일에 대한 해쉬정보를 읽어들여 시그니처 DB(106)에 기 저장된 정상 또는 악성의 시그니처 해쉬정보와 비교한 후, 해당 애플리케이션의 악성 여부를 진단한다.
즉, 진단 엔진부(104)는 예를 들어 애플리케이션의 전체파일에 대한 해쉬정보 중에서 시그니처 DB(106)에 저장된 정상 시그니처 해쉬정보와 일치하는 것이 하나 이상 검색되는 경우 해당 애플리케이션을 정상 애플리케이션으로 판단할 수 있다. 또한 애플리케이션의 전체파일에 대한 해쉬정보 중에서 악성 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 검색되는 경우 악성 애플리케이션으로 진단할 수 있다.
이때, 진단 엔진부(104)는 위와 같이 악성 애플리케이션으로 진단된 해당 애플리케이션에 대해서는 휴대용 단말기로의 설치를 차단시키거나, 이미 설치된 애플리케이션에 대해서는 해당 애플리케이션을 삭제시킬 수 있다.
도 2는 본 발명의 실시예에 따른 휴대용 단말기의 악성 애플리케이션을 진단하는 진단장치에서 동작 개념을 도시한 것이다.
이하, 도 2를 참조하여 다시 한번 악성 애플리케이션 진단장치(100) 각부에서의 동작을 살펴보기로 한다.
안드로이드 플랫폼에 설치되는 애플리케이션의 apk 파일은 도 2에서 보여지는 바와 같이 AndroidManifest.xml, classes.dex, resources.arsc 파일이 루트 디렉토리(root directory)(202)의 하위 디렉토리에 폴더 형태로 반드시 존재하게 된다. 이때, [META-INF] 디렉토리에는 apk 파일내 포함되는 모든 개별 파일의 해쉬정보를 저장하고 있는 인증서 파일(204)인 manifest.mf 파일이 존재한다.
즉, 인증서 파일(204)에는 도 2의 참조번호 (210)에서 보여지는 바와 같이 apk 파일내 포함되는 모든 개별 파일의 해쉬 정보가 텍스트(text) 형태로 저장되어 있다.
이와 같은 인증서 파일(204)은 인증서 파일 추출부(102)에 의해 추출되어 진단 엔진부(104)로 전달된다.
그러면, 진단 엔진부(104)에서는 인증서 파일(204)에 텍스트 형태로 기록되어 있는 apk 파일이 포함하고 있는 모든 개별 파일 즉, 애플리케이션을 구성하는 전체 파일에 대한 해쉬 정보를 시그니처 DB(106)에 기 저장된 정상 또는 악성의 시그니처 해쉬정보와 비교한 후, 해당 애플리케이션의 악성 여부를 진단하는 것이다.
즉, 진단 엔진부(104)는 예를 들어 전체파일에 대한 해쉬정보 중에서 시그니처 DB(106)에 저장된 정상 시그니처 해쉬정보와 일치하는 것이 하나 이상 검색되는 경우 해당 애플리케이션을 정상 애플리케이션으로 판단할 수 있다. 또한 애플리케이션의 전체파일에 대한 해쉬정보 중에서 악성 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 검색되는 경우 악성 애플리케이션으로 진단할 수 있다.
이때, 종래 안드로이드 애플리케이션에 대한 악성여부 진단에 있어서는 apk 파일에 포함되는 모든 개별 파일에 대해 일일이 압축을 해제하여 해쉬정보를 읽어들이는 과정을 통해 애플리케이션의 전체파일에 대한 해쉬정보를 구성함에 따라 시간이 많이 소요되었으며, 단말기의 성능이 저하되는 문제점이 있었으며, 또한 classes.dex, resoures.arsc 등과 같이 악성 코드에 의한 감염 가능성이 높은 일부 파일에 대해서만 진단을 수행하는 경우에는 파일의 특정 부분만을 검사하기 때문에 오진의 위험성이 있었음은 전술한 바와 같다.
따라서, 본 발명에서는 위 설명한 바와 같이 apk 파일내 포함된 모든 개별파일에 대해 일일이 압축을 해제하는 것을 통해 모든 개별 파일의 해쉬 정보를 수집하는 것이 아니라, apk 파일내 모든 개별 파일의 해쉬 정보를 텍스트 형태로 가지고 있는 인증서 파일(204)만을 압축해제함으로써 애플리케이션의 전체파일에 대한 해쉬정보를 구하도록 함으로서 해쉬정보를 구성하는데 따른 시간을 크게 절약할 수 있으며, 또한 각각의 파일에 대해 파일 전체(단일파일)에 대한 해쉬정보를 가지고 진단을 수행함으로써 오진의 위험성도 방지시킬 수 있게 되는 것이다.
도 3은 본 발명의 실시예에 따른 악성 애플리케이션 진단장치(100)에서 악성 애플리케이션을 진단하는 동작 제어 흐름을 도시한 것이다. 이하, 도 1, 도 2 및 도 3을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 휴대용 단말기에 대한 악성 애플리케이션 진단이 요청되는 경우 진단장치(100)내 진단 엔진부(104)는 휴대용 단말기에 설치된 파일들에 대해 파일 유형 분석을 수행하여 apk 파일 형식을 가지는 애플리케이션을 검색한다(S300, S302).
이때, apk 파일 형식을 가지는 애플리케이션이 검색되는 경우 진단 엔진부(104)는 해당 애플리케이션의 apk파일로부터 애플리케이션의 전체파일에 대한 해쉬정보를 가지고 있는 인증서 파일(204)인 mankfest.mf 파일을 압축해제한다(S304). 이때, 위와 같은 인증서 파일(204)인 manifest.mf 파일은 인증서 파일 추출부(102)로부터 추출되어 진단 엔진부(104)로 제공될 수 있다.
인증서 파일(204)에는 도 2의 참조번호 (210)에서 보여지는 바와 같이 apk 파일내 포함되는 모든 개별 파일의 해쉬 정보가 텍스트 형태로 저장되어 있는데, 진단 엔진부(104)는 인증서 파일(204)에 텍스트 형태로 기록되어 있는 apk 파일이 포함하고 있는 모든 개별 파일 즉, 애플리케이션을 구성하는 전체 파일에 대한 해쉬 정보를 읽어온다(S306).
이어, 진단 엔진부(104)는 인증서 파일(204)에서 읽어들인 해당 애플리케이션의 전체파일에 대한 해쉬정보들 중에서 시그니처 DB(106)에 기 저장된 정상 또는 악성의 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지를 검색한 후, 해당 애플리케이션의 악성 또는 정상 여부를 판단한다(S308).
즉, 진단 엔진부(104)는 예를 들어 애플리케이션이 포함하는 전체 파일들에 대한 해쉬정보 중에 시그니처 DB(106)에 저장된 정상 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 존재할 경우 해당 애플리케이션을 정상 애플리케이션으로 진단할 수 있다. 또한 애플리케이션이 포함하는 전체 파일들에 대한 해쉬정보 중에 악성 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 존재할 경우 해당 애플리케이션을 악성 애플리케이션으로 진단할 수 있다.
이어, 진단 엔진부(104)는 진단된 결과에 따라, 위와 같이 악성 애플리케이션으로 진단된 해당 애플리케이션에 대해서는 휴대용 단말기로의 설치를 차단시키거나, 이미 설치된 애플리케이션에 대해서는 해당 애플리케이션을 삭제시킬 수 있다(S310).
상기한 바와 같이, 본 발명에서는 안드로이드 OS 기반의 스마트폰 등의 휴대용 단말기에서 악성 애플리케이션을 진단함에 있어서, 애플리케이션의 apk 파일내 포함된 모든 개별 파일의 해쉬 정보를 가지고 있는 인증서 파일인 manifest.mf 파일만을 압축 해제한 후, 압축 해제된 인증서 파일내 존재하는 apk 파일내 모든 개별 파일에 대한 해쉬 정보와 기 저장된 시그니처 해쉬 정보를 비교함으로써 단말기의 성능 저하를 방지하면서도 악성 애플리케이션을 보다 신속하고 정확하게 진단할 수 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
102 : 인증서 파일 추출부 104 : 진단 엔진부
106 : 시그니처 DB

Claims (16)

  1. 휴대용 단말기에 설치 가능한 애플리케이션에 대한 정상 시그니처 해쉬정보 또는 악성 시그니처 해쉬정보가 저장된 시그니처 데이터베이스와,
    상기 애플리케이션의 설치파일인 apk 파일로부터 상기 애플리케이션의 해쉬정보를 가지는 manifest.mf 파일을 검색하여 추출하는 인증서 파일 추출부와,
    추출된 상기 manifest.mf 파일을 압축 해제하여 상기 애플리케이션의 전체 파일에 대한 해쉬정보를 추출하여, 이를 읽어들이고 상기 시그니처 데이터베이스에 기 저장된 시그니처 해쉬정보와 비교한 후, 해당 애플리케이션의 악성 여부를 진단하는 진단 엔진부
    를 포함하는 악성 애플리케이션 진단장치.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 manifest.mf파일은,
    상기 애플리케이션에 대한 전자서명시 상기 애플리케이션의 설치파일인 apk 파일 내부에 하나의 파일로 생성되는 것을 특징으로 하는 악성 애플리케이션 진단장치.
  5. 제 1 항에 있어서,
    상기 manifest.mf파일은,
    상기 전체파일에 대한 해쉬정보를 텍스트 형태로 저장하고 있는 것을 특징으로 하는 악성 애플리케이션 진단장치.
  6. 제 1 항에 있어서,
    상기 진단 엔진부는,
    상기 애플리케이션이 포함하는 모든 파일들에 대한 개별 파일 각각의 해쉬정보들 중에서 상기 시그니처 데이터 베이스에 저장되어 있는 정상 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 발견될 경우 해당 애플리케이션을 정상 애플리케이션으로 판단하는 것을 특징으로 하는 악성 애플리케이션 진단장치.
  7. 제 1 항에 있어서,
    상기 진단 엔진부는,
    상기 애플리케이션이 포함하는 모든 파일들에 대한 개별 파일 각각의 해쉬정보들 중에서 상기 시그니처 데이터 베이스에 저장되어 있는 악성 시그니처 해쉬정보와 서로 일치하는 것이 하나 이상 발견될 경우 해당 애플리케이션을 악성 애플리케이션으로 판단하는 것을 특징으로 하는 악성 애플리케이션 진단장치.
  8. 제 7 항에 있어서,
    상기 진단 엔진부는,
    악성 애플리케이션으로 진단된 해당 애플리케이션에 대해서는 상기 휴대용 단말기로의 설치를 차단시키거나, 이미 설치된 애플리케이션에 대해서는 해당 애플리케이션을 삭제시키는 것을 특징으로 하는 악성 애플리케이션 진단장치.
  9. 제 1 항에 있어서,
    상기 휴대용 단말기는,
    안드로이드 OS가 탑재된 전자기기 인 것을 특징으로 하는 악성 애플리케이션 진단장치.
  10. 제 1 항에 있어서,
    상기 애플리케이션은,
    안드로이드 OS용 애플리케이션인 것을 특징으로 하는 악성 애플리케이션 진단장치.
  11. 휴대용 단말기에 설치 가능한 애플리케이션의 apk 파일로부터 상기 애플리케이션의 해쉬정보를 가지는 manifest.mf 파일을 추출하는 단계와,
    상기 manifest.mf 파일을 압축 해제하고 상기 애플리케이션의 전체파일에 대한 해쉬정보를 읽어들이는 단계와,
    상기 애플리케이션이 포함하는 모든 파일에 대한 각각의 해쉬정보들 중에 기 저장된 정상 또는 악성의 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지 비교하는 단계와,
    상기 비교결과에 따라 상기 애플리케이션의 악성 또는 정상여부를 판단하는 단계
    를 포함하는 악성 애플리케이션 진단방법.
  12. 제 11 항에 있어서,
    상기 판단하는 단계는,
    상기 애플리케이션의 모든 파일에 대한 각각의 해쉬정보들 중에 상기 정상 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지 검색하는 단계와,
    상기 검색결과와 일치하는 것이 하나 이상 발견될 경우 상기 애플리케이션을 정상 애플리케이션으로 판단하는 단계
    를 더 포함하는 것을 특징으로 하는 악성 애플리케이션 진단방법.
  13. 제 11 항에 있어서,
    상기 판단하는 단계는,
    상기 애플리케이션의 모든 파일에 대한 각각의 해쉬정보들 중에 상기 악성 시그니처 해쉬정보와 일치하는 것이 하나 이상 존재하는지 검색하는 단계와,
    상기 검색 결과에서 해쉬정보와 일치하는 파일이 하나 이상 발견될 경우 상기 애플리케이션을 악성 애플리케이션으로 판단하는 단계
    를 더 포함하는 것을 특징으로 하는 악성 애플리케이션 진단방법.
  14. 제 13 항에 있어서,
    상기 애플리케이션이 악성 애플리케이션으로 판단되는 경우, 상기 애플리케이션에 대해서는 상기 휴대용 단말기로의 설치를 차단시키는 단계와,
    상기 애플리케이션이 상기 휴대용 단말기에 이미 설치된 경우에는 상기 애플리케이션을 삭제시키는 단계
    를 더 포함하는 것을 특징으로 하는 악성 애플리케이션 진단방법.
  15. 제 11 항에 있어서,
    상기 manifest.mf 파일은,
    상기 애플리케이션에 대한 전자서명시 상기 애플리케이션의 apk 파일 내부에 하나의 파일로 생성되는 것을 특징으로 하는 악성 애플리케이션 진단방법.
  16. 제 11 항에 있어서,
    상기 manifest.mf 파일은,
    상기 애플리케이션의 전체파일에 대한 해쉬정보를 텍스트 형태로 저장하고 있는 것을 특징으로 하는 악성 애플리케이션 진단방법.
KR1020130043772A 2013-04-19 2013-04-19 악성 애플리케이션 진단장치 및 방법 KR101369254B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130043772A KR101369254B1 (ko) 2013-04-19 2013-04-19 악성 애플리케이션 진단장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130043772A KR101369254B1 (ko) 2013-04-19 2013-04-19 악성 애플리케이션 진단장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020120074453 Division 2012-07-09 2012-07-09

Publications (2)

Publication Number Publication Date
KR20140007736A KR20140007736A (ko) 2014-01-20
KR101369254B1 true KR101369254B1 (ko) 2014-03-06

Family

ID=50141999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130043772A KR101369254B1 (ko) 2013-04-19 2013-04-19 악성 애플리케이션 진단장치 및 방법

Country Status (1)

Country Link
KR (1) KR101369254B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102582580B1 (ko) * 2016-01-19 2023-09-26 삼성전자주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법
KR102289408B1 (ko) * 2019-09-03 2021-08-12 국민대학교산학협력단 해시 코드 기반의 검색 장치 및 검색 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101043299B1 (ko) * 2009-07-21 2011-06-22 (주) 세인트 시큐리티 악성 코드 탐지 방법, 시스템 및 컴퓨터 판독 가능한 저장매체
KR101161493B1 (ko) * 2010-01-18 2012-06-29 (주)쉬프트웍스 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101043299B1 (ko) * 2009-07-21 2011-06-22 (주) 세인트 시큐리티 악성 코드 탐지 방법, 시스템 및 컴퓨터 판독 가능한 저장매체
KR101161493B1 (ko) * 2010-01-18 2012-06-29 (주)쉬프트웍스 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법

Also Published As

Publication number Publication date
KR20140007736A (ko) 2014-01-20

Similar Documents

Publication Publication Date Title
KR102582580B1 (ko) 악성 코드 분석을 위한 전자 장치 및 이의 방법
KR101246623B1 (ko) 악성 애플리케이션 진단 장치 및 방법
Mahalik et al. Practical mobile forensics
KR101161493B1 (ko) 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법
US9953162B2 (en) Rapid malware inspection of mobile applications
KR101373986B1 (ko) 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치
US20170161496A1 (en) Method and device for identifying virus apk
Bommisetty et al. Practical mobile forensics
US9607156B2 (en) System and method for patching a device through exploitation
KR20150044490A (ko) 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
KR101277517B1 (ko) 애플리케이션 위/변조 탐지장치 및 방법
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
KR20140093699A (ko) 부정 어플리케이션 검지 시스템 및 방법
KR101256468B1 (ko) 악성 파일 진단 장치 및 방법
WO2014010847A1 (ko) 악성 애플리케이션 진단장치 및 방법
KR20140103347A (ko) 무선 휴대 장치 부팅 방법 및 무선 휴대 장치
KR20140122964A (ko) 클라우드 기반 악성코드 진단 장치, 시스템 및 방법
Skulkin et al. Learning Android Forensics: Analyze Android devices with the latest forensic tools and techniques
EP3574428B1 (en) Safe data access through any data channel
KR101369254B1 (ko) 악성 애플리케이션 진단장치 및 방법
Votipka et al. Passe-partout: A general collection methodology for Android devices
KR101473658B1 (ko) 필터를 이용한 클라우드 기반 악성코드 진단장치, 시스템 및 방법
KR101256461B1 (ko) 프로세스 실행 시점 판단장치 및 방법
CN110502900B (zh) 一种检测方法、终端、服务器及计算机存储介质
CN115552401A (zh) 一种快应用检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190225

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 7