KR101724412B1 - 확장 코드를 이용한 어플리케이션 분석 장치 및 방법 - Google Patents

확장 코드를 이용한 어플리케이션 분석 장치 및 방법 Download PDF

Info

Publication number
KR101724412B1
KR101724412B1 KR1020150134413A KR20150134413A KR101724412B1 KR 101724412 B1 KR101724412 B1 KR 101724412B1 KR 1020150134413 A KR1020150134413 A KR 1020150134413A KR 20150134413 A KR20150134413 A KR 20150134413A KR 101724412 B1 KR101724412 B1 KR 101724412B1
Authority
KR
South Korea
Prior art keywords
code
application
extension
analysis
memory
Prior art date
Application number
KR1020150134413A
Other languages
English (en)
Other versions
KR20170035507A (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 KR1020150134413A priority Critical patent/KR101724412B1/ko
Publication of KR20170035507A publication Critical patent/KR20170035507A/ko
Application granted granted Critical
Publication of KR101724412B1 publication Critical patent/KR101724412B1/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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

확장 코드를 이용한 어플리케이션 분석 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치는 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하고, 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 코드 삽입부; 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하고, 분석 결과를 처리하는 처리부; 및 상기 어플리케이션에 대한 분석 작업을 제어하는 제어부를 포함한다.

Description

확장 코드를 이용한 어플리케이션 분석 장치 및 방법{APPARATUS FOR ANALYSIS APPLICATION USING EXPANSION CODE AND METHOD USNIG THE SAME}
본 발명은 어플리케이션과 악성 코드를 분석하는 기술에 관한 것으로, 특히 동적으로 코드를 삽입하여, 분석 환경을 확장하여 제어 권한을 확장하여, 어플리케이션을 분석하는 기술에 관한 것이다.
프로그램을 명령어 단위로 추적 분석하여 오류를 수정하거나 동작 방식을 분석하는데 사용되는 동적 분석 도구를 디버거라 지칭한다. 디버거는 분석 대상 프로그램이나 대상 프로그램이 동작하는 환경에 따라 그 동작 방식과 제공되는 기능이 상이하다.
기존 안드로이드 디버거의 경우 분석 대상 앱에 대한 제어 권한이 제한된 환경에서 동작하여 안드로이드 플랫폼이 제공하는 디버깅 기능 외에는 사용하지 못한다. 일반적인 앱을 분석시에는 플랫폼이 제공하는 디버깅 기능만을 통해 분석이 가능하지만 분석 방지 기술이 적용된 악성코드를 분석시에는 플랫폼이 제공하는 디버깅 기능만으로 분석이 불가능하다. 따라서 분석자가 악성코드 분석시 대응을 하지 못해 분석에 오류가 발생한다.
한국 공개 특허 제 2013-003103호는 안드로이드 앱의 행위 정보 동적 분석 에뮬레이터 등에 관한 기술에 관하여 개시하고 있다. 특히, 안드로이드 앱을 전용 에뮬레이터에서 실행하고, 행위 정보를 모니터링하여, 행위 정보를 기반으로 데이터를 수집 및 분석하여 안드로이드 앱에 악의적인 코드의 내재 여부를 분석하는 기술에 대해서 개시하고 있다.
하지만, 한국 공개 특허 제 2013-0031035호는 분석 대상 파일을 플랫폼이수정된 에뮬레이터에서 실행하고 있어, 여전히 플랫폼을 수정하여야만, 본 기술을 수행할 수 있다는 단점이 있다.
본 발명의 목적은 루트 권한 획득 및 플랫폼 수정없이 어플리케이션을 분석하는 것이다.
또한, 본 발명의 목적은 어플리케이션이 획득한 권한만을 이용하여 어플리케이션 및 악성 코드를 분석하는 것이다.
본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치는 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하고, 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 코드 삽입부; 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하고, 분석 결과를 처리하는 처리부; 및 상기 어플리케이션에 대한 분석 작업을 제어하는 제어부를 포함한다.
이 때, 상기 코드 삽입부는 상기 확장 코드의 실행 권한과 상기 어플리케이션의 실행 권한이 동일한 레벨이 되도록, 상기 확장 코드를 실행시킬 수 있다.
이 때, 상기 처리부는 상기 어플리케이션 상의 실행 코드를 변경할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 메모리 수정 및 사용이 가능하도록 처리할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지할 수 있다.
이 때, 상기 처리부는 접근 권한에 기반하여, 인터럽트를 발생시키는 인터럽트 발생부를 포함할 수 있다.
이 때, 상기 처리부는 악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지할 수 있다.
이 때, 상기 처리부는 메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 권한 중 쓰기 권한을 제거할 수 있다.
이 때, 상기 인터럽트는 상기 악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생될 수 있다.
이 때, 상기 처리부는 상기 어플리케이션이 이용하는 메모리의 부분에 실행 코드가 추가되는 것을 탐지할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션이 이용하는 메모리의 부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출할 수 있다.
또한, 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법은 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하는 단계; 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 단계; 및 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하는 단계를 포함한다.
이 때, 상기 프로세스 상에서 실행시키는 단계는 상기 확장 코드의 실행 권한과 상기 어플리케이션의 실행 권한이 동일한 레벨이 되도록, 상기 확장 코드를 실행할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 상기 코드에 상응하는 메모리의 수정 및 사용이 가능하도록 처리하여, 상기 어플리케이션 상의 실행 코드를 변경할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 쓰기 권한을 제거하는 단계를 포함할 수 있다.
이 때, 상기 인터럽트는 악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생될 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션이 이용하는 메모리 부분에 실행 코드가 추가되는 것을 탐지할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션이 이용하는 메모리의 일부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출할 수 있다.
본 발명은 어플리케이션이 이용하는 프로세스에 확장 코드를 삽입하여, 어플리케이션이 이용하는 메모리만 관리할 수 있어, 좀 더 효과적인 어플리케이션의 분석이 가능하다.
또한, 본 발명은 분석 대상의 어플리케이션의 분석 환경에 임의의 제어 기능을 추가하여, 제한적인 분석 환경의 한계를 극복할 수 있다.
도 1은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치를 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치와 어플리케이션을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법을 도시한 동작 흐름도이다.
도 4는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 확장 코드를 삽입하여 분석 환경을 확장하는 것을 도시한 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 어플리케이션의 코드를 수정하는 것을 도시한 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 악성 코드가 코드 변조를 수행하는 것을 탐지하는 것을 도시한 동작 흐름도이다.
도 7은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 악성 코드가 코드를 로딩하는 것을 탐지하는 것을 도시한 동작 흐름도이다.
도 8은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 역어셈블링(Inverse Assembling)을 수행하는 것을 도시한 동작 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명에서 사용한 용어는 단지 특정 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치를 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치는 코드 삽입부(110), 제어부(120) 및 처리부(130)로 구성된다.
코드 삽입부(110)는 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하고, 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시킨다.
이 때, 확장 코드는 분석 대상 프로세스 제어가 제한된 어플리케이션의 분석 환경을 확장할 수 있는 코드를 의미한다.
이 때, 분석 환경을 확장하는 것은 플랫폼의 수정을 의미하는 것이 아니며, 또한 루트 권한을 획득하는 방식으로 분석 환경을 확장하는 것이 아니다. 예를 들어, 분석 대상이 되는 어플리케이션의 실행 권한과 동일한 권한을 이용하여, 분석 코드를 실행하고 어플리케이션에 대한 분석을 수행한다는 의미이다.
이 때, 코드 삽입부(110)가 동적(Dynamic)으로 확장 코드를 삽입함으로써, 어플리케이션 코드를 분석하는 것이 아니라, 어플리케이션이 이용하는 메모리 부분을 분석할 수 있게 된다.
이 때, 코드 삽입부(110)는 확장 코드를 어플리케이션의 권한을 이용하여 어플리케이션과 동일한 프로세스에 로딩할 수 있어, 분석 대상이 되는 어플리케이션이 관리하는 자원(메모리 등)에 접근 및 변경이 가능하게 된다.
제어부(120)는 확장 코드에 상응하는 기능들을 제어한다.
이 때, 제어부(120)는 삽입된 확장 코드를 이용하여 어플리케이션에 대한 분석 과정에 대한 제어를 수행할 수 있다. 예를 들어, 기존의 어플리케이션 분석 모듈을 포함할 수도 있고, 본 발명에 추가된 확장 코드를 이용하여 어플리케이션 분석을 수행하는 모듈들을 포함할 수도 있다.
이 때, 제어부(120)에는 동적 코드 역어셈블 모듈, 동적 코드 수정 모듈, 동적 코드 로딩 탐지 모듈, 동적 코드 변조 탐지 모듈을 포함할 수 있어, 코드를 역 어셈블링하고, 코드를 수정하거나, 추가되는 코딩을 탐지하고, 변경되는 코드를 탐지할 수 있는 기능을 제공할 수 있다. 도 5 내지 8에서 상세하게 설명한다.
처리부(130)는 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 처리한다.
이 때, 처리부(130)는 제어부(120)에서 명령을 수신하여, 어플리케이션 상의 코드를 수정할 수 있다.
이 때, 처리부(130)는 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 수정 대상 코드가 존재하는 영역의 접근 권한을 수정하여 메모리 쓰기를 활성화시키는 방식으로 수정 대상 코드에 대한 수정 작업을 수행할 수 있다.
이 때, 처리부(130)는 제어부(120)에서 명령을 수신하여, 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지할 수 있다.
이를 위해서, 처리부(130) 내부에는 접근 권한에 기반하여 인터럽트를 발생시키는 인터럽트 발생부(미도시)를 포함할 수 있다.
예를 들어, 인터럽트는, 악성 코드가 쓰기 권한이 없는 영역의 메모리를 이용하는 코드 영역에 대한 변조를 시도하는 경우, 쓰기 권한이 존재하지 않으므로, 코드 영역에 대한 변조 작업에 대한 오류가 발생할 수 있다. 이 때, 오류 발생이 인터럽트에 일 예가 될 수 있다.
이 때, 처리부(130)는 인터럽트 발생을 탐지하여, 실행 코드 변경을 탐지할 수 있게 된다.
이 때, 처리부(130)는 인터럽트가 발생된 경우, 인터럽트가 탐지된 지점과 인터럽트에 상응하는 메모리 내용을 전송할 수도 있다. 이러한 기능은, 어플리케이션이 종료될 때까지 지속적으로 수행될 수 있다.
이를 위하여, 처리부(130)는 기존에 메모리에 적재된 코드 영역에 대한 탐색을 수행하고, 접근 권한을 변경할 수도 있다. 예를 들어, 쓰기 권한이 허용되는 메모리에 대한 쓰기 권한을 해제하는 방식으로 접근 권한을 변경할 수도 있다.
이 때, 처리부(130)는 제어부(120)에서 명령을 수신하여, 어플리케이션이 이용하는 메모리 부분에 실행 코드가 추가되는 것을 탐지할 수도 있다.
이 때, 악성 코드가 동적으로 메모리에 코드를 탐지하는 것을 탐지하기 위한 것으로, 종래의 분석 도구에 적용된 기술은 동적으로 로딩되는 코드를 인식할 수가 없어, 악성 코드가 동적으로 로딩된 코드를 실행하는 경우, 분석이 불가능하다. 하지만, 본 발명은 확장 코드를 이용하여 어플리케이션이 이용하는 메모리에 대한 모니터링을 수행할 수 있으므로, 코드 로딩을 탐지할 수 있고, 탐지되는 경우, 로딩되는 코드를 추출할 수도 있다.
이 때, 처리부(130)는 어플리케이션이 이용하는 메모리 부분에 상응하는 코드를 덤프하고, 역어셈블링(Inverse-Assembling)을 수행하여, 실행 코드를 추출할 수 있다.
이 때, 어셈블(assemble)는 여러 종류의 부품을 조립하여 하나의 장치 또는 시스템을 만드는 것을 의미하는데, 컴퓨터 분야에서는, 어셈블리 코드를 기계어로 변환하는 것을 의미한다. 예를 들어, 기계어는 컴퓨터가 인식할 수 있는 언어로 메모리상에 0 또는 1로 배열된 숫자들의 배열을 의미한다. 어셈블리 코드는 프로그램을 설계하는 사람이 알아볼 수 있는 단어들을 이용하여 배열된 것을 의미한다. 즉, 역어셈블링 과정은 메모리 상에 나열된 0 또는 1의 숫자를 불러와서, 어셈블리 코드로 변환하는 과정을 의미한다.
이를 위해서, 처리부(130)는 어플리케이션이 이용하는 프로세스의 메모리 맵을 검색하여, 덤프 대상 메모리를 목록화하고, 덤프 대상 메모리에 저장된 데이터(기계어에 해당)를 역어셈블링하여 어셈블리어로 변환하여 실행 코드를 추출할 수 있다.
도 2는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치와 어플리케이션을 도시한 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치를 구성하는 삽입부(110)와 제어부(120)는 하나의 장치에 삽입되어 있고, 처리부(130)는 어플리케이션 동작 환경 내부에 삽입되어 있음을 알 수 있다.
이 때, 삽입부(110)와 처리부(130)간 및 제어부(120)와 처리부(130)간 원격으로 프로세스가 수행될 수 있다.
이 때, 삽입부(110)에는 제어 모듈 삽입 모듈을 포함할 수 있는데, 제어 모듈 삽입 모듈을 이용하여, 어플리케이션 동작 환경 내부에 확장 코드를 삽입할 수 있게 된다.
이 때, 제어부(120)는 기본적인 어플리케이션 디버깅 기능과, 본 발명에서 제시된 확장된 디버깅 기능에 대한 제어를 수행할 수 있다.
이 때, 제어부(120)에는 기본적인 어플리케이션 디버깅 기능을 위해서, 앱 분석 모듈, 디버깅 명령 처리 모듈, 디버깅 이벤트 처리 모듈, 디버깅 정보 관리 모듈을 포함할 수 있다.
또한, 제어부(120)에는 본 발명에서 제시된 확장된 디버깅 기능을 위해서, 동적 코드 역어셈블 모듈, 동적 코드 수정 모듈, 동적 코드 로딩 탐지 모듈, 코드 영역 변조 탐지 모듈을 포함할 수 있다.
이 때, 제어부(120)에 포함된 동적 코드 역어셈블 모듈, 동적 코드 수정 모듈, 동적 코드 로딩 탐지 모듈, 코드 영역 변조 탐지 모듈은 동적 코드 덤프 모듈, 동적 코드 수정 명령 처리 모듈, 동적 코드 로딩 탐지 처리 모듈, 동적 코드 변조 탐지 처리 모듈 등과 통신하여 기능을 제공할 수 있다. 이에 대한 설명은 도 5 내지 8에서 서술한다.
이 때, 처리부(130)는 어플리케이션 동작 환경 내부에 삽입되어 있는데, 어플리케이션 동작 환경의 경우, 어플리케이션이 동작하는 기기나 에뮬레이터 등을 의미하며, 어플리케이션이 동작하는 환경을 의미할 수 있다. 예를 들어, 안드로이드(android) 시스템이 해당될 수 있다.
이 때, 처리부(130)에서 수행한 분석 결과는 분석 장치에 전송될 수도 있다.
이 때, 처리부(130)에는 동적 코드 덤프 모듈, 동적 코드 수정 명령 처리 모듈, 동적 코드 로딩 탐지 처리 모듈, 동적 코드 변조 탐지 처리 모듈이 포함될 수 있다.
도 3은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법을 도시한 동작 흐름도이다.
도 3을 참조하면, 먼저 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입한다(S310).
이 때, 확장 코드는 분석 대상 프로세스 제어가 제한된 어플리케이션의 분석 환경을 확장할 수 있는 코드를 의미한다.
이 때, 분석 환경을 확장하는 것은 플랫폼의 수정을 의미하는 것이 아니며, 또한 루트 권한을 획득하는 방식으로 분석 환경을 확장하는 것이 아니다. 예를 들어, 분석 대상이 되는 어플리케이션의 실행 권한과 동일한 권한을 이용하여, 분석 코드를 실행하고 어플리케이션에 대한 분석을 수행한다는 의미이다.
이 때, 동적(Dynamic)으로 확장 코드를 삽입함으로써, 어플리케이션이 이용하는 메모리 부분을 분석할 수 있게 된다.
또한, 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행한다(S320).
이 때, 확장 코드를 어플리케이션의 권한을 이용하여 어플리케이션과 동일한 프로세스에 로딩할 수 있어, 분석 대상이 되는 어플리케이션이 관리하는 자원(메모리 등)에 접근 및 변경이 가능하게 된다.
이 때, 처리부(130)는 제어부(120)에서 명령을 수신하여, 어플리케이션 상의 코드를 수정할 수 있다.
이 때, 처리부(130)는 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 수정 대상 코드가 존재하는 영역의 접근 권한을 수정하여 메모리 쓰기를 활성화시키는 방식으로 수정 대상 코드에 대한 수정 작업을 수행할 수 있다.
이 때, 처리부(130)는 제어부(120)에서 명령을 수신하여, 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지할 수 있다.
이를 위해서, 처리부(130) 내부에는 접근 권한에 기반하여 인터럽트를 발생시키는 인터럽트 발생부(미도시)를 포함할 수 있다.
예를 들어, 인터럽트는, 악성 코드가 쓰기 권한이 없는 영역의 메모리를 이용하는 코드 영역에 대한 변조를 시도하는 경우, 쓰기 권한이 존재하지 않으므로, 코드 영역에 대한 변조 작업에 대한 오류가 발생할 수 있다. 이 때, 오류 발생이 인터럽트에 일 예가 될 수 있다.
이 때, 처리부(130)는 인터럽트 발생을 탐지하여, 실행 코드 변경을 탐지할 수 있게 된다.
이 때, 처리부(130)는 인터럽트가 발생된 경우, 인터럽트가 탐지된 지점과 인터럽트에 상응하는 메모리 내용을 전송할 수도 있다. 이러한 기능은, 어플리케이션이 종료될 때까지 지속적으로 수행될 수 있다.
이를 위하여, 처리부(130)는 기존에 메모리에 적재된 코드 영역에 대한 탐색을 수행하고, 접근 권한을 변경할 수도 있다. 예를 들어, 쓰기 권한이 허용되는 메모리에 대한 쓰기 권한을 해제하는 방식으로 접근 권한을 변경할 수도 있다.
이 때, 처리부(130)는 제어부(120)에서 명령을 수신하여, 어플리케이션이 이용하는 메모리 부분에 실행 코드가 추가되는 것을 탐지할 수도 있다.
이 때, 악성 코드가 동적으로 메모리에 코드를 탐지하는 것을 탐지하기 위한 것으로, 종래의 분석 도구에 적용된 기술은 동적으로 로딩되는 코드를 인식할 수가 없어, 악성 코드가 동적으로 로딩된 코드를 실행하는 경우, 분석이 불가능하다. 하지만, 본 발명은 확장 코드를 이용하여 어플리케이션이 이용하는 메모리에 대한 모니터링을 수행할 수 있으므로, 코드 로딩을 탐지할 수 있고, 탐지되는 경우, 로딩되는 코드를 추출할 수도 있다.
이 때, 처리부(130)는 어플리케이션이 이용하는 메모리 부분에 상응하는 코드를 덤프하고, 역어셈블링(Inverse-Assembling)을 수행하여, 실행 코드를 추출할 수 있다.
이 때, 어셈블(assemble)는 여러 종류의 부품을 조립하여 하나의 장치 또는 시스템을 만드는 것을 의미하는데, 컴퓨터 분야에서는, 어셈블리 코드를 기계어로 변환하는 것을 의미한다. 예를 들어, 기계어는 컴퓨터가 인식할 수 있는 언어로 메모리상에 0 또는 1로 배열된 숫자들의 배열을 의미한다. 어셈블리 코드는 프로그램을 설계하는 사람이 알아볼 수 있는 단어들을 이용하여 배열된 것을 의미한다. 즉, 역어셈블링 과정은 메모리 상에 나열된 0 또는 1의 숫자를 불러와서, 어셈블리 코드로 변환하는 과정을 의미한다.
이를 위해서, 처리부(130)는 어플리케이션이 이용하는 프로세스의 메모리 맵을 검색하여, 덤프 대상 메모리를 목록화하고, 덤프 대상 메모리에 저장된 데이터(기계어에 해당)를 역어셈블링하여 어셈블리어로 변환하여 실행 코드를 추출할 수 있다.
또한, 확장 코드의 실행 결과를 이용하여 어플리케이션에 대한 분석을 수행한다(S330).
도 4는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 확장 코드를 삽입하여 분석 환경을 확장하는 것을 도시한 동작 흐름도이다.
도 4를 참조하면, 먼저, 시스템에 분석 환경을 확장하는 확장 코드를 삽입한다(S410).
이 때, 삽입되는 코드는 어플리케이션 동작 환경의 파일 시스템에 확장할 기능을 구현한 코드를 의미한다.
이 때, 삽입되는 코드는 확장 코드를 의미하며, 예를 들어, 안드로이드 시스템상에서 확장 코드는 APK 파일 또는 DEX 파일의 확장자 형태로 구성될 수 있다.
또한, 확장 코드에 대한 로딩 루틴을 원격으로 호출한다(S420).
또한, 확장 코드를 실행한다(S430).
이 때, 코드 삽입부(110)는 동작하는 어플리케이션의 권한을 이용하여 동일한 프로세스에서 동작하여 분석 대상이 되는 어플리케이션이 관리하는 자원에 접근 또는 변경에 대한 작업을 수행할 수 있다. 따라서, 어플리케이션 제어나 데이터 획득을 위해서 플랫폼의 변조 또는 루트 권한 획득을 필요로 하지 않는다.
도 5는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 어플리케이션의 코드를 수정하는 것을 도시한 동작 흐름도이다.
도 5에 도시된 코드 수정 기능은, 실행중인 분석 대상 어플리케이션의 코드를 임의로 수정할 수 있는 기능으로, 어플리케이션에 설정된 분석 방지 루틴을 무력화할 수 있는 효과를 제공할 수 있어, 좀 더 효과적인 분석이 가능하게 한다. 기존의 기술들은 해당 기능을 제공할 수가 없어서, 악성 코드의 실행 흐름 또는 어플리케이션의 데이터 변경이 불가능하여, 효과적으로 대응할 수가 없었다.
도 5를 참조하면, 먼저 확장 코드를 이용하여 동적 코드 수정 명령 처리 모듈을 삽입한다(S510).
이 때, 제어부(120) 내부의 동적 코드 수정 모듈이 동적 코드 수정 명령 처리 모듈을 처리부(130)에 추가하는 방식으로, 동적 코드 수정 명령 처리 모듈을 삽입하게 된다.
또한, 수정 대상이 되는 코드를 입력한다(S520).
또한, 수정 대상이 되는 코드를 메모리 상에서 탐색한다(S530).
또한, 탐색된 코드 영역에 대한 접근 권한을 수정한다(S540).
예를 들어, 탐색된 코드 영역에 상응하는 접근 권한 분석 결과 쓰기 권한이 존재하지 않는 경우, 쓰기 권한을 획득하는 방식으로 접근 권한을 수정할 수 있다.
또한, 코드 수정을 수행한다(S550).
도 6은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 악성 코드가 코드 변조를 수행하는 것을 탐지하는 것을 도시한 동작 흐름도이다.
도 6에 도시된, 코드 변조를 탐지하는 기능은 악성 코드가 실행중인 어플리케이션의 코드를 자가 변조하는 경우, 자가 변조를 탐지하여 알리는 기능을 의미한다.
도 6에 도시된 기능은 자가 변조가 실행되는 시점과 변조되는 코드 지점을 알림으로써, 악성 코드의 기능을 효과적으로 분석이 가능하게 된다. 기존의 분석 장치들은 분석 도중 코드가 변조되는 경우까지 탐지가 불가능하였다.
이는 본 발명이 확장 코드를 이용하여, 어플리케이션이 이용하는 메모리에 대한 분석을 수행할 수 있기 때문이다.
도 6을 참조하면, 먼저, 확장 코드를 이용하여 코드 변조 탐지 처리 모듈을 삽입한다(S601).
또한, 인터럽트 처리 루틴을 등록한다(S602).
이 때, 인터럽트 처리 루틴은 코드 영역 변조시 인터럽트가 발생되게 하여, 인터럽트 발생 여부에 기반하여 코드 영역 변조 시도를 인지하게 할 수 있다.
또한, 코드 영역 접근 권한 변경 방법을 후킹한다(S603).
이 때, 후킹이란, 각종 컴퓨터 프로그램에서 S/W 구성 요소간에 발생하는 함수 호출, 메시지 이벤트 등을 중간에서 가로채는 기술을 의미한다.
즉, 코드 영역 접근 권한의 변경 방법을 중간에서 후킹하여, 후킹된 결과에 기반하여, 코드 영역의 접근 권한에 대한 수정 시도를 탐지할 수 있다. 예를 들어, 악성 코드가 코드 영역 접근 권한을 변경하려고 시도하면 이를 탐지하여 접근 권한에 대한 변경을 제어할 수 있다.
또한, 코드 영역을 탐색한다(S604).
또한, 탐색한 코드 영역의 접근 권한을 변경한다(S605).
이 때, 접근 권한을 임의의 코드에 의해 변조되지 않도록 변경하는 것을 의미한다. 즉, 쓰기 권한을 제거하는 방향으로 접근 권한을 변경할 수 있다.
또한, 추가된 코드 영역이 존재하는지 판단하고, 추가된 코드 영역이 존재하는 경우, 추가된 코드 영역의 접근 권한을 변경한다(S606).
또한, 인터럽트 발생 여부에 기반하여, 코드 영역의 접근 시도를 탐지한다(S607).
예를 들어, 악성 코드가 쓰기 권한이 없는 코드 영역에 변조를 시도하는 경우, 인터럽트가 발생할 수 있고, 동적 코드 변조 탐지 모듈이 등록한 인터럽트 처리 루틴에 의해서 변조 시도가 탐지될 수 있게 된다.
또한, 코드 영역의 접근 시도 탐지 결과를 이용하여 변조 시도를 검출하고(S608), 변조된 코드 영역을 알린다(S609).
또한, 어플리케이션이 종료되었는지 여부를 판단하고, 종료되지 않은 경우, 다시 S606 단계부터 순차적으로 수행한다(S610).
도 7은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 악성 코드가 코드를 로딩하는 것을 탐지하는 것을 도시한 동작 흐름도이다.
도 7에 도시된 기능은, 분석 대상 어플리케이션이 실행하는 중간에 동적으로 메모리에 적재하는 코드를 탐지하는 기능을 의미한다. 이러한 기능은 악성 코드가 분석을 회피하기 위해서 동적으로 로딩하는 코드를 탐지하여, 로딩되는 코드의 정보를 제공함으로써, 효과적인 분석을 수행할 수 있도록 한다. 종래의 기술은 동적으로 로딩되는 코드를 인식하지 못해서, 악성 코드가 동적으로 로딩된 코드를 실행하는 경우, 해당 코드를 분석하지 못한다는 단점이 있었다.
먼저, 확장 코드를 이용하여 코드 로딩 탐지 모듈을 삽입한다(S710).
이 때, 제어부(120)의 동적 코드 로딩 탐지 모듈은 도 2의 방법을 이용하여 동적 코드 로딩 탐지 모듈을 확장 제어 명령 처리부에 추가하는 방식으로, 코드 로딩 탐지 모듈을 삽입한다.
또한, 코드 로딩 방법을 후킹한다(S720).
이 때, 후킹된 동적 코드 로딩 방법들은 악성 코드가 코드 로딩 시도를 탐지하여 동적 코드 로딩 탐지 처리 모듈에 탐지 결과를 전송할 수 있다.
또한, 코드 로딩 시도를 탐지하고(S730), 코드 로딩 시도가 검출된 경우(S740), 로딩된 코드를 검출한다(S750).
또한, 어플리케이션이 종료되지 않은 경우, S730 내지 S750 단계를 반복적으로 수행한다(S760).
도 8은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 역어셈블링(Inverse Assembling)을 수행하는 것을 도시한 동작 흐름도이다.
도 8에 도시된 기능은, 분석 대상이 되는 어플리케이션이 동작하는 단말의 메모리에서 어플리케이션의 코드를 덤프한 후, 역어셈블링하여 실행 중인 코드 정보를 제공하는 기능이다.
이러한 기능은, 악성 코드가 동적으로 어플리케이션의 코드를 변조했을 경우, 변조된 코드의 정보를 제공하여, 악성 코드의 정확한 행위를 파악할 수 있게 된다.
종래의 기술들은, 파일 형태의 앱에서 추출한 코드만을 정적으로 분석하여 제공하기 때문에, 변조된 코드 정보를 제공할 수 없다는 단점이 있었다.
도 8을 참조하면, 먼저, 확장 코드를 이용하여 코드 덤프 모듈을 삽입한다(S810).
또한, 메모리 맵을 이용하여 덤프 대상 메모리를 검출한다(S820).
이 때, 프로세스 메모리 맵을 검색하여, 덤프 대상 메모리를 목록화할 수 있다.
또한, 덤프 대상 코드를 입력한다(S830).
또한, 메모리 덤프 정보를 전송하고(S840), 덤프 정보를 이용하여 역어셈블링을 수행한다(S850).
이 때, 덤프 대상 코드를 입력 받아, 덤프 대상 코드를 덤프하여, 제어부(120)의 동적 코드 역어셈블 모듈로 전송할 수 있다.
이 때, 덤프 대상 코드는 처음으로 로딩되는 코드이거나 코드가 변조된 코드를 대상으로 할 수도 있다.
이 때, 동적 코드 역어셈블 모듈은 전송 받은 코드의 구조 무결성 검사 및 코드 흐름 분석을 통하여 구조적 오류가 존재할 수도 있는 악성 코드의 역어셈블을 수행하여 결과를 제공할 수도 있다.
또한, 어플리케이션이 종료되지 않은 경우, S820 내지 S850 단계를 반복적으로 수행한다(S860).
지금까지, 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치 및 방법에 대해서 서술하였다.
본 발명에서 제공하는 기능은 동적 코드 역어셈블, 동적 코드 수정, 동적 코드 변조 탐지, 동적 코드 로딩 탐지 기능을 포함하여, 분석 방해 기술이 적용된 악성 코드를 효과적으로 분석할 수 있다.
특히, 분석 대상 프로세스 제어가 제한된 안드로이드 시스템 상의 어플리케이션 분석 환경을 확장하여 악성코드에 대한 대응성을 제공할 수 있다. 기존의 기술들은 분석 대상 프로세스 제어가 제한되어 악성코드에 대응하기 어려운 반면에, 본 발명에서 제시된 분석 환경 확장 기술은 플랫폼의 수정이나, 루트 권한 없이 동작하며, 분석 환경 확장을 통해 분석 대상 프로세스의 제어 권한을 획득할 수 있으므로, 효과적으로 악성 코드에 대한 분석이 가능하게 된다.
본 발명에 따른 확장 코드를 이용한 어플리케이션 분석 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하고, 상기 확장 코드를 상기 프로세스 상에서 실행시키는 코드 삽입부;
    상기 확장 코드를 이용하여 상기 어플리케이션의 분석 작업을 제어하는 제어 명령을 생성하는 제어부; 및
    상기 제어 명령에 따라 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하는 처리부;
    를 포함하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  2. 청구항 1에 있어서,
    상기 코드 삽입부는
    상기 어플리케이션의 실행 권한과 동일한 실행 권한을 이용하여 상기 확장 코드를 실행시키는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  3. 청구항 2에 있어서,
    상기 처리부는
    상기 제어 명령에 따라 상기 어플리케이션 상의 코드를 수정하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  4. 청구항 3에 있어서,
    상기 처리부는
    상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 메모리 수정 및 사용이 가능하도록 처리하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  5. 청구항 2에 있어서,
    상기 처리부는
    상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  6. 청구항 5에 있어서,
    상기 처리부는
    접근 권한에 기반하여, 인터럽트를 발생시키는 인터럽트 발생부를 포함하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  7. 청구항 6에 있어서,
    상기 처리부는
    악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  8. 청구항 7에 있어서,
    상기 처리부는
    메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 권한 중 쓰기 권한을 제거하고,
    상기 인터럽트는
    상기 악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생되는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  9. 청구항 2에 있어서,
    상기 처리부는
    상기 어플리케이션이 이용하는 메모리의 부분에 실행 코드가 추가되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  10. 청구항 2에 있어서,
    상기 처리부는
    상기 어플리케이션이 이용하는 메모리의 부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  11. 청구항 10에 있어서,
    상기 처리부는
    상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치.
  12. 확장 코드를 이용한 어플리케이션 분석 장치를 이용하는 방법에 있어서,
    코드 삽입부가, 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하는 단계;
    상기 코드 삽입부가, 상기 확장 코드를 상기 프로세스 상에서 실행시키는 단계; 및
    처리부가, 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하는 단계
    를 포함하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  13. 청구항 12에 있어서,
    상기 프로세스 상에서 실행시키는 단계는
    상기 어플리케이션의 실행 권한과 동일한 실행 권한을 이용하여 상기 확장 코드를 실행시키는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  14. 청구항 13에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 상기 코드에 상응하는 메모리의 수정 및 사용이 가능하도록 처리하여, 상기 어플리케이션 상의 실행 코드를 변경하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  15. 청구항 14에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  16. 청구항 13에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  17. 청구항 16에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 쓰기 권한을 제거하는 단계를 포함하고,
    상기 인터럽트는
    악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생되는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  18. 청구항 13에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    상기 어플리케이션이 이용하는 메모리 부분에 실행 코드가 추가되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  19. 청구항 18에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    상기 어플리케이션이 이용하는 메모리의 일부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
  20. 청구항 19에 있어서,
    상기 어플리케이션에 대한 분석을 수행하는 단계는
    상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
KR1020150134413A 2015-09-23 2015-09-23 확장 코드를 이용한 어플리케이션 분석 장치 및 방법 KR101724412B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150134413A KR101724412B1 (ko) 2015-09-23 2015-09-23 확장 코드를 이용한 어플리케이션 분석 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150134413A KR101724412B1 (ko) 2015-09-23 2015-09-23 확장 코드를 이용한 어플리케이션 분석 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170035507A KR20170035507A (ko) 2017-03-31
KR101724412B1 true KR101724412B1 (ko) 2017-04-10

Family

ID=58501060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150134413A KR101724412B1 (ko) 2015-09-23 2015-09-23 확장 코드를 이용한 어플리케이션 분석 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101724412B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878086B2 (en) 2017-11-16 2020-12-29 Foundation Of Soongsil University-Industry Cooperation Dynamic code extraction-based automatic anti analysis evasion and code logic analysis apparatus
US11934495B2 (en) 2017-11-16 2024-03-19 Foundation Of Soongsil University-Industry Cooperation Device for automatically identifying anti-analysis techniques by using signature extraction and method therefor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782261B (zh) * 2020-06-29 2024-05-28 百度在线网络技术(北京)有限公司 软件配置方法、装置、电子设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101161008B1 (ko) 2009-06-30 2012-07-02 주식회사 잉카인터넷 악성코드 탐지시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100876637B1 (ko) * 2006-11-23 2009-01-09 한국전자통신연구원 Linux 운영체제에서 소프트웨어 공격 탐지 장치 및 방법
KR101456489B1 (ko) * 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
KR101300256B1 (ko) * 2011-09-21 2013-09-16 주식회사 인프라웨어테크놀러지 동적분석 및 정적분석 방지를 통한 소프트웨어 실행파일 보호 방법, 그리고 그에 따른 소프트웨어 실행파일 보호 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101161008B1 (ko) 2009-06-30 2012-07-02 주식회사 잉카인터넷 악성코드 탐지시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878086B2 (en) 2017-11-16 2020-12-29 Foundation Of Soongsil University-Industry Cooperation Dynamic code extraction-based automatic anti analysis evasion and code logic analysis apparatus
US11934495B2 (en) 2017-11-16 2024-03-19 Foundation Of Soongsil University-Industry Cooperation Device for automatically identifying anti-analysis techniques by using signature extraction and method therefor

Also Published As

Publication number Publication date
KR20170035507A (ko) 2017-03-31

Similar Documents

Publication Publication Date Title
Yang et al. Appspear: Bytecode decrypting and dex reassembling for packed android malware
KR101074624B1 (ko) 브라우저 기반 어뷰징 방지 방법 및 시스템
CN102651061B (zh) 用于检测复杂恶意软件的系统和方法
US10372444B2 (en) Android dynamic loading file extraction method, recording medium and system for performing the method
KR101647487B1 (ko) 패치파일 분석시스템과 분석방법
US9811663B2 (en) Generic unpacking of applications for malware detection
US20090320129A1 (en) Secure control flows by monitoring control transfers
CN107004088B (zh) 确定装置、确定方法及记录介质
US9507933B2 (en) Program execution apparatus and program analysis apparatus
KR101325954B1 (ko) 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR101724412B1 (ko) 확장 코드를 이용한 어플리케이션 분석 장치 및 방법
KR101926142B1 (ko) 프로그램 분석 장치 및 방법
KR101428915B1 (ko) 안드로이드 보안을 위한 피드백 기반 어플리케이션 재가공 프레임워크 방법과 그 시스템
KR102173151B1 (ko) 원본코드 자동추출장치 및 원본코드 자동추출방법
CN104636661A (zh) 一种分析Android应用程序的方法和系统
CN111291377A (zh) 一种应用漏洞的检测方法及系统
Abbadini et al. Lightweight cloud application sandboxing
KR101842263B1 (ko) 어플리케이션에 대한 역공학 차단 방법 및 장치
CN107341403B (zh) 一种文件转换方法和装置
WO2020261430A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
KR101824583B1 (ko) 커널 자료구조 특성에 기반한 악성코드 탐지 시스템 및 그의 제어 방법
US11886589B2 (en) Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method
KR102218327B1 (ko) 분석회피기법 우회 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
KR102683445B1 (ko) 안드로이드 악성 앱 기록 및 재실행 방법, 이를 수행하기 위한 기록 매체 및 장치
KR102016967B1 (ko) 시스템 정보 데이터 상관/연관 분석을 통한 시스템 취약성/위험 측정 및 처리 방법 및 그를 위한 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant