KR102011726B1 - 동적 로딩 파일 추출 방법 및 장치 - Google Patents

동적 로딩 파일 추출 방법 및 장치 Download PDF

Info

Publication number
KR102011726B1
KR102011726B1 KR1020170137213A KR20170137213A KR102011726B1 KR 102011726 B1 KR102011726 B1 KR 102011726B1 KR 1020170137213 A KR1020170137213 A KR 1020170137213A KR 20170137213 A KR20170137213 A KR 20170137213A KR 102011726 B1 KR102011726 B1 KR 102011726B1
Authority
KR
South Korea
Prior art keywords
file
deleted
android container
application
extension
Prior art date
Application number
KR1020170137213A
Other languages
English (en)
Other versions
KR20190044820A (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 KR1020170137213A priority Critical patent/KR102011726B1/ko
Priority to US15/866,059 priority patent/US10467413B2/en
Publication of KR20190044820A publication Critical patent/KR20190044820A/ko
Application granted granted Critical
Publication of KR102011726B1 publication Critical patent/KR102011726B1/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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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

Landscapes

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

Abstract

동적 로딩 파일 추출 방법 및 장치가 개시된다. 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일 추출 방법에 있어서, 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 중요 확장자를 갖는 파일을 추출하고, 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 2차 분석 결과에 따라 어플리케이션을 재실행시켜 삭제 파일을 추출한다.

Description

동적 로딩 파일 추출 방법 및 장치{METHOD AND APPARATUS FOR EXTRACTING SPECIFIC DYNAMIC GENERATED FILE}
본 발명은 동적 로딩 파일 추출 방법 및 장치에 관한 것으로, 보다 상세하게는 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일 추출 방법 및 장치에 관한 것이다.
최근 안드로이드 악성 어플리케이션들은 기존의 분석을 우회하기 위해 지능화되고 있다. 대표적으로는, 악의적인 코드를 숨기기 위해 동적 로딩 기법이 적용된 악성 어플리케이션이 있다. 악성 어플리케이션에 동적 로딩 기법이 적용된 경우, 어플리케이션이 실행된 이후에 동적 로딩 파일을 통하여 악성행위를 수행한다. 이를 위해, 악성 어플리케이션에 DEX 파일, jar 파일, APK 파일 등을 암호화하거나, C&C 서버에서 동적 로딩 파일을 다운 받은 후에 바로 삭제하는 방식이 적용된다. 이와 같은 동적 로딩 기법이 적용된 악성 어플리케이션을 분석하기 위해서는 동적 로딩에 사용되는 파일을 추출하는 것이 중요한 요소이다.
그러나, 동적 로딩에 사용되는 파일 추출을 위해 어플리케이션의 모든 생성 파일을 추출한다면, cache 파일, data 저장 파일 등 실제 분석에 불필요한 파일을 포함한 많은 파일이 추출되므로, 실제 분석에 필요한 파일만을 추출하기 위한 기법이 필요하다. 아울러, 상술한 바와 같이 동적 로딩에 사용되는 파일 중 동적 로딩 후 삭제되는 경우가 존재하여 분석 작업에 있어서 방해를 주고 있는 실정이다. 이에, 네트워크 분석을 이용하는 방식이 제안된바 있으나, 제대로 된 정보를 획득하기 어려워 어떤 파일이 유출되었는지에 대한 확인이 어렵다.
본 발명의 일측면은 실제 분석에 필요한 중요 확장자를 갖는 파일 및 동적 로딩 후 삭제되는 파일을 추출하는 동적 로딩 파일 추출 방법을 제공한다.
본 발명의 다른 측면은 어플리케이션 생성 파일의 확장자 비교의 1차 분석 및 동적 로딩 후 삭제 파일을 확인하는 2차 분석을 수행하여 파일 추출을 수행하는 동적 로딩 파일 장치를 제공한다.
본 발명의 일 측면에 따른 동적 로딩 파일 추출 방법은, 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일 추출 방법에 있어서, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 중요 확장자를 갖는 파일을 추출하고, 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 동적 로딩 파일 추출 한다.
또한, 상기 어플리케이션의 실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 확인할 수 있도록 상기 안드로이드 컨테이너를 모니터링하는 것을 더 포함할 수 있다.
또한, 추출한 파일을 별도의 경로에 저장하는 것을 더 포함할 수 있다.
또한, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 상기 중요 확장자를 갖는 파일을 추출하는 것은, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자인 DEX, jar, zip, APK 및 SO 중 어느 하나에 해당하는지를 확인하는 1차 분석을 수행하고, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자에 해당하면 해당 파일을 추출하는 것일 수 있다.
또한, 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하는 것은, 상기 안드로이드 컨테이너가 실행되는 리눅스 호스트에 마련되는 메모리 로그에 삭제 로그가 존재하는지를 확인하고, 상기 삭제 로그가 존재하면 상기 삭제 로그로부터 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일의 파일명 및 저장 경로를 확인하는 2차 분석을 수행하는 것일 수 있다.
또한, 상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것은, 상기 2차 분석 결과 상기 삭제 파일이 존재하면, 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것일 수 있다.
또한, 상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것은, 상기 2차 분석 결과 상기 삭제 파일이 미존재하면 파일 추출을 종료하는 것을 더 포함할 수 있다.
또한, 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것은, 상기 2차 분석을 수행하여 상기 삭제 파일의 파일명 및 저장 경로를 확인하고, 상기 어플리케이션의 재실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 모니터링하여 상기 삭제 파일의 저장 경로에 상기 삭제 파일이 저장되는 순간 상기 삭제 파일을 추출하는 것일 수 있다.
한편, 본 발명의 다른 측면에 따른 동적 로딩 파일 추출 장치는, 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일 추출 장치에 있어서, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 중요 확장자를 갖는 파일을 추출하는 제1 추출부; 및 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 제2 추출부를 포함한다.
또한, 상기 어플리케이션의 실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 확인할 수 있도록 상기 안드로이드 컨테이너를 모니터링하는 모니터링부를 더 포함할 수 있다.
또한, 상기 제1 추출부 및 상기 제2 추출부에서 추출한 파일을 별도의 경로에 저장하는 파일 저장부를 더 포함할 수 있다.
또한, 상기 제1 추출부는, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자인 DEX, jar, zip, APK 및 SO 중 어느 하나에 해당하는지를 확인하는 1차 분석을 수행하고, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자에 해당하면 해당 파일을 추출할 수 있다.
또한, 상기 제2 추출부는, 상기 안드로이드 컨테이너가 실행되는 리눅스 호스트에 마련되는 메모리 로그에 삭제 로그가 존재하는지를 확인하고, 상기 삭제 로그가 존재하면 상기 삭제 로그로부터 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일의 파일명 및 저장 경로를 확인하는 2차 분석을 수행할 수 있다.
또한, 상기 제2 추출부는, 상기 2차 분석 결과 상기 삭제 파일이 존재하면, 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하고, 상기 2차 분석 결과 상기 삭제 파일이 미존재하면 파일 추출을 종료하는 것을 더 포함할 수 있다.
또한, 상기 제2 추출부는, 상기 2차 분석을 수행하여 상기 삭제 파일의 파일명 및 저장 경로를 확인하고, 상기 어플리케이션의 재실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 모니터링하여 상기 삭제 파일의 저장 경로에 상기 삭제 파일이 저장되는 순간 상기 삭제 파일을 추출할 수 있다.
상술한 본 발명의 일측면에 따르면 실제적으로 악성 어플리케이션 분석에 필요한 파일만을 추출할 수 있으므로 분석의 효율을 높일 수 있으며, 동적 로딩 후 삭제되는 파일에 대한 추가 분석이 가능하다.
상술한 본 발명의 다른 측면에 따르면 중요 확장자를 갖는 파일 및 동적 로딩 후 삭제되는 파일을 확인하여 어떤 정보를 탈취하려는 목적을 가진 악성앱인지 판단할 수 있어 보다 정확한 어플리케이션 분석 결과를 도출할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치가 포함된 어플리케이션 분석 시스템의 개념도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치의 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치의 제어 블록도이다.
도 5는 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치에서의 동적 로딩 파일 추출 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계 및 동작은 하나 이상의 다른 구성요소, 단계 및 동작의 존재 또는 추가를 배제하지 않는다.
도 1은 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치가 포함된 어플리케이션 분석 시스템의 개념도이다.
도 1을 참조하면, 어플리케이션 분석 시스템(1000)은 서버(10), 리눅스 호스트(20), 안드로이드 컨테이너(30) 및 동적 로딩 파일 추출 장치(100)를 포함할 수 있다.
어플리케이션 분석 시스템(1000)은 컨테이너 기술을 적용하여 리눅스 호스트(20)에서 안드로이드 컨테이너(30)를 실행시킬 수 있다. 컨테이너 기술은 명칭 공간(namespace) 및 컨트롤그룹(cgroups)을 이용하여 운영 시스템 레벨의 격리된 가상공간을 제공하는 기술이다. 어플리케이션 분석 시스템(1000)은 리눅스 호스트(20)에서 안드로이드 컨테이너(30)를 실행시켜 어플리케이션 분석을 위한 안드로이드 컨테이너(30) 환경을 구축할 수 있다.
어플리케이션 분석 시스템(1000)은 서버(10)로부터 분석할 어플리케이션의 실행 파일을 다운로드하여 안드로이드 컨테이너(30)에서 실행시킬 수 있다. 악성 어플리케이션의 경우, 어플리케이션 실행 이후에 로딩되어 악성 행위를 수행하는 동적 로딩 파일을 포함할 수 있다. 이에, 악성 어플리케이션이 안드로이드 컨테이너(30)에서 실행되면 동적 로딩 파일이 특정 경로에 저장 및 로딩되어 악성 행위를 실행할 수 있다. 아울러, 특정 경로에 저장되었던 동적 로딩 파일은 로딩된 이후 삭제될 수 있다.
본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치(100)는 이러한 어플리케이션 분석 시스템(1000)에 포함되어, 안드로이드 컨테이너(30)에서 실행되는 어플리케이션의 악성 행위에 사용되는 동적 로딩 파일을 추출할 수 있다. 어플리케이션 분석 시스템(1000)은 동적 로딩 파일 추출 장치(100)에서 추출하는 동적 로딩 파일을 분석하여, 보다 정확한 어플리케이션 분석 결과를 도출할 수 있다.
이하, 어플리케이션 분석 시스템(1000)에서의 동적 로딩 파일 추출 장치(100)의 동적 로딩 파일 추출 동작에 대하여 설명하기로 한다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치의 동작을 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치(100)는 두 가지 방식으로 동적 로딩 파일을 추출할 수 있다. 먼저, 동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)의 특정 경로에 저장되는 파일의 확장자 비교를 통해 동적 로딩 파일을 추출할 수 있다. 또한, 동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에 저장되었다가 삭제되는 파일을 확인하고, 해당 파일을 동적 로딩 파일로 추출할 수 있다.
구체적으로는, 도 2를 참조하면, 동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에서 어플리케이션이 실행됨에 따라 특정 경로에 저장되는 파일을 모니터링할 수 있다. 동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)의 특정 경로에 저장되는 파일 중 미리 설정되는 중요 확장자를 갖는 파일을 동적 로딩 파일로 추출할 수 있다.
도 3을 참조하면, 동적 로딩 파일 추출 장치(100)는 리눅스 호스트(20)로부터 안드로이드 컨테이너(30)에서 저장되었다가 삭제된 파일인 삭제 파일의 파일명 및 그 저장 경로 정보를 획득할 수 있다. 동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에서 어플리케이션을 재실행시킬 수 있다. 동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에서 어플리케이션이 재실행됨에 따라 특정 경로에 저장되는 파일을 모니터링할 수 있다. 동적 로딩 파일 추출 장치(100)는 리눅스 호스트(20)로부터 획득한 정보에 따라 안드로이드 컨테이너(30)의 특정 경로에 삭제 파일이 저장되는 순간 해당 삭제 파일을 동적 로딩 파일로 추출할 수 있다.
이하에서는, 도 4를 참조하여 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치(100)에 대하여 구체적으로 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 장치(100)의 제어 블록도이다.
도 4를 참조하면, 동적 로딩 파일 추출 장치(100)는 모니터링부(110), 제1 추출부(120), 제2 추출부(130) 및 파일 저장부(140)를 포함할 수 있다. 동적 로딩 파일 추출 장치(100)는 도 1에 도시된 바와 같이 어플리케이션 분석 시스템(1000)에 포함되어, 리눅스 호스트 기반의 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일을 추출할 수 있다.
모니터링부(110)는 안드로이드 컨테이너(30)에서 어플리케이션이 실행되면 안드로이드 컨테이너(30)의 모니터링을 수행할 수 있다. 모니터링부(110)는 안드로이드 컨테이너(30)에 저장되는 파일의 파일명 및 저장 경로를 모니터링할 수 있다.
제1 추출부(120)는 안드로이드 컨테이너(30)에 저장되는 파일의 확장자를 비교하는 1차 분석을 수행하고, 그 결과에 따라 파일을 추출할 수 있다.
구체적으로는, 제1 추출부(120)는 모니터링부(110)를 통해 어플리케이션이 실행됨에 따라 안드로이드 컨테이너(30)의 특정 경로에 저장되는 파일의 확장자를 확인할 수 있다. 제1 추출부(120)는 안드로이드 컨테이너(30)의 특정 경로에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 비교하는 1차 분석을 수행할 수 있다. 여기서, 중요 확장자는 DEX, jar, zip, APK 및 SO 로 설정될 수 있다. 악성 어플리케이션에 동적 로딩 기법이 적용된 경우, 명령을 통하여 새로운 파일을 생성할 수 있도록 DEX 파일, jar 파일, APK 파일 등의 실행 파일을 암호화하기 때문이다. 이에, 제1 추출부(120)는 어플리케이션의 다수의 실행 파일 중 실제적으로 분석이 필요한 중요 확장자인 DEX, jar, zip, APK 및 SO 중 어느 하나를 갖는 실행 파일만을 추출할 수 있다.
제2 추출부(130)는 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일을 확인하는 2차 분석을 수행하고, 그 결과에 따라 어플리케이션을 재실행시켜 파일을 추출할 수 있다.
구체적으로는, 제2 추출부(130)는 안드로이드 컨테이너(30)가 실행되는 리눅스 호스트(20)에 마련되는 메모리 로그에 삭제(delete) 로그가 발생하였는지를 확인하는 방식으로, 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일이 존재하는지를 확인할 수 있다. 제2 추출부(130)는 리눅스 호스트(20)의 메모리 로그에 삭제 로그가 존재하면 해당 삭제 로그에 대응하는 파일의 파일명 및 해당 파일이 저장되었던 경로를 확인할 수 있다. 이처럼 제2 추출부(130)는 어플리케이션이 실행됨에 따라 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일인 삭제 파일의 파일명 및 저장 경로를 확인하는 2차 분석을 수행할 수 있다.
제2 추출부(130)는 2차 분석 결과, 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일인 삭제 파일이 존재하는 것으로 확인되면, 서버(10)로부터 어플리케이션을 재다운로드받아 안드로이드 컨테이너(30)에서 실행시킬 수 있다. 제2 추출부(130)는 안드로이드 컨테이너(30)에서 어플리케이션이 재실행되면, 모니터링부(110)를 통해 2차 분석으로부터 확인되는 삭제 파일의 저장 경로에, 해당 삭제 파일의 파일명을 갖는 파일이 저장되는지를 확인할 수 있다. 제2 추출부(130)는 안드로이드 컨테이너(30)에 삭제 파일이 저장되는 순간 해당 파일을 추출할 수 있다. 악성 어플리케이션에 동적 로딩 기법이 적용된 경우, 악성 코드를 숨기기 위해 C&C 서버에서 동적 로딩에 사용되는 파일을 다운 받은 후에 바로 삭제하는 경우가 발생할 수 있다. 제2 추출부(130)는 이와 같은 악성 어플리케이션에서 동적 로딩에 사용되나 바로 삭제되는 파일인 삭제 파일을 추출할 수 있다.
제2 추출부(130)는 2차 분석 결과, 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일인 삭제 파일이 미존재하는 것으로 확인되면, 파일 추출을 종료할 수 있다.
파일 저장부(140)는 제1 추출부(120) 및 제2 추출부(130)에서 추출하는 파일을 별도의 경로에 저장할 수 있다. 파일 저장부(140)는 제1 추출부(120)에서 추출하는 중요 확장자를 갖는 파일을 별도의 경로에 저장할 수 있다. 파일 저장부(140)는 제2 추출부(130)에서 추출하는 삭제 파일을 별도의 경로에 저장할 수 있다. 파일 저장부(140)는 제1 추출부(120) 및 제2 추출부(130)에서 추출하는 파일을 예를 들면, 리눅스 호스트(20)의 SD 카드 영역에 저장할 수 있다.
이하에서는, 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 방법에 대하여 설명하기로 한다. 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 방법은 도 1에 도시된 동적 로딩 파일 추출 장치(100)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1의 동적 로딩 파일 추출 장치(100)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략하기로 한다.
도 5는 본 발명의 일 실시예에 따른 동적 로딩 파일 추출 방법의 순서도이다.
도 5를 참조하면, 동적 로딩 파일 추출 장치(100)는 어플리케이션이 실행되는 안드로이드 컨테이너(30)를 모니터링할 수 있다(500). 동적 로딩 파일 추출 장치(100)는 모니터링부(110)를 통해 안드로이드 컨테이너(30)에 저장되는 파일의 파일명 및 저장 경로를 모니터링할 수 있다.
동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에 저장된 파일의 확장자가 중요 확장자로 확인되면(510), 중요 확장자를 갖는 파일을 추출할 수 있다(520). 동적 로딩 파일 추출 장치(100)는 제1 추출부(120)를 통해 안드로이드 컨테이너(30)에 저장된 파일의 확장자가 미리 설정된 중요 확장자인 DEX, jar, zip, APK 및 SO 중 어느 하나에 해당하는지를 확인하는 1차 분석을 수행하고, 미리 설정된 중요 확장자를 갖는 파일을 동적 로딩 파일로 추출할 수 있다.
동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일인 삭제 파일이 존재하는지를 확인할 수 있다(530). 동적 로딩 파일 추출 장치(100)는 리눅스 호스트(20)에 마련되는 메모리 로그를 통해 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일이 존재하는지를 확인할 수 있다.
동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일인 삭제 파일이 존재하는 것으로 확인되면(530), 삭제 파일의 파일명 및 저장 경로를 확인할 수 있다(540). 동적 로딩 파일 추출 장치(100)는 제2 추출부(130)를 통해 안드로이드 컨테이너(30)에 저장되었다가 삭제된 파일인 삭제 파일의 파일명 및 저장 경로를 확인하는 2차 분석을 수행할 수 있다.
동적 로딩 파일 추출 장치(100)는 안드로이드 컨테이너(30)에서 어플리케이션을 재실행시키고(550), 안드로이드 컨테이너(30)를 모니터링할 수 있다(560).
동적 로딩 파일 추출 장치(100)는 2차 분석을 통해 확인된 저장 경로에 삭제 파일이 저장되면(570), 삭제 파일을 추출할 수 있다(580).
동적 로딩 파일 추출 장치(100)는 추출된 파일을 별도의 저장 경로에 저장할 수 있다(590). 동적 로딩 파일 추출 장치(100)는 중요 확장자를 갖는 파일 또는 삭제 파일을 별도의 저장 경로, 일예로, 리눅스 호스트(20)의 SD 카드 영역에 저장할 수 있다.
이와 같은, 동적 로딩 파일 추출 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1000: 어플리케이션 분석 시스템
10: 서버
20: 리눅스 호스트
30: 안드로이드 컨테이너
100: 동적 로딩 파일 추출 장치

Claims (15)

  1. 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일 추출 방법에 있어서,
    상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 중요 확장자를 갖는 파일을 추출하고,
    상기 안드로이드 컨테이너가 실행되는 리눅스 호스트에 마련되는 메모리 로그를 이용하여 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 상기 2차 분석 결과에 따라 서버로부터 상기 어플리케이션을 재다운로드받아 상기 안드로이드 컨테이너에서 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는동적 로딩 파일 추출 방법.
  2. 제1항에 있어서,
    상기 어플리케이션의 실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 확인할 수 있도록 상기 안드로이드 컨테이너를 모니터링하는 것을 더 포함하는 동적 로딩 파일 추출 방법.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    추출한 파일을 별도의 경로에 저장하는 것을 더 포함하는 동적 로딩 파일 추출 방법.
  4. 제1항에 있어서,
    상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 상기 중요 확장자를 갖는 파일을 추출하는 것은,
    상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자인 DEX, jar, zip, APK 및 SO 중 어느 하나에 해당하는지를 확인하는 1차 분석을 수행하고, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자에 해당하면 해당 파일을 추출하는 것인 동적 로딩 파일 추출 방법.
  5. 제1항에 있어서,
    상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하는 것은,
    상기 안드로이드 컨테이너가 실행되는 리눅스 호스트에 마련되는 메모리 로그에 삭제 로그가 존재하는지를 확인하고, 상기 삭제 로그가 존재하면 상기 삭제 로그로부터 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일의 파일명 및 저장 경로를 확인하는 2차 분석을 수행하는 것인 동적 로딩 파일 추출 방법.
  6. 제1항에 있어서,
    상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것은,
    상기 2차 분석 결과 상기 삭제 파일이 존재하면, 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것인 동적 로딩 파일 추출 방법.
  7. 제6항에 있어서,
    상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것은,
    상기 2차 분석 결과 상기 삭제 파일이 미존재하면 파일 추출을 종료하는 것을 더 포함하는 동적 로딩 파일 추출 방법.
  8. 제1항에 있어서,
    상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 상기 2차 분석 결과에 따라 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 것은,
    상기 2차 분석을 수행하여 상기 삭제 파일의 파일명 및 저장 경로를 확인하고, 상기 어플리케이션의 재실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 모니터링하여 상기 삭제 파일의 저장 경로에 상기 삭제 파일이 저장되는 순간 상기 삭제 파일을 추출하는 것인 동적 로딩 파일 추출 방법.
  9. 안드로이드 컨테이너 환경에서 실행되는 어플리케이션의 동적 로딩 파일 추출 장치에 있어서,
    상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 미리 설정되는 중요 확장자에 해당하는지를 확인하는 1차 분석을 수행하여 중요 확장자를 갖는 파일을 추출하는 제1 추출부; 및
    상기 안드로이드 컨테이너가 실행되는 리눅스 호스트에 마련되는 메모리 로그를 이용하여 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일인 삭제 파일을 확인하는 2차 분석을 수행하고, 상기 2차 분석 결과에 따라 서버로부터 상기 어플리케이션을 재다운로드받아 상기 안드로이드 컨테이너에서 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하는 제2 추출부를 포함하는 동적 로딩 파일 추출 장치.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 어플리케이션의 실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 확인할 수 있도록 상기 안드로이드 컨테이너를 모니터링하는 모니터링부를 더 포함하는 동적 로딩 파일 추출 장치.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 제1 추출부 및 상기 제2 추출부에서 추출한 파일을 별도의 경로에 저장하는 파일 저장부를 더 포함하는 동적 로딩 파일 추출 장치.
  12. 제9항에 있어서,
    상기 제1 추출부는,
    상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자인 DEX, jar, zip, APK 및 SO 중 어느 하나에 해당하는지를 확인하는 1차 분석을 수행하고, 상기 안드로이드 컨테이너에 저장되는 파일의 확장자가 상기 중요 확장자에 해당하면 해당 파일을 추출하는 동적 로딩 파일 추출 장치.
  13. 제9항에 있어서,
    상기 제2 추출부는,
    상기 안드로이드 컨테이너가 실행되는 리눅스 호스트에 마련되는 메모리 로그에 삭제 로그가 존재하는지를 확인하고, 상기 삭제 로그가 존재하면 상기 삭제 로그로부터 상기 안드로이드 컨테이너에 저장되었다가 삭제된 파일의 파일명 및 저장 경로를 확인하는 2차 분석을 수행하는 동적 로딩 파일 추출 장치.
  14. 제9항에 있어서,
    상기 제2 추출부는,
    상기 2차 분석 결과 상기 삭제 파일이 존재하면, 상기 어플리케이션을 재실행시켜 상기 삭제 파일을 추출하고, 상기 2차 분석 결과 상기 삭제 파일이 미존재하면 파일 추출을 종료하는 것을 더 포함하는 동적 로딩 파일 추출 장치.
  15. 제9항에 있어서,
    상기 제2 추출부는,
    상기 2차 분석을 수행하여 상기 삭제 파일의 파일명 및 저장 경로를 확인하고, 상기 어플리케이션의 재실행에 따라 상기 안드로이드 컨테이너에 저장되는 파일의 파일명 및 저장 경로를 모니터링하여 상기 삭제 파일의 저장 경로에 상기 삭제 파일이 저장되는 순간 상기 삭제 파일을 추출하는 동적 로딩 파일 추출 장치.
KR1020170137213A 2017-10-23 2017-10-23 동적 로딩 파일 추출 방법 및 장치 KR102011726B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170137213A KR102011726B1 (ko) 2017-10-23 2017-10-23 동적 로딩 파일 추출 방법 및 장치
US15/866,059 US10467413B2 (en) 2017-10-23 2018-01-09 Method and apparatus of dynamic loading file extraction for an application running in an android container

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170137213A KR102011726B1 (ko) 2017-10-23 2017-10-23 동적 로딩 파일 추출 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190044820A KR20190044820A (ko) 2019-05-02
KR102011726B1 true KR102011726B1 (ko) 2019-08-19

Family

ID=66169390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170137213A KR102011726B1 (ko) 2017-10-23 2017-10-23 동적 로딩 파일 추출 방법 및 장치

Country Status (2)

Country Link
US (1) US10467413B2 (ko)
KR (1) KR102011726B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392467B2 (en) 2019-04-17 2022-07-19 Microsoft Technology Licensing, Llc Failover between decentralized identity stores
US11190512B2 (en) 2019-04-17 2021-11-30 Microsoft Technology Licensing, Llc Integrity attestation of attestation component
US11381567B2 (en) 2019-04-29 2022-07-05 Microsoft Technology Licensing, Llc Execution of an application within a scope of user-granted permission
US11429743B2 (en) 2019-04-29 2022-08-30 Microsoft Technology Licensing, Llc Localization of DID-related claims and data
US11003771B2 (en) 2019-05-03 2021-05-11 Microsoft Technology Licensing, Llc Self-help for DID claims
US11222137B2 (en) 2019-05-03 2022-01-11 Microsoft Technology Licensing, Llc Storing and executing an application in a user's personal storage with user granted permission
US11411959B2 (en) * 2019-05-03 2022-08-09 Microsoft Technology Licensing, Llc Execution of application in a container within a scope of user-granted permission
CN112269604B (zh) * 2020-11-11 2021-06-01 北京技德系统技术有限公司 在Linux上兼容运行Android应用的窗口交互方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476222B1 (ko) 2013-12-31 2014-12-30 권용구 보안저장장치를 구비하는 저장 시스템 및 그 관리 방법
KR101623508B1 (ko) * 2015-02-26 2016-05-23 국민대학교산학협력단 삭제된 이벤트 로그 파일을 복원하는 시스템 및 방법
KR101628837B1 (ko) * 2014-12-10 2016-06-10 고려대학교 산학협력단 악성 어플리케이션 또는 악성 웹사이트 탐지 방법 및 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340487B2 (en) * 2004-08-18 2008-03-04 International Business Machines Corporation Delayed deletion of extended attributes
JP5055853B2 (ja) * 2006-06-26 2012-10-24 富士通セミコンダクター株式会社 ファイル管理装置及び電子機器
KR100954603B1 (ko) * 2008-05-16 2010-04-26 주식회사 휴원 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
KR101161493B1 (ko) 2010-01-18 2012-06-29 (주)쉬프트웍스 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법
US8990272B2 (en) * 2010-07-30 2015-03-24 Nasuni Corporation Versioned file system with pruning
KR101295644B1 (ko) 2011-11-11 2013-09-16 한국전자통신연구원 스마트폰 앱 검증 시스템 및 그 방법
US9495377B2 (en) * 2012-09-12 2016-11-15 International Business Machines Corporation Secure deletion operations in a wide area network
JP2014109821A (ja) * 2012-11-30 2014-06-12 Canon Inc 情報処理装置、情報処理方法及びプログラム
US9001064B2 (en) * 2012-12-14 2015-04-07 Barnesandnoble.Com Llc Touch sensitive device with pinch-based archive and restore functionality
KR20140121743A (ko) * 2013-04-08 2014-10-16 남기훈 행위 기반 시뮬레이션에 의한 모바일 포렌식 방법
US10268400B2 (en) * 2015-09-03 2019-04-23 Sandisk Technologies Llc System and method for file detection and usage during compaction
KR20170096451A (ko) 2016-02-16 2017-08-24 한국인터넷진흥원 악성앱 동적 행위 분석 방법 및 장치
US10747719B2 (en) * 2017-09-22 2020-08-18 Microsoft Technology Licensing, Llc File system point-in-time restore using recycle bin and version history

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101476222B1 (ko) 2013-12-31 2014-12-30 권용구 보안저장장치를 구비하는 저장 시스템 및 그 관리 방법
KR101628837B1 (ko) * 2014-12-10 2016-06-10 고려대학교 산학협력단 악성 어플리케이션 또는 악성 웹사이트 탐지 방법 및 시스템
KR101623508B1 (ko) * 2015-02-26 2016-05-23 국민대학교산학협력단 삭제된 이벤트 로그 파일을 복원하는 시스템 및 방법

Also Published As

Publication number Publication date
US10467413B2 (en) 2019-11-05
KR20190044820A (ko) 2019-05-02
US20190121980A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
KR102011726B1 (ko) 동적 로딩 파일 추출 방법 및 장치
TWI547874B (zh) 虛擬機器影像分析
US10885201B2 (en) Apparatus for quantifying security of open-source software package, and apparatus and method for optimizing open-source software package
RU2409838C2 (ru) Архивирование данных в виртуальном прикладном окружении
US9063766B2 (en) System and method of manipulating virtual machine recordings for high-level execution and replay
US9811663B2 (en) Generic unpacking of applications for malware detection
WO2015078333A1 (zh) 虚拟机镜像离线升级方法
WO2019099008A1 (en) Software builds using a cloud system
US20140298002A1 (en) Method and device for identifying a disk boot sector virus, and storage medium
KR101992066B1 (ko) 컨테이너 관리 방법 및 장치
KR101724412B1 (ko) 확장 코드를 이용한 어플리케이션 분석 장치 및 방법
KR102173151B1 (ko) 원본코드 자동추출장치 및 원본코드 자동추출방법
WO2017020460A1 (zh) 一种集成插件的方法和装置
KR102415494B1 (ko) 에뮬레이션 기반의 임베디드 기기 취약점 점검 및 검증 방법
US20240061931A1 (en) Executable file unpacking system and method for static analysis of malicious code
KR102016226B1 (ko) 적응형 동적 분석 방법, 적응형 동적 분석 플랫폼 및 이를 탑재한 장치
CN108717509B (zh) 一种在沙箱中提取程序衍生物的方法、装置、设备及可读介质
CN113127874A (zh) 内网敏感信息处理方法及装置
KR102128658B1 (ko) 핫 패칭 기술을 이용한 실행 파일 압축 방법 및 그 장치
KR101480244B1 (ko) 클래스 단위의 시그니처를 이용한 악성 어플리케이션 탐지 방법 및 장치
KR102459269B1 (ko) 이진 분석을 수행하는 소프트웨어 패키징 장치, 방법 및 이를 수행하기 위한 프로그램이 기록된 기록매체
KR102271273B1 (ko) 네이티브 코드 분석방지 우회를 위한 프로세스 래핑 방법, 이를 수행하기 위한 기록 매체 및 장치
CN117290169A (zh) 一种分布式存储环境下的磁盘故障模拟及恢复方法与系统
CN112988563A (zh) 污点动态分析方法和装置

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