KR102016226B1 - 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 - Google Patents

적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 Download PDF

Info

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
Application number
KR1020170156281A
Other languages
English (en)
Other versions
KR20190058892A (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 KR1020170156281A priority Critical patent/KR102016226B1/ko
Priority to US15/884,085 priority patent/US10671729B2/en
Publication of KR20190058892A publication Critical patent/KR20190058892A/ko
Application granted granted Critical
Publication of KR102016226B1 publication Critical patent/KR102016226B1/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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치가 개시된다. 적응형 동적 분석 방법은, 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법에 있어서, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행한다.

Description

적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치{METHOD FOR ADAPTIVE DYNAMIC ANALYSING, ADAPTIVE DYNAMIC ANALYSING PLATFORM, DEVICE EQUIPPED WITH THE SAME}
본 발명은 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치에 관한 것으로, 보다 상세하게는 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치에 관한 것이다.
최근 어플리케이션 악성코드 분석에 대응하여 파싱(parsing)을 방지하는 기술에 기반한 어플리케이션 분석, 추적 및 디버그 작업을 탐지할 수 있는 기술이 발달된 상태이다. 이에, 어플리케이션 분석가는 수동으로 샘플을 분석하고 해결책을 찾아야 하는 어려움을 겪고있다.
또한, 어플리케이션이 동작하기 위해서는 메인 액티비티 실행 후, 이전 액티비티에서 전달된 입력 값 또는 트리거에 의해 다음 액티비티가 실행되는데, 이러한 사전조건이 잘못된 경우 어플리케이션의 동작이 중단될 수 있다. 이와 같은 경우, 동적 분석이 제한적으로 수행되어 분석 결과가 제대로 제공될 수 없다. 아울러, 최근에는 악성코드가 일부 라이브러리 수행 후 동작하는 등 지능화되고 있다. 따라서, 이와 같은 기술의 발달에 따라 진화하고 있는 악성코드에 대비하기 위한 새로운 동적 분석 방식이 필요한 실정이다.
본 발명의 일측면은 작업 중지 기능을 이용하여 필요에 따라 분석 커버리지를 확장시키는 적응형 동적 분석 방법을 제공한다.
본 발명의 다른 측면은 실행중인 어플리케이션을 중지한 뒤 다음 액티비티 실행을 위한 실행 환경 업데이트를 실시하는 적응형 동적 분석 플랫폼을 제공한다.
본 발명의 일 측면에 따른 적응형 동적 분석 방법은, 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법에 있어서, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행한다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득하는 것일 수 있다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득하는 것일 수 있다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득하는 것일 수 있다.
또한, 상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은, 상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득하는 것일 수 있다.
또한, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하는 것은, 상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득하는 것일 수 있다.
한편, 본 발명의 다른 측면에 따른 적응형 동적 분석 플랫폼은, 리눅스 호스트 및 상기 리눅스 호스트에서 실행되는 컨테이너를 포함하고, 상기 리눅스 호스트는, 상기 컨테이너에서 실행되는 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행하는 동적 분석 프로세스를 포함한다.
또한, 상기 동적 분석 프로세스는, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득할 수 있다.
또한, 상기 리눅스 호스트는, 상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 더 포함할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득할 수 있다.
또한, 상기 동적 분석 프로세스는, 상기 어플리케이션에서 상기 현재 액티비티의 수행범위를 확인하여, 상기 어플리케이션의 추가 분석이 필요한지를 확인하는 것을 더 포함할 수 있다.
한편, 본 발명의 또 다른 측면은 적응형 동적 분석 플랫폼을 탑재한 장치일 수 있다.
상술한 본 발명의 일측면에 따르면 분석 커버리지를 확장시킴으로써 동적 분석을 위한 충분한 분석 정보 수집이 가능하며, 이에 보다 정확한 분석 결과를 도출할 수 있다.
상술한 본 발명의 다른 측면에 따르면 자동화 및 분석 범위가 향상된 동적 분석 샌드박스의 구현이 가능하다.
도 1은 본 발명의 일 실시예에 따른 적응형 동적 분석 플랫폼의 개념도이다.
도 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: 동적 분석 프로세스

Claims (15)

  1. 리눅스 호스트의 컨테이너 환경에서 실행되는 어플리케이션의 적응형 동적 분석 방법에 있어서,
    상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고,
    상기 분석 정보를 이용한 동적 분석을 수행하고,
    상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며,
    상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행하고,
    상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
    상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득하는 것인 적응형 동적 분석 방법.
  2. 제1항에 있어서,
    상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
    상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득하는 것인 적응형 동적 분석 방법.
  3. 제1항에 있어서,
    상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
    상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득하는 것인 적응형 동적 분석 방법.
  4. 제1항에 있어서,
    상기 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하는 것은,
    상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득하는 것인 적응형 동적 분석 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하는 것은,
    상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득하는 것인 적응형 동적 분석 방법.
  7. 리눅스 호스트; 및
    상기 리눅스 호스트에서 실행되는 컨테이너를 포함하고,
    상기 리눅스 호스트는,
    상기 컨테이너에서 실행되는 어플리케이션의 현재 액티비티의 실행을 중지한 뒤, 상기 어플리케이션의 악성코드 진단을 위한 분석 정보를 획득하고, 상기 분석 정보를 이용한 동적 분석을 수행하고, 상기 동적 분석 결과에 따라 다음 액티비티의 실행에 필요한 환경 정보를 획득하며, 상기 환경 정보를 반영하여 상기 어플리케이션의 실행 환경 업데이트를 실시한 뒤 상기 다음 액티비티가 실행될 수 있도록 상기 어플리케이션을 재실행하는 동적 분석 프로세스; 및
    상기 리눅스 호스트에서 컨테이너 환경을 구축하는 컨테이너 매니저 프로세스를 포함하는 적응형 동적 분석 플랫폼.
  8. 제7항에 있어서,
    상기 동적 분석 프로세스는,
    상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 so 파일을 포함하는 분석 정보를 획득하는 적응형 동적 분석 플랫폼.
  9. 제7항에 있어서,
    상기 동적 분석 프로세스는,
    상기 어플리케이션의 현재 액티비티 실행에 따라 상기 리눅스 호스트의 컨테이너에 생성되는 dex 파일을 포함하는 분석 정보를 획득하는 적응형 동적 분석 플랫폼.
  10. 제7항에 있어서,
    상기 동적 분석 프로세스는,
    상기 현재 액티비티의 트레이싱(tracing) 정보를 포함하는 분석 정보를 획득하는 적응형 동적 분석 플랫폼.
  11. 삭제
  12. 제7항에 있어서,
    상기 동적 분석 프로세스는,
    상기 컨테이너 매니저 프로세스를 제어하여 상기 현재 액티비티의 실행을 중지한 뒤, 상기 컨테이너 환경에서 실행되는 어플리케이션 프로세스에 접근하여 상기 분석 정보를 획득하는 적응형 동적 분석 플랫폼.
  13. 제7항에 있어서,
    상기 동적 분석 프로세스는,
    상기 동적 분석 결과, 상기 어플리케이션의 동적 분석에 필요한 추가 분석 정보 획득을 위한 분석 커버리지 확장이 필요한지를 확인하는 것을 더 포함하고, 상기 분석 커버리지 확장이 필요하면 상기 환경 정보를 획득하는 적응형 동적 분석 플랫폼.
  14. 제7항에 있어서,
    상기 동적 분석 프로세스는,
    상기 어플리케이션에서 상기 현재 액티비티의 수행범위를 확인하여, 상기 어플리케이션의 추가 분석이 필요한지를 확인하는 것을 더 포함하는 적응형 동적 분석 플랫폼.
  15. 제7항 내지 제10항, 제12항 내지 제14항 중 어느 하나의 항에 따른 적응형 동적 분석 플랫폼을 탑재한 장치.
KR1020170156281A 2017-11-22 2017-11-22 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치 KR102016226B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322408B1 (ko) * 2020-12-07 2021-11-05 주식회사 샌즈랩 서버 자원을 이용한 악성 코드 탐지 및 치료가 가능한 사물 인터넷 장치 및 그 방법

Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 주식회사 아이티스테이션 지능형 지속위협 환경의 네트워크 복구 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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