KR20170035507A - 확장 코드를 이용한 어플리케이션 분석 장치 및 방법 - Google Patents
확장 코드를 이용한 어플리케이션 분석 장치 및 방법 Download PDFInfo
- Publication number
- KR20170035507A KR20170035507A KR1020150134413A KR20150134413A KR20170035507A KR 20170035507 A KR20170035507 A KR 20170035507A KR 1020150134413 A KR1020150134413 A KR 1020150134413A KR 20150134413 A KR20150134413 A KR 20150134413A KR 20170035507 A KR20170035507 A KR 20170035507A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- application
- analysis
- extension
- execution
- Prior art date
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000012986 modification Methods 0.000 claims abstract description 19
- 230000004048 modification Effects 0.000 claims abstract description 19
- 230000008859 change Effects 0.000 claims description 22
- 239000000284 extract Substances 0.000 claims description 3
- 238000003780 insertion Methods 0.000 abstract description 8
- 230000037431 insertion Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 28
- 238000001514 detection method Methods 0.000 description 22
- 238000011068 loading method Methods 0.000 description 20
- 238000012937 correction Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004886 process control Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Debugging And Monitoring (AREA)
Abstract
확장 코드를 이용한 어플리케이션 분석 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치는 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하고, 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 코드 삽입부; 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하고, 분석 결과를 처리하는 처리부; 및 상기 어플리케이션에 대한 분석 작업을 제어하는 제어부를 포함한다.
Description
본 발명은 어플리케이션과 악성 코드를 분석하는 기술에 관한 것으로, 특히 동적으로 코드를 삽입하여, 분석 환경을 확장하여 제어 권한을 확장하여, 어플리케이션을 분석하는 기술에 관한 것이다.
프로그램을 명령어 단위로 추적 분석하여 오류를 수정하거나 동작 방식을 분석하는데 사용되는 동적 분석 도구를 디버거라 지칭한다. 디버거는 분석 대상 프로그램이나 대상 프로그램이 동작하는 환경에 따라 그 동작 방식과 제공되는 기능이 상이하다.
기존 안드로이드 디버거의 경우 분석 대상 앱에 대한 제어 권한이 제한된 환경에서 동작하여 안드로이드 플랫폼이 제공하는 디버깅 기능 외에는 사용하지 못한다. 일반적인 앱을 분석시에는 플랫폼이 제공하는 디버깅 기능만을 통해 분석이 가능하지만 분석 방지 기술이 적용된 악성코드를 분석시에는 플랫폼이 제공하는 디버깅 기능만으로 분석이 불가능하다. 따라서 분석자가 악성코드 분석시 대응을 하지 못해 분석에 오류가 발생한다.
한국 공개 특허 제 2013-003103호는 안드로이드 앱의 행위 정보 동적 분석 에뮬레이터 등에 관한 기술에 관하여 개시하고 있다. 특히, 안드로이드 앱을 전용 에뮬레이터에서 실행하고, 행위 정보를 모니터링하여, 행위 정보를 기반으로 데이터를 수집 및 분석하여 안드로이드 앱에 악의적인 코드의 내재 여부를 분석하는 기술에 대해서 개시하고 있다.
하지만, 한국 공개 특허 제 2013-0031035호는 분석 대상 파일을 플랫폼이수정된 에뮬레이터에서 실행하고 있어, 여전히 플랫폼을 수정하여야만, 본 기술을 수행할 수 있다는 단점이 있다.
본 발명의 목적은 루트 권한 획득 및 플랫폼 수정없이 어플리케이션을 분석하는 것이다.
또한, 본 발명의 목적은 어플리케이션이 획득한 권한만을 이용하여 어플리케이션 및 악성 코드를 분석하는 것이다.
본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치는 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하고, 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 코드 삽입부; 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하고, 분석 결과를 처리하는 처리부; 및 상기 어플리케이션에 대한 분석 작업을 제어하는 제어부를 포함한다.
이 때, 상기 코드 삽입부는 상기 확장 코드의 실행 권한과 상기 어플리케이션의 실행 권한이 동일한 레벨이 되도록, 상기 확장 코드를 실행시킬 수 있다.
이 때, 상기 처리부는 상기 어플리케이션 상의 실행 코드를 변경할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 메모리 수정 및 사용이 가능하도록 처리할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지할 수 있다.
이 때, 상기 처리부는 접근 권한에 기반하여, 인터럽트를 발생시키는 인터럽트 발생부를 포함할 수 있다.
이 때, 상기 처리부는 악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지할 수 있다.
이 때, 상기 처리부는 메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 권한 중 쓰기 권한을 제거할 수 있다.
이 때, 상기 인터럽트는 상기 악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생될 수 있다.
이 때, 상기 처리부는 상기 어플리케이션이 이용하는 메모리의 부분에 실행 코드가 추가되는 것을 탐지할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션이 이용하는 메모리의 부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출할 수 있다.
이 때, 상기 처리부는 상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출할 수 있다.
또한, 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법은 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하는 단계; 상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 단계; 및 상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하는 단계를 포함한다.
이 때, 상기 프로세스 상에서 실행시키는 단계는 상기 확장 코드의 실행 권한과 상기 어플리케이션의 실행 권한이 동일한 레벨이 되도록, 상기 확장 코드를 실행할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 상기 코드에 상응하는 메모리의 수정 및 사용이 가능하도록 처리하여, 상기 어플리케이션 상의 실행 코드를 변경할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 쓰기 권한을 제거하는 단계를 포함할 수 있다.
이 때, 상기 인터럽트는 악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생될 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션이 이용하는 메모리 부분에 실행 코드가 추가되는 것을 탐지할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션이 이용하는 메모리의 일부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출할 수 있다.
이 때, 상기 어플리케이션에 대한 분석을 수행하는 단계는 상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출할 수 있다.
본 발명은 어플리케이션이 이용하는 프로세스에 확장 코드를 삽입하여, 어플리케이션이 이용하는 메모리만 관리할 수 있어, 좀 더 효과적인 어플리케이션의 분석이 가능하다.
또한, 본 발명은 분석 대상의 어플리케이션의 분석 환경에 임의의 제어 기능을 추가하여, 제한적인 분석 환경의 한계를 극복할 수 있다.
도 1은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치를 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 장치와 어플리케이션을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법을 도시한 동작 흐름도이다.
도 4는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 확장 코드를 삽입하여 분석 환경을 확장하는 것을 도시한 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 어플리케이션의 코드를 수정하는 것을 도시한 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 악성 코드가 코드 변조를 수행하는 것을 탐지하는 것을 도시한 동작 흐름도이다.
도 7은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 악성 코드가 코드를 로딩하는 것을 탐지하는 것을 도시한 동작 흐름도이다.
도 8은 본 발명의 일실시예에 따른 확장 코드를 이용한 어플리케이션 분석 방법에서 역어셈블링(Inverse Assembling)을 수행하는 것을 도시한 동작 흐름도이다.
도 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에 있어서,
상기 처리부는
상기 어플리케이션 상의 실행 코드를 변경하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 3에 있어서,
상기 처리부는
상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 메모리 수정 및 사용이 가능하도록 처리하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 2에 있어서,
상기 처리부는
상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 5에 있어서,
상기 처리부는
접근 권한에 기반하여, 인터럽트를 발생시키는 인터럽트 발생부를 포함하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 6에 있어서,
상기 처리부는
악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 7에 있어서,
상기 처리부는
메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 권한 중 쓰기 권한을 제거하고,
상기 인터럽트는
상기 악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생되는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 2에 있어서,
상기 처리부는
상기 어플리케이션이 이용하는 메모리의 부분에 실행 코드가 추가되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 2에 있어서,
상기 처리부는
상기 어플리케이션이 이용하는 메모리의 부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 청구항 10에 있어서,
상기 처리부는
상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 장치. - 어플리케이션이 실행되는 프로세스에 확장 코드를 삽입하는 단계;
상기 어플리케이션의 권한에 기반하여, 상기 확장 코드를 상기 어플리케이션과 동일한 프로세스상에서 실행시키는 단계; 및
상기 확장 코드의 실행 결과에 기반하여 상기 어플리케이션에 대한 분석을 수행하는 단계
를 포함하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 12에 있어서,
상기 프로세스 상에서 실행시키는 단계는
상기 확장 코드의 실행 권한과 상기 어플리케이션의 실행 권한이 동일한 레벨이 되도록, 상기 확장 코드를 실행하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 13에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
상기 어플리케이션 상의 수정 대상이 되는 코드를 탐색하고, 상기 코드가 위치한 영역의 접근 권한을 수정하여, 상기 코드에 상응하는 메모리의 수정 및 사용이 가능하도록 처리하여, 상기 어플리케이션 상의 실행 코드를 변경하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 14에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
상기 어플리케이션에 상응하는 실행 코드가 변경되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 13에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
악성 코드에 의해서 발생되는 접근 권한 변화에 따라 발생되는 인터럽트에 기반하여 상기 악성 코드에 상응하는 실행 코드 변화를 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 16에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
메모리상에서 어플리케이션에 상응하는 코드 영역을 탐색하고, 상기 코드 영역에 상응하는 부분의 쓰기 권한을 제거하는 단계를 포함하고,
상기 인터럽트는
악성 코드가 상기 쓰기 권한이 제거된 코드 영역에 실행 코드 변경을 수행하면서 발생되는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 13에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
상기 어플리케이션이 이용하는 메모리 부분에 실행 코드가 추가되는 것을 탐지하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 18에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
상기 어플리케이션이 이용하는 메모리의 일부분에 상응하는 코드를 덤프 및 역어셈블링을 수행하여, 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법. - 청구항 19에 있어서,
상기 어플리케이션에 대한 분석을 수행하는 단계는
상기 어플리케이션에 상응하는 메모리 맵을 탐색하여 덤프 대상 메모리를 추출하고, 상기 덤프 대상 메모리에 저장된 데이터에 대한 역어셈블링을 수행하여, 상기 실행 코드를 추출하는 것을 특징으로 하는 확장 코드를 이용한 어플리케이션 분석 방법.
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 true KR20170035507A (ko) | 2017-03-31 |
KR101724412B1 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782261A (zh) * | 2020-06-29 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 软件配置方法、装置、电子设备以及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101920597B1 (ko) | 2017-11-16 | 2018-11-21 | 숭실대학교산학협력단 | 동적 코드 추출 기반 자동 분석 방지 우회 및 코드 로직 해석 장치 |
KR101976992B1 (ko) | 2017-11-16 | 2019-05-10 | 숭실대학교산학협력단 | 시그니처 추출을 이용한 분석회피기법 자동 인식 장치 및 그 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080047231A (ko) * | 2006-11-23 | 2008-05-28 | 한국전자통신연구원 | Linux 운영체제에서 소프트웨어 공격 탐지 시스템 및방법 |
KR20090010872A (ko) * | 2007-07-23 | 2009-01-30 | 삼성전자주식회사 | CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치 |
KR101161008B1 (ko) * | 2009-06-30 | 2012-07-02 | 주식회사 잉카인터넷 | 악성코드 탐지시스템 및 방법 |
KR20130031625A (ko) * | 2011-09-21 | 2013-03-29 | 주식회사 인프라웨어테크놀러지 | 동적분석 및 정적분석 방지를 통한 소프트웨어 실행파일 보호 방법, 그리고 그에 따른 소프트웨어 실행파일 보호 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
-
2015
- 2015-09-23 KR KR1020150134413A patent/KR101724412B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080047231A (ko) * | 2006-11-23 | 2008-05-28 | 한국전자통신연구원 | Linux 운영체제에서 소프트웨어 공격 탐지 시스템 및방법 |
KR20090010872A (ko) * | 2007-07-23 | 2009-01-30 | 삼성전자주식회사 | CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치 |
KR101161008B1 (ko) * | 2009-06-30 | 2012-07-02 | 주식회사 잉카인터넷 | 악성코드 탐지시스템 및 방법 |
KR20130031625A (ko) * | 2011-09-21 | 2013-03-29 | 주식회사 인프라웨어테크놀러지 | 동적분석 및 정적분석 방지를 통한 소프트웨어 실행파일 보호 방법, 그리고 그에 따른 소프트웨어 실행파일 보호 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782261A (zh) * | 2020-06-29 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 软件配置方法、装置、电子设备以及存储介质 |
CN111782261B (zh) * | 2020-06-29 | 2024-05-28 | 百度在线网络技术(北京)有限公司 | 软件配置方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR101724412B1 (ko) | 2017-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200311271A1 (en) | Method of malware detection and system thereof | |
CN111353146B (zh) | 应用程序敏感权限的检测方法、装置、设备和存储介质 | |
Yang et al. | Appspear: Bytecode decrypting and dex reassembling for packed android malware | |
KR101074624B1 (ko) | 브라우저 기반 어뷰징 방지 방법 및 시스템 | |
CN102651061B (zh) | 用于检测复杂恶意软件的系统和方法 | |
US8762948B1 (en) | System and method for establishing rules for filtering insignificant events for analysis of software program | |
US8117660B2 (en) | Secure control flows by monitoring control transfers | |
US10372444B2 (en) | Android dynamic loading file extraction method, recording medium and system for performing the method | |
US20160378989A1 (en) | Apparatus and method for monitoring android platform-based application | |
US9811663B2 (en) | Generic unpacking of applications for malware detection | |
CN107004088B (zh) | 确定装置、确定方法及记录介质 | |
US9507933B2 (en) | Program execution apparatus and program analysis apparatus | |
KR101325954B1 (ko) | 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
KR20150134679A (ko) | 패치파일 분석시스템과 분석방법 | |
KR101724412B1 (ko) | 확장 코드를 이용한 어플리케이션 분석 장치 및 방법 | |
KR101926142B1 (ko) | 프로그램 분석 장치 및 방법 | |
KR101428915B1 (ko) | 안드로이드 보안을 위한 피드백 기반 어플리케이션 재가공 프레임워크 방법과 그 시스템 | |
KR102173151B1 (ko) | 원본코드 자동추출장치 및 원본코드 자동추출방법 | |
Abbadini et al. | Lightweight cloud application sandboxing | |
CN104636661A (zh) | 一种分析Android应用程序的方法和系统 | |
CN111222122A (zh) | 应用权限管理方法、装置及嵌入式设备 | |
KR101842263B1 (ko) | 어플리케이션에 대한 역공학 차단 방법 및 장치 | |
US11886589B2 (en) | Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method | |
KR102113966B1 (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 |