KR20170086760A - 에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법 - Google Patents

에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법 Download PDF

Info

Publication number
KR20170086760A
KR20170086760A KR1020160006079A KR20160006079A KR20170086760A KR 20170086760 A KR20170086760 A KR 20170086760A KR 1020160006079 A KR1020160006079 A KR 1020160006079A KR 20160006079 A KR20160006079 A KR 20160006079A KR 20170086760 A KR20170086760 A KR 20170086760A
Authority
KR
South Korea
Prior art keywords
user data
data
target
fields
target device
Prior art date
Application number
KR1020160006079A
Other languages
English (en)
Other versions
KR102372732B1 (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 KR1020160006079A priority Critical patent/KR102372732B1/ko
Priority to US15/408,210 priority patent/US10002009B2/en
Publication of KR20170086760A publication Critical patent/KR20170086760A/ko
Application granted granted Critical
Publication of KR102372732B1 publication Critical patent/KR102372732B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F17/30292
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/88Detecting or preventing theft or loss
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 대상 장치에 관한 포렌식 분석을 수행하는 전자 장치를 제공한다. 전자 장치는 데이터 추출기, 에뮬레이터, 및 사용자 데이터 변환기를 포함한다. 데이터 추출기는 대상 장치에 설치된 어플리케이션들 중 적어도 하나의 소스 파일, 및 대상 장치에서의 어플리케이션들 중 적어도 하나의 실행에 따라 생성된 사용자 데이터를 대상 장치로부터 획득한다. 에뮬레이터는 소스 파일에 기초하여 설치되는 대상 어플리케이션의 실행을 에뮬레이션한다. 사용자 데이터 변환기는 대상 장치의 데이터베이스 스킴에 따른 데이터 구조를 갖는 사용자 데이터를 변환하여, 에뮬레이터의 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터를 생성한다. 에뮬레이터는 대상 어플리케이션이 변환된 사용자 데이터를 이용하여 동작하도록, 대상 어플리케이션의 실행을 에뮬레이션한다. 본 발명에 따르면, 포렌식 분석이 정확하고 빠르게 수행된다.

Description

에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법 {ELECTRONIC DEVICE PERFORMING EMULATION-BASED FORENSIC ANALYSIS AND METHOD OF PERFORMING FORENSIC ANALYSIS USING THE SAME}
본 발명은 전자적으로 동작하는 장치에 관한 것으로, 좀 더 구체적으로는 대상 장치(Target Device)에 관하여 에뮬레이션 기반의 포렌식 분석(Emulation-based Forensic Analysis)을 수행하도록 구성되는 전자 장치, 및 그것을 이용하여 포렌식 분석을 수행하기 위한 방법에 관한 것이다.
범죄가 발생한 경우, 수사 기관은 범죄와 관련되는 증거를 획득하기 위해 다양한 정보를 수집한다. 포렌식 분석은 과학적/기술적인 기법들을 이용하여 증거를 획득하고 획득된 증거로부터 유용한 결과를 찾는 전반적인 과정을 의미하는 용어이다. 포렌식 분석은 지문, DNA(Deoxyribonucleic Acid) 등과 같은 생물학적 요인에 대해 수행되는 생물학적 포렌식 분석, 저장 장치, 통신 장치 등과 같은 전자적 요인에 대해 수행되는 전자적 포렌식 분석 등을 포함한다.
특히, 많은 사람들이 휴대용 컴퓨터, 휴대용 통신 단말기 등과 같은 다양한 종류의 전자 장치들을 이용하고 스마트(Smart) 장치 및 웨어러블(Wearable) 장치가 널리 보급됨에 따라, 전자적 포렌식 분석은 범죄 수사와 관련되는 증거를 획득하는 데에 유용한 소스(Source)로 되었다.
예로서, 스마트폰은 이메일 또는 메시지의 송신/수신, 웹 정보의 검색, 사진 또는 동영상의 촬영 등과 같은 사용자의 다양한 활동에 관한 정보를 저장할 수 있다. 따라서, 범죄자가 스마트폰을 이용하는 경우, 스마트폰은 범죄에 관한 다양한 정보를 저장할 수 있다. 이러한 경우, 수사 기관은 범죄와 관련되는 유용한 증거를 획득하기 위해 범죄자의 스마트폰에 대해 포렌식 분석을 수행할 수 있다.
본 발명의 실시 예들은 대상 장치에 관한 포렌식 분석을 수행하기 위해 이용되는 전자 장치를 위한 구성들을 제공할 수 있다. 몇몇 실시 예에서, 전자 장치는 대상 장치에 저장된 사용자 데이터를 이용하여 대상 장치의 동작을 재연(Reconstruction)할 수 있다. 이를 위해, 전자 장치는 에뮬레이션 기반의 포렌식 분석을 수행할 수 있다.
본 발명의 일 실시 예에서, 대상 장치에 관한 포렌식 분석을 수행하도록 구성되는 전자 장치가 제공될 수 있다. 전자 장치는 데이터 추출기, 에뮬레이터, 및 사용자 데이터 변환기를 포함할 수 있다. 데이터 추출기는 대상 장치에 설치된 어플리케이션들 중 적어도 하나의 소스 파일, 및 대상 장치에서의 어플리케이션들 중 적어도 하나의 실행에 따라 생성된 사용자 데이터를 대상 장치로부터 획득할 수 있다. 에뮬레이터는 소스 파일에 기초하여 설치되는 대상 어플리케이션의 실행을 에뮬레이션할 수 있다. 사용자 데이터 변환기는 대상 장치의 데이터베이스 스킴에 따른 데이터 구조를 갖는 사용자 데이터를 변환하여, 에뮬레이터의 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터를 생성할 수 있다. 에뮬레이터는 대상 어플리케이션이 변환된 사용자 데이터를 이용하여 동작하도록, 대상 어플리케이션의 실행을 에뮬레이션할 수 있다.
본 발명의 일 실시 예에서, 사용자 데이터 변환기는 대상 장치의 데이터베이스 스킴을 구성하는 제 1 필드들의 목록, 및 에뮬레이터의 데이터베이스 스킴을 구성하는 제 2 필드들의 목록을 획득할 수 있다.
본 발명의 일 실시 예에서, 사용자 데이터 변환기는 제 1 필드들 중에서 제 2 필드들 중 하나와 동일한 필드에 대응하는 아이템이 변환된 사용자 데이터에 포함되도록, 변환된 사용자 데이터를 생성할 수 있다.
본 발명의 일 실시 예에서, 사용자 데이터 변환기는 제 1 필드들 중에서 제 2 필드들 모두와 동일하지 않은 필드에 대응하는 아이템이 변환된 사용자 데이터에 포함되지 않도록, 변환된 사용자 데이터를 생성할 수 있다.
본 발명의 일 실시 예에서, 에뮬레이터는 대상 장치의 종류에 관계없이 이용되는 기본 데이터를 미리 포함하도록 구현될 수 있다.
본 발명의 일 실시 예에서, 데이터 추출기는 어플리케이션들로부터 대상 어플리케이션을 선택하기 위해 제공되는 유저 인터페이스를 포함할 수 있다.
본 발명의 일 실시 예에서, 대상 장치는 모바일 통신 장치를 포함할 수 있다.
본 발명의 다른 실시 예에서, 대상 장치에 관한 포렌식 분석을 수행하도록 구성되는 전자 장치가 제공될 수 있다. 전자 장치는 하나 이상의 프로세서들, 및 하나 이상의 메모리 장치들을 포함할 수 있다. 메모리 장치들은 프로세서들에 의해 처리된 또는 처리될 데이터를 저장할 수 있다. 프로세서들은, 사용자의 요청에 응답하여 대상 장치에 설치된 어플리케이션들로부터 적어도 하나의 어플리케이션을 선택할 수 있고, 선택된 어플리케이션을 실행하기 위해 이용되는 파일들을 메모리 장치들에 설치할 수 있고, 선택된 어플리케이션이 대상 장치에서 실행되었을 때 생성된 사용자 데이터를 대상 장치로부터 획득할 수 있고, 대상 장치의 데이터베이스 스킴에 따른 데이터 구조를 갖는 사용자 데이터를 변환하여 프로세서들에 의해 처리되는 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터를 생성할 수 있고, 선택된 어플리케이션이 설치된 파일들 및 변환된 사용자 데이터를 이용하여 동작하도록 선택된 어플리케이션의 실행을 에뮬레이션할 수 있다.
본 발명의 다른 실시 예에서, 설치된 파일들은 전자 장치 내부에 포함되는 제 1 스토리지 장치 및 전자 장치와 별개로 제공되는 제 2 스토리지 장치 중 적어도 하나로부터 획득될 수 있다.
본 발명의 다른 실시 예에서, 프로세서들은 선택된 어플리케이션의 실행이 에뮬레이션되는 동안 발생하는 관심 이벤트에 관한 데이터를 수집할 수 있다.
본 발명의 다른 실시 예에서, 관심 이벤트는 선택된 어플리케이션의 실행이 에뮬레이션되는 동안 변환된 사용자 데이터로부터 로딩되는 관심 단어를 포함할 수 있고, 프로세서들은 기 관심 단어가 발생한 횟수 및 관심 단어를 포함하는 컨텍스트 중 적어도 하나에 관한 데이터를 수집할 수 있다.
본 발명의 또 다른 실시 예에서, 하나 이상의 프로세서들을 포함하는 전자 장치를 이용하여 대상 장치에 관한 포렌식 분석을 수행하기 위한 방법이 제공될 수 있다. 본 발명의 또 다른 실시 예에 따른 방법은, 대상 장치에 설치된 어플리케이션들 중 적어도 하나의 소스 파일에 기초하여 프로세서들에 의해 대상 어플리케이션을 전자 장치에 설치하는 단계, 대상 어플리케이션이 대상 장치에서 실행되었을 때 생성된 사용자 데이터를 전자 장치의 수신 회로를 통해 대상 장치로부터 수신하는 단계, 대상 장치의 데이터베이스 스킴을 구성하는 제 1 필드들의 목록 및 프로세서들에 의해 처리되는 데이터베이스 스킴을 구성하는 제 2 필드들의 목록을 프로세서들에 의해 획득하는 단계, 제 1 필드들에 기초하여 구성된 사용자 데이터를 변환하여 제 2 필드들에 기초하여 구성되는 변환된 사용자 데이터를 프로세서들에 의해 생성하는 단계, 대상 어플리케이션이 변환된 사용자 데이터를 이용하여 동작하도록 프로세서들에 의해 대상 어플리케이션의 실행을 에뮬레이션하는 단계, 및 전자 장치에 연결되는 출력 장치를 통해 에뮬레이션의 결과를 출력하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시 예에서, 에뮬레이션의 결과를 출력하는 단계는, 변환된 사용자 데이터에 기초하여 대상 어플리케이션의 실행을 에뮬레이션함으로써 대상 장치의 동작을 재연하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시 예에서, 변환된 사용자 데이터는 제 1 필드들 중에서 제 2 필드들 중 하나와 동일한 필드에 대응하는 아이템을 포함하도록 생성될 수 있다.
본 발명의 또 다른 실시 예에서, 변환된 사용자 데이터는 제 1 필드들 중에서 제 2 필드들 모두와 동일하지 않은 필드에 대응하는 아이템을 포함하지 않도록 생성될 수 있다.
본 발명의 실시 예들에 따르면, 사용자 데이터가 생성되었던 원래의 상황이 재연될 수 있기 때문에, 포렌식 분석이 정확하고 빠르게 수행될 수 있다. 나아가, 대상 장치의 기종에 관계없이, 포렌식 분석이 적은 비용으로 쉽게 수행될 수 있다.
도 1은 포렌식 분석의 대상인 대상 장치, 및 그것에 저장된 데이터를 보여주는 개념도이다.
도 2는 본 발명의 실시 예에 따른 전자 장치를 포함하는 포렌식 시스템을 보여주는 블록도이다.
도 3은 도 2의 전자 장치를 이용하여 도 2의 대상 장치에 관한 포렌식 분석을 수행하는 과정을 설명하는 흐름도이다.
도 4는 도 2의 데이터 추출기에 포함되는 유저 인터페이스(User Interface)를 보여주는 개념도이다.
도 5는 도 2의 데이터 추출기에 의해 도 2의 전자 장치에 어플리케이션(Application)을 설치하는 예시적인 과정을 보여주는 개념도이다.
도 6은 도 2의 대상 장치를 위한 데이터베이스 스킴(Database Scheme) 및 도 2의 전자 장치를 위한 데이터베이스 스킴을 보여주는 개념도이다.
도 7은 도 2의 사용자 데이터 변환기에 의해 사용자 데이터의 데이터 구조(Data Structure)를 변환(Conversion)하는 과정을 설명하는 흐름도이다.
도 8은 도 2의 사용자 데이터 변환기에 의해 사용자 데이터의 데이터 구조를 변환하는 과정을 보여주는 개념도이다.
도 9는 도 2의 사용자 데이터 변환기에 의해, 변환된 사용자 데이터를 생성하는 과정을 보여주는 개념도이다.
도 10은 도 2의 에뮬레이터의 구성 및 동작을 보여주는 개념도이다.
도 11은 도 2의 에뮬레이터에 의해 관심 이벤트(Interested Event)에 관한 데이터를 수집하는 과정을 보여주는 개념도이다.
도 12는 본 발명의 실시 예에 따른 전자 장치를 포함하는 포렌식 시스템을 보여주는 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 포렌식 분석(Forensic Analysis)의 대상인 대상 장치, 및 그것에 저장된 데이터를 보여주는 개념도이다.
대상 장치(10)는 통신 및 데이터 처리를 수행하도록 구성되는 장치일 수 있다. 예로서, 대상 장치(10)는 모바일(Mobile) 통신 장치를 포함할 수 있다. 예로서, 대상 장치(10)는 스마트폰(Smartphone)일 수 있다. 다른 예로서, 대상 장치(10)는 노트북 컴퓨터, 태블릿(Tablet) 컴퓨터, 웨어러블(Wearable) 장치 등과 같은 휴대용 장치를 포함할 수 있다. 또는, 대상 장치(10)는 데스크탑(Desktop) 컴퓨터, 데이터베이스 서버(Database Server), 워크스테이션(Workstation) 등과 같은 컴퓨팅 장치를 포함할 수 있다.
이하의 설명에서, 더 나은 이해를 돕기 위해, 대상 장치(10)가 스마트폰인 것으로 가정될 것이다. 그러나, 이러한 가정은 더 나은 이해를 돕기 위해 제공되는 것이고, 본 발명을 한정하기 위한 것은 아니다. 대상 장치(10)의 유형은 다양하게 변경 또는 수정될 수 있다.
대상 장치(10)는 포렌식 분석의 대상일 수 있다. 예로서, 수사 기관이 범죄자로부터 대상 장치(10)를 획득하였을 수 있다. 대상 장치(10)는 이메일 또는 메시지의 송신/수신, 웹 정보의 검색, 사진 또는 동영상의 촬영 등과 같은 사용자의 다양한 활동에 관한 정보를 저장할 수 있다. 범죄자가 대상 장치(10)를 이용하였던 경우, 대상 장치(10)는 범죄에 관한 다양한 정보를 저장할 수 있다. 수사 기관은 범죄와 관련되는 증거를 대상 장치(10)로부터 획득하고 획득된 증거로부터 유용한 결과를 찾기 위해, 대상 장치(10)에 대해 포렌식 분석을 수행할 수 있다.
예로서, 대상 장치(10)는 메모리 장치(12)를 포함할 수 있다. 메모리 장치(12)는 다양한 종류의 데이터(DAT)를 저장할 수 있다. 예로서, 데이터(DAT)는 시스템 데이터, 임시(Temporary) 데이터, 및 사용자 데이터를 포함할 수 있다. 시스템 데이터는 대상 장치(10)를 동작시키기 위해 이용되는 데이터(예컨대, 운영체제(Operating System)의 데이터, 기본 어플리케이션(Basic Application)의 데이터 등)를 포함할 수 있다. 임시 데이터는 대상 장치(10)가 동작하는 동안 임시적으로 생성되는 데이터를 포함할 수 있다. 사용자 데이터는 대상 장치(10)의 사용자에 의해 생성/저장되는 데이터를 포함할 수 있다.
그러나, 위 예는 더 나은 이해를 돕기 위해 제공되는 것이다. 데이터(DAT)는 다른 종류의 데이터를 더 포함할 수 있다. 또는, 데이터(DAT)는 시스템 데이터, 임시 데이터, 및 사용자 데이터 중 적어도 하나를 포함하지 않을 수 있다. 데이터(DAT)의 구성은 다양하게 변경 또는 수정될 수 있다.
예로서, 메모리 장치(12)는 데이터를 저장하기 위해 하나 이상의 불휘발성 메모리들 및/또는 하나 이상의 휘발성 메모리들을 포함할 수 있다. 예로서, 메모리 장치(12)는 플래시(Flash) 메모리, MRAM(Magnetoresistive Random Access Memory), PRAM(Phase-change RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다. 예로서, 메모리 장치(12)는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리를 포함할 수 있다.
도 1에서, 메모리 장치(12)가 대상 장치(10)에 포함되는 것으로 도시되었다. 그러나, 몇몇 경우, 메모리 장치(12)는 대상 장치(10)와 별개로 제공되고 대상 장치(10)에 연결되어 이용되는 외장 장치를 포함할 수 있다. 예로서, 외장 장치는 HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같은 스토리지 장치를 포함할 수 있다. 메모리 장치(12)의 구성은 다양하게 변경 또는 수정될 수 있다.
위에서 설명된 것과 같이, 범죄자가 대상 장치(10)를 이용하였던 경우, 대상 장치(10)는 범죄에 관한 다양한 정보를 저장할 수 있다. 몇몇 경우, 수사 기관이 범죄자로부터 대상 장치(10)를 획득하기 전에, 범죄자는 범죄를 은닉하기 위해 대상 장치(10)를 의도적으로 손상시켰을 수 있다. 이러한 경우, 대상 장치(10)는 정상적으로 동작하지 못할 수 있다.
손상된 대상 장치(10)에 대해 포렌식 분석을 수행하기 위해 다양한 방법이 제공될 수 있다. 예로서, 수사 기관은 메모리 장치(12)의 메모리 영역들로부터 이진 데이터 스트링(Binary Data String)들을 추출할 수 있고, 추출된 이진 데이터 스트링들을 이용여 텍스트 기반 분석(Text-based Analysis)을 수행할 수 있다. 수사 기관은 텍스트 기반 분석의 결과에 기초하여 범죄와 관련되는 증거를 수집할 수 있다. 그러나, 텍스트 기반 분석은 많은 시간을 필요로 할 수 있고, 메모리 장치(12)에 저장된 데이터(DAT)의 원형이 파악되기 어려울 수 있다.
다른 예로서, 수사 기관은 대상 장치(10)로부터 메모리 장치(12)를 분리하고, 대상 장치(10)와 동일한 유형/기종의 새로운 장치에 메모리 장치(12)를 연결할 수 있다. 이후, 수사 기관은 그 새로운 장치를 이용하여, 메모리 장치(12)에 저장된 데이터(DAT)에 기초한 동작을 재연(Reconstruction)할 수 있다. 이러한 방법에 따르면, 메모리 장치(12)에 저장된 데이터(DAT)의 원형이 파악될 수 있다. 그러나, 새로운 장치를 구입하기 위한 비용이 요구될 수 있고, 메모리 장치(12)를 분리하고 연결하는 것이 기술적으로 어려울 수 있다.
본 발명의 실시 예들에 따르면, 대상 장치(10)의 기종에 관계없이, 메모리 장치(12)에 저장된 데이터(DAT)를 이용하여 대상 장치(10)의 동작이 재연될 수 있다. 이를 위해, 본 발명의 실시 예들은 "에뮬레이션 기반의 포렌식 분석(Emulation-based Forensic Analysis)"을 채용할 수 있다. 본 발명의 실시 예들에 따르면, 데이터(DAT)가 생성되었던 원래의 상황이 재연될 수 있기 때문에, 포렌식 분석이 정확하고 빠르게 수행될 수 있다. 나아가, 포렌식 분석이 적은 비용으로 쉽게 수행될 수 있다. 본 발명의 실시 예들이 도 2 내지 도 12를 참조하여 더 상세히 설명될 것이다.
도 2는 본 발명의 실시 예에 따른 전자 장치를 포함하는 포렌식 시스템을 보여주는 블록도이다. 포렌식 시스템(1000)은 대상 장치(10) 및 전자 장치(100)를 포함할 수 있다.
대상 장치(10)는 메모리 장치(12)를 포함할 수 있다. 대상 장치(10)는 포렌식 분석의 대상일 수 있다. 대상 장치(10) 및 메모리 장치(12)는 도 1을 참조하여 설명되었으므로, 설명의 편의를 위해, 중복되는 설명들은 이하 생략될 것이다.
전자 장치(100)는 대상 장치(10)에 관한 포렌식 분석을 수행하도록 구성될 수 있다. 전자 장치(100)는 대상 장치(10)로부터 범죄와 관련되는 증거를 수집하기 위해 이용될 수 있다. 전자 장치(100)는 포렌식 분석을 수행하기 위해 다양한 논리 연산/산술 연산을 수행하고 데이터를 처리하도록 구성될 수 있다. 이를 위해, 전자 장치(100)는 컴퓨팅 능력(Computing Power)을 갖는 회로, 칩, 장치, 및/또는 시스템을 포함하도록 구현될 수 있다.
예로서, 전자 장치(100)는 포렌식 분석을 수행하도록 설계되는 하나 이상의 전용 논리 회로(예컨대, FPGA(Field Programmable Gate Array), ASICs(Application Specific Integrated Circuits) 등)들을 포함하도록 구현될 수 있다. 이하에서 설명되는 전자 장치(100)의 구성 요소들은 고유의 기능(들)을 수행하기 위해 하드웨어 형태(예컨대, 전용 논리 회로)로 설계될 수 있다.
다른 예로서, 전자 장치(100)는, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰 등과 같이, 컴퓨팅 능력을 갖는 하나 이상의 프로세서 코어들을 포함하는 장치로 구현될 수 있다. 프로세서 코어는 기계적으로 실행할 수 있는 프로그램 코드(Machine-executable Program Code)에 포함되는 명령어 집합(Instruction Set)을 이해하고 처리할 수 있다. 이하에서 설명되는 전자 장치(100)의 구성 요소들은 고유의 기능(들)을 수행하기 위해 소프트웨어 형태(예컨대, 프로그램 코드)로 설계될 수 있고, 프로세서 코어에 의해 처리될 수 있다.
또 다른 예로서, 전자 장치(100)는 하이브리드(Hybrid) 형태로 설계될 수 있다. 즉, 전자 장치(100)의 몇몇 구성 요소들이 하드웨어 형태로 설계되는 동안, 전자 장치(100)의 다른 몇몇 구성 요소들은 소프트웨어 형태로 설계될 수 있다. 전자 장치(100)의 구성 요소들의 설계는 다양하게 변경 또는 수정될 수 있다.
몇몇 실시 예에서, 전자 장치(100)는 데이터 추출기(Data Extractor, 110), 사용자 데이터 변환기(User Data Converter, 130), 및 에뮬레이터(Emulator, 150)를 포함할 수 있다. 위에서 설명된 것과 같이, 데이터 추출기(110), 사용자 데이터 변환기(130), 및 에뮬레이터(150) 각각은 하드웨어 형태, 소프트웨어 형태, 또는 하이브리드 형태로 설계될 수 있다.
데이터 추출기(110)는 대상 장치(10)에 저장된 데이터를 추출할 수 있다. 좀 더 구체적으로, 데이터 추출기(110)는 메모리 장치(12)에 저장된 데이터를 획득할 수 있다. 이를 위해, 데이터 추출기(110)는 메모리 장치(12)와 직접적으로 또는 간접적으로 연결되고 통신할 수 있다.
예로서, 데이터 추출기(110)는 전자 장치(100)에 포함되는 통신 단자 또는 커넥터(미도시)를 통해 메모리 장치(12)와 통신할 수 있다. 예로서, 데이터 추출기(110)는 USB(Universal Serial Bus), SATA(Serial Advanced Technology Attachment), IDE(Integrated Drive Electronics), PCIe(Peripheral Component Interconnect Express) 등과 같은 다양한 통신 규약에 따라 메모리 장치(12)와 통신할 수 있다. 전자 장치(100) 및/또는 데이터 추출기(110)는 통신을 수행하기 위해 송신/수신 회로(미도시)를 포함할 수 있다.
예로서, 대상 장치(10)가 스마트폰인 경우, 메모리 장치(12)는 대상 장치(10)에 설치된 하나 이상의 어플리케이션들에 관한 어플리케이션 데이터(AP)를 저장할 수 있다. 어플리케이션(또는, 앱(App)으로도 불림)은 사용자에게 서비스를 제공하기 위해 대상 장치(10)에서 실행되는 프로그램을 의미할 수 있다.
어플리케이션 데이터(AP)는 어플리케이션들의 실행 파일들 및 소스 파일들을 포함할 수 있다. 실행 파일들은 어플리케이션들을 실행하기 위해 이용되는 파일들을 포함할 수 있고, 소스 파일들은 어플리케이션들을 대상 장치(10)에 설치하기 위해 이용되는 파일들을 포함할 수 있다. 몇몇 경우, 대상 장치(10)는 그것에 설치된 어플리케이션들의 목록(List)을 관리할 수 있고, 어플리케이션 데이터(AP)는 어플리케이션들의 목록에 대응하는 데이터를 포함할 수 있다.
나아가, 메모리 장치(12)는 사용자 데이터(UD)를 저장할 수 있다. 사용자 데이터(UD)는 대상 장치(10)에서 어플리케이션들이 실행되었을 때 생성된 데이터를 포함할 수 있다. 예로서, 사용자 데이터(UD)는, 통화 목록, 웹 브라우저(Web Browser) 어플리케이션이 실행된 동안 저장된 웹 페이지, 사용자에 의해 송신/수신된 이메일, 사진 또는 동영상, 녹음기(Recorder) 어플리케이션이 실행된 동안 저장된 음성(Voice) 파일, 메신저(Messenger) 어플리케이션이 실행된 동안 송신/수신된 메시지(Message) 등과 같이, 대상 장치(10)의 사용자에 의해 생성 및 저장되는 데이터를 포함할 수 있다. 다만, 본 발명은 이 예에 의해 한정되지 않고, 사용자 데이터(UD)는 다른 유형의 데이터를 더 포함할 수 있고 다른 어플리케이션이 더 제공될 수 있다.
이러한 사용자 데이터(UD)는 범죄를 수사하는 데에 유용한 데이터를 포함할 수 있다. 따라서, 데이터 추출기(110)는 대상 장치(10)에서의 어플리케이션들 중 적어도 하나의 실행에 따라 생성된 사용자 데이터(UD)를 대상 장치(10)로부터 획득할 수 있다(예컨대, 데이터 추출기(110)의 수신 회로를 통해 사용자 데이터(UD)가 수신될 수 있다).
한편, 사용자 데이터(UD)가 생성되었던 원래의 상황을 재연하기 위해, 사용자 데이터(UD)와 관련되는 어플리케이션이 요구될 수 있다. 따라서, 사용자 데이터(UD)에 기초한 대상 장치(10)의 동작을 재연하기 위해, 데이터 추출기(110)는 어플리케이션 데이터(AP)를 대상 장치(10)로부터 획득할 수 있다.
도 2에 나타낸 것과 같이, 몇몇 실시 예에서, 데이터 추출기(110)는 대상 장치(10)에 설치된 어플리케이션들 중 적어도 하나의 소스 파일을 획득할 수 있다. 획득된 소스 파일은 전자 장치(100)에 어플리케이션을 직접 설치한 뒤 대상 장치(10)의 동작을 재연하기 위해 이용될 수 있다.
또는, 몇몇 실시 예에서, 데이터 추출기(110)는 소스 파일을 직접 획득하는 대신, 대상 장치(10)에 설치된 어플리케이션들의 목록을 획득할 수 있다. 이러한 실시 예에서, 데이터 추출기(110)는 메모리 장치(12)가 아닌 다른 메모리 장치 또는 스토리지 장치로부터 어플리케이션의 소스 파일을 획득할 수 있다. 이러한 실시 예는 도 5를 참조하여 설명될 것이다.
몇몇 실시 예에서, 데이터 추출기(110)는 어플리케이션 데이터(AP) 및 사용자 데이터(UD) 전체를 획득할 수 있다. 또는, 데이터 추출기(110)는 대상 장치(10)에 설치된 어플리케이션들 중에서 선택된 몇몇 어플리케이션에 관한 어플리케이션 데이터(AP) 및 선택된 어플리케이션들을 위한 사용자 데이터(UD)만을 획득할 수 있다. 데이터 추출기(110)의 획득 동작은 포렌식 분석의 목적, 대상, 및/또는 범위(Scope)에 따라 다양하게 변경 또는 수정될 수 있다. 어플리케이션의 선택은 도 4를 참조하여 설명될 것이다.
사용자 데이터 변환기(130)는 사용자 데이터(UD)의 데이터 구조(Data Structure)를 변환할 수 있다. 대부분의 경우, 대상 장치(10)에서 관리되는 데이터베이스 스킴(Database Scheme)은 전자 장치(100)에서 관리되는 데이터베이스 스킴과 다를 수 있다. 이는 대상 장치(10)의 제조사, 기종, 기능, 및/또는 성능에 의존하여 대상 장치(10)에서 관리되는 데이터베이스 스킴이 수정될 수 있기 때문이다.
따라서, 사용자 데이터 변환기(130)는 사용자 데이터(UD)의 데이터 구조가 전자 장치(100)에 적합해지도록 사용자 데이터(UD)의 데이터 구조를 변환할 수 있다. 이로써, 사용자 데이터 변환기(130)는 변환된 사용자 데이터(CUD)를 생성할 수 있다. 사용자 데이터 변환기(130)가 채용되는 경우, 대상 장치(10)의 기종에 관계없이(즉, 대상 장치(10)에서 관리되는 데이터베이스 스킴에 관계없이), 전자 장치(100)에서 관리되는 데이터베이스 스킴에 기초하여 사용자 데이터(UD)가 적절히 이용될 수 있다.
사용자 데이터 변환기(130)는 대상 장치(10)의 데이터베이스 스킴에 따른 데이터 구조를 갖는 사용자 데이터(UD)를 변환할 수 있고, 전자 장치(100)(좀 더 구체적으로는, 에뮬레이터(150))의 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터(CUD)를 생성할 수 있다. 데이터 구조의 변환은 도 6 내지 도 9를 참조하여 좀 더 상세히 설명될 것이다.
에뮬레이터(150)는 대상 장치(10)의 동작을 모방(즉, 에뮬레이션)할 수 있다. 이를 위해, 에뮬레이터(150)는 대상 장치(10)에 포함되는 하드웨어 회로/모듈들의 모델들에 기초하여 설계될 수 있다. 예로서, 에뮬레이터(150)는 대상 장치(10)에 포함되는 프로세서, 메모리, 입출력 선로 등에서 처리/수행되는 동작들을 에뮬레이션할 수 있다. 따라서, 에뮬레이터(150)는 대상 장치(10)의 동작 환경과 동일 또는 유사한 동작 환경을 제공할 수 있다.
본 발명의 실시 예에서, 에뮬레이터(150)는 대상 장치(10)의 기종과 관련되지 않는 공통의 하드웨어 회로/모듈들의 모델들에 기초하여 설계될 수 있다. 따라서, 본 발명의 실시 예에 따르면, 대상 장치(10)의 기종에 대한 종속성이 해소될 수 있다. 결과적으로, 변환된 데이터 구조를 갖는 변환된 사용자 데이터(CUD)가 적절히 이용될 수 있다.
위에서 설명된 것과 같이, 데이터 추출기(110)는 대상 장치(10)에 설치된 어플리케이션들 중 적어도 하나의 소스 파일을 획득하기 위해 채용될 수 있다. 소스 파일은 메모리 장치(12)로부터 획득되거나 그 외 다른 메모리/스토리지 장치로부터 획득될 수 있다. 획득된 소스 파일의 어플리케이션은 에뮬레이터(150) 상에서 동작하기 위해, 획득된 소스 파일에 기초하여 전자 장치(100)에 설치될 수 있다. 이하의 설명에서, 전자 장치(100)에 설치된 어플리케이션은 "대상 어플리케이션"으로 언급될 것이다. 대상 어플리케이션은 대상 장치(10)에 설치된 어플리케이션들 중에서 선택될 수 있다.
에뮬레이터(150)는 대상 어플리케이션의 실행을 에뮬레이션할 수 있다. 에뮬레이터(150)는 대상 장치(10)에 포함되는 하드웨어 회로/모듈들의 모델들 상에서 대상 어플리케이션을 실행할 수 있다. 따라서, 에뮬레이터(150)는 대상 장치(10)의 동작 환경과 동일 또는 유사한 동작 환경에서 대상 어플리케이션의 실행을 에뮬레이션할 수 있다.
본 발명의 실시 예에서, 에뮬레이터(150)는 소스 파일에 기초하여 설치된 대상 어플리케이션, 및 변환된 사용자 데이터(CUD)에 기초하여 동작할 수 있다. 에뮬레이터(150)는 대상 어플리케이션이 변환된 사용자 데이터(CUD)를 이용하여 동작하도록 대상 어플리케이션의 실행을 에뮬레이션할 수 있다. 따라서, 대상 어플리케이션의 실행은 대상 장치(10)에서 실행되는 것과 동일 또는 유사하게 에뮬레이터(150)에서 에뮬레이션될 수 있다.
몇몇 실시 예에서, 에뮬레이터(150)는 에뮬레이션의 결과를 출력할 수 있다. 예로서, 에뮬레이터(150)는 변환된 사용자 데이터(CUD)에 기초하여 대상 어플리케이션의 실행을 에뮬레이션함으로써, 대상 장치(10)의 동작을 재연할 수 있다. 에뮬레이터(150)는 출력 장치(미도시)를 통해 대상 장치(10)의 재연된 동작을 출력할 수 있다. 대상 장치(10)의 동작의 재연은 도 10을 참조하여 설명될 것이다.
몇몇 실시 예에서, 에뮬레이터(150)는 대상 어플리케이션의 실행이 에뮬레이션되는 동안 발생하는 관심 이벤트(Interested Event)에 관한 데이터를 수집할 수 있다. 관심 이벤트는 전자 장치(100)의 사용자에 의해 주목되는 이벤트를 포함할 수 있다. 예로서, 수사 기관은 범죄와 관련되는 단어 또는 사진에 관심을 가질 수 있고, 관심 이벤트는 특정 단어 또는 특정 영상을 포함하도록 설계될 수 있다. 관심 이벤트는 도 11을 참조하여 더 상세히 설명될 것이다.
도 3은 도 2의 전자 장치를 이용하여 도 2의 대상 장치에 관한 포렌식 분석을 수행하는 과정을 설명하는 흐름도이다. 더 나은 이해를 돕기 위해, 도 2가 도 3과 함께 참조될 것이다.
S110 동작에서, 대상 어플리케이션이 전자 장치(100)에 설치될 수 있다. 대상 어플리케이션은 대상 장치(10)에 설치된 어플리케이션들 중에서 선택될 수 있다. 데이터 추출기(110)는 대상 장치(10)와 통신하여, 대상 장치(10)에 설치된 어플리케이션들의 목록을 인지할 수 있다. 대상 어플리케이션은 대상 어플리케이션을 설치하기 위해 이용되는 소스 파일에 기초하여 설치될 수 있다. 따라서, 대상 어플리케이션을 실행하기 위해 이용되는 파일들이 전자 장치(100)에 설치될 수 있다. 소스 파일은 메모리 장치(12) 및/또는 그 외 다른 메모리/스토리지 장치로부터 획득될 수 있다.
S120 동작에서, 전자 장치(100)는 데이터 추출기(110)를 이용하여 메모리 장치(12)로부터 사용자 데이터(UD)를 수신할 수 있다. 사용자 데이터(UD)는 대상 어플리케이션이 대상 장치(10)에서 실행되었을 때 생성된 데이터를 포함할 수 있다. S120 동작에서 수신된 사용자 데이터(UD)는 대상 장치(10)의 데이터베이스 스킴에 따른 데이터 구조를 가질 수 있다.
S130 동작에서, 전자 장치(100)는 사용자 데이터 변환기(130)를 이용하여 사용자 데이터(UD)의 데이터 구조를 변환할 수 있다. 따라서, 사용자 데이터 변환기(130)는 변환된 사용자 데이터(CUD)를 생성할 수 있다. 변환된 사용자 데이터(CUD)는 에뮬레이터(150)의 데이터베이스 스킴에 따른 데이터 구조를 가질 수 있다. S130 동작에 따르면, 대상 장치(10)의 기종에 대한 종속성이 해소될 수 있다.
도 3에서, S120 및 S130 동작들이 수행되기 전에 S110 동작이 수행되는 것으로 도시되었다. 그러나, 본 발명은 도 3에 의해 한정되지 않는다. 몇몇 실시 예에서, S120 및 S130 동작들이 수행된 후에 S110 동작이 수행될 수 있다. 또는, S110 동작은 S120 및 S130 동작들과 병렬로(즉, 함께 또는 동시에) 수행될 수 있다.
S140 동작에서, 전자 장치(100)는 에뮬레이터(150)를 이용하여, 대상 어플리케이션의 실행을 에뮬레이션할 수 있다. 에뮬레이터(150)는 S110 동작에서 설치된 파일들, 및 S130 동작에서 생성된 변환된 사용자 데이터(CUD)에 기초하여 대상 어플리케이션을 실행할 수 있다. 따라서, 에뮬레이터(150)는 대상 장치(10)의 동작 환경과 동일 또는 유사한 동작 환경에서 대상 어플리케이션의 실행을 에뮬레이션할 수 있다.
예로서, 범죄자는 대상 장치(10)를 이용하여 범죄에 관한 메시지들을 송신/수신하였을 수 있다. 수사 기관은 메신저 어플리케이션을 대상 어플리케이션으로서 선택할 수 있고, 대상 장치(10)에서 송신/수신된 메시지들을 포함하는 사용자 데이터(UD)를 획득할 수 있다. 이후, 메신저 어플리케이션이 전자 장치(100)에 설치될 수 있고, 에뮬레이터(150)는 변환된 사용자 데이터(CUD)에 기초하여 메신저 어플리케이션의 실행을 에뮬레이션할 수 있다. 따라서, 대상 장치(10)에서 메시지가 송신/수신되었던 원래의 상황이 재연될 수 있다.
이러한 에뮬레이션의 결과는 범죄를 수사하는 데에 유용한 정보를 제공할 수 있다. 사용자 데이터(UD)가 생성되었던 원래의 상황이 재연될 수 있기 때문에, 포렌식 분석이 정확하고 빠르게 수행될 수 있다. 나아가, 포렌식 분석이 대상 장치의 기종에 관계없이 수행될 수 있다.
다만, 위 예는 더 나은 이해를 돕기 위해 제공된 것이고, 본 발명을 한정하기 위한 것은 아니다. 사용자 데이터(UD)의 획득 및 대상 어플리케이션의 실행의 에뮬레이션은 포렌식 분석의 목적, 대상, 및/또는 범위에 따라 다양하게 변경 또는 수정될 수 있다.
도 4는 도 2의 데이터 추출기에 포함되는 유저 인터페이스(User Interface)를 보여주는 개념도이다. 더 나은 이해를 돕기 위해, 도 2가 도 4와 함께 참조될 것이다.
대상 장치(10)에는 다양한 종류의 어플리케이션들이 설치될 수 있다. 예로서, 이 어플리케이션들은 웹 브라우저 어플리케이션, 미디어 재생기(Media Player) 어플리케이션, 메신저 어플리케이션 등을 포함할 수 있다. 다만, 본 발명은 이 예에 의해 한정되지 않고, 다른 종류의 어플리케이션들이 더 제공될 수 있다.
어플리케이션 데이터(AP)는 대상 장치(10)에 설치된 어플리케이션에 관한 데이터를 포함할 수 있다. 예로서, 어플리케이션 데이터(AP)는 대상 장치(10)에 설치된 어플리케이션들의 목록에 관한 데이터를 포함할 수 있다. 예로서, 어플리케이션 데이터(AP)는 대상 장치(10)에 설치된 어플리케이션들의 소스 파일들을 포함할 수 있다.
몇몇 실시 예에서, 데이터 추출기(110)는 유저 인터페이스(112)를 포함할 수 있다. 유저 인터페이스(112)는 대상 장치(10)에 설치된 어플리케이션들로부터 대상 어플리케이션을 선택하기 위해 제공될 수 있다. 전자 장치(100)의 사용자(예컨대, 수사 기관)는 유저 인터페이스(112)를 통해 데이터 추출기(110)와 인터페이싱할 수 있다. 유저 인터페이스(112)는 전자 장치(100)의 사용자에게 정보를 출력할 수 있고, 전자 장치(100)의 사용자로부터 입력을 수신할 수 있다.
예로서, 유저 인터페이스(112)는 표시 장치(Display Device, 미도시)를 포함할 수 있다. 데이터 추출기(110)는 대상 장치(10)에 설치된 어플리케이션들의 목록을 획득할 수 있고, 유저 인터페이스(112)는 획득된 목록을 표시 장치에 출력할 수 있다. 또는, 유저 인터페이스(112)는 음성 정보, 소리 정보, 문자 정보 등과 같은 정보를 제공하기 위해 다른 유형의 출력 장치를 포함할 수 있다. 전자 장치(100)의 사용자는 유저 인터페이스(112)를 통해, 대상 장치(10)에 설치된 어플리케이션들의 목록을 인지할 수 있다.
예로서, 전자 장치(100)의 사용자는 키보드, 마우스, 터치스크린 등과 같은 입력 장치(Input Device, 미도시)를 이용하여, 어플리케이션들의 목록으로부터 대상 어플리케이션(들)을 선택할 수 있다. 유저 인터페이스(112)는 전자 장치(100)의 사용자로부터 입력을 수신할 수 있다. 데이터 추출기(110)는 유저 인터페이스(112)를 통한 사용자의 요청에 응답하여, 대상 장치(10)에 설치된 어플리케이션들 중 적어도 하나를 대상 어플리케이션으로서 선택할 수 있다. 여기서, 하나의 대상 어플리케이션이 선택되거나, 둘 이상의 대상 어플리케이션들이 선택될 수 있다.
예로서, 데이터 추출기(110)는 선택된 대상 어플리케이션의 소스 파일을 메모리 장치(12)로부터 획득할 수 있다. 데이터 추출기(110)에 의해 획득된 소스 파일은 전자 장치(100)에 대상 어플리케이션을 설치하고 에뮬레이터(150)에서 대상 어플리케이션의 실행을 에뮬레이션하기 위해 이용될 수 있다. 다른 예로서, 데이터 추출기(110)는 선택된 대상 어플리케이션의 목록을 출력할 수 있다. 출력된 목록은 메모리 장치(12)가 아닌 다른 메모리/스토리지 장치로부터 소스 파일을 획득하기 위해 참조될 수 있다.
예로서, 수사 기관은 대상 장치(10)에서 열람된 웹 페이지, 및 대상 장치(10)에서 송신/수신된 메시지에 관심을 가질 수 있다. 이 경우, 수사 기관은 유저 인터페이스(112)를 통해 웹 브라우저 어플리케이션 및 메신저 어플리케이션을 대상 어플리케이션들로서 선택할 수 있다. 이후, 전자 장치(100)에는, 웹 브라우저 어플리케이션의 소스 파일 및 메신저 어플리케이션의 소스 파일에 기초하여, 웹 브라우저 어플리케이션 및 메신저 어플리케이션이 설치될 수 있다.
몇몇 실시 예에서, 데이터 추출기(110)는 유저 인터페이스(112)를 포함하지 않을 수 있다. 이러한 실시 예에서, 데이터 추출기(110)는 대상 장치(10)에 설치된 모든 어플리케이션들의 소스 파일들을 획득하도록 설계될 수 있다. 또는, 데이터 추출기(110)는 미리 선택된 몇몇 어플리케이션들의 소스 파일들을 획득하도록 설계될 수 있다. 본 발명의 실시 예는 포렌식 분석의 목적, 대상, 및/또는 범위에 따라 다양하게 변경 또는 수정될 수 있다.
도 5는 도 2의 데이터 추출기에 의해 도 2의 전자 장치에 어플리케이션을 설치하는 예시적인 과정을 보여주는 개념도이다. 더 나은 이해를 돕기 위해, 도 2가 도 5와 함께 참조될 것이다.
도 2를 참조하여 설명된 것과 같이, 몇몇 실시 예에서, 데이터 추출기(110)는 대상 장치(10)에 설치된 어플리케이션들 중 적어도 하나의 소스 파일을 직접 획득할 수 있다. 또는, 몇몇 실시 예에서, 대상 장치(10)로부터 소스 파일을 획득하는 대신, 메모리 장치(12)가 아닌 다른 메모리/스토리지 장치가 소스 파일들을 관리할 수 있다.
예로서, 제 1 스토리지 장치(117)가 전자 장치(100) 내부에 포함될 수 있다. 예로서, 제 1 스토리지 장치(117)는 HDD, SSD, SD(Secure Digital) 카드, eMMC(Embedded Multimedia Card) 등과 같이 불휘발성 메모리를 포함하는 장치일 수 있다.
예로서, 제 2 스토리지 장치(105)가 전자 장치(100)와 별개로 제공될 수 있다. 예로서, 제 2 스토리지 장치(105)는 외장형 스토리지 장치, 스토리지 서버, 클라우드 스토리지(Cloud Storage) 등과 같이 전자 장치(100)에 포함되지 않는 장치일 수 있다.
제 1 스토리지 장치(117) 및 제 2 스토리지 장치(105) 중 적어도 하나는 대상 장치(10)에 설치될 수 있는 어플리케이션들의 소스 파일들을 저장할 수 있다. 예로서, 제 1 스토리지 장치(117) 및 제 2 스토리지 장치(105)는 모든 종류의 알려진 어플리케이션들의 소스 파일들을 저장할 수 있다. 다른 예로서, 제 1 스토리지 장치(117) 및 제 2 스토리지 장치(105)는 범죄를 수사하는 데에 유용한 몇몇 어플리케이션들의 소스 파일들을 저장할 수 있다. 본 발명은 위 예들에 의해 한정되지 않고, 제 1 스토리지 장치(117) 및 제 2 스토리지 장치(105)에 저장되는 소스 파일들은 다양하게 변경 또는 수정될 수 있다.
예로서, 데이터 추출기(110)는 어플리케이션 데이터(AP)에 기초하여, 대상 장치(10)에 설치된 어플리케이션들의 목록을 획득할 수 있다. 데이터 추출기(110)는 획득된 목록을 제 1 스토리지(117) 및/또는 제 2 스토리지(105)로 제공할 수 있다.
제 1 스토리지(117) 및 제 2 스토리지(105) 중 적어도 하나는 제공받은 목록에 대응하는 어플리케이션(들)의 소스 파일(들)을 출력할 수 있다. 제 1 스토리지(117) 및/또는 제 2 스토리지(105)로부터 출력된 소스 파일에 기초하여, 대상 어플리케이션을 실행하기 위해 이용되는 파일들이 전자 장치(100)에 설치될 수 있다. 에뮬레이터(150)는 설치된 파일들에 기초하여 실행되는 대상 어플리케이션을 에뮬레이션할 수 있다.
도 6은 도 2의 대상 장치를 위한 데이터베이스 스킴 및 도 2의 전자 장치를 위한 데이터베이스 스킴을 보여주는 개념도이다.
예로서, 도 6은 제 1 데이터베이스 스킴(DS1) 및 제 2 데이터베이스 스킴(DS2)을 보여준다. 더 나은 이해를 돕기 위해, 제 1 데이터베이스 스킴(DS1)은 도 2의 대상 장치(10)에서 관리되는 데이터베이스 스킴이고 제 2 데이터베이스 스킴(DS2)은 도 2의 전자 장치(100)(좀 더 구체적으로는, 도 2의 에뮬레이터(150))에서 관리되는 데이터베이스 스킴인 것으로 가정될 것이다.
데이터베이스 스킴은 데이터베이스에 저장되는 데이터를 관리하기 위해 설계된 데이터 구성을 의미할 수 있다. 데이터베이스에 저장되는 데이터는 데이터베이스 스킴에 따른 데이터 구조를 가질 수 있다.
데이터베이스에 저장되는 데이터는 "필드(Field)"에 기초하여 관리될 수 있다. 예로서, 제 1 데이터베이스 스킴(DS1)은 제 1 필드들(F1)에 기초하여 구성될 수 있고, 제 2 데이터베이스 스킴(DS2)은 제 2 필드들(F2)에 기초하여 구성될 수 있다.
예로서, 제 1 필드들(F1)은 m개의 필드들(예컨대, 필드 "a", 필드 "b", 필드 "c", 필드 "d", 필드 "m" 등)을 포함할 수 있다. 예로서, 제 1 데이터베이스 스킴(DS1)이 메신저 어플리케이션에 의해 송신/수신된 메시지들의 데이터를 관리하도록 구성된 경우, 필드 "a"는 메시지의 식별자(Identifier)에 대응할 수 있고, 필드 "b"는 메시지가 생성된 시각에 대응할 수 있다. 예로서, 필드 "c"는 메시지가 생성된 날짜에 대응할 수 있고, 필드 "d"는 메시지를 송신한 송신자의 식별자에 대응할 수 있다. 예로서, 대상 장치(100)에서, 메신저 어플리케이션은 제 1 데이터베이스 스킴(DS1)에 따른 데이터 구조를 갖는 메시지 데이터에 기초하여 동작할 수 있다.
제 1 필드들(F1)에 포함되는 필드들 각각은 각 메시지의 데이터를 식별하고 관리하기 위해 선택될 수 있다. 제 1 필드들(F1)에 포함되는 필드들 각각은 위 예들에 의해 한정되지 않고, 제 1 데이터베이스 스킴(DS1)의 설계에 의존하여 다양하게 변경 또는 수정될 수 있다.
예로서, 제 2 필드들(F2)은 n개의 필드들(예컨대, 필드 "a", 필드 "c", 필드 "d", 필드 "m", 필드 "n" 등)을 포함할 수 있다. 제 2 필드들(F2)에 포함되는 필드들 각각은 제 2 데이터베이스 스킴(DS2)에 기초하여 관리되는 데이터를 식별하고 관리하기 위해 선택될 수 있다. 제 2 필드들(F2)에 포함되는 필드들 각각은 제 2 데이터베이스 스킴(DS2)의 설계에 의존하여 다양하게 변경 또는 수정될 수 있다.
도 2를 참조하여 설명된 것과 같이, 제 1 데이터베이스 스킴(DS1)은 제 2 데이터베이스 스킴(DS2)과 다를 수 있다. 이는 장치의 종류, 기능 등 다양한 요인에 의존하여 데이터베이스 스킴이 수정될 수 있기 때문이다. 예로서, 도 6을 참조하면, 필드 "a", 필드 "c", 필드 "d", 및 필드 "m"은 제 1 데이터베이스 스킴(DS1) 및 제 2 데이터베이스 스킴(DS2) 모두에 포함될 수 있다. 반면, 필드 "b"는 제 1 데이터베이스 스킴(DS1)에만 포함될 수 있고, 필드 "n"은 제 2 데이터베이스 스킴(DS2)에만 포함될 수 있다.
제 1 데이터베이스 스킴(DS1)은 도 2의 대상 장치(10)에 의해 관리될 수 있고, 따라서 도 2의 사용자 데이터(UD)는 제 1 데이터베이스 스킴(DS1)에 따른 데이터 구조를 가질 수 있다. 제 1 데이터베이스 스킴(DS1)이 제 2 데이터베이스 스킴(DS2)과 다른 경우, 사용자 데이터(UD)는 도 2의 전자 장치(100)에서 이용되지 못할 수 있다. 이는 사용자 데이터(UD)가 전자 장치(100)에서 관리되는 데이터베이스 스킴(즉, 제 2 데이터베이스 스킴(DS2))을 갖지 않기 때문이다. 사용자 데이터(UD)가 도 2의 전자 장치(100)에서 이용되는 경우, 전자 장치(100)가 동작하지 않거나 전자 장치(100)의 동작에 오류가 발생할 수 있다.
따라서, 도 2의 사용자 데이터 변환기(130)는 사용자 데이터(UD)를 변환하여 변환된 사용자 데이터(CUD)를 생성할 수 있다. 변환된 사용자 데이터(CUD)는 제 2 데이터베이스 스킴(DS2)에 따른 데이터 구조를 가질 수 있다. 이러한 변환된 사용자 데이터(CUD)는 전자 장치(100)에서 이용될 수 있다. 데이터 구조의 변환은 도 7 및 도 8을 참조하여 더 상세히 설명될 것이다.
도 7은 도 2의 사용자 데이터 변환기에 의해 사용자 데이터의 데이터 구조를 변환하는 과정을 설명하는 흐름도이다. 도 8은 도 2의 사용자 데이터 변환기에 의해 사용자 데이터의 데이터 구조를 변환하는 과정을 보여주는 개념도이다. 더 나은 이해를 돕기 위해, 도 7 및 도 8이 함께 참조될 것이다. 나아가, 도 2가 도 7 및 도 8과 함께 참조될 것이다.
도 7을 참조하면, S210 동작에서, 사용자 데이터 변환기(130)는 제 1 데이터베이스 스킴(DS1)을 구성하는 제 1 필드들(F1)의 목록, 및 제 2 데이터베이스 스킴(DS2)을 구성하는 제 2 필드들(F2)의 목록을 획득할 수 있다. 예로서, 사용자 데이터 변환기(130)는 데이터 추출기(110)를 통해 획득된 사용자 데이터(UD)를 분석하여 제 1 필드들(F1)의 목록을 획득할 수 있다. 예로서, 사용자 데이터 변환기(130)는 전자 장치(100) 및/또는 에뮬레이터(150)의 설계에 관한 정보(예컨대, 사양서(Specification) 또는 설명서(Manual))에 기초하여 제 2 필드들(F2)의 목록을 획득할 수 있다. 또는, 사용자 데이터 변환기(130)는 전자 장치(100) 및/또는 에뮬레이터(150)에서 처리되는 데이터를 분석하여 제 2 필드들(F2)의 목록을 획득할 수 있다.
도 8을 참조하면, 사용자 데이터 변환기(130)는 제 1 필드들(F1)이 m개의 필드들(예컨대, 필드 "a", 필드 "b", 필드 "c", 필드 "d", 필드 "m" 등)을 포함함을 인지할 수 있다. 나아가, 사용자 데이터 변환기(130)는 제 2 필드들(F2)이 n개의 필드들(예컨대, 필드 "a", 필드 "c", 필드 "d", 필드 "m", 필드 "n" 등)을 포함함을 인지할 수 있다.
도 7을 참조하면, S220 동작에서, 사용자 데이터 변환기(130)는 변수 "i"의 값을 0으로 설정(즉, 초기화)할 수 있다. 여기서, 변수 "i"는 제 1 필드들(F1)에 포함되는 필드의 인덱스를 나타낼 수 있다. 예로서, 도 8의 제 1 데이터베이스 스킴(DS1)에서, 제 1 인덱스(즉, i=1)는 필드 "a"에 대응할 수 있고, 제 2 인덱스(즉, i=2)는 필드 "b"에 대응할 수 있고, 제 m 인덱스(즉, i=m)는 필드 "m"에 대응할 수 있다. 이후, S230 동작에서, 사용자 데이터 변환기(130)는 변수 "i"의 값을 1만큼 증가시킬 수 있다.
S240 동작에서, 사용자 데이터 변환기(130)는 변수 "j"의 값을 0으로 설정(즉, 초기화)할 수 있다. 여기서, 변수 "j"는 제 2 필드들(F2)에 포함되는 필드의 인덱스를 나타낼 수 있다. 예로서, 도 8의 제 2 데이터베이스 스킴(DS2)에서, 제 1 인덱스(즉, j=1)는 필드 "a"에 대응할 수 있고, 제 2 인덱스(즉, j=2)는 필드 "c"에 대응할 수 있고, 제 n 인덱스(즉, j=n)는 필드 "n"에 대응할 수 있다. 이후, S250 동작에서, 사용자 데이터 변환기(130)는 변수 "j"의 값을 1만큼 증가시킬 수 있다.
S260 동작에서, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 i번째 필드(F1[i])가 제 2 필드들(F2)의 j번째 필드(F2[j])와 동일한지 여부를 판별할 수 있다. 예로서, 도 8을 참조하면, 변수 "i"의 값이 1이고 변수 "j"의 값이 1인 경우, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 첫 번째 필드(F1[1])인 필드 "a"가 제 2 필드들(F2)의 첫 번째 필드(F2[1])인 필드 "a"와 동일한지 여부를 판별할 수 있다.
도 7의 S260 동작에서 두 필드들이 서로 동일한 것으로 판별된 경우, S280 동작이 수행될 수 있다. S280 동작에서, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 i번째 필드(F1[i])의 아이템(들)을 제 2 필드들(F2)의 j번째 필드(F2[j])로 복사(Copy)할 수 있다. 몇몇 실시 예에서, 사용자 데이터 변환기(130)는 아이템(들)을 저장하기 위해 메모리 영역을 포함할 수 있다. 또는, 사용자 데이터 변환기(130)는 아이템(들)을 저장하기 위해, 전자 장치(100)에 포함되는 다른 메모리 영역을 이용할 수 있다.
예로서, 도 8을 참조하면, 사용자 데이터 변환기(130)는 제 1 데이터베이스 스킴(DS1)의 필드 "a"가 제 2 데이터베이스 스킴(DS2)의 필드 "a"와 동일한 것으로 판별할 수 있다. 따라서, 사용자 데이터 변환기(130)는 제 1 데이터베이스 스킴(DS1)의 필드 "a"의 아이템(들)을 제 2 데이터베이스 스킴(DS2)의 필드 "a"로 복사할 수 있다.
다시 도 7을 참조하면, 복사 동작 이후 S290 동작에서, 사용자 데이터 변환기(130)는 변수 "i"의 값이 m 이상인지 여부를 판별할 수 있다. 즉, 사용자 데이터 변환기(130)는 제 1 필드들(F1)에 포함되는 m개의 필드들 전부에 대하여 복사 동작들(S280)이 완료되었는지 여부를 판별할 수 있다.
S290 동작에서 변수 "i"의 값이 m보다 작은 것으로 판별된 경우(즉, 복사 동작들(S280)이 완료되지 않은 것으로 판별된 경우), S230 동작이 수행될 수 있다. S230 동작에서, 사용자 데이터 변환기(130)는 변수 "i"의 값을 1만큼 증가시킬 수 있다. 즉, 사용자 데이터 변환기(130)는 제 1 필드들(F1) 중에서 필드 "a" 다음의 필드 "b"를 처리할 것을 준비할 수 있다. 이후, S240 동작에서, 변수 "j"의 값을 다시 0으로 초기화할 수 있다.
S250 동작에서, 사용자 데이터 변환기(130)는 변수 "j"의 값을 1만큼 증가시킬 수 있다. S260 동작에서, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 i번째 필드(F1[i])가 제 2 필드들(F2)의 j번째 필드(F2[j])와 동일한지 여부를 판별할 수 있다. 예로서, 도 8을 참조하면, 변수 "i"의 값이 2이고 변수 "j"의 값이 1인 경우, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 두 번째 필드(F1[2])인 필드 "b"가 제 2 필드들(F2)의 첫 번째 필드(F2[1])인 필드 "a"와 동일한지 여부를 판별할 수 있다.
도 7의 S260 동작에서 두 필드들이 서로 다른 것으로 판별된 경우, S270 동작이 수행될 수 있다. S270 동작에서, 사용자 데이터 변환기(130)는 변수 "j"의 값이 n 이상인지 여부를 판별할 수 있다. 즉, 사용자 데이터 변환기(130)는 제 2 필드들(F2)에 포함되는 n개의 필드들 전부에 대하여 비교 동작들(S260)이 완료되었는지 여부를 판별할 수 있다.
S270 동작에서 변수 "j"의 값이 n보다 작은 것으로 판별된 경우(즉, 비교 동작들(S260)이 완료되지 않은 것으로 판별된 경우), S250 동작이 수행될 수 있다. S250 동작에서, 사용자 데이터 변환기(130)는 변수 "j"의 값을 1만큼 증가시킬 수 있다. 즉, 사용자 데이터 변환기(130)는 제 2 필드들(F2) 중에서 필드 "a" 다음의 필드 "c"를 처리할 것을 준비할 수 있다.
S250, S260, 및 S270 동작들이 반복됨에 따라, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 필드 "b"가 제 2 필드들(F2)의 모든 필드들 각각과 동일한지 여부를 판별할 수 있다. 그러나, 도 8을 참조하면, 필드 "b"는 제 2 데이터베이스 스킴(DS2)에 포함되지 않을 수 있다. 따라서, 변수 "i"의 값이 2인 동안 S250, S260, 및 S270 동작들이 n번 반복된 경우(즉, 제 1 필드들(F1)의 필드 "b"가 제 2 필드들(F2)의 n개의 모든 필드들과 비교된 경우), 사용자 데이터 변환기(130)는 S270 동작에서 변수 "j"의 값이 n인 것으로 판별할 수 있다. 이러한 경우, 사용자 데이터 변환기(130)는 S290 동작에서 변수 "i"의 값이 m 이상인지 여부를 판별할 수 있다. 변수 "i"의 값이 m 이상으로 되지 않은 경우, S230 동작이 다시 수행될 수 있다.
도 7의 S260 동작에서 두 필드들이 서로 다른 것으로 판별된 경우, S280 동작이 수행되지 않을 수 있다. 따라서, 제 2 데이터베이스 스킴(DS2)이 제 1 데이터베이스 스킴(DS1)의 특정 필드와 동일한 필드를 포함하지 않는 경우, 제 1 데이터베이스 스킴(DS1)의 그 특정 필드는 제 2 데이터베이스 스킴(DS2)으로 복사되지 않을 수 있다. 예로서, 도 8을 참조하면, 제 2 필드들(F2)이 필드 "b"를 포함하지 않는 경우, 제 1 필드들(F1)의 필드 "b"의 아이템(들)은 제 2 데이터베이스 스킴(DS2)으로 복사되지 않을 수 있다.
이러한 방식에 따라, 제 1 필드들(F1)에 포함되는 m개의 필드들 각각이 제 2 필드들(F2)에 포함되는 n개의 필드들 각각과 비교될 수 있다(S260). 제 1 필드들(F1)의 특정 필드가 제 2 필드들(F2)에 포함되어 있는 경우, 그 특정 필드의 아이템(들)은 제 2 데이터베이스 스킴(DS2)의 대응하는 필드로 복사될 수 있다(S290). 반면, 제 1 필드들(F1)의 특정 필드가 제 2 필드들(F2)에 포함되어 있지 않은 경우, 그 특정 필드의 아이템(들)은 제 2 데이터베이스 스킴(DS2)으로 복사되지 않을 수 있다. 이러한 과정은 제 1 데이터베이스 스킴(DS1)의 모든 필드들이 처리될 때까지(S290) 반복될 수 있다.
예로서, 도 8을 참조하면, 제 1 데이터베이스 스킴(DS1)의 필드 "c", 필드 "d", 및 필드 "m"은 제 2 데이터베이스 스킴(DS2)에 포함될 수 있다. 따라서, 사용자 데이터 변환기(130)는 제 1 데이터베이스 스킴(DS1)의 필드 "c", 필드 "d", 및 필드 "m"의 아이템들을 각각 제 2 데이터베이스 스킴(DS2)의 필드 "c", 필드 "d", 및 필드 "m"으로 복사할 수 있다.
제 1 필드들(F1)의 모든 m개의 필드들이 처리된 경우, 사용자 데이터 변환기(130)에 의해 수행되는 변환 과정이 종료될 수 있다. 이러한 변환 과정에 따르면, 전자 장치(100)(좀 더 구체적으로는, 에뮬레이터(150))에 의해 관리되는 제 2 데이터베이스 스킴(DS2)이 획득될 수 있고, 변환된 사용자 데이터(CUD)는 제 2 데이터베이스 스킴(DS2)에 따른 데이터 구조를 가질 수 있다.
요약하면, 본 발명의 실시 예에서, 사용자 데이터 변환기(130)는 제 1 필드들(F1)에 기초하여 구성되는 사용자 데이터(UD)를 변환하여, 제 2 필드들(F2)에 기초하여 구성되는 변환된 사용자 데이터(CUD)를 생성할 수 있다. 몇몇 경우, 사용자 데이터(UD)의 수정을 방지하기 위해 보안 속성이 할당될 수 있다. 이러한 경우, 변환 과정에서, 보안 속성의 변경이 필요할 수 있다.
예로서, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 m개의 필드들 중에서 제 2 필드들(F2)의 n개의 필드들 중 하나와 동일한 필드에 대응하는 아이템이 변환된 사용자 데이터(CUD)에 포함되도록, 변환된 사용자 데이터(CUD)를 생성할 수 있다. 즉, 변환된 사용자 데이터(CUD)는 제 1 필드들(F1)의 m개의 필드들 중에서 제 2 필드들(F2)의 n개의 필드들 중 하나와 동일한 필드에 대응하는 아이템을 포함하도록 생성될 수 있다.
나아가, 사용자 데이터 변환기(130)는 제 1 필드들(F1)의 m개의 필드들 중에서 제 2 필드들(F2)의 n개의 필드들 모두와 동일하지 않은 필드에 대응하는 아이템이 변환된 사용자 데이터(CUD)에 포함되지 않도록, 변환된 사용자 데이터(CUD)를 생성할 수 있다. 즉, 변환된 사용자 데이터(CUD)는 제 1 필드들(F1)의 m개의 필드들 중에서 제 2 필드들(F2)의 n개의 필드들 모두와 동일하지 않은 필드에 대응하는 아이템을 포함하지 않도록 생성될 수 있다.
도 7 및 도 8을 참조하여 설명된 예는 더 나은 이해를 돕기 위해 제공된 것이고, 본 발명을 한정하기 위한 것은 아니다. 변수 설정, 필드 구성, 동작 순서 등과 같은 처리 조건들은 데이터베이스 스킴의 설계, 사용자 데이터 변환기(130)의 설계, 및/또는 전자 장치(100)의 설계에 따라 다양하게 변경 또는 수정될 수 있다. 몇몇 실시 예에서, 사용자 데이터 변환기(130)에 의해 수행되는 변환 과정은 변환된 사용자 데이터(CUD)를 생성하는 데에 적합하도록 다양하게 수정될 수 있다.
본 발명의 실시 예에 따르면, 변환된 사용자 데이터(CUD)는 전자 장치(100)에서 관리되는 제 2 데이터베이스 스킴(DS2)에 따른 데이터 구조를 가질 수 있다. 따라서, 변환된 사용자 데이터(CUD)는 전자 장치(100)에서 적절히 이용될 수 있다. 나아가, 변환된 사용자 데이터(CUD)는 제 1 데이터베이스 스킴(DS1)의 구성에 관계없이 제 2 데이터베이스 스킴(DS2)에 따라 구성될 수 있기 때문에, 대상 장치(10)의 기종에 대한 종속성이 해소될 수 있다. 결과적으로, 포렌식 분석이 적은 비용으로 쉽게 수행될 수 있다.
도 9는 도 2의 사용자 데이터 변환기에 의해, 변환된 사용자 데이터를 생성하는 과정을 보여주는 개념도이다.
사용자 데이터(UD)는 대상 어플리케이션이 도 2의 대상 장치(10)에서 실행되었을 때 생성된 데이터를 포함할 수 있다. 위에서 설명된 것과 같이, 사용자 데이터(UD)는 대상 장치(10)에서 관리되는 데이터베이스 스킴(예컨대, 도 8의 제 1 데이터베이스 스킴(DS1))에 따른 데이터 구조를 가질 수 있다. 예로서, 사용자 데이터(UD)를 위한 데이터베이스 스킴은 m개의 필드들(예컨대, 필드 "a", 필드 "b", 필드 "c", 필드 "d", 필드 "m" 등)로 구성될 수 있다.
사용자 데이터 변환기(130)는 사용자 데이터(UD)를 수신할 수 있다. 사용자 데이터 변환기(130)는 사용자 데이터(UD)의 데이터 구조를 변환하여, 변환된 사용자 데이터(CUD)를 생성할 수 있다. 위에서 설명된 것과 같이, 변환된 사용자 데이터(CUD)는 도 2의 전자 장치(100)에서 관리되는 데이터베이스 스킴(예컨대, 도 8의 제 2 데이터베이스 스킴(DS2))에 따른 데이터 구조를 가질 수 있다. 예로서, 변환된 사용자 데이터(CUD)를 위한 데이터베이스 스킴은 n개의 필드들(예컨대, 필드 "a', 필드 "c", 필드 "d", 필드 "m", 필드 "n" 등)로 구성될 수 있다.
사용자 데이터 변환기(130)는 변환된 사용자 데이터(CUD)를 출력할 수 있다. 변환된 사용자 데이터(CUD)는 도 2의 에뮬레이터(150)로 제공될 수 있다. 따라서, 에뮬레이터(150)는 에뮬레이터(150)에 의해 처리될 수 있는 데이터 구조를 갖는 변환된 사용자 데이터(CUD)에 기초하여 동작할 수 있다.
도 10은 도 2의 에뮬레이터의 구성 및 동작을 보여주는 개념도이다. 더 나은 이해를 돕기 위해, 도 2가 도 10과 함께 참조될 것이다.
에뮬레이터(150)는 대상 장치(10)의 동작을 모방(즉, 에뮬레이션)할 수 있다. 에뮬레이터(150)는 대상 장치(10)의 동작 환경과 동일 또는 유사한 동작 환경을 제공할 수 있다.
위에서 설명된 것과 같이, 어플리케이션 데이터(AP)가 데이터 추출기(110)를 통해 대상 장치(10)로부터 획득될 수 있다. 대상 장치(10)에 설치된 어플리케이션들 중에서 선택된 대상 어플리케이션이 어플리케이션 데이터(AP)에 기초하여 전자 장치(100)에 설치될 수 있다. 에뮬레이터(150)는 대상 어플리케이션의 실행을 에뮬레이션할 수 있다.
에뮬레이터(150)는 변환된 사용자 데이터(CUD)를 사용자 데이터 변환기(130)로부터 수신할 수 있다. 에뮬레이터(150)는 대상 어플리케이션이 변환된 사용자 데이터(CUD)를 이용하여 동작하도록 대상 어플리케이션의 실행을 에뮬레이션할 수 있다. 대상 어플리케이션의 실행은 대상 장치(10)에서 실행되는 것과 동일 또는 유사하게 에뮬레이터(150)에서 에뮬레이션될 수 있다.
몇몇 실시 예에서, 에뮬레이터(150)는 기본 데이터(BD)를 포함하도록 구현될 수 있다. 기본 데이터(BD)는 대상 장치(10)의 종류에 관계없이 이용되는 데이터를 포함할 수 있다. 예로서, 기본 데이터(BD)는 널리 이용되는 운영체제의 데이터, 기본적으로 제공되는 어플리케이션의 데이터 등을 포함할 수 있다. 기본 데이터(BD)는, 대상 장치(10)로부터 수신하는 대신, 에뮬레이터(150)에 미리 포함될 수 있다.
다만, 몇몇 실시 예에서, 에뮬레이터(150)는 기본 데이터(BD)에 대응하는 데이터를 대상 장치(10)로부터 수신하도록 설계될 수 있다. 이러한 실시 예에서, 데이터 추출기(110)는 대상 장치(10)로부터 기본 데이터(BD)에 대응하는 데이터를 더 획득할 수 있다. 기본 데이터(BD)에 대응하는 데이터는 어플리케이션 데이터(AP) 및/또는 사용자 데이터(UD)에 포함되거나, 어플리케이션 데이터(AP) 및 사용자 데이터(UD)와 별개로 획득될 수 있다.
몇몇 실시 예에서, 에뮬레이터(150)는 에뮬레이션의 결과를 출력할 수 있다. 예로서, 에뮬레이터(150)는 변환된 사용자 데이터(CUD)에 기초하여 대상 어플리케이션의 실행을 에뮬레이션함으로써, 대상 장치(10)의 동작을 재연할 수 있다. 예로서, 포렌식 시스템(1000)은 출력 장치를 더 포함할 수 있다. 출력 장치는 전자 장치(100)에 포함되거나 전자 장치(100)와 별개로 제공될 수 있다. 에뮬레이터(150)는 전자 장치(100)에 연결되는 출력 장치를 통해 에뮬레이션의 결과를 출력할 수 있다.
예로서, 출력 장치는 표시 장치(300)를 포함할 수 있다. 표시 장치(300)는 전자 장치(100)의 사용자에게 영상 정보를 제공할 수 있다. 에뮬레이터(150)가 대상 장치(10)에서 실행되는 대상 어플리케이션의 동작을 변환된 사용자 데이터(CUD)에 기초하여 재연하는 경우, 표시 장치(300)는 재연된 동작(AP1)을 보여줄 수 있다.
예로서, 대상 어플리케이션이 메신저 어플리케이션을 포함하고 변환된 사용자 데이터(CUD)가 메시지 데이터를 포함하는 경우, 재연된 동작(AP1)은 메시지들의 송신/수신, 메시지들의 내용들, 메시지들의 순서, 메시지에 첨부된 자료 등과 같은 전반적인 맥락을 보여줄 수 있다. 즉, 전자 장치(100)의 사용자는 에뮬레이션의 결과에 기초하여, 대상 장치(10)에서 대상 어플리케이션이 실행된 것과 같은 동작들을 관찰할 수 있다. 이러한 방식으로, 사용자 데이터(UD)가 생성되었던 원래의 상황이 재연될 수 있고, 따라서 포렌식 분석이 정확하고 빠르게 수행될 수 있다.
위 예에서, 표시 장치(300)가 설명되었다. 그러나, 에뮬레이션의 결과는 소리 정보, 문자 정보 등 다른 다양한 형태로 제공될 수 있다. 위 예는 더 나은 이해를 돕기 위해 제공된 것이고, 본 발명을 한정하기 위한 것은 아니다.
도 11은 도 2의 에뮬레이터에 의해 관심 이벤트(Interested Event)에 관한 데이터를 수집하는 과정을 보여주는 개념도이다.
에뮬레이터(150)는 대상 어플리케이션의 실행이 에뮬레이션되는 동안 "관심 이벤트"가 발생하는지 여부를 모니터링할 수 있다. 나아가, 에뮬레이터(150)는 관심 이벤트에 관한 데이터를 수집할 수 있다.
여기서, 관심 이벤트는 도 2의 전자 장치(100)의 사용자(예컨대, 수사 기관)에 의해 주목되는 이벤트를 포함할 수 있다. 예로서, 수사 기관은 범죄와 관련되는 통화 목록, 메시지, 이메일, 사진, 및/또는 음성에 관심을 가질 수 있고, 관심 이벤트는 특정 통화 목록, 특정 단어 또는 맥락, 특정 영상, 및/또는 특정 음성을 포함할 수 있다.
예로서, 대상 어플리케이션이 메신저 어플리케이션을 포함하고 변환된 사용자 데이터(CUD)가 메시지 데이터를 포함하는 경우, 재연된 동작(AP1)은 메시지들의 송신/수신 및 메시지들의 내용들을 보여줄 수 있다. 여기서, 수사 기관은 범죄와 관련되는 메시지에 관심을 가질 수 있다. 이러한 경우, 관심 이벤트는 대상 어플리케이션의 실행이 에뮬레이션되는 동안 변환된 사용자 데이터(CUD)로부터 로딩(Loading)되는 특정 단어 또는 맥락을 포함할 수 있다.
예로서, 수사 기관은 포렌식 분석을 수행하기 위해 "범죄"라는 단어에 관심을 가질 수 있다. 이 예에서, 수사 기관은 재연된 동작(AP1)을 통해 "범죄"라는 단어의 출현을 직접 확인할 수 있다.
몇몇 실시 예에서, 에뮬레이터(150)는 "범죄"라는 관심 단어에 관한 데이터를 자동으로 수집할 수 있다. 에뮬레이터(150)는 대상 어플리케이션의 실행이 에뮬레이션되는 동안 "범죄"라는 관심 단어가 변환된 사용자 데이터(CUD)로부터 로딩되는 이벤트를 추적할 수 있다. 예로서, 에뮬레이터(150)는 "범죄"라는 관심 단어가 발생한 횟수를 카운트할 수 있다. 예로서, 에뮬레이터(150)는 "범죄"라는 관심 단어를 포함하는 컨텍스트(Context) 또는 단락(Paragraph)을 텍스트 파일 또는 영상 파일로 캡쳐(Capture)할 수 있다.
에뮬레이터(150)는 수집된 데이터에 기초하여 관심 이벤트 리포트(Report)를 출력할 수 있다. 예로서, 관심 이벤트 리포트는 관심 단어가 발생한 횟수, 관심 단어를 포함하는 컨텍스트 또는 단락 등과 같은 관심 이벤트에 관한 데이터를 포함할 수 있다. 수사 기관은 관심 이벤트 리포트에 기초하여 포렌식 분석을 쉽게 수행할 수 있다.
위 예에서, 관심 이벤트가 관심 단어를 포함하는 것으로 설명되었다. 그러나, 포렌식 분석의 목적, 대상, 및/또는 범위에 따라, 관심 이벤트는 관심 통화 목록, 관심 영상, 관심 음성 등 다른 다양한 이벤트를 포함할 수 있다. 관심 이벤트 리포트는 통화 목록, 영상, 음성 등을 분석함으로써 획득된 다양한 정보를 포함할 수 있다. 위 예는 더 나은 이해를 돕기 위해 제공된 것이고, 본 발명을 한정하기 위한 것은 아니다.
도 12는 본 발명의 실시 예에 따른 전자 장치를 포함하는 포렌식 시스템을 보여주는 블록도이다. 포렌식 시스템(2000)은 대상 장치(10) 및 전자 장치(200)를 포함할 수 있다.
대상 장치(10)는 메모리 장치(12)를 포함할 수 있다. 대상 장치(10)는 포렌식 분석의 대상일 수 있다. 대상 장치(10) 및 메모리 장치(12)는 도 1을 참조하여 설명되었으므로, 설명의 편의를 위해, 중복되는 설명들은 이하 생략될 것이다.
전자 장치(200)는 대상 장치(10)에 관한 포렌식 분석을 수행하도록 구성될 수 있다. 전자 장치(200)는 대상 장치(10)로부터 범죄와 관련되는 증거를 수집하기 위해 이용될 수 있다.
도 2를 참조하여 설명된 것과 같이, 몇몇 실시 예에서, 전자 장치(200)의 구성 요소들의 일부 또는 전부는 고유의 기능(들)을 수행하기 위해 소프트웨어 형태(예컨대, 프로그램 코드)로 설계될 수 있다. 이러한 실시 예에서, 전자 장치(200)는 하나 이상의 프로세서들(210)을 포함할 수 있다. 전자 장치(200)는 하나의 프로세서를 포함하거나(즉, 싱글 코어 시스템), 복수의 프로세서를 포함할 수 있다(즉, 멀티 코어 시스템).
프로세서들(210) 각각은 컴퓨팅 능력을 가질 수 있다. 예로서, 프로세서들(210) 각각은 범용 프로세서, 전용 프로세서, 및/또는 어플리케이션 프로세서(Application Processor)를 포함할 수 있다.
프로세서들(210)은 포렌식 분석을 수행하기 위해 다양한 논리 연산/산술 연산을 수행하고 데이터를 처리할 수 있다. 예로서, 프로세서들(210)의 제어 하에서, 전자 장치(200)는 그것에 포함되는 수신 회로를 통해 메모리 장치(12)로부터 어플리케이션 데이터(AP) 및/또는 사용자 데이터(UD)를 수신할 수 있다. 프로세서들(210)에 의해, 전자 장치(200)의 사용자의 요청에 응답하여 대상 어플리케이션이 선택될 수 있다. 나아가, 프로세서들(210)에 의해, 선택된 대상 어플리케이션이 소스 파일에 기초하여 전자 장치(200)에 설치될 수 있다.
프로세서들(210)은 대상 장치(10)에서 관리되는 데이터베이스 스킴을 구성하는 필드들의 목록, 및 전자 장치(200)에서 관리되는 데이터베이스 스킴(즉, 프로세서들(210)에 의해 처리되는 데이터베이스 스킴)을 구성하는 필드들의 목록을 획득할 수 있다. 프로세서들(210)은 대상 장치(10)를 위한 데이터베이스 스킴에 따른 데이터 구조를 갖는 사용자 데이터(UD)를 변환하여, 프로세서들(210)을 위한 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터(CUD)를 생성할 수 있다.
이후, 프로세서들(210)에 의해, 대상 어플리케이션의 실행이 에뮬레이션될 수 있다. 대상 어플리케이션은 소스 파일에 기초하여 설치된 파일들을 이용하여 실행될 수 있다. 프로세서들(210)은 설치된 파일들에 기초하여 실행되는 명령어 집합들을 처리하기 위해, 다양한 산술 연산/논리 연산을 수행할 수 있다.
프로세서들(210)에 의해, 대상 어플리케이션의 실행은 대상 어플리케이션이 변환된 사용자 데이터(CUD)를 이용하여 동작하도록 에뮬레이션될 수 있다. 프로세서들(210)은 대상 장치(10)의 동작 환경과 동일 또는 유사한 동작 환경을 제공할 수 있다. 프로세서들(210)은 대상 장치(10)의 동작을 재연할 수 있다.
프로세서들(210)의 제어 하에서, 전자 장치(200)는 도 2의 전자 장치(100)와 실질적으로 동일하거나 유사하게 동작할 수 있다. 프로세서들(210)은 도 2 내지 도 11을 참조하여 설명된 데이터 추출기(110), 사용자 데이터 변환기(130), 및 에뮬레이터(150)의 기능들 및 동작들과 실질적으로 동일하거나 유사한 기능들 및 동작들을 제공할 수 있다. 설명의 편의를 위해, 프로세서들(210)의 기능들 및 동작들에 관한 상세한 설명들은 이하 생략될 것이다.
메모리 블록(230)은 전자 장치(200)에서 이용되는 데이터를 저장할 수 있다. 이를 위해, 메모리 블록(230)은 하나 이상의 메모리 장치들을 포함할 수 있다.
예로서, 메모리 블록(230)은 데이터를 저장하기 위해 하나 이상의 불휘발성 메모리들 및/또는 하나 이상의 휘발성 메모리들을 포함할 수 있다. 예로서, 메모리 블록(230)은 플래시 메모리, MRAM, PRAM 등과 같은 불휘발성 메모리를 포함할 수 있다. 예로서, 메모리 블록(230)은 SRAM, DRAM, SDRAM 등과 같은 휘발성 메모리를 포함할 수 있다.
예로서, 메모리 블록(230)은 프로세서들(210)에 의해 처리된 또는 처리될 데이터를 저장할 수 있다. 메모리 블록(230)은 프로세서들(210)의 연산에 이용되는 데이터를 저장하기 위한 캐시(Cache) 메모리 또는 버퍼(Buffer) 메모리로서 동작할 수 있다.
예로서, 메모리 블록(230)은 대상 어플리케이션을 실행하기 위해 이용되는 파일들을 저장할 수 있다. 프로세서들(210)은 메모리 블록(230)에 저장된 파일들을 이용하여 대상 어플리케이션의 실행을 에뮬레이션할 수 있다. 메모리 블록(230)은 사용자 데이터(UD) 및/또는 변환된 사용자 데이터(CUD)를 저장할 수 있다. 특히, 메모리 블록(230)은 프로세서들(210)에 의해 처리되는 데이터베이스 스킴에 따른 데이터 구조에 기초하여 변환된 사용자 데이터(CUD)를 저장할 수 있다. 프로세서들(210)은 메모리 블록(230)에 저장된 변환된 사용자 데이터(CUD)를 이용하여 대상 어플리케이션의 실행을 에뮬레이션할 수 있다.
몇몇 실시 예에서, 메모리 블록(230)은 에뮬레이션의 결과를 포함하는 데이터를 저장할 수 있다. 예로서, 메모리 블록(230)은 도 11을 참조하여 설명된 관심 이벤트 리포트의 데이터를 저장할 수 있다.
다만, 위에서 설명된 예들 및 실시 예들은 더 나은 이해를 돕기 위해 제공된 것이고, 본 발명을 한정하기 위한 것은 아니다. 본 발명의 실시 예는 대상 장치(10)로부터 획득된 사용자 데이터(UD)를 변환하고 변환된 사용자 데이터(CUD)를 이용하여 대상 장치(10)의 동작을 재연하기 위해 다양하게 변경 또는 수정될 수 있다.
각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.
각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
10 : 대상 장치 12 : 메모리 장치
100 : 전자 장치 105, 117 : 스토리지 장치
110 : 데이터 추출기 112 : 유저 인터페이스
130 : 사용자 데이터 변환기 150 : 에뮬레이터
200 : 전자 장치 210 : 프로세서(들)
230 : 메모리 장치(들) 300 : 표시 장치
1000, 2000 : 포렌식 시스템

Claims (15)

  1. 대상 장치에 관한 포렌식 분석을 수행하도록 구성되는 전자 장치에 있어서,
    상기 대상 장치에 설치된 어플리케이션들 중 적어도 하나의 소스 파일, 및 상기 대상 장치에서의 상기 어플리케이션들 중 적어도 하나의 실행에 따라 생성된 사용자 데이터를 상기 대상 장치로부터 획득하도록 구성되는 데이터 추출기;
    상기 획득된 소스 파일에 기초하여 설치되는 대상 어플리케이션의 실행을 에뮬레이션하도록 구성되는 에뮬레이터; 및
    상기 대상 장치의 데이터베이스 스킴에 따른 데이터 구조를 갖는 상기 획득된 사용자 데이터를 변환하여, 상기 에뮬레이터의 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터를 생성하도록 구성되는 사용자 데이터 변환기를 포함하되,
    상기 에뮬레이터는 상기 대상 어플리케이션이 상기 변환된 사용자 데이터를 이용하여 동작하도록, 상기 대상 어플리케이션의 상기 실행을 에뮬레이션하도록 구성되는 전자 장치.
  2. 제 1 항에 있어서,
    상기 사용자 데이터 변환기는 상기 대상 장치의 상기 데이터베이스 스킴을 구성하는 제 1 필드들의 목록, 및 상기 에뮬레이터의 상기 데이터베이스 스킴을 구성하는 제 2 필드들의 목록을 획득하도록 구성되는 전자 장치.
  3. 제 2 항에 있어서,
    상기 사용자 데이터 변환기는 상기 제 1 필드들 중에서 상기 제 2 필드들 중 하나와 동일한 필드에 대응하는 아이템이 상기 변환된 사용자 데이터에 포함되도록, 상기 변환된 사용자 데이터를 생성하도록 구성되는 전자 장치.
  4. 제 2 항에 있어서,
    상기 사용자 데이터 변환기는 상기 제 1 필드들 중에서 상기 제 2 필드들 모두와 동일하지 않은 필드에 대응하는 아이템이 상기 변환된 사용자 데이터에 포함되지 않도록, 상기 변환된 사용자 데이터를 생성하도록 구성되는 전자 장치.
  5. 제 1 항에 있어서,
    상기 에뮬레이터는 상기 대상 장치의 종류에 관계없이 이용되는 기본 데이터를 미리 포함하도록 구현되는 전자 장치.
  6. 제 1 항에 있어서,
    상기 데이터 추출기는 상기 어플리케이션들로부터 상기 대상 어플리케이션을 선택하기 위해 제공되는 유저 인터페이스를 포함하는 전자 장치.
  7. 제 1 항에 있어서,
    상기 대상 장치는 모바일 통신 장치를 포함하는 전자 장치.
  8. 대상 장치에 관한 포렌식 분석을 수행하도록 구성되는 전자 장치에 있어서,
    하나 이상의 프로세서들; 및
    상기 프로세서들에 의해 처리된 또는 처리될 데이터를 저장하도록 구성되는 하나 이상의 메모리 장치들을 포함하되,
    상기 프로세서들은:
    사용자의 요청에 응답하여, 상기 대상 장치에 설치된 어플리케이션들로부터 적어도 하나의 어플리케이션을 선택하고;
    상기 선택된 어플리케이션을 실행하기 위해 이용되는 파일들을 상기 메모리 장치들에 설치하고;
    상기 선택된 어플리케이션이 상기 대상 장치에서 실행되었을 때 생성된 사용자 데이터를 상기 대상 장치로부터 획득하고;
    상기 대상 장치의 데이터베이스 스킴에 따른 데이터 구조를 갖는 상기 획득된 사용자 데이터를 변환하여, 상기 프로세서들에 의해 처리되는 데이터베이스 스킴에 따른 데이터 구조를 갖는 변환된 사용자 데이터를 생성하고;
    상기 선택된 어플리케이션이 상기 설치된 파일들 및 상기 변환된 사용자 데이터를 이용하여 동작하도록, 상기 선택된 어플리케이션의 실행을 에뮬레이션하도록 구성되는 전자 장치.
  9. 제 8 항에 있어서,
    상기 설치된 파일들은 상기 전자 장치 내부에 포함되는 제 1 스토리지 장치 및 상기 전자 장치와 별개로 제공되는 제 2 스토리지 장치 중 적어도 하나로부터 획득되는 전자 장치.
  10. 제 8 항에 있어서,
    상기 프로세서들은 상기 선택된 어플리케이션의 상기 실행이 에뮬레이션되는 동안 발생하는 관심 이벤트에 관한 데이터를 수집하도록 더 구성되는 전자 장치.
  11. 제 10 항에 있어서,
    상기 관심 이벤트는 상기 선택된 어플리케이션의 상기 실행이 에뮬레이션되는 동안 상기 변환된 사용자 데이터로부터 로딩되는 관심 단어를 포함하고,
    상기 프로세서들은 상기 관심 단어가 발생한 횟수 및 상기 관심 단어를 포함하는 컨텍스트 중 적어도 하나에 관한 데이터를 수집하도록 더 구성되는 전자 장치.
  12. 하나 이상의 프로세서들을 포함하는 전자 장치를 이용하여 대상 장치에 관한 포렌식 분석을 수행하기 위한 방법에 있어서,
    상기 프로세서들에 의해, 상기 대상 장치에 설치된 어플리케이션들 중 적어도 하나의 소스 파일에 기초하여 대상 어플리케이션을 상기 전자 장치에 설치하는 단계;
    상기 전자 장치의 수신 회로를 통해, 상기 대상 어플리케이션이 상기 대상 장치에서 실행되었을 때 생성된 사용자 데이터를 상기 대상 장치로부터 수신하는 단계;
    상기 프로세서들에 의해, 상기 대상 장치의 데이터베이스 스킴을 구성하는 제 1 필드들의 목록, 및 상기 프로세서들에 의해 처리되는 데이터베이스 스킴을 구성하는 제 2 필드들의 목록을 획득하는 단계;
    상기 프로세서들에 의해, 상기 제 1 필드들에 기초하여 구성된 상기 수신된 사용자 데이터를 변환하여, 상기 제 2 필드들에 기초하여 구성되는 변환된 사용자 데이터를 생성하는 단계;
    상기 프로세서들에 의해, 상기 대상 어플리케이션이 상기 변환된 사용자 데이터를 이용하여 동작하도록, 상기 대상 어플리케이션의 실행을 에뮬레이션하는 단계; 및
    상기 전자 장치에 연결되는 출력 장치를 통해, 상기 에뮬레이션의 결과를 출력하는 단계를 포함하는 방법.
  13. 제 12 항에 있어서,
    상기 에뮬레이션의 상기 결과를 출력하는 단계는, 상기 변환된 사용자 데이터에 기초하여 상기 대상 어플리케이션의 상기 실행을 에뮬레이션함으로써 상기 대상 장치의 동작을 재연하는 단계를 포함하는 방법.
  14. 제 12 항에 있어서,
    상기 변환된 사용자 데이터는 상기 제 1 필드들 중에서 상기 제 2 필드들 중 하나와 동일한 필드에 대응하는 아이템을 포함하도록 생성되는 방법.
  15. 제 12 항에 있어서,
    상기 변환된 사용자 데이터는 상기 제 1 필드들 중에서 상기 제 2 필드들 모두와 동일하지 않은 필드에 대응하는 아이템을 포함하지 않도록 생성되는 방법.
KR1020160006079A 2016-01-18 2016-01-18 에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법 KR102372732B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160006079A KR102372732B1 (ko) 2016-01-18 2016-01-18 에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법
US15/408,210 US10002009B2 (en) 2016-01-18 2017-01-17 Electronic device performing emulation-based forensic analysis and method of performing forensic analysis using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160006079A KR102372732B1 (ko) 2016-01-18 2016-01-18 에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법

Publications (2)

Publication Number Publication Date
KR20170086760A true KR20170086760A (ko) 2017-07-27
KR102372732B1 KR102372732B1 (ko) 2022-03-14

Family

ID=59313800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160006079A KR102372732B1 (ko) 2016-01-18 2016-01-18 에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법

Country Status (2)

Country Link
US (1) US10002009B2 (ko)
KR (1) KR102372732B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10546133B2 (en) * 2017-06-12 2020-01-28 The Travelers Indemnity Company Digital forensics system
US20240020039A1 (en) * 2022-07-13 2024-01-18 Electronics And Telecommunications Research Institute Evidence collection guidance method and apparatus for file selection and computer-readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030078916A1 (en) * 2001-10-22 2003-04-24 Deforeest Chris Method and apparatus for allowing host application data to be accessed via standard database access techniques
KR20150089698A (ko) * 2014-01-28 2015-08-05 한국전자통신연구원 가상화 인터페이스를 이용한 포렌식 분석 시스템 및 방법
US9185236B2 (en) * 2013-03-27 2015-11-10 Electronics And Telecommunications Research Institute Method and apparatus for visualizing record data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001067379A2 (en) * 2000-03-09 2001-09-13 Exent Technologies, Inc. Registry emulation
US7908020B2 (en) * 2004-12-24 2011-03-15 Donald Pieronek Architecture for control systems
US8284682B2 (en) * 2008-02-19 2012-10-09 Qualcomm, Incorporated Facilitating transfer of push and pull messages for remotely testing mobile devices
US8503991B2 (en) * 2008-04-03 2013-08-06 The Nielsen Company (Us), Llc Methods and apparatus to monitor mobile devices
KR20110129573A (ko) 2010-05-26 2011-12-02 배세훈 모바일 디바이스에서 포렌식 정보를 자동으로 추출하는 시스템 및 방법
KR20120073841A (ko) * 2010-12-27 2012-07-05 한국전자통신연구원 포렌식 데이터의 데이터테이블 생성 장치 및 방법
KR101541104B1 (ko) 2013-12-12 2015-08-06 남기훈 애니메이션을 이용한 모바일 포렌식 시각화 방법
KR102181630B1 (ko) 2013-12-17 2020-11-23 에스케이플래닛 주식회사 앱 에뮬레이션 장치 및 방법
US9917923B2 (en) * 2014-09-26 2018-03-13 Oracle International Corporation Building message relationships for offline operation of an enterprise application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030078916A1 (en) * 2001-10-22 2003-04-24 Deforeest Chris Method and apparatus for allowing host application data to be accessed via standard database access techniques
US9185236B2 (en) * 2013-03-27 2015-11-10 Electronics And Telecommunications Research Institute Method and apparatus for visualizing record data
KR20150089698A (ko) * 2014-01-28 2015-08-05 한국전자통신연구원 가상화 인터페이스를 이용한 포렌식 분석 시스템 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Choi Woo-yong et al.. Smartphone forensic technology trends. In 2013 *
Kim Ik-soo et al.. Implementation of Android smartphone forensic tool based on logical analysis. April 2011 *

Also Published As

Publication number Publication date
KR102372732B1 (ko) 2022-03-14
US20170206102A1 (en) 2017-07-20
US10002009B2 (en) 2018-06-19

Similar Documents

Publication Publication Date Title
Rawassizadeh et al. UbiqLog: a generic mobile phone-based life-log framework
CN107436844B (zh) 一种接口用例合集的生成方法及装置
CN104246767A (zh) 用于云同步***的遥测***
CN112988284B (zh) 应用程序启动方法、装置、计算机设备和存储介质
Tso et al. iPhone social networking for evidence investigations using iTunes forensics
CN111367873A (zh) 日志数据的存储方法、装置、终端及计算机存储介质
US20190340052A1 (en) System for monitoring a plurality of distributed devices
Azhar et al. Forensic analysis of secure ephemeral messaging applications on android platforms
CN111611622A (zh) 基于区块链的文件存储方法和电子设备
CN107368407B (zh) 信息处理方法和装置
KR102372732B1 (ko) 에뮬레이션 기반의 포렌식 분석을 수행하는 전자 장치 및 그것을 이용하여 포렌식 분석을 수행하는 방법
CN114566173A (zh) 一种音频混音方法、装置、设备及存储介质
Silla WeChat forensic artifacts: Android phone extraction and analysis
CN109726181B (zh) 一种数据处理方法及数据处理装置
CN110262856B (zh) 一种应用程序数据采集方法、装置、终端及存储介质
CN114070892A (zh) 数据传输方法和装置
CN108848398B (zh) 一种本地弹幕消息的分发方法、装置、终端和存储介质
KR20110070767A (ko) 네트워크 기반 원격 포렌식 시스템
CN113127369A (zh) 一种执行脚本的处理方法以及装置
Kausar New research directions in the area of smart phone forensic analysis
Quick Forensic Analysis of Cloud Storage Client Data
CN114690988B (zh) 测试方法、装置和电子设备
CN112306337B (zh) 一种会议同屏***、方法、装置、计算机设备及存储介质
Quick Cloud storage forensic analysis
Raji Digital forensic tools & cloud-based machine learning for analyzing crime data

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right