KR101304307B1 - 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법 - Google Patents

안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법 Download PDF

Info

Publication number
KR101304307B1
KR101304307B1 KR1020120049113A KR20120049113A KR101304307B1 KR 101304307 B1 KR101304307 B1 KR 101304307B1 KR 1020120049113 A KR1020120049113 A KR 1020120049113A KR 20120049113 A KR20120049113 A KR 20120049113A KR 101304307 B1 KR101304307 B1 KR 101304307B1
Authority
KR
South Korea
Prior art keywords
file
android mobile
identification
mobile application
data packets
Prior art date
Application number
KR1020120049113A
Other languages
English (en)
Other versions
KR20130096618A (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 숭실대학교산학협력단
Publication of KR20130096618A publication Critical patent/KR20130096618A/ko
Application granted granted Critical
Publication of KR101304307B1 publication Critical patent/KR101304307B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법이 개시된다. 개시된 식별 장치는 식별대상 파일이 zip 파일 형식을 가지는지를 판단하고, 상기 식별대상 파일이 zip 파일 형식을 가지는 경우 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하여 상기 식별대상 파일이 안드로이드 모바일 어플리케이션인지를 판단하는 판단부; 및 상기 식별대상 파일이 안드로이드 모바일 어플리케이션으로 판단된 경우, 상기 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 상기 식별대상 파일이 불법 복제된 안드로이드 모바일 어플리케이션인지를 식별하는 식별부를 포함한다.

Description

안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법{Method for determining android mobile application, Method and Apparatus for identifying illegal copied android mobile application using the same}
본 발명의 실시예들은 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법과 이에 이용되는 안드로이드 모바일 어플리케이션의 판단 방법에 관한 것이다.
안드로이드 시스템은 기본적으로 내부 시스템 메모리 영역을 외부에서 임의로 접근하지 못하도록 보호하고 있으므로 불법적인 안드로이드 모바일 어플리케이션(이하, "안드로이드 모바일 앱"이라고 함)의 복제를 막고 내부 시스템의 투명성을 유지하고 있다.
그러나, 루팅이라고 일컬어 지는 해킹을 통해 관리자 권한이 획득되는 경우, 악의적인 사용자는 안드로이드 모바일 앱을 용이하게 추출해 낼 수 있을 뿐만 아니라 불법으로 안드로이드 모바일 앱을 복제하여 배포할 수 있게 되었다. 이에 따라 안드로이드 모바일 앱의 불법 복제를 차단하거나, 불법 복제된 안드로이드 모바일 앱의 배포 내지 사용을 차단하는 방법에 대한 연구가 진행되고 있다.
이와 관련하여, 백신 프로그램과 유사한 시스템 감시 툴을 이용하여 불법 복제된 안드로이드 모바일 앱을 식별하여 이의 배포 내지 사용을 차단하기 위한 연구가 있었다. 그러나 상기한 종래 연구는 불법 복제된 안드로이드 모바일 앱의 식별 정확도가 낮고 악의적인 사용자에 의해 강제로 서비스가 종료될 수 있다는 문제점이 있다.
이 외에도, 모바일 기기로의 설치 과정에서 불법 복제 된 안드로이드 모바일 앱을 강제로 차단(즉, 설치를 차단)하는 연구가 있었지만, 상기한 종래 연구는 모바일 기기의 제조사와의 협력이 요구되고, 이미 보급된 모바일 기기와의 호환성 문제가 발생하는 단점이 있다.
이에 따라, 불법 복제된 안드로이드 모바일 앱의 배포 단계에서 차단하는 방법에 대한 필요성이 증가되고 있다.
한편, 도 1은 불법 복제된 컨텐츠를 배포 단계에서 차단하는 종래 기술을 설명하기 위한 도면으로서, 도 1에 따른 종래의 불법 컨텐츠의 배포 차단 기술은 불법 복제된 컨텐츠 수집 요구에 따라 웹 페이지, P2P, 웹 하드 등에서 불법 복제된 컨텐츠에 대한 데이터를 자동으로 수집하고 이의 특징점(feature)을 분석함으로써 불법 복제된 컨텐츠를 추적한다. 이와 같은 종래 기술은 파일명 또는 확장자가 변경된 불법 컨텐츠에 대해서도 핑거프린팅 또는 특징점 정보를 추출이 가능하므로, 배포되는 컨텐츠가 불법 복제된 것인지 여부를 용이하게 확인할 수 있다는 장점이 있다.
또한, 도 2는 특징점을 이용한 종래의 네트워크 트래픽 분석 기술의 개념을 도시한 도면으로서, 도 2에 따른 종래의 네트워크 트래픽 분석 기술은 특정 응용 프로그램에서 발생하는 트래픽을 수집하여 해당 트래픽에서 나타나는 고유한 특징을 특징점으로 추출하고, 이를 분석 대상 트래픽과 비교함으로써 불법 어플리케이션의 배포를 차단한다.
그러나, 상기한 종래 기술들은 아래와 같은 문제점이 있다.
먼저, 네트워크 모니터링은 네트워크에 전송되는 모든 데이터 패킷들을 수집하고 분석하는 작업이 동반되는데, 이러한 데이터 패킷들의 수집 및 분석 작업은 시스템 자원(resource)을 많이 소모하므로 시스템 성능이 저하되는 문제가 발생한다. 특히, 모니터링으로 인한 시스템의 성능 저하는 실시간으로 데이터 패킷의 경로를 설정하여 재전송하는 라우팅 장치에 치명적일 수 있으므로, 시스템 성능 저하를 최소화할 수 있는 네트워크 모니터링 기술이 요구된다.
다음으로, 네트워크 모니터링을 통해 불법 복제된 안드로이드 모바일 앱의 배포를 차단하기 위해서는 네트워크를 통해 수신한 파일이 안드로이드 모바일 앱인지 여부를 우선적으로 판단하여야 하는데, 아직까지 특징점의 비교를 통해 안드로이드 모바일 앱을 식별하는 연구는 부재한 상황이다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 특징점 비교를 통해 안드로이드 모바일 어플리케이션을 식별하는 방법 및 이를 이용하여 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법을 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 불법 복제된 안드로이드 모바일 어플리케이션을 식별하는 장치에 있어서, 식별대상 파일이 zip 파일 형식을 가지는지를 판단하고, 상기 식별대상 파일이 zip 파일 형식을 가지는 경우 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하여 상기 식별대상 파일이 안드로이드 모바일 어플리케이션인지를 판단하는 판단부; 및 상기 식별대상 파일이 안드로이드 모바일 어플리케이션으로 판단된 경우, 상기 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 상기 식별대상 파일이 불법 복제된 안드로이드 모바일 어플리케이션인지를 식별하는 식별부를 포함하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치가 제공된다.
상기 zip 파일은 고유 코드를 각각 포함하는 Local header 영역, Centural header 영역 및 End of record 영역을 포함하고, 상기 판단부는 식별대상 파일이 상기 Local header 영역의 고유 코드, 상기 Centural header 영역의 고유 코드 및 상기 End of record 영역의 고유 코드가 포함하는지를 분석하여 상기 식별대상 파일이 zip 파일 형식을 가지는지를 판단할 수 있다.
상기 고유 스트링은 res/, assets/, AndroidManifest.xml, resources.arsc 및 classes.dex 중에서 적어도 하나를 포함할 수 있다.
네트워크를 통해 송수신되는 데이터 패킷들을 수집하는 패킷 수집부를 더 포함하되, 상기 판단부는 상기 데이터 패킷들을 분석하여 하나 이상의 식별대상 파일을 생성하고, 상기 하나 이상의 식별대상 파일 각각에 대해 상기 안드로이드 모바일 어플리케이션의 판단을 수행하며, 상기 식별부는 안드로이드 모바일 어플리케이션으로 판단된 적어도 하나의 식별대상 파일에 상기 불법 복제된 안드로이드 모바일 어플리케이션의 식별을 수행할 수 있다.
상기 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치는 상기 네트워크에 포함된 라우팅 장치에 설치될 수 있다.
상기 수집된 데이터 패킷들을 실시간으로 저장하는 저장부를 더 포함하되, 상기 패킷 수집부는 TCP/IP 4 계층 내의 제1 계층에 포함되는 네트워크 디바이스에서 패킷 스니핑을 수행하여 상기 데이터 패킷들을 수집하며, 상기 판단부는 상기 저장된 데이터 패킷들을 비실시간으로 분석하여 상기 하나 이상의 식별대상 파일의 생성 및 상기 안드로이드 모바일 어플리케이션의 판단을 수행하고, 상기 식별부는 비실시간으로 상기 불법 복제된 안드로이드 모바일 어플리케이션의 식별을 수행할 수 있다.
상기 판단부는 상기 데이터 패킷들의 IP 헤더에 포함된 version 필드, IHL(Internet Header Length) 필드, Identification 필드, Fragmentation Offset 필드, Protocol 필드, Source Address 필드, Destination Address 필드와 상기 데이터 패킷들의 TCP 헤더에 포함된 Source Port 필드, Destination Port 필드, Sequence Number 필드, Acknowledgement Number 필드, Data Offset 필드 중에서 적어도 하나를 이용하여 상기 데이터 패킷들을 분석함으로써 상기 하나 이상의 식별대상 파일을 생성할 수 있다.
상기 네트워크는 HTTP 프로토콜 또는 FTP 프로토콜을 따르는 경우, 상기 판단부는 상기 version 필드를 참조하여 상기 데이터 패킷들 중에서 IP 버전이 "4"가 아닌 데이터 패킷을 상기 분석에서 제외시키거나, 상기 데이터 패킷들 중에서 상기 Protocol 필드의 값이 0x06(TCP)가 아닌 데이터 패킷을 상기 분석에서 제외시키거나, 상기 Data Offset 필드를 참조하여 상기 데이터 패킷들 내의 데이터 영역의 시작 위치에서 HTTP 프로토콜의 고유 스트링을 확인하고, 상기 데이터 패킷들 중에서 상기 고유 스트링이 존재하지 않는 데이터 패킷을 상기 분석에서 제외시키거나, 상기 데이터 패킷들 중에서 상기 Source Port 필드 및 상기 Destination 필드의 값이 80(HTTP) 또는 20, 21(FTP)가 아닌 데이터 패킷을 상기 분석에서 제외시킬 수 있다.
상기 판단부는 상기 IHL 필드를 이용하여 상기 TCP 헤더의 시작위치를 산출할 수 있다.
상기 판단부는 상기 데이터 패킷들의 IP 헤더에 포함된 Source Address 필드, 상기 IP 헤더에 포함된 Destination Address 필드, 상기 데이터 패킷들의 TCP 헤더에 포함된 Source Port 필드 및 상기 TCP 헤더에 포함된 Destination Port 필드 중에서 적어도 하나를 이용하여 상기 데이터 패킷들을 상기 하나 이상의 데이터 패킷 그룹으로 그룹핑하고, 상기 하나 이상의 데이터 패킷 그룹 각각을 이용하여 상기 하나 이상의 식별대상 파일을 생성할 수 있다.
상기 판단부는 상기 데이터 패킷들을 2 이상의 데이터 패킷들을 각각 포함하는 상기 하나 이상의 데이터 패킷 그룹으로 그룹핑한 후, 상기 하나 이상의 데이터 패킷 그룹 각각을 이용하여 상기 하나 이상의 식별대상 파일을 생성하되, 상기 데이터 패킷들의 IP 헤더에 포함된 Identification 필드, 상기 IP 헤더에 포함된 Fragmentation Offset 필드, 상기 데이터 패킷들의 TCP 헤더에 포함된 Sequence Number 필드 및 상기 TCP 헤더에 포함된 Acknowledgement Number 필드 중에서 적어도 하나를 이용하여 상기 하나 이상의 데이터 패킷 그룹 각각에 포함된 2 이상의 데이터 패킷들의 순서를 정렬하고, 상기 하나 이상의 데이터 패킷 그룹 별로 상기 정렬된 순서에 따라 상기 2 이상의 데이터 패킷들을 조합하여 상기 하나 이상의 식별대상 파일을 생성할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 네트워크를 통해 송수신되는 식별대상 파일이 안드로이드 모바일 어플리케이션인지 여부를 판단하는 방법에 있어서, 상기 식별대상 파일이 zip 파일 형식을 가지는지를 판단하는 단계(a); 상기 식별대상 파일이 zip 파일 형식을 가지는 경우, 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하는 단계(b); 및 상기 식별대상 피일 내에 상기 고유 스트링이 포함되어 있는 경우, 상기 식별대상 파일을 안드로이드 모바일 어플리케이션으로 판단하는 단계(c)를 포함하는 안드로이드 모바일 어플리케이션 판단 방법이 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 불법 복제된 안드로이드 모바일 어플리케이션을 식별하는 방법에 있어서, 식별대상 파일이 zip 파일 형식을 가지는지를 판단하는 단계(a); 상기 식별대상 파일이 zip 파일 형식을 가지는 경우 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하여 상기 식별대상 파일이 안드로이드 모바일 어플리케이션인지를 판단하는 단계(b); 및 상기 식별대상 파일이 안드로이드 모바일 어플리케이션으로 판단된 경우, 상기 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 상기 식별대상 파일이 불법 복제된 안드로이드 모바일 어플리케이션인지를 식별하는 단계(c)를 포함하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 방법이 제공된다.
본 발명에 따르면, 특징점 비교를 통해 안드로이드 모바일 어플리케이션을 식별함으로써, 안드로이드 모바일 어플리케이션의 식별률을 높일 수 있게 된다.
또한, 본 발명에 따르면, 네트워크를 통한 배포 단계에서의 차단을 통해 안드로이드 모바일 어플리케이션의 불법 복제를 방지할 수 있게 된다.
도 1은 불법 복제된 컨텐츠를 배포 단계에서 차단하는 종래 기술을 설명하기 위한 도면이다.
도 2는 특징점을 이용한 종래의 네트워크 트래픽 분석 기술의 개념을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치의 개략적인 구성을 도시한 도면이다.
도 4는 리눅스 커널의 네트워크 디바이스 드라이버 모듈의 구조를 설명하기 위한 도면이다.
도 5는 데이터 패킷의 헤더에 포함된 IP 헤더 및 TCP 헤더에 포함된 필드 정보들의 일례를 도시한 도면이다.
도 6에서는 zip 파일의 구조의 일례를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 불법 복제된 안드로이드 모바일 앱의 식별 방법의 전체적인 흐름을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치(이하, "불법 안드로이드 모바일 앱 식별 장치"라고 함)의 개략적인 구성을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 불법 안드로이드 모바일 앱 식별 장치(300)는 패킷 수집부(310), 저장부(320), 판단부(330) 및 식별부(340)를 포함할 수 있다.
각 구성 요소의 기능 및 불법 안드로이드 모바일 앱 식별 장치(300)의 전체적인 동작을 개략적으로 설명하면 아래와 같다.
패킷 수집부(310)는 네트워크를 통해 송수신되는 데이터 패킷들을 수집한다. 수집된 데이터 패킷들 중 2 이상의 데이터 패킷은 조합되어 특정한 파일, 일례로 안드로이드 모바일 어플리케이션(이하, "안드로이드 모바일 앱"이라고 함)을 형성할 수 있다.
저장부(320)는 수집된 데이터 패킷들을 저장한다. 일례로, 저장부(320)는 레파지토리 및 데이터베이스를 포함할 수 있다.
판단부(330)는 수집 또는 저장된 데이터 패킷들을 분석하여 하나 이상의 식별대상 파일(즉, 데이터 오브젝트)을 생성한다.
또한, 판단부(330)는 생성된 식별대상 파일이 안드로이드 모바일 앱인지를 판단한다. 이러한 판단 동작은 하나 이상의 식별 대상 파일에 대해 동일하게 수행될 수 있다.
식별부(340)는 안드로이드 모바일 앱으로 판단된 식별대상 파일 각각에 대한 불법 복제 여부를 식별한다. 다시 말해, 식별부(340)는 안드로이드 모바일 앱이 불법 복제된 안드로이드 모바일 앱(이하, "불법 안드로이드 모바일 앱"이라고 함)인지를 판단한다.
이와 같이, 본 발명에 따른 불법 안드로이드 모바일 앱 식별 장치(300)는 네트워크를 통한 배포 단계에서 데이터를 수집하여 안드로이드 모바일 앱을 생성한 후, 해당 안드로이드 모바일 앱이 불법 복제된 것인지를 판단한다. 이에 따라 네트워크의 배포 단계에서 불법 안드로이드 모바일 앱을 식별할 수 있으므로, 불법 안드로이드 모바일 앱이 전송지를 추적하고, 해당 정보를 안드로이드 모바일 앱 개발자에게 전달할 수 있게 되어 불법 안드로이드 모바일 앱의 배포에 대한 경각심을 고취시킬 수 있게 된다.
이하에서는 도 4 내지 도 6을 참조하여 각 구성요소의 기능을 보다 상세하게 설명하기로 한다.
먼저, 패킷 수집부(310)는 네트워크를 통해 배포되는 데이터 패킷들을 스니핑(sniffing)하여 수집한다.
본 발명의 일 실시예에 따르면, 불법 안드로이드 모바일 앱 식별 장치(300)는 불법 안드로이드 모바일 앱의 탐지율을 높이기 데이터 패킷이 밀집되는 네트워크 내의 라우팅 장치(일례로, 네트워크 게이트웨이)에 설치될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 패킷 수집부(310)는 TCP/IP 4 계층 내의 제1 계층에 포함되는 네트워크 디바이스에서 패킷 스니핑을 수행하여 데이터 패킷들을 수집할 수 있다. 이는 데이터 패킷의 스니핑 과정에서 발생하는 라우팅 장치의 속도 저하 문제를 최소화하기 위함이다. 이를 위해, 리눅스 커널의 네트워크 공용 모듈(net/core/dev.c)에 스티핑 코드가 삽입될 수 있다.
보다 상세하게, 리눅스 커널에서 네트워크 디바이스 드라이버는 블록 디바이스나 문자 디바이스와 달리 커널 공용 라이브러리 형태로 제공되므로, 통신 환경을 필요로 하는 응용 프로그램이나 다른 디바이스에서도 쉽게 네트워크 환경을 사용할 수 있다.
이를 위해, 리눅스 커널의 네트워크 디바이스 드라이버 모듈은 도 4에 도시된 바와 같이 어댑터에 의존적인 네트워크 드라이버 레이어, 어댑터에 의존적인 세부요소들을 추상화하여 제공해주는 네트워크 드라이버 인터페이스 레이어, 및 어댑터에 독립적인 네트워크 디바이스 레이어로 구성될 수 있다. 이 때, 마지막의 어댑터에 독립적인 네트워크 디바이스 레이어가 네트워크 공용 모듈에 해당한다.
즉, 패킷 수집부(310)는 TCP/IP 레이어의 레이어 1에 해당하는 네트워크 공용 모듈인 어댑터에 독립적인 네트워크 디바이스 레이어에 설치됨으로써 패킷 스니핑으로 인한 시스템 성능저하를 최소로 하는 동시에 어댑터에 독립성을 보장하여 다양한 네트워크 디바이스 드라이버에 대한 호환성을 높일 수 있게 된다.
또한, 본 발명의 일 실시예에 따르면, 수집된 데이터 패킷들은 저장부(320)(일례로, 레파지토리)에 실시간으로 (부수적인 작업 없이 단순 복사되어) 저장될 수 있다. 이는 아래에서 설명하는 바와 같이, 데이터 패킷의 수집은 실시간으로 수행되도록 하고 데이터 패킷의 분석/조합 및 이를 통한 파일의 생성/분석(판단부(330) 및 식별부(340)의 동작)은 비실시간으로 수행되도록 하여 불법 안드로이드 모바일 앱 탐지의 실시간 처리 성능 저하를 최소화하기 위함이다.
다음으로, 판단부(330)는 수집된 또는 저장된 데이터 패킷들을 분석/조합하여 하나 이상의 식별대상 파일(즉, 데이터 오브젝트)을 생성한다.
이를 위해, 판단부(330)는 데이터 패킷에 포함된 IP 헤더 정보 및 TCP 헤더 정보를 분석하여 활용할 수 있으며, 식별대상 파일의 생성/조합을 위해 필요한 해당 정보들을 추출하여 저장부(320)(일례로, 데이터베이스)에 저장할 수 있다.
이하, 도 5를 참조하여, 판단부(330)가 IP 헤더 정보 및 TCP 헤더 정보를 분석하는 일례를 설명하기로 한다.
도 5는 데이터 패킷의 헤더에 포함된 IP 헤더(도 5의 (a)) 및 TCP 헤더(도 5의 (b))에 포함된 필드 정보들의 일례를 도시한 도면이다.
본 발명의 일 실시예에 따르면, 판단부(330)는 IP 헤더에 포함된 version 필드, IHL(Internet Header Length) 필드, Identification 필드, Fragmentation Offset 필드, Protocol 필드, Source Address 필드, Destination Address 필드와 TCP 헤더에 포함된 Source Port 필드, Destination Port 필드, Sequence Number 필드, Acknowledgement Number 필드, Data Offset 필드 중에서 적어도 하나를 이용하여 데이터 패킷들을 분석하고, 이를 통해 하나 이상의 식별대상 파일을 생성할 수 있다.
보다 상세하게, 본 발명의 일 실시예에 따르면, 네트워크가 HTTP 프로토콜 또는 FTP 프로토콜을 따르는 경우, 판단부(330)는 i) version 필드를 참조하여 데이터 패킷들 중에서 IP 버전이 "4"가 아닌 데이터 패킷을 분석에서 제외시킬 수 있고, ii) 데이터 패킷들 중에서 Protocol 필드의 값이 0x06(TCP)가 아닌 데이터 패킷을 분석에서 제외시킬 수 있고, iii) Data Offset 필드를 참조하여 데이터 패킷들 내의 데이터 영역의 시작 위치에 HTTP 프로토콜의 고유 스트링을 확인하고, 데이터 패킷들 중에서 고유 스트링이 존재하지 않는 데이터 패킷을 분석에서 제외시킬 수도 있으며, iv) 데이터 패킷들 중에서 Source Port 필드 및 Destination 필드의 값이 80(HTTP) 또는 20, 21(FTP)가 아닌 데이터 패킷을 분석에서 제외시킬 수도 있다.
상기한 데이터 패킷의 분석 제외의 경우가 포함된 데이터 패킷의 분석 동작을 보다 상세히 설명하면 아래와 같다.
첫번째로, 판단부(330)는 IP 헤더의 version 필드를 참조하여 IP 버전이 "4"가 아닌 데이터 패킷을 분석에서 제외시킨다. 두번째로, 판단부(330)는 IP 헤더 길이 값에 대한 정보인 IHL 필드를 참조하여 TCP 헤더의 시작위치를 산출한다. 세번째로, 데이터 패킷의 조합을 위해, Identification 필드, Fragmentation Offset 필드에 포함된 정보가 데이터베이스(저장부(320))에 저장된다. 네번째로, 판단부(330)는 Protocol 필드 값을 참조하여 그 값이 "0x06(TCP)"가 아닌 데이터 패킷은 분석에서 제외시킨다. 이는 본 발명의 일 실시예에 따른 불법 안드로이드 모바일 앱 식별 장치(300)가 TCP 프로토콜을 사용하는 HTTP 프로토콜 및 FTP 프로토콜을 대상으로 하는 경우에 적용 가능하다. 다섯번째로, 데이터 패킷의 조합을 위해 Source Address 필드 및 Destination Address 필드에 저장된 정보가 데이터베이스에 저장한다.
IP 헤더에 대한 정보 분석이 종료된 후, 판단부(330)는 TCP 헤더의 시작위치로 이동하여 TCP 헤더의 정보 분석을 시작한다. 보다 상세하게, 첫번째로, 데이터 패킷 조합 시 이용되는 Source Port 필드 값 및 Destination Port 필드 값이 데이터베이스에 저장된다. 두번째로, Sequence Number 필드 및 Acknowledgement Number 필드 값이 데이터베이스에 저장된다. 세번째로, Data offset 필드 값을 참조하여 데이터 시작 위치로 이동한 후, 데이터 시작위치에 HTTP 프로토콜의 고유 스트링 (예를 들어, "(48 54 54 50)" 값)이 존재하는지 파악한다. 만약, HTTP 프로토콜의 고유 스트링이 존재하지 않거나 Source Port 필드 및 Destination Port 값이 80(HTTP) 또는 20, 21(FTP)가 아닐 경우에는 해당 데이터 패킷을 분석에서 제외시킨다. 마지막으로 위의 분석과정을 거쳐 HTTP, FTP 프로토콜을 사용하는 패킷으로 판단된 경우에 한하여 패킷의 데이터 필드 정보를 데이터베이스에 저장한다.
상기에서 설명한 것과 같이, IP 헤더 정보 및 TCP 헤더 정보를 분석한 후, 판단부(330)는 분석된 정보를 이용하여 하나 이상의 식별대상 파일(데이터 오브젝트)을 생성한다.
이를 위해, 판단부(330)는 서로 연결된 데이터 패킷들(즉, 하나의 식별대상 파일을 구성하는 데이터 패킷들)을 각각 그룹핑하여 하나 이상의 데이터 패킷 그룹을 생성하고, 하나 이상의 데이터 패킷 그룹 각각을 이용하여(즉, 각 데이터 패킷 그룹 내에 포함되는 데이터 패킷들을 순서에 맞게 조합하여) 각 데이터 패킷 그룹과 대응되는 식별대상 파일을 생성할 수 있다.
본 발명의 일 실시예에 따르면, 판단부(330)는 IP 헤더에 포함된 Source Address 필드, IP 헤더에 포함된 Destination Address 필드, TCP 헤더에 포함된 Source Port 필드 및 TCP 헤더에 포함된 Destination Port 필드 중에서 적어도 하나를 이용하여 수집된 데이터 패킷들을 하나 이상의 데이터 패킷 그룹으로 그룹핑할 수 있다.
보다 상세하게, HTTP 프로토콜 및 FTP 프로토콜에 따라 데이터가 전송되는 경우, 네트워크에서는 통신 커넥션을 설정한 후에 전송 가능한 크기의 패킷 단위로 데이터를 쪼개어 전송한다. 이에 따라, 수집된 데이터 패킷들로부터 원래 전송된 데이터를 복원하기 위해서는 통신 커넥션 별로 데이터 패킷들을 그룹화하는 과정이 먼저 이뤄져야 한다. 따라서, 판단부(330)는 IP 헤더에 포함된 Source Address 필드, Destination Address 필드, TCP 헤더에 포함된 Source Port 필드 및 Destination Port 필드 중에서 적어도 하나(바람직하게는 모두)를 이용하여 통신 커넥션을 식별하는 고유키를 생성하고, 생성된 고유키를 이용하여 수집 또는 저장된 데이터 패킷들을 그룹화한다.
또한, 본 발명의 일 실시예에 따르면, 판단부(330)는 IP 헤더에 포함된 Identification 필드, IP 헤더에 포함된 Fragmentation Offset 필드, TCP 헤더에 포함된 Sequence Number 필드 및 TCP 헤더에 포함된 Acknowledgement Number 필드 중에서 적어도 하나를 이용하여 각 데이터 패킷 그룹 포함된 2 이상의 데이터 패킷들의 순서를 정렬하고, 정렬된 순서에 따라 2 이상의 데이터 패킷들을 조합하여 각 식별대상 파일을 생성할 수 있다.
보다 상세하게, 데이터는 IP 레이어에서 적절한 크기의 패킷(데이터그램)으로 쪼개서 전송되므로, IP 레이어에서 쪼개진 데이터 패킷의 순서를 맞추기 위해서, 먼저 IP 헤더의 Identification 필드 값(번호)를 참조한다. 이는 IP 레이어에서 데이터를 전송할 때 제일 처음의 데이터 패킷에 랜덤하게 생성된 고유 Identification 번호가 할당되고, 그 다음의 데이터 패킷들의 Identification 번호는 순차적으로 1씩 증가된 값을 할당되기 때문이다.
그런데, 최종 목적지에 도착하기까지 데이터 패킷은 여러 종류의 네트워크를 거치게 되고, 네트워크의 특성에 따라 한번에 전달할 수 있는 데이터의 크기는 서로 다르므로, 하나의 데이터 패킷은 여러 종류의 네트워크를 거치면서 네트워크 특성에 따라 여러 개의 데이터 패킷들로 다시 나뉘어져 전송될 수 있다.
이 때 나뉘어진 데이터 패킷들에는 동일한 Identification 번호가 할당되고, Fragment Offset 필드 값으로 패킷의 순서가 구분될 수 있으므로, Identification 필드 값(번호)와 Fragment Offset 필드 값을 함께 참조하여 데이터 패킷의 순서를 정렬한다. 그 후, TCP 헤더의 Sequence Number 필드 값을 참조하여 데이터 패킷의 순서를 맞추고, 마지막으로 TCP 헤더의 Acknowledge 번호를 참조하여 재전송으로 인해 중복되는 데이터 패킷을 처리한다.
상기와 같은 과정을 통해 데이터 패킷 그룹 내의 데이터 패킷들의 순서를 모두 맞춘 후, 판단부(330)는 순서가 정렬된 데이터 패킷들의 데이터 컨텐츠 필드들을 모두 하나로 연결하여, 전송 중이던 데이터 오브젝트(식별대상 파일)을 최종적으로 생성한다.
상기한 과정들에 따라 식별대상 파일의 생성이 완료된 경우, 판단부(330)는 해당 대상식별 파일이 안드로이드 모바일 앱인지를 판단한다.
본 발명에서는 안드로이드 모바일 앱 여부에 대한 판단의 용이성을 위해 2단계의 판단 과정을 수행한다.
먼저, 안드로이드 모바일 앱인 apk 파일은 jar 파일과 구조가 동일하며, jar 파일은 zip과 같은 압축 방식을 사용하므로 판단부(330)는 식별대상 파일이 zip 파일 형식을 가지는지 여부를 판단함으로써 식별대상 파일이 안드로이드 모바일 앱인지 여부를 1차적으로 판단한다.
도 6에서는 zip 파일의 구조의 일례를 도시한 도면으로서, 도 6을 참조하면, zip 파일은 고유 코드를 각각 포함하는 Local header 영역, Centural header 영역, End of record 영역을 포함한다.
첫 번째 영역인 Local header에는 압축된 파일 각각의 세부 정보가 기록되어 있다. 하나의 Local header는 고유 코드(50 4B 03 04)로 시작 위치를 표기하며 압축된 파일 이름과 압축률, 파일 크기 등 세부 정보가 기록되고, 이어서 실제 파일 데이터가 압축된 바이너리 코드로 기록된다. 그리고, 두 번째 영역인 Centural header는 고유 코드(50 4B 05 06)로 시작하며 첫 번째 영역에 기록된 모든 Local Header들의 정보들을 순서대로 저장한다. 마지막으로, 고유 코드(50 4B 01 02)로 시작하는 End of recorder 영역은 전체 Local header의 길이 값(Centural header의 시작 위치), 전체 파일 크기, CRC 코드 등 압축 파일에 대한 전체적인 구조 정보를 가지고 있다.
여기서, Local header, Central header, End of record의 시작 위치에 있는 고유 코드는 zip 파일을 식별할 수 있는 고유한 특징에 해당한다. 따라서 zip 파일 구조를 사용하는 apk 파일 역시 동일한 고유 코드를 가지므로 판단부(330)는 생성된 식별대상 파일에 상기한 고유 코드들이 포함되어 있는지를 검사하여 해당 식별대상 파일이 안드로이드 모바일 앱인지를 우선적으로 판단한다.
다음으로, 식별대상 파일이 zip 파일의 형식을 가지는 것으로 판단된 경우, 판단부(330)는 식별대상 파일 내에 안드로이드 모바일 앱의 고유 스트링이 포함되어 있는지를 판단하여 식별대상 파일이 안드로이드 모바일 앱인지를 최종적으로 판단한다.
본 발명의 일 실시예에 따르면, 안드로이드 모바일 앱의 고유 스트링은 res/, assets/, AndroidManifest.xml, resources.arsc 및 classes.dex 중에서 적어도 하나를 포함할 수 있으며, 판단부(330)는 상기한 고유 스트링이 식별대상 파일 내에 존재하는 경우, 해당 식별대상 파일을 안드로이드 모바일 앱으로 판단한다. 각 고유 스트링에 대한 사용 목적은 아래의 표 1과 같다.
특징점 사용 목적
res/ 앱 제작시 사용된 실제 리소스 파일들(이미지, 음원, 레이아웃 등)이 res 디렉토리를 부모로 하여 각각의 역할에 따라 맞추어 지정된 세부 폴더 구조에 담겨 있음.
assets/ 앱 내부의 정적인 저장 공간. 동적인 사용 불가. 어플리케이션 assets이 담겨 있음.
AndroidManifest.xml 앱의 설치와 관련된 정보, 권한 및 설정 정보를 포함
resources.arsc 컴파일된 리소스들을 포함
classes.dex Java 언어로 작성된 앱 실행 코드를 달빅 머신에서 실행 가능하도록 컴파일한 통합 실행 파일
이에 대해 보다 상세히 살펴보면, apk 파일은 구글에서 제공하는 안드로이드 개발 도구인 apkbuilder와 Jarsigner, zipaling을 사용하여 생성된다. 이 중에서, Apkbuilder는 apk 패키지를 제작하는 도구로써 classes.dex, AndroidManifest.xml, resources.arsc, 그리고 리소스 파일들과 외부 asset 파일들을 apk 패키지로 묶어준다.
여기서, Classes.dex 파일은 Java 언어로 작성된 앱 실행 코드를 달빅 머신에서 실행 가능하도록 컴파일한 통합 실행 파일이다. 또한, AndroidManifest.xml 파일은 앱의 설치와 관련된 정보 및 권한과 관련된 설정 정보 등을 포함하고 있으며, 암호화되어 apk 패키지에 포함된다. 그리고, Resources.arsc 파일은 앱 개발에 사용된 컴파일된 리소스들을 포함한다.
그리고, 앱에서 실제로 사용하는 이미지, 음원 그리고 레이아웃과 같이 앱의 내부 설정 리소스 파일들은 res 디렉토리를 부모로 하여 각각의 역할에 따라 지정된 세부 폴더에 위치한다. 또한, 외부 파일을 첨부하기 위한 asset 디렉토리 역시 압축되지 않고 apk 패키지에 포함되지만 res 디렉토리와 달리 정해진 세부 폴더 구조를 사용하지 않는다.
Apkbuilder는 이러한 파일들을 패키지화하고, Jarsigner는 생성된 패키지에 앱의 고유한 서명을 첨부하여 앱의 배포를 준비한다. 마지막으로 zipalign은 이 패키지를 zip 형식으로 압축하여 최종 apk 파일을 생성한다. apk 패키지 생성 과정에서 apk에 포함된 위에서 언급한 파일들과 디렉토리는 안드로이드 개발 도구에 의해 모든 종류의 앱이 동일하게 가지게 되는 파일과 디렉토리이다.
따라서, apk 파일이 반드시 포함하는 파일 이름이므로 zip 형식의 압축 과정에서 Local header에 각각 파일명으로 기록된다. 따라서, 판단부(330)는 zip 파일로 식별대상 파일의 Local header에 classes.dex, AndroidManifest.xml, resources.arsc, res/, assets/ 이라는 스트링이 존재하면 해당 식별대상 파일을 안드로이드 모바일 앱으로 최종 판단한다.
결과적으로 zip 파일 구조와 동일하면서 상기한 고유 스트링을 반드시 포함하는 식별대상 파일이 안드로이드 모바일 앱으로 판단된다.
상기와 같은 안드로이드 모바일 앱 판단이 완료된 경우, 식별부(340)는 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 해당 식별대상 파일이 불법 안드로이드 모바일 앱인지를 식별한다.
일례로서, 안드로이드 모바일 앱의 불법 복제를 차단하기 위해 자바 실행코드인 dex 파일에 핑거프린팅 정보가 삽입되는 것으로 가정하면, 핑거프린팅 정보에는 기본적으로 apk 파일의 구매자 정보가 포함되고, dex 파일은 apk 파일에 패키징되어 포함되므로 공식적인 앱 마켓에서 전송받은 모든 apk 파일은 핑거프린팅 정보가 삽입된 dex 파일을 가진다.
따라서, 식별부(340)는 apk 파일로 판단된 식별대상 파일의 dex 파일에서 핑거프린팅 정보의 추출을 시도한다. 핑거프린팅 정보가 추출되면 apk 파일은 전송한 source IP adddress가 공식 앱 마켓의 IP인지를 검사한다. 만약 소스 IP address가 공식 앱 마켓의 IP주소가 아니라면 식별부(340)는 해당 안드로이드 모바일 앱을 불법 복제된 것으로 판단한다.
이 경우, 불법 안드로이드 모바일 앱에서 추출한 핑거프린팅 정보에 삽입된 구매자 정보와 IP 정보는 추후 불법 앱 신고서버에 신고할 수 있다.
한편, 앞서 설명한 바와 같이 불법 안드로이드 모바일 앱 탐지의 실시간 처리 성능을 최소화하기 위해, 상기한 구성요소들의 동작 중에서 패킷 수집부(310)의 수집 동작 및 저장부(320)의 저장 동작은 실시간으로 수행될 수 있고, 판단부(330)의 판단 동작 및 식별부(340)의 식별 동작은 비실시간으로 수행될 수 있다.
도 7은 본 발명의 일 실시예에 따른 불법 복제된 안드로이드 모바일 앱의 식별 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 설명한다.
먼저, 단계(S710)에서는 네트워크를 통해 송수신되는 데이터 패킷들을 수집(스니핑)한다. 그리고, 단계(S720)에서는 수집된 데이터 패킷들을 실시간으로 레파지토리에 저장한다.
계속하여, 단계(S730)에서는 수집 또는 저장된 데이터 패킷들을 분석하여 하나 이상의 식별대상 파일(데이터 오브젝트)을 생성한다.
이후, 단계(S740)에서는 식별대상 파일이 zip 파일의 형식을 가지는지를 판단한다.
본 발명의 일 실시예에 따르면, zip 파일은 고유 코드를 각각 포함하는 Local header 영역, Centural header 영역 및 End of record영역을 포함하고, 단계(S740)에서는 식별대상 파일이 Local header 영역의 고유 코드, Centural header 영역의 고유 코드 및 End of record 영역의 고유 코드가 포함하는지를 분석하여 식별대상 파일이 zip 파일 형식을 가지는지를 판단할 수 있다.
다음으로, 단계(S750)에서는 zip 파일의 형식을 가지는 것으로 판단된 식별대상 파일에 안드로이드 모바일 앱의 고유 스트링이 포함되어 있는지를 판단하여 해당 식별대상 파일이 안드로이드 모바일 앱인지를 판단한다.
본 발명의 일 실시예에 따르면, 고유 스트링은 res/, assets/, AndroidManifest.xml, resources.arsc 및 classes.dex 중에서 적어도 하나를 포함할 수 있다.
이와 같은 단계(S710) 내지 단계(S750)는 생성된 식별대상 파일이 안드로이드 모바일 앱인지를 판단하기 위해 수행되는 단계이다.
마지막으로, 단계(S760)에서는 식별대상 파일이 안드로이드 모바일 어플리케이션으로 판단된 경우, 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 식별대상 파일이 불법 복제된 안드로이드 모바일 어플리케이션인지를 식별한다.
지금까지 본 발명에 따른 불법 안드로이드 모바일 앱 식별 방법의 실시예들에 대하여 설명하였고, 앞서 도 1 내지 도 6에서 설명한 불법 안드로이드 모바일 앱 식별 장치(300)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (15)

  1. 불법 복제된 안드로이드 모바일 어플리케이션을 식별하는 장치에 있어서,
    식별대상 파일이 zip 파일 형식을 가지는지를 판단하고, 상기 식별대상 파일이 zip 파일 형식을 가지는 경우 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하여 상기 식별대상 파일이 안드로이드 모바일 어플리케이션인지를 판단하는 판단부; 및
    상기 식별대상 파일이 안드로이드 모바일 어플리케이션으로 판단된 경우, 상기 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 상기 식별대상 파일이 불법 복제된 안드로이드 모바일 어플리케이션인지를 식별하는 식별부
    를 포함하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  2. 제1항에 있어서,
    상기 zip 파일은 고유 코드를 각각 포함하는 Local header 영역, Centural header 영역 및 End of record 영역을 포함하고,
    상기 판단부는 식별대상 파일이 상기 Local header 영역의 고유 코드, 상기 Centural header 영역의 고유 코드 및 상기 End of record 영역의 고유 코드가 포함하는지를 분석하여 상기 식별대상 파일이 zip 파일 형식을 가지는지를 판단하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  3. 제1항에 있어서,
    상기 고유 스트링은 res/, assets/, AndroidManifest.xml, resources.arsc 및 classes.dex 중에서 적어도 하나를 포함하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  4. 제1항에 있어서,
    네트워크를 통해 송수신되는 데이터 패킷들을 수집하는 패킷 수집부를 더 포함하되,
    상기 판단부는 상기 데이터 패킷들을 분석하여 하나 이상의 식별대상 파일을 생성하고, 상기 하나 이상의 식별대상 파일 각각에 대해 상기 안드로이드 모바일 어플리케이션의 판단을 수행하며,
    상기 식별부는 안드로이드 모바일 어플리케이션으로 판단된 적어도 하나의 식별대상 파일에 상기 불법 복제된 안드로이드 모바일 어플리케이션의 식별을 수행하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치는 상기 네트워크에 포함된 라우팅 장치에 설치되는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 수집된 데이터 패킷들을 실시간으로 저장하는 저장부를 더 포함하되,
    상기 패킷 수집부는 TCP/IP 4 계층 내의 제1 계층에 포함되는 네트워크 디바이스에서 패킷 스니핑을 수행하여 상기 데이터 패킷들을 수집하며,
    상기 판단부는 상기 저장된 데이터 패킷들을 비실시간으로 분석하여 상기 하나 이상의 식별대상 파일의 생성 및 상기 안드로이드 모바일 어플리케이션의 판단을 수행하고,
    상기 식별부는 비실시간으로 상기 불법 복제된 안드로이드 모바일 어플리케이션의 식별을 수행하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 판단부는 상기 데이터 패킷들의 IP 헤더에 포함된 version 필드, IHL(Internet Header Length) 필드, Identification 필드, Fragmentation Offset 필드, Protocol 필드, Source Address 필드, Destination Address 필드와 상기 데이터 패킷들의 TCP 헤더에 포함된 Source Port 필드, Destination Port 필드, Sequence Number 필드, Acknowledgement Number 필드, Data Offset 필드 중에서 적어도 하나를 이용하여 상기 데이터 패킷들을 분석함으로써 상기 하나 이상의 식별대상 파일을 생성하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제7항에 있어서,
    상기 네트워크는 HTTP 프로토콜 또는 FTP 프로토콜을 따르는 경우,
    상기 판단부는
    상기 version 필드를 참조하여 상기 데이터 패킷들 중에서 IP 버전이 "4"가 아닌 데이터 패킷을 상기 분석에서 제외시키거나,
    상기 데이터 패킷들 중에서 상기 Protocol 필드의 값이 0x06(TCP)가 아닌 데이터 패킷을 상기 분석에서 제외시키거나,
    상기 Data Offset 필드를 참조하여 상기 데이터 패킷들 내의 데이터 영역의 시작 위치에서 HTTP 프로토콜의 고유 스트링을 확인하고, 상기 데이터 패킷들 중에서 상기 고유 스트링이 존재하지 않는 데이터 패킷을 상기 분석에서 제외시키거나,
    상기 데이터 패킷들 중에서 상기 Source Port 필드 및 상기 Destination 필드의 값이 80(HTTP) 또는 20, 21(FTP)가 아닌 데이터 패킷을 상기 분석에서 제외시키는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제7항에 있어서,
    상기 판단부는 상기 IHL 필드를 이용하여 상기 TCP 헤더의 시작위치를 산출하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 판단부는
    상기 데이터 패킷들의 IP 헤더에 포함된 Source Address 필드, 상기 IP 헤더에 포함된 Destination Address 필드, 상기 데이터 패킷들의 TCP 헤더에 포함된 Source Port 필드 및 상기 TCP 헤더에 포함된 Destination Port 필드 중에서 적어도 하나를 이용하여 상기 데이터 패킷들을 상기 하나 이상의 데이터 패킷 그룹으로 그룹핑하고,
    상기 하나 이상의 데이터 패킷 그룹 각각을 이용하여 상기 하나 이상의 식별대상 파일을 생성하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 판단부는
    상기 데이터 패킷들을 2 이상의 데이터 패킷들을 각각 포함하는 상기 하나 이상의 데이터 패킷 그룹으로 그룹핑한 후, 상기 하나 이상의 데이터 패킷 그룹 각각을 이용하여 상기 하나 이상의 식별대상 파일을 생성하되,
    상기 데이터 패킷들의 IP 헤더에 포함된 Identification 필드, 상기 IP 헤더에 포함된 Fragmentation Offset 필드, 상기 데이터 패킷들의 TCP 헤더에 포함된 Sequence Number 필드 및 상기 TCP 헤더에 포함된 Acknowledgement Number 필드 중에서 적어도 하나를 이용하여 상기 하나 이상의 데이터 패킷 그룹 각각에 포함된 2 이상의 데이터 패킷들의 순서를 정렬하고,
    상기 하나 이상의 데이터 패킷 그룹 별로 상기 정렬된 순서에 따라 상기 2 이상의 데이터 패킷들을 조합하여 상기 하나 이상의 식별대상 파일을 생성하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 장치.
  12. 네트워크를 통해 송수신되는 식별대상 파일이 안드로이드 모바일 어플리케이션인지 여부를 판단하는 방법에 있어서,
    상기 식별대상 파일이 zip 파일 형식을 가지는지를 판단하는 단계(a);
    상기 식별대상 파일이 zip 파일 형식을 가지는 경우, 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하는 단계(b); 및
    상기 식별대상 피일 내에 상기 고유 스트링이 포함되어 있는 경우, 상기 식별대상 파일을 안드로이드 모바일 어플리케이션으로 판단하는 단계(c)
    를 포함하는 것을 특징으로 하는 안드로이드 모바일 어플리케이션 판단 방법.
  13. 제12항에 있어서,
    상기 zip 파일은 고유 코드를 각각 포함하는 Local header 영역, Centural header 영역 및 End of record영역을 포함하고,
    상기 단계(a)는 식별대상 파일이 상기 Local header 영역의 고유 코드, 상기 Centural header 영역의 고유 코드 및 상기 End of record 영역의 고유 코드가 포함하는지를 분석하여 상기 식별대상 파일이 zip 파일 형식을 가지는지를 판단하는 것을 특징으로 하는 안드로이드 모바일 어플리케이션 판단 방법.
  14. 제12항에 있어서,
    상기 고유 스트링은 res/, assets/, AndroidManifest.xml, resources.arsc 및 classes.dex 중에서 적어도 하나를 포함하는 것을 특징으로 하는 안드로이드 모바일 어플리케이션 판단 방법.
  15. 불법 복제된 안드로이드 모바일 어플리케이션을 식별하는 방법에 있어서,
    식별대상 파일이 zip 파일 형식을 가지는지를 판단하는 단계(a);
    상기 식별대상 파일이 zip 파일 형식을 가지는 경우 상기 식별대상 파일 내에 안드로이드 모바일 어플리케이션의 고유 스트링이 포함되어 있는지를 판단하여 상기 식별대상 파일이 안드로이드 모바일 어플리케이션인지를 판단하는 단계(b); 및
    상기 식별대상 파일이 안드로이드 모바일 어플리케이션으로 판단된 경우, 상기 식별대상 파일 내에 포함된 핑거프린팅 정보의 추출을 통해 상기 식별대상 파일이 불법 복제된 안드로이드 모바일 어플리케이션인지를 식별하는 단계(c)
    를 포함하는 것을 특징으로 하는 불법 복제된 안드로이드 모바일 어플리케이션 식별 방법.
KR1020120049113A 2012-02-17 2012-05-09 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법 KR101304307B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120016198 2012-02-17
KR20120016198 2012-02-17

Publications (2)

Publication Number Publication Date
KR20130096618A KR20130096618A (ko) 2013-08-30
KR101304307B1 true KR101304307B1 (ko) 2013-09-11

Family

ID=49219464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120049113A KR101304307B1 (ko) 2012-02-17 2012-05-09 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101304307B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101614189B1 (ko) * 2013-12-11 2016-04-20 단국대학교 산학협력단 어플리케이션 불법 유포를 방지하는 방법과 이를 위한 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654973B1 (ko) * 2014-04-30 2016-09-06 단국대학교 산학협력단 소프트웨어 필터링 장치 및 방법
US10819749B2 (en) * 2017-04-21 2020-10-27 Netskope, Inc. Reducing error in security enforcement by a network security system (NSS)
US10834113B2 (en) 2017-07-25 2020-11-10 Netskope, Inc. Compact logging of network traffic events
CN113342404B (zh) * 2021-05-28 2023-08-29 杭州迈冲科技有限公司 基于Android系统修改开机动画的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003027864A1 (en) 2001-09-25 2003-04-03 Global Anti-Piracy Systems, Inc. Systems and methods for preventing unauthorized copying of software downloaded from a remote server
KR20040092575A (ko) * 2003-04-24 2004-11-04 주식회사 팬택 소프트웨어의 불법 복제를 방지하는 무선통신 단말기 및불법 복제 검출 방법
KR20080035273A (ko) * 2006-10-19 2008-04-23 성균관대학교산학협력단 복제방지용 데이터인식장치와 복제방지 방법 및 이를기록한 기록매체
US20100306552A1 (en) 2000-09-22 2010-12-02 Sca Ipla Holdings Inc. Systems and methods for preventing unauthorized use of digital content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306552A1 (en) 2000-09-22 2010-12-02 Sca Ipla Holdings Inc. Systems and methods for preventing unauthorized use of digital content
WO2003027864A1 (en) 2001-09-25 2003-04-03 Global Anti-Piracy Systems, Inc. Systems and methods for preventing unauthorized copying of software downloaded from a remote server
KR20040092575A (ko) * 2003-04-24 2004-11-04 주식회사 팬택 소프트웨어의 불법 복제를 방지하는 무선통신 단말기 및불법 복제 검출 방법
KR20080035273A (ko) * 2006-10-19 2008-04-23 성균관대학교산학협력단 복제방지용 데이터인식장치와 복제방지 방법 및 이를기록한 기록매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101614189B1 (ko) * 2013-12-11 2016-04-20 단국대학교 산학협력단 어플리케이션 불법 유포를 방지하는 방법과 이를 위한 장치

Also Published As

Publication number Publication date
KR20130096618A (ko) 2013-08-30

Similar Documents

Publication Publication Date Title
KR101304307B1 (ko) 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법
US9537897B2 (en) Method and apparatus for providing analysis service based on behavior in mobile network environment
CN102592103B (zh) 文件安全处理方法、设备及系统
KR101414959B1 (ko) 네트워크 공격을 감지하는 이동 통신 단말기 및 그 감지 방법
JP5992622B2 (ja) 悪意あるアプリケーション診断装置及び方法
CN102394885B (zh) 基于数据流的信息分类防护自动化核查方法
EP2769304B1 (en) Telemetry file hash and conflict detection
CN110245273B (zh) 一种获取app业务特征库的方法及相应的装置
CN103294951B (zh) 一种基于文档型漏洞的恶意代码样本提取方法及系统
CN104067283A (zh) 识别移动环境的木马化应用程序
KR20130134790A (ko) 어플리케이션 무결성 정보 저장 방법 및 시스템, 어플리케이션 무결성 검사 방법 및 시스템
CN111859076B (zh) 数据爬取方法、装置、计算机设备及计算机可读存储介质
CN103746992A (zh) 基于逆向的入侵检测系统及其方法
US10701087B2 (en) Analysis apparatus, analysis method, and analysis program
CN105631325A (zh) 一种恶意应用程序检测方法和装置
CN111191240A (zh) 互联网电子证据的采集方法、装置及设备
CN104486292A (zh) 一种企业资源安全访问的控制方法、装置及系统
Kim et al. A method for detecting illegally copied apk files on the network
KR101270497B1 (ko) 모바일 악성코드 자동 수집 및 분석 시스템
CN106658589A (zh) 一种检测软件的运行流量的方法及装置
CN106411951A (zh) 网络攻击行为检测方法及装置
KR101130090B1 (ko) 단말 장치 및 상기 단말 장치의 파일 배포처 확인 방법
CN107229865B (zh) 一种解析Webshell入侵原因的方法及装置
KR101725399B1 (ko) 호스트 레벨 기반 악성 스크립트 탐지 및 실행 방지 장치와 악성 스크립트 탐지 및 실행 방지 방법
KR101596603B1 (ko) 네트워크 패킷 플로우 시퀀스 정보를 이용한 시그니처 생성 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160627

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 7