KR102016226B1 - 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 - Google Patents
적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 Download PDFInfo
- Publication number
- KR102016226B1 KR102016226B1 KR1020170156281A KR20170156281A KR102016226B1 KR 102016226 B1 KR102016226 B1 KR 102016226B1 KR 1020170156281 A KR1020170156281 A KR 1020170156281A KR 20170156281 A KR20170156281 A KR 20170156281A KR 102016226 B1 KR102016226 B1 KR 102016226B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- analysis
- dynamic analysis
- information
- container
- Prior art date
Links
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- 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/52—Monitoring 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/53—Monitoring 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
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Abstract
적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치가 개시된다. 적응형 동적 분석 방법은, 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법에 있어서, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행한다.
Description
본 발명은 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치에 관한 것으로, 보다 상세하게는 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치에 관한 것이다.
최근 어플리케이션 악성코드 분석에 대응하여 파싱(parsing)을 방지하는 기술에 기반한 어플리케이션 분석, 추적 및 디버그 작업을 탐지할 수 있는 기술이 발달된 상태이다. 이에, 어플리케이션 분석가는 수동으로 샘플을 분석하고 해결책을 찾아야 하는 어려움을 겪고있다.
또한, 어플리케이션이 동작하기 위해서는 메인 액티비티 실행 후, 이전 액티비티에서 전달된 입력 값 또는 트리거에 의해 다음 액티비티가 실행되는데, 이러한 사전조건이 잘못된 경우 어플리케이션의 동작이 중단될 수 있다. 이와 같은 경우, 동적 분석이 제한적으로 수행되어 분석 결과가 제대로 제공될 수 없다. 아울러, 최근에는 악성코드가 일부 라이브러리 수행 후 동작하는 등 지능화되고 있다. 따라서, 이와 같은 기술의 발달에 따라 진화하고 있는 악성코드에 대비하기 위한 새로운 동적 분석 방식이 필요한 실정이다.
본 발명의 일측면은 작업 중지 기능을 이용하여 필요에 따라 분석 커버리지를 확장시키는 적응형 동적 분석 방법을 제공한다.
본 발명의 다른 측면은 실행중인 어플리케이션을 중지한 뒤 다음 액티비티 실행을 위한 실행 환경 업데이트를 실시하는 적응형 동적 분석 플랫폼을 제공한다.
본 발명의 일 측면에 따른 적응형 동적 분석 방법은, 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법에 있어서, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행한다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득하는 것일 수 있다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득하는 것일 수 있다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득하는 것일 수 있다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득하는 것일 수 있다.
또한, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하는 것은, 상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득하는 것일 수 있다.
한편, 본 발명의 다른 측면에 따른 적응형 동적 분석 플랫폼은, 리눅스 호스트 및 상기 리눅스 호스트에서 실행되는 컨테이너를 포함하고, 상기 리눅스 호스트는, 상기 컨테이너에서 실행되는 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행하는 동적 분석 프로세스를 포함한다.
또한, 상기 동적 분석 프로세스는, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득할 수 있다.
또한, 상기 리눅스 호스트는, 상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 더 포함할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 어플리케이션에서 상기 현재 액티비티의 수행범위를 확인하여, 상기 어플리케이션의 추가 분석이 필요한지를 확인하는 것을 더 포함할 수 있다.
한편, 본 발명의 또 다른 측면은 적응형 동적 분석 플랫폼을 탑재한 장치일 수 있다.
상술한 본 발명의 일측면에 따르면 분석 커버리지를 확장시킴으로써 동적 분석을 위한 충분한 분석 정보 수집이 가능하며, 이에 보다 정확한 분석 결과를 도출할 수 있다.
상술한 본 발명의 다른 측면에 따르면 자동화 및 분석 범위가 향상된 동적 분석 샌드박스의 구현이 가능하다.
도 1은 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼의 개념도이다.
도 2는 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼에서의 작업 중지 기능을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼에서의 적응형 동적 분석의 일 예를 나타낸 개념도이다.
도 4는 본 발명의 일 실시예에 따른 적응형 동적 분석 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼에서의 작업 중지 기능을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼에서의 적응형 동적 분석의 일 예를 나타낸 개념도이다.
도 4는 본 발명의 일 실시예에 따른 적응형 동적 분석 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계 및 동작은 하나 이상의 다른 구성요소, 단계 및 동작의 존재 또는 추가를 배제하지 않는다.
도 1은 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼의 개념도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼(1000)은 리눅스 호스트(10) 및 컨테이너(20)를 포함할 수 있다.
구체적으로는, 리눅스 호스트(10)는 운영체제의 한 종류이다. 리눅스 호스트(10)는 컨테이너 기술을 적용하여 컨테이너(20)를 실행시킬 수 있다. 컨테이너 기술은 명칭 공간(namespace) 및 컨트롤그룹(cgroups)을 이용하여 운영 시스템 레벨의 격리된 가상공간을 제공하는 기술이다. 적응형 동적 분석 플랫폼(1000)은 리눅스 호스트(10)에서 컨테이너(20)를 실행시켜 어플리케이션 분석을 위한 컨테이너(20) 환경을 구축할 수 있다. 이와 같은 적응형 동적 분석 플랫폼(1000)은 운영체제를 기반으로 다양한 응용 프로그램을 실행할 수 있는 장치에 탑재될 수 있다.
리눅스 호스트(10)에는 동적 분석 프로세스(12)가 포함되어 실행될 수 있다. 동적 분석 프로세스(12)는 컨테이너(20)에서 실행되는 어플리케이션의 프로세스에 접근하여 동적 분석을 위한 정보를 수집하고 동적 분석을 수행할 수 있다.
리눅스 호스트(10)에는 컨테이너(20) 환경을 구축하고, 컨테이너(20) 환경 내에서 실행되는 프로세스를 제어하는 컨테이너 매니저 프로세스(11)가 포함되어 실행될 수 있다. 컨테이너 매니저 프로세스(11)는 작업 중지 기능을 사용하여 컨테이너(20) 내에서 실행되는 프로세스의 작업을 중지시킬 수 있다. 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼(1000)은 이러한 작업 중지 기능을 이용하여 어플리케이션의 적응형 동적 분석 환경을 제공할 수 있다. 이와 관련하여, 도 2 및 도 3을 참조하여 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼에서의 작업 중지 기능을 설명하기 위한 도면이고, 도 3은 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼에서의 적응형 동적 분석의 일 예를 나타낸 개념도이다.
도 2를 참조하면, 컨테이너 매니저 프로세스(11)는 하위 프로세스를 생성하고 별도의 네임 스페이스를 제공함으로써 컨테이너(20) 환경을 구축할 수 있다. 컨테이너 매니저 프로세스(11)는 컨테이너(20)의 동작을 정지시킬 수 있다. 컨테이너 매니저 프로세스(11)는 컨테이너(20) 내에서 실행되는 init 프로세스의 부모 프로세스로서, 작업 중지 기능을 활용하여 init 프로세스를 정지시킬 수 있다. 컨테이너 매니저 프로세스(11)는 컨테이너(20) 내에서 실행되는 init 프로세스를 정지시켜 차례로 그 하위 프로세스를 정지시킬 수 있다.
동적 분석 프로세스(12)는 리눅스 호스트(10)에 속하여 컨테이너(20)의 동작이 정지하더라도 지속적으로 실행 가능하다. 동적 분석 프로세스(12)는 컨테이너(20) 내에서 실행되는 프로세스가 정지하면, 해당 프로세스에 접근하여 정보를 수집하고 분석을 수행할 수 있다.
도 3을 참조하면, 먼저 리눅스 호스트(10)의 컨테이너(20) 환경에 어플리케이션(APK)을 실행시킬 수 있다. 어플리케이션의 프로세스에 따른 액티비티가 실행되면, 컨테이너 매니저 프로세스(11)에 의해 액티비티의 실행이 중지될 수 있다. 동적 분석 프로세스(12)는 컨테이너(20)에 생성되는 lib 및 odex 에 접근하여 so 파일 또는 dex 파일을 분석 정보로 획득할 수 있다. 또한, 동적 분석 프로세스(12)는 현재 액티비티의 트레이싱(tracing) 정보를 분석 정보로 획득할 수 있다.
동적 분석 프로세스(12)는 현재 액티비티에 대한 분석 정보를 이용한 동적 분석을 수행할 수 있다. 동적 분석 프로세스(12)는 동적 분석을 통해 다음 액티비티의 실행에 필요한 환경 정보(Remove C, Require D)를 획득할 수 있다. 예를 들면, 동적 분석 프로세스(12)는 현재 액티비티의 실행에 의해 생성된 분석 정보로부터, 다음 액티비티의 실행에 필요한 입력 값, 트리거 값 등의 환경 정보를 획득할 수 있다. 동적 분석 프로세스(12)는 획득한 환경 정보를 반영하여 어플리케이션의 실행 환경 업데이트를 실시할 수 있다. 컨테이너 매니저 프로세스(11)는 실행 환경 업데이트가 완료되면, 다음 액티비티가 실행될 수 있도록 작업 중지 기능을 해제하여 어플리케이션 프로세스를 재실행시킬 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼(1000)에 따르면, 분석 커버리지의 확장이 가능하여 보다 정확한 동적 분석 결과의 도출이 가능하다. 예를 들면, 컨테이너(20)에서 어플리케이션이 실행되면, 어플리케이션의 메인 액티비티의 실행을 위한 프로세스가 생성될 수 있다. 그리고, 이전 액티비티에서 전달된 입력 값 혹은 트리거에 따른 다음 액티비티의 실행을 위한 서브 프로세스가 생성될 수 있다. 이때, 이전 액티비티에서 전달되는 입력 값 혹은 트리거의 사전조건이 잘못된 경우 어플리케이션의 동작이 중지되는 경우가 발생한다. 이와 같은 경우, 어플리케이션의 동적 분석이 제한적으로 수행되어 충분한 분석 결과를 도출하는데 어려움이 있다. 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼(1000)에 따르면, 작업 중지 기능을 이용하여 컨테이너(20) 환경에서 동작하는 어플리케이션의 작업을 중지한 뒤, 동적 분석을 위한 정보를 획득하여 동적 분석을 수행하고, 다음 액티비티의 실행에 필요한 환경 정보를 획득한 뒤 실행 환경 업데이트를 실시함으로써 분석 커버리지를 확장할 수 있다.
이하에서는, 도 4를 참조하여, 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼(1000)에서의 적응형 동적 분석 방법에 대하여 구체적으로 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 적응형 동적 분석 방법의 순서도이다.
도 4를 참조하면, 리눅스 호스트(10)의 컨테이너(20) 환경에서 어플리케이션을 실행시키고, 어플리케이션의 악성코드 분석을 위한 분석 라운드가 시작될 수 있다(400).
리눅스 호스트(10)에 속하는 동적 분석 프로세스(12)는 컨테이너 매니저 프로세스(11)를 통해 어플리케이션의 실행을 중지할 수 있다(410). 동적 분석 프로세스(12)는 어플리케이션의 현재 액티비티의 실행을 중지할 수 있다.
동적 분석 프로세스(12)는 컨테이너(20)에 생성되는 어플리케이션의 프로세스에 접근하여 분석 정보를 획득할 수 있다(420). 동적 분석 프로세스(12)는 어플리케이션의 현재 액티비티 실행을 위해 컨테이너(20)에 생성되는 프로세스에 접근하여, so 파일 또는 dex 파일을 추출하여 분석 정보로 획득할 수 있다. 또한, 동적 분석 프로세스(12)는 현재 액티비티 실행에 따른 트래이싱 정보를 추출하여 분석 정보로 획득할 수 있다.
동적 분석 프로세스(12)는 분석 정보를 이용한 동적 분석을 수행할 수 있다(430). 예를 들면, 동적 분석 프로세스(12)는 분석 정보에 따라 어플리케이션에 악성코드가 존재하는지, 악성행위를 발생시키는지를 확인하는 동적 분석을 수행할 수 있다.
동적 분석 프로세스(12)는 동적 분석 결과에 따라, 분석 커버리지 확장이 필요한지를 확인할 수 있다(440). 동적 분석 프로세스(12)는 동적 분석 결과에 따라 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인할 수 있다. 예를 들면, 동적 분석 프로세스(12)는 동적 분석에 필요한 정보가 부족하거나, 일치하지 않는 경우 분석 커버리지 확장이 필요한 것으로 판단할 수 있다.
동적 분석 프로세스(12)는 분석 커버리지 확장이 필요한 것으로 확인되면(440), 분석 정보에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득할 수 있다(450). 동적 분석 프로세스(12)는 현재 액티비티의 실행에 따라 생성되는 프로세스로부터 획득한 분석 정보로부터, 다음 액티비티의 실행에 필요한 입력 값, 트리거 값 등을 포함하는 환경 정보를 획득할 수 있다.
동적 분석 프로세스(12)는 환경 정보를 반영하여 어플리케이션의 실행 환경 업데이트를 수행할 수 있다(460). 동적 분석 프로세스(12)는 다음 액티비티 실행에 충돌이 발생하지 않도록 환경 정보를 반영하여 컨테이너(20)의 실행 환경 업데이트를 수행할 수 있다.
동적 분석 프로세스(12)는 실행 환경 업데이트가 완료되면, 컨테이너 매니저 프로세스(11)를 통해 어플리케이션을 실행시키고 분석 라운드를 시작할 수 있다(400). 동적 분석 프로세스(12)는 다음 액티비티가 실행될 수 있도록 어플리케이션을 재실행시키고, 다음 분석 라운드를 시작할 수 있다.
한편, 동적 분석 프로세스(12)는 분석 커버리지 확장이 불필요한 것으로 확인되면(440), 분석 라운드가 추가되어야하는지 확인할 수 있다(470). 예를 들면, 동적 분석 프로세스(12)는 어플리케이션에서 현재 실행중이던 액티비티의 수행범위를 확인하여 추가 분석 라운드가 필요한지를 확인할 수 있다.
동적 분석 프로세스(12)는 분석 라운드가 추가되어야 하는 것으로 확인되면(470), 다시 어플리케이션을 실행시키고 다음 분석 라운드를 시작할 수 있다(400).
동적 분석 프로세스(12)는 분석 라운드 추가가 필요하지 않은 것을 확인되면(470), 어플리케이션이 종료될 수 있도록 다시 실행시킬 수 있다(480).
이와 같은, 적응형 동적 분석 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1000: 적응형 동적 분석 플랫폼
10: 리눅스 호스트
20: 컨테이너
11: 컨테이너 매니저 프로세스
12: 동적 분석 프로세스
10: 리눅스 호스트
20: 컨테이너
11: 컨테이너 매니저 프로세스
12: 동적 분석 프로세스
Claims (15)
- 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법에 있어서,
상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고,
상기 분석 정보를 이용한 동적 분석을 수행하고,
상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며,
상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행하고,
상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득하는 것인 적응형 동적 분석 방법. - 제1항에 있어서,
상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득하는 것인 적응형 동적 분석 방법. - 제1항에 있어서,
상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득하는 것인 적응형 동적 분석 방법. - 제1항에 있어서,
상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득하는 것인 적응형 동적 분석 방법. - 삭제
- 제1항에 있어서,
상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하는 것은,
상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득하는 것인 적응형 동적 분석 방법. - 리눅스 호스트; 및
상기 리눅스 호스트에서 실행되는 컨테이너를 포함하고,
상기 리눅스 호스트는,
상기 컨테이너에서 실행되는 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행하는 동적 분석 프로세스; 및
상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 포함하는 적응형 동적 분석 플랫폼. - 제7항에 있어서,
상기 동적 분석 프로세스는,
상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득하는 적응형 동적 분석 플랫폼. - 제7항에 있어서,
상기 동적 분석 프로세스는,
상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득하는 적응형 동적 분석 플랫폼. - 제7항에 있어서,
상기 동적 분석 프로세스는,
상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득하는 적응형 동적 분석 플랫폼. - 삭제
- 제7항에 있어서,
상기 동적 분석 프로세스는,
상기 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득하는 적응형 동적 분석 플랫폼. - 제7항에 있어서,
상기 동적 분석 프로세스는,
상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득하는 적응형 동적 분석 플랫폼. - 제7항에 있어서,
상기 동적 분석 프로세스는,
상기 어플리케이션에서 상기 현재 액티비티의 수행범위를 확인하여, 상기 어플리케이션의 추가 분석이 필요한지를 확인하는 것을 더 포함하는 적응형 동적 분석 플랫폼. - 제7항 내지 제10항, 제12항 내지 제14항 중 어느 하나의 항에 따른 적응형 동적 분석 플랫폼을 탑재한 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170156281A KR102016226B1 (ko) | 2017-11-22 | 2017-11-22 | 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 |
US15/884,085 US10671729B2 (en) | 2017-11-22 | 2018-01-30 | Adaptive dynamic analysis method, adaptive dynamic analysis platform, and device equipped with the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170156281A KR102016226B1 (ko) | 2017-11-22 | 2017-11-22 | 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190058892A KR20190058892A (ko) | 2019-05-30 |
KR102016226B1 true KR102016226B1 (ko) | 2019-08-29 |
Family
ID=66533113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170156281A KR102016226B1 (ko) | 2017-11-22 | 2017-11-22 | 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10671729B2 (ko) |
KR (1) | KR102016226B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102322408B1 (ko) * | 2020-12-07 | 2021-11-05 | 주식회사 샌즈랩 | 서버 자원을 이용한 악성 코드 탐지 및 치료가 가능한 사물 인터넷 장치 및 그 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110023114A1 (en) * | 2009-07-22 | 2011-01-27 | Wael William Diab | Method and System For Traffic Management Via Virtual Machine Migration |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098698B2 (en) * | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
US8479286B2 (en) * | 2009-12-15 | 2013-07-02 | Mcafee, Inc. | Systems and methods for behavioral sandboxing |
KR101161493B1 (ko) | 2010-01-18 | 2012-06-29 | (주)쉬프트웍스 | 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법 |
AU2011293160B2 (en) * | 2010-08-26 | 2015-04-09 | Verisign, Inc. | Method and system for automatic detection and analysis of malware |
KR101386605B1 (ko) | 2012-10-23 | 2014-04-21 | 순천향대학교 산학협력단 | 권한정보 관리를 통한 악성코드 탐지방법 |
US9171160B2 (en) * | 2013-09-30 | 2015-10-27 | Fireeye, Inc. | Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses |
US9736179B2 (en) * | 2013-09-30 | 2017-08-15 | Fireeye, Inc. | System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection |
CN105975857A (zh) * | 2015-11-17 | 2016-09-28 | 武汉安天信息技术有限责任公司 | 基于深度学习方法推断恶意代码规则的方法及系统 |
KR20170096451A (ko) | 2016-02-16 | 2017-08-24 | 한국인터넷진흥원 | 악성앱 동적 행위 분석 방법 및 장치 |
KR101872605B1 (ko) * | 2016-10-24 | 2018-06-28 | 주식회사 아이티스테이션 | 지능형 지속위협 환경의 네트워크 복구 시스템 |
-
2017
- 2017-11-22 KR KR1020170156281A patent/KR102016226B1/ko active IP Right Grant
-
2018
- 2018-01-30 US US15/884,085 patent/US10671729B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110023114A1 (en) * | 2009-07-22 | 2011-01-27 | Wael William Diab | Method and System For Traffic Management Via Virtual Machine Migration |
Non-Patent Citations (1)
Title |
---|
고용외 1인, ‘모바일 악성앱 행위 분석을 위한 Activity 기반 동적 분석 기법 연구’, 한국 인터넷 진흥원, 2016.01. |
Also Published As
Publication number | Publication date |
---|---|
KR20190058892A (ko) | 2019-05-30 |
US20190156035A1 (en) | 2019-05-23 |
US10671729B2 (en) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997291B2 (en) | Extending dynamic detection of malware using static and dynamic malware analyses | |
KR102011726B1 (ko) | 동적 로딩 파일 추출 방법 및 장치 | |
US9811663B2 (en) | Generic unpacking of applications for malware detection | |
US9645912B2 (en) | In-place function modification | |
CN110955431B (zh) | 编译环境的处理方法及装置 | |
CN101515320B (zh) | 一种攻击时漏洞检测方法及其系统 | |
US10133871B1 (en) | Method and system for identifying functional attributes that change the intended operation of a compiled binary extracted from a target system | |
US20220035905A1 (en) | Malware analysis through virtual machine forking | |
Sun et al. | {KSG}: Augmenting kernel fuzzing with system call specification generation | |
US11030074B2 (en) | Code update based on detection of change in runtime code during debugging | |
Kim et al. | Prof-gen: Practical study on system call whitelist generation for container attack surface reduction | |
KR102016226B1 (ko) | 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 | |
US20070168742A1 (en) | Isolating code modules | |
KR102535978B1 (ko) | 전이학습을 통한 적응형 모델 기반의 온 디바이스 안드로이드 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
KR101724412B1 (ko) | 확장 코드를 이용한 어플리케이션 분석 장치 및 방법 | |
CN101452379B (zh) | 内存空间的分析方法和装置、检查点的保留方法和装置 | |
CN114297089B (zh) | 基于容器的Python远程动态调试方法及系统 | |
US11886589B2 (en) | Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method | |
Entrup et al. | ARA: Automatic Instance-Level Analysis in Real-Time Systems | |
KR102416292B1 (ko) | 안드로이드 앱 동적 분석 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
KR102271273B1 (ko) | 네이티브 코드 분석방지 우회를 위한 프로세스 래핑 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
KR20240037569A (ko) | 악성 코드 탐지 장치 및 방법 | |
EP3598331A1 (en) | Extending dynamic detection of malware using static and dynamic malware analyses | |
KR20240009267A (ko) | 난독화된 탐지회피형 악성 스크립트 탐지 장치 및 방법 | |
CN117828600A (zh) | Android个人信息违规收集行为动态检测方法 |
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 |