KR101803888B1 - 유사도 기반 악성 어플리케이션 탐지 방법 및 장치 - Google Patents

유사도 기반 악성 어플리케이션 탐지 방법 및 장치 Download PDF

Info

Publication number
KR101803888B1
KR101803888B1 KR1020170008681A KR20170008681A KR101803888B1 KR 101803888 B1 KR101803888 B1 KR 101803888B1 KR 1020170008681 A KR1020170008681 A KR 1020170008681A KR 20170008681 A KR20170008681 A KR 20170008681A KR 101803888 B1 KR101803888 B1 KR 101803888B1
Authority
KR
South Korea
Prior art keywords
malicious
application
hash value
similarity
source code
Prior art date
Application number
KR1020170008681A
Other languages
English (en)
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 KR1020170008681A priority Critical patent/KR101803888B1/ko
Application granted granted Critical
Publication of KR101803888B1 publication Critical patent/KR101803888B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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

Landscapes

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

Abstract

본 발명의 일 태양에 따른 악성 어플리케이션 탐지 방법은, 악성 어플리케이션 탐지 장치가, 어플리케이션의 소스 코드를 추출하는 단계; 상기 악성 어플리케이션 탐지 장치가, 상기 소스 코드를 전처리하여 메서드(Method) 기반의 해시값을 추출하는 단계; 상기 악성 어플리케이션 탐지 장치가, 상기 해시값과 기존에 악성으로 판단한 어플리케이션에서 추출한 메서드 기반의 해시값을 비교하여 유사도를 연산하는 단계; 및 상기 악성 어플리케이션 탐지 장치가, 상기 유사도를 이용하여 악성 여부를 판단하는 단계를 포함할 수 있다.

Description

유사도 기반 악성 어플리케이션 탐지 방법 및 장치 {Method and apparatus for detecting malicious application based on similarity}
본 발명은 유사도를 기반으로 악성 어플리케이션을 탐지하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는 악성 모바일 어플리케이션으로 판정된 어플리케이션과의 유사도를 기반으로 신종 모바일 어플리케이션의 악성 여부를 탐지하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
대한민국에 2009년 말 출시된 애플의 아이폰(iPhone)과 그 이후 등장한 삼성의 갤럭시로 대표되는 안드로이드(Android) 기반의 스마트 폰은 혁명적인 변화를 불러왔다. 이러한 스마트 기기와 이에 기반한 다양한 모바일 어플리케이션(Application)의 출현은 삶의 패턴을 변화 시켰다.
그러나 모바일 어플리케이션이 활성화 되고 널리 퍼지면서, 악의적인 공격 도구로 활용되는 사례가 증가하였다. 특히 아이폰의 iOS 운영체제의 경우 애플의 폐쇄적인 마켓(market) 정책으로 인해 상대적으로 덜 하지만, 구글의 안드로이드 운영체제의 경우 구글의 개방적인 마켓 정책으로 인해 다양한 악성 어플리케이션이 배포되고 있다.
특히, 안드로이드 계열 어플리케이션의 악성 어플리케이션 유통 과정을 살펴보면, 기존의 모바일 어플리케이션에 악성 코드를 삽입하여 재배포 하는 리패키징(Repackaging) 방식이 주를 이루고 있다. 모바일 어플리케이션의 수명이 매우 짧고, 매일 수많은 새로운 어플리케이션이 등장하기 때문에, 손쉽게 악성 어플리케이션을 제작하고 배포하기 위한 리패키징 방식이 사용되고 있다.
즉 모바일 어플리케이션은 손쉬운 설치 및 삭제로 인해 생명 주기가 짧기 때문에, 악성 모바일 어플리케이션 또한 생명 주기가 짧다. 이로 인해 악성 코드를 새로 제작 하는 것보다 기존에 정상적으로 유통되는 모바일 어플리케이션에 악성 코드를 심어서 재배포 하는 형태가 주를 이루고 있다.
이렇게 리패키징 방식에 의해 다수의 변종 악성 어플리케이션이 출현하고 있으나 이를 모두 분석하고 대응하는 것은 효율적이지 못하다. 리패키징 방식의 악성 어플리케이션은 임의로 삽입된 악성 코드를 제외한 다른 코드는 기존의 각 어플리케이션의 소스 코드여서, 코드가 제각각 이기 때문에 이를 모두 분석하는 것은 비용 대비 비효율적이다.
그러므로 리패키징 방식으로 유포되는 악성 모바일 어플리케이션에서 주로 사용되는 악성 코드와의 유사도를 기반으로 신규 어플리케이션의 악성 여부를 빠르고 간편하게 판단할 수 있는 방법이 필요하다.
KR 10-2016-0046640 A "시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법" (2016.04.29)
본 발명이 해결하고자 하는 기술적 과제는 유사도를 기반으로 악성 모바일 어플리케이션을 탐지하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 태양에 따른 악성 어플리케이션 탐지 방법은, 악성 어플리케이션 탐지 장치가, 어플리케이션의 소스 코드를 추출하는 단계; 상기 악성 어플리케이션 탐지 장치가, 상기 소스 코드를 전처리하여 메서드(Method) 기반의 해시값을 추출하는 단계; 상기 악성 어플리케이션 탐지 장치가, 상기 해시값과 기존에 악성으로 판단한 어플리케이션에서 추출한 메서드 기반의 해시값을 비교하여 유사도를 연산하는 단계; 및 상기 악성 어플리케이션 탐지 장치가, 상기 유사도를 이용하여 악성 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 소스 코드를 추출하는 단계는, 상기 어플리케이션을 디컴파일 또는 디어셈블 하여 소스 코드를 추출하는 단계를 포함할 수 있다.
다른 실시예에서, 상기 바이너리를 추출하는 단계는, 소스 코드의 Package 선언, Import 구문을 제거하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 해시값을 추출하는 단계는, 소스 코드를 JSON을 이용하여 트리 형태로 변환하고, 메서드의 해시값을 추출하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 유사도를 연산하는 단계는, 상기 어플리케이션의 메서드 이름과 상기 악성으로 판단한 어플리케이션의 메서드 이름을 비교하는 단계; 및 상기 비교 결과 이름이 동일한 메서드끼리 해시값이 유사한 정도를 상기 유사도로 연산하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 악성 여부를 판단하는 단계는, 상기 유사도를 기 설정된 임계값과 비교하여 악성 여부를 판단하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 태양에 따른 악성 어플리케이션 탐지 장치는, 네트워크 인터페이스; 하나 이상의 프로세서; 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및 어플리케이션을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 상기 어플리케이션의 소스 코드를 추출하는 오퍼레이션; 상기 소스 코드를 전처리하여 메서드(Method) 기반의 해시값을 추출하는 오퍼레이션; 상기 해시값과 기존에 악성으로 판단한 어플리케이션에서 추출한 메서드 기반의 해시값을 비교하여 유사도를 연산하는 오퍼레이션; 및 상기 유사도를 이용하여 악성 여부를 판단하는 오퍼레이션을 포함할 수 있다.
본 발명의 악성 탐지 방법을 이용하면 리패키징 방식으로 다양한 변종 악성 어플리케이션을 유포하는 행위에 대해 빠르게 대처해서 매일 등장하는 신규 어플리케이션의 악성 여부를 신속하게 판단할 수 있다. 이를 통해 어플리케이션 사용자들의 개인 정보를 보호하고 악성 어플리케이션으로 인한 피해를 최소화 할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 유사도 기반 악성 어플리케이션 탐지 방법의 순서도이다.
도 2 내지 도 6b는 본 발명의 일 실시예에 따른 유사도 기반 악성 어플리케이션 탐지 방법의 각 단계를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 유사도 기반 악성 어플리케이션 탐지 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에 대하여 첨부된 도면에 따라 더욱 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 유사도 기반 악성 어플리케이션 탐지 방법의 순서도이다.
도 1을 참고하면, 우선 어플리케이션을 수집한다(S1100). 여기서 수집하는 어플리케이션이란 분석 대상이 되는 신규 어플리케이션을 말한다. 이미 수집을 해서 악성/양성 여부를 판단한 어플리케이션을 제외하고 신규로 공식 마켓, 사설 마켓, 온라인 등을 통해서 유포되는 어플리케이션들을 수집한다
다음으로 수집한 어플리케이션의 소스 코드를 추출한다(S1200). 안드로이드 어플리케이션의 설치 파일인 apk 파일의 소스 코드는 디컴파일, 디어셈블 과정을 통해서 추출할 수 있다. JAVA 언어의 경우 JVM에서 실행하기 위해 소스 코드를 바이너리 형태로 변환해서 사용한다. class 확장자를 가진 바이너리를 JAD(JAVA Decompiler) 등을 이용하면 원래의 java 확장자를 가진 소스 코드를 얻을 수 있다.
다음으로 메서드 기반 바이너리를 추출한다(S1300). 이는 비교를 빠르게 수행하기 위해서 불필요한 라이브러리를 제외하고, 메서드의 이름을 정렬한 후 메서드 기반으로 바이너리를 추출하는 전처리 과정을 말한다. 리패키징을 이용하는 방식이 대부분 메서드는 그대로 재사용하는 경우가 많기 때문에 유사도를 비교하는 기준 단위로 메서드를 사용하는 것이다.
JSON(JavaScript Object Notation)을 이용하여 트리 형태로 메서드 이름을 정렬해서 비교를 위한 대상 소스 코드의 양을 줄일 수 있다. 다음으로 바이너리 데이터를 추출하고 정제할 수 있다. 메서드 별로 정렬된 코드를 바이너리 데이터로 변환할 때, 정렬된 데이터의 {Package | Class | Method} JSON 트리 부분을 삭제한다. 이를 통해 서로 다른 이름으로 인한 유사도가 낮게 측정되는 것을 최소화 할 수 있다.
다음으로 기존 악성 어플리케이션의 메서드 기반으로 비교를 수행할 대상 데이터를 추출한다(S1400). 여기서 비교를 수행할 대상 데이터는 바이너리 일 수 있다. 예를 들면 신규 어플리케이션에서 추출한 메서드 기반 바이너리와 악성 어플리케이션의 메서드 기반 바이너리의 유사도를 측정한다(S1400).
또는 메서드 기반으로 추출한 해시값(Hash)을 이용하여 유사도를 연산할 수도 있다. 예를 들면 메서드의 MD5 해시값을 구하고 메서드의 명칭과 해시값을 매핑한다. 다음으로 기존의 악성 어플리케이션에서 추출한 메서드 기반 해시값과 비교하여 유사도를 측정한다(S1400).
특히 바이너리를 기준으로 유사도를 구하는 경우보다 해시값을 기준으로 유사도를 구하는 경우 메서드 이름으로 먼저 매칭(matching)을 수행하고 그 다음에 해시값을 비교할 수 있다. 만약 메서드의 이름은 같은데 메서드의 해시값이 다른 경우 메서드의 이력을 추적할 수 있다. 메서드의 해시값을 기준으로 유사도를 구하는 경우 전체 메서드 대미 유사 메서드의 비율을 이용하여 해시값을 구할 수 있다.
메서드의 바이너리 또는 해시값을 기반으로 구한 유사도를 이용하여 신규 어플리케이션의 악성 여부를 판단한다(S1500). 이를 위해서 유사도를 기 설정된 임계값(Threshold)과 비교한다. 임계값은 사전에 악성 어플리케이션으로 판단된 어플리케이션들을 학습해서 결정할 수 있다.
이와 같은 과정을 통해 메서드 기반으로 비교 대상 데이터의 유사도를 구하고 악성 여부를 판단하면, 매일 새롭게 등장하는 수많은 변종 악성 어플리케이션을 손쉽게 감지하고 차단할 수 있다. 특히 최근 발생하는 모바일 악성 어플리케이션 대부분이 기존 정상 어플리케이션에 악성 코드를 삽입한 변종 형태를 이루고 있는 점을 고려하면 더욱 효과적이라 할 것이다.
리패키징 방식의 악성 코드 유포 방법은 비용 대비 효율적인 방식으로 제작, 유포가 용이하기 때문에 주로 사용되는 방법인데, 현재의 분석 기법은 시그니처(signature) 기반으로 일부 변경되는 유사/변종 악성 어플리케이션을 대응하는데 한계가 존재한다.
그러므로 모바일 어플리케이션의 소스 코드에서 메서드 단위의 비교를 통한 유사도 분석 기법을 제안한다. 메서드 단위로 비교하므로, 내부 코드의 변화에도 유사성을 도출할 수 있다는 장점이 있으며, 리패키징 방식의 유사/변종 악성 어플리케이션 분석에 효과적으로 이용할 수 있다.
도 2 내지 도 6b는 본 발명의 일 실시예에 따른 유사도 기반 악성 어플리케이션 탐지 방법의 각 단계를 설명하기 위한 도면이다.
도 2를 참고하면, 상단에는 안드로이드 기반의 악성 어플리케이션이 주로 유포되는 경로가 표시되어 있다. 구글의 안드로이드 마켓의 경우, 개방적인 운영 정책으로 인해 누구든지 사전 검증 없이 손쉽게 어플리케이션을 배포할 수 있다. 또한 안드로이드의 경우 구글 플레이라는 공식 마켓 외에도 블랙 마켓이라 불리는 사설 어플리케이션 유통 플랫폼이 있다.
특히 2015년 초반에만 해도 중국에서는 사법 당국이 온라인 검열을 하였기 때문에 구글 플레이가 진출하지 못하고 있었다. 그사이 중국의 바이두, 샤오미 같은 기업들이 큰 규모의 사설 마켓을 운영 중이다. 그 외에도 안드로이드 어플리케이션의 파일인 apk 확장자의 파일이 SNS나 사설 게시판과 같은 온라인 공간을 통해서 유통되고 있다.
안드로이드의 경우 이렇게 어플리케이션의 유통 경로 자체가 다양하기 때문에 신종 어플리케이션의 악성 여부를 탐지하는 과정이 신속할 필요가 있다. 이렇게 공식 마켓, 사설 마켓, SNS, 게시판과 같은 온라인을 통해 배포되는 대부분의 악성 어플리케이션은 기존의 정상적인 모바일 어플리케이션에 악성 코드를 삽입한 후 해당 코드를 재서명 하고, 리패키징 하는 방식으로 유포되고 있다.
이러한 방식으로 악성 어플리케이션을 배포하는 이유는 기존의 악성 어플리케이션의 악성 코드를 손쉽게 재사용하여 삽입한 후 제작 및 배포하는 것이 쉽기 때문이다. 또한, 다수의 대응 시스템들로 인해 악성 어플리케이션의 생명력이 짧아 단일 악성 어플리케이션으로는 원하는 수준의 피해를 발생시키기 어렵기 때문이다. 그래서 리패키징에 의한 다수의 변종 악성 어플리케이션을 배포하는 방식이 주로 사용되고 있다.
다음의 표 1은 주로 유포되는 악성 코드에 대해 정리한 것이다. 다음의 표 1을 참고하면 리패키징 방식을 통해 배포되는 악성 코드가 많은 것을 확인할 수 있다.
순위 악성 코드 형태
1 Android-Trojan/SMSSend 사용자를 속이거나 몰래 문자 전송
2 Android-Trojan/FakeInst 설치 프로그램으로 위장해 문자 전송
3 Android-Spyware/Geimini 정상 앱을 리패키징 하여 개인정보 탈취
4 Android-Exploit/Rootor 취약점을 이용해 시스템 권한 획득
5 Android-Trojan/LightDD 성인용 앱으로 위장해 사용자 휴대폰 정보 유출
6 Android-Dropper/Anserver 정상 앱을 리패키징 하여 다른 악성 코드 설치
7 Android-Trojan/Gdream 정상 앱을 리패키징 하여 다른 악성 코드 추가
8 Android-Spyware/BgService 정상 앱을 리패키징 하여 다른 악성 코드 삽입
9 Android-Trojan/Boxer 설치 프로그램으로 위장해 유로 문자 발송
10 Android-Spyware/Adrd 정상 앱을 리패키징 하여 악의적 기능 수행
표 1과 같은 변종 악성 어플리케이션은 기존의 악성 코드를 재사용하는 빈도가 높다. 즉 리패키징 과정에서 재사용되는 악성 코드가 있으므로, 재사용되는 악성 코드를 확인할 수 있다면 신규 어플리케이션의 전체 소스 코드를 확인하지 않고서도 신속하게 악성 여부를 판단할 수 있다.
이를 위해서 본 발명에서 제안하는 악성 탐지 방법은 다양한 경로를 통해서 안드로이드 기반의 어플리케이션을 수집한다. 구체적으로는 확장자가 apk인 파일을 수집한다. apk 파일은 Android Package File의 약자이다. apk 파일은 안드로이드 플랫폼을 가지고 있는 모바일 디바이스의 어플리케이션을 설치할 수 있도록 제공된 포맷이다.
apk 파일을 수집한 후, 분석을 위해 소스 코드를 확보할 필요가 있다. 다행이 안드로이드 어플리케이션의 경우 JAVA를 기반으로 하고 있기 때문에, 디컴파일, 디어셈블을 거치면 원래의 소스 코드를 대부분 확보할 수 있다. 이러한 과정을 통해 소스 코드를 추출한 후, 악성 어플리케이션에서 주로 재사용 되는 악성 코드와 비교를 수행하면 신규 어플리케이션의 악성 여부를 손쉽게 판단할 수 있다.
도 2를 통해 모바일 어플리케이션을 수집하고 소스 코드를 추출하는 과정을 살펴보았다. 이렇게 추출된 소스 코드를 기준으로, 악성 코드와 비교하기 위해서는 일종의 전처리 과정이 필요하다. 이는 소스 코드에서 메서드(Method) 별로 바이너리를 추출하는 과정이다.
리패키징 방식을 통해 배포되는 악성 어플리케이션들의 패턴을 살펴보면, Package, Class 이름은 변경하는 경우가 많다. 그러나 최하위 레벨인 Method 단위의 소스 코드는 변경하지 않고 재사용하는 경우가 많다. 그러므로, 이 점에 착안해서 소스 코드에서 메서드 단위로 코드를 추출해서 비교를 위해 바이너리로 변환하는 과정을 거친다.
바이너리로 변환하는 과정은 소스 코드를 시그니처화 하는 과정이다. 이를 통해서 기존의 재사용 악성 코드와 용이하게 비교를 수행할 수 있다. 특히 메서드 별로 소스 코드를 정리하는 과정에서 JAVA Android에서 제공하는 기본적인 라이브러리들을 제외하고 메서드를 정리하면 비교해야 하는 소스 코드의 양을 줄일 수 있다.
소스 코드에서 메서드 이름을 트리 형태로 정렬하고, 메서드 이름으로 정렬된 코드에서 바이너리 데이터를 추출해서 기존의 악성 코드로 판단된 코드와 유사도를 비교할 수 있다.
실제로 도 3을 참고하면, 디컴파일 등을 통해서 추출된 소스 코드는 상단의 Package 선언부터 import 구문, class 선언, 그 다음으로 method 정의가 이어진다. 이를 method 별로 정리하면 상단의 Package 선언부터 import 구문 등은 제외된 것을 확인할 수 있다.
다음으로 도 4를 참고하면, 소스 코드를 트리 형태로 메서드를 정렬하고 메서드의 바이너리 코드를 추출해서 최종적으로 악성 코드와 비교하기 위한 시그니처를 생성한 것을 볼 수 있다. 이렇게 소스 코드를 간단히 정리해서 기존에 악성 어플리케이션으로 판정된 악성 코드와 비교하여 신규 어플리케이션의 악성 여부를 판단할 수 있다.
다음으로 도 5를 참고하면, 신규 어플리케이션에서 메서드 기반으로 추출한 바이너리와 악성으로 판단된 어플리케이션에서 메서드 기반으로 추출한 바이너리를 비교하는 과정을 볼 수 있다. 두 바이너리의 유사도가 기 설정된 임계치 이상이면 신규 어플리케이션을 악성 코드가 재사용된 악성 어플리케이션으로 보고, 필요한 조치를 취할 수 있다.
예를 들면 악성 코드를 감지하고 악성 어플리케이션을 차단하는 보안 어플리케이션에 해당 신규 어플리케이션을 자동으로 악성 어플리케이션으로 등록할 수 있다. 또는 사용자에게 악성으로 판정된 신규 어플리케이션의 정보를 제공하고 삭제를 유도할 수 있다.
본 발명의 유사도를 판단하고 유사도를 기준으로 악성 여부를 판단하는 단계를 조금 더 자세하게 살펴보자. 본 발명의 유사도를 판단하는 단계(S1400)은 JSON을 활용한 Package, Class, Method 단위의 트리 형태를 활용한 유사도 측정 방법이다. 메서드 단위의 바이너리 명령어에 대한 특징을 활용하여 유사도를 측정한다.
리패키징 방식에 의한 악성 어플리케이션의 경우 악성 코드를 재사용 하는 경우가 많다. 물론 악성 코드 외에도 리소스(Resource)부분에 대한 유사도를 측정할 수 있다. 신뢰할 수 있는 어플리케이션을 가장하여 개인 정보를 빼내가는 피싱(phishing) 방식의 금융 악성 어플리케이션의 경우, 사용하는 이미지가 한정되어 있어 리소스(Resource)의 재사용이 빈번하다.
금융 악성 어플리케이션과 같은 경우 악성 코드의 유사도 뿐만 아니라, apk 파일의 리소스 부분의 유사도를 산출하여 악성 여부를 판단하는데 사용할 수 있다. 이 경우 악성 코드의 유사도와 리소스의 유사도를 모두 이용하여 악성 여부를 판단하는 것도 가능하다.
여기서 바이너리의 유사도를 산출하는 과정에는 퍼지 해시(Fuzzy Hash) - CTPH(Context-Triggered Piecewise Hash)를 이용할 수 있다. 퍼지 해시는 2006년에 Kornblum가 제안한 알고리즘이다. 블록 해시(Block Hash)에 대한 단점을 극복하기 위해 설계된 알고리즘이다.
CTPH 알고리즘의 기본적인 방법은 대상 파일의 바이너리 데이터 안에서 문맥(Context)이라고 불리는 구분자(Contents marker)를 식별하여 문맥 사이에 구분되는 각각의 조각(Piece)에 대한 해시값을 저장하는 것이다. CTPH를 사용하여 구현된 도구인 ssdeep은 입력 파일에 대하여 CTPH를 사용하여 체크섬(Checksum)을 계산한다.
그리고 문맥(Context)을 식별하기 위해서 ssdeep은 7바이트 윈도우 롤링 해시(Window rolling hash)를 사용한다. CTPH를 구현한 ssdeep에 관한 보다 자세한 내용은 소스 포지의 웹 사이트 http://ssdeep.sourceforge.net/에서 확인할 수 있다.
도 6a를 참고하면 MainActivity.JAVA 파일의 메서드에서 바이너리를 추출하는 과정을 볼 수 있다. 이러한 방법을 통해 시그니처를 바이너리 형태로 추출하면 메서드 내에 실제 사용된 코드가 다소 다른 경우에서 유사도를 연산할 수 있다. 즉 변종 탐지에 좋은 효과를 얻을 수 있다.
도 6b를 참고하면 악성 코드와의 유사도를 여러 항목으로 나누어 연산하는 것을 볼 수 있다. 즉 악성 코드가 주로 사용하는 API 등을 기준으로 악성 코드의 유형을 분류하고, 신규 어플리케이션의 메서드 기반 바이너리가 각 유형별 악성 코드와 어느 정도로 유사한지 유사도를 시각화해서 적용할 수 있다. 도 6b의 예에서는 개인정보, SMS, 파일 접근, 네트워크, 기기 모니터링, 리눅스 명령어의 6가지 카테고리로 악성 코드를 분류하고 각 악성 코드와의 유사도를 비교한 것을 볼 수 있다.
즉 악성 어플리케이션에는 여러 개의 악성 코드가 포함될 수 있으므로 어느 종류의 악성 코드가 있는지, 있다면 악성 코드의 빈도는 어떠한지 시각화해서 보여 줄 수 있다. 이를 통해 악성 어플리케이션의 위험도를 직관적으로 사용자에게 제공할 수 있다.
도 6b의 예에서 악성 여부를 판단한 어플리케이션은 SMS 및 네트워크와 관련된 악성 코드를 특히 많이 포함하고 있는 악성 어플리케이션으로 보인다. 물론 도 6b에 예시된 6개의 카테고리는 일종의 예일 뿐이며, 경우에 따라 카테고리는 다양한 개수로 조절이 가능하다.
번호 유형 API 명 기본점수
1 개인정보 getLineNumber 6
2 getDeviceId 4
3 getSimSerialNumber 6
4 getSubscriberId 5
5 getLatitude 0
6 getLongitude 0
7 getRunningTasks 7
8 getSimOperator 6
9 getSimOperatorName 6
10 파일접근 killBackgroundProcesses 3
11 기기모니터링 registerContentObserver 3
12 네트워크 connect 3
13 encode 3
14 getURL 3
15 SMS sendTextMessage 9
16 getMessageBody 9
17 notify 9
18 delete 3
19 createFromPdu 9
20 리눅스 명령어 su 0
21 du 0
22 gzip 0
23 mkdir 0
24 chmod 0
25 chown 0
26 cp 0
표 2를 참고하면 악성 코드에서 주로 호출하는 API를 기준으로 악성 코드의 카테고리를 6개로 나눈 것을 볼 수 있다. 이를 이용하여 신규 어플리케이션에서 발견된 악성 코드를 기준으로 신규 어플리케이션의 위험 여부를 6가지의 카테고리를 기준으로 도 6b와 같이 시각화해서 사용자에게 제공할 수 있다.
지금까지 도 2 내지 도 6b를 통해서 메서드의 바이너리를 기반으로 유사도를 연산하고 악성 여부를 판단하는 경우를 살펴보았다. 마찬가지로 메서드의 해시값을 기반으로 유사도를 연산하고 악성 여부를 판단할 수도 있다. 해시값을 이용하는 경우 어플리케이션을 수집하고, 소스 코드를 추출하는 과정까지는 유사하다.
다만 메서드 기반으로 바이너리를 추출하는 대신 메서드 기반으로 해시값을 추출하고 메서드의 이름과 해시값을 이용하여 유사도를 산출한다. 이 경우 메서드의 이름이 같은 지 1차적으로 비교하고, 메서드의 이름이 같은 경우 메서드의 해시값이 같은 지 2차적으로 비교하여 유사도를 산출한다.
도 7을 참고하면 상단이 신규 어플리케이션에서 추출한 메서드 기반의 해시값이고, 하단이 악성 어플리케이션에서 추출한 메서드 기반의 해시값이다. 도 7에서도 볼 수 있듯이 신규 어플리케이션의 FDS 메서드의 해시값을 구해보면 3966b3dd8c36cc67fe1993490d240bf4 이고, 악성 어플리케이션의 FDS 메서드의 해시값은 cd2366154cc52b5c221f59eeac77a5d8 이다.
도 7에서 두 어플리케이션의 나머지 메서드들을 비교해보면 onBind, onCreate, onDestory의 경우에는 메서드 명칭과 해시값이 동일한 것을 알 수 있다. 이 경우 두 어플리케이션의 유사도는 75%가 된다. 이 유사도가 기 설정된 값 이상인 경우 신규 어플리케이션을 악성으로 판단할 수 있다.
이때, 신규 어플리케이션이 악성 어플리케이션과 임계값 이상의 유사도를 가져서 악성으로 판단한 경우, 신규 어플리케이션과 악성 어플리케이션 사이에 메서드 이름은 동일하나 해시값이 다른 메서드는 신규 어플리케이션에 변종으로 삽입된 악성 코드로 판단하고 내역을 추적할 수 있다.
도 7의 예에서는 하단의 악성 어플리케이션의 FDS 메서드의 해시값 cd2366154cc52b5c221f59eeac77a5d8 에서 상단의 신규 어플리케이션의 FDS 메서드의 해시값 3966b3dd8c36cc67fe1993490d240bf4 로 변종 악성 코드가 삽입되었음을 판단하고 두 해시값을 FDS 메서드의 악성 코드 해시값의 내역으로 관리할 수 있다.
도 8은 본 발명의 일 실시예에 따른 유사도 기반 악성 어플리케이션 탐지 장치의 하드웨어 구성도이다.
도 8를 참고하면 유사도 기반 악성 어플리케이션 탐지 장치(10)는 하나 이상의 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)을 포함할 수 있다. 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)는 시스템 버스(550)를 통하여 데이터를 송수신한다.
프로세서(510)는 메모리(520)에 로드 된 컴퓨터 프로그램을 실행하고, 메모리(520)는 상기 컴퓨터 프로그램을 스토리지(560)에서 로드(load) 한다. 상기 컴퓨터 프로그램은, 소스 코드 추출 오퍼레이션(521), 유사도 연산 오퍼레이션(523) 및 악성 여부 판단 오퍼레이션(525)을 포함할 수 있다.
소스 코드 추출 오퍼레이션(521)은 인터페이스(570)을 통해서 공식 마켓, 블랙 마켓, SNS, 사설 게시판 등을 통해서 악성 여부의 판단 대상이 되는 신규 어플리케이션을 수집한다. 이렇게 수집된 어플리케이션은 시스템 버스(550)를 통해 스토리지(560)의 apk 파일(561)로 저장된다.
다음으로 소스 코드 추출 오퍼레이션(521)은 디컴파일, 디어셈블을 통해서 apk 파일(561)로부터 소스 코드를 추출한다. 이렇게 추출된 소스 코드는 시스템 버스(550)를 통해 스토리지(560)의 소스 코드(563)로 저장된다.
유사도 연산 오퍼레이션(523)은 스토리지(560)의 소스 코드(563)에서 package, import, class 등을 제거하고 메서드 기반으로 바이너리를 추출한다. 이렇게 추출한 바이너리와 스토리지(560)에 저장된 기존에 악성 어플리케이션으로 판단된 어플리케이션에서 사용된 악성 코드의 바이너리 패턴(567)을 비교하여 유사도를 연산한다.
이 때 신규 어플리케이션의 메서드 기반 바이너리와 악성 어플리케이션의 메서드 기반 바이너리의 유사도는 악성 코드를 여러 개의 카테고리로 나누고 각 카테고리 별로 유사도를 연산해서 신규 어플리케이션의 악성 여부를 판단하는데 사용될 수 있다.
신규 어플리케이션의 메서드 기반 바이너리와 악성 어플리케이션의 메서드 기반 바이너리의 유사도는 시스템 버스(550)를 통해 스토리지(560)의 유사도(565)로 저장된다.
또는 유사도 연산 오퍼레이션(523)은 스토리지(560)의 소스 코드(563)에서 package, import, class 등을 제거하고 메서드 기반으로 해시값을 추출한다. 이렇게 추출한 해시값과 스토리지(560)에 저장된 기존에 악성 어플리케이션으로 판단된 어플리케이션에서 사용된 악성 코드의 해시값 패턴(미도시)을 비교하여 유사도를 연산한다.
이 때 신규 어플리케이션의 메서드 이름과 악성 어플리케이션의 메서드 이름을 비교하고, 메서드 이름이 동일한 것끼리 해시값을 비교하여 해시값이 동일한 비율을 구해서 유사도를 산출할 수 있다. 뿐만 아니라 메서드 이름은 동일하나 해시값이 상이한 경우 이를 내역으로 관리하여 변종 악성 코드를 추적하는데 이용할 수 있다.
신규 어플리케이션의 메서드 기반 해시값과 악성 어플리케이션의 메서드 기반 해시값을 이용하여 구한 유사도는 시스템 버스(550)를 통해 스토리지(560)의 유사도(565)로 저장된다.
악성 여부 판단 어플리케이션(525)는 스토리지(560)의 유사도(565)가 기 설정된 임계치 이상인 경우 수집한 신규 어플리케이션을 악성으로 판단한다. 여기서 임계치는 기존에 악성으로 판단했던 어플리케이션을 이용해서 학습을 통해 설정할 수 있다.
도 8의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)와 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing) 할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (7)

  1. 악성 어플리케이션 탐지 장치가, 제1 어플리케이션의 소스 코드를 추출하는 단계;
    상기 악성 어플리케이션 탐지 장치가, 상기 소스 코드를 전처리하는 단계;
    상기 악성 어플리케이션 탐지 장치가, 상기 전처리된 소스 코드로부터 제1 메서드(Method) 기반의 해시값을 추출하되, 상기 제1 메서드 기반의 해시값은 각 메서드에 대응되는 소스코드의 해시값인 것인, 단계;
    상기 악성 어플리케이션 탐지 장치가, 상기 제1 메서드 기반의 해시값과 기존에 악성으로 판단된 제2 어플리케이션에서 사용된 악성 코드로부터 추출된 제2 메서드 기반의 해시값을 비교하여 유사도를 연산하는 단계;
    상기 악성 어플리케이션 탐지 장치가, 상기 유사도를 이용하여 상기 제1 어플리케이션의 악성 여부를 판단하는 단계; 및
    상기 악성 어플리케이션 탐지 장치가, 상기 판단의 결과 악성으로 판단된 경우, 상기 제1 어플리케이션과 상기 제2 어플리케이션 사이에 메서드 이름은 동일하나 해시값이 다른 메서드를 선정하고, 상기 선정된 메서드 및 상기 선정된 메서드의 해시값을 보관하는 단계를 포함하되,
    상기 악성 코드는 메서드의 사용 빈도를 기준으로 기 정의된 카테고리로 분류되고,
    상기 유사도를 연산하는 단계는,
    상기 제1 메서드 기반의 해시값과 각각의 카테고리에 대응되는 상기 제2 메서드 기반의 해시값을 비교하여, 기 정의된 카테고리 별로 유사도를 연산하는 단계를 포함하고,
    상기 악성 어플리케이션 탐지 장치가, 상기 판단의 결과 악성으로 판단된 경우, 상기 기 정의된 카테고리 별로 연산된 유사도를 각각의 카테고리 별로 시각화하여 제공하는 단계를 더 포함하는,
    악성 어플리케이션 탐지 방법.
  2. 제1항에 있어서,
    상기 소스 코드를 추출하는 단계는,
    상기 제1 어플리케이션을 디컴파일 또는 디어셈블 하여 소스 코드를 추출하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  3. 제1항에 있어서,
    상기 소스 코드를 전처리하는 단계는,
    상기 제1 어플리케이션의 소스 코드의 Package 선언, Import 구문을 제거하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  4. 제1항에 있어서,
    상기 제1 메서드 기반의 해시값을 추출하는 단계는,
    상기 제1 어플리케이션의 소스 코드를 JSON을 이용하여 트리 형태로 변환하고, 메서드의 해시값을 추출하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  5. 제1항에 있어서,
    상기 제1 메서드 기반의 해시값과 기존에 악성으로 판단된 제2 어플리케이션에서 사용된 악성 코드로부터 추출된 제2 메서드 기반의 해시값을 비교하여 유사도를 연산하는 단계는,
    상기 제1 어플리케이션의 메서드 이름과 상기 제2 어플리케이션의 메서드 이름을 비교하는 단계; 및
    상기 비교의 결과, 이름이 동일한 메서드끼리 해시값이 유사한 정도를 상기 유사도로 연산하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  6. 제1항에 있어서,
    상기 악성 여부를 판단하는 단계는,
    상기 유사도를 기 설정된 임계값과 비교하여 악성 여부를 판단하는 단계를 포함하는,
    악성 어플리케이션 탐지 방법.
  7. 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
    제1 어플리케이션을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 제1 어플리케이션의 소스 코드를 추출하는 오퍼레이션;
    상기 소스 코드를 전처리하는 오퍼레이션;
    상기 전처리된 소스 코드로부터 제1 메서드(Method) 기반의 해시값을 추출하되, 상기 제1 메서드 기반의 해시값은 각 메서드에 대응되는 소스코드의 해시값인 것인, 오퍼레이션;
    상기 제1 메서드 기반의 해시값과 기존에 악성으로 판단된 제2 어플리케이션에서 사용된 악성 코드로부터 추출된 제2 메서드 기반의 해시값을 비교하여 유사도를 연산하는 오퍼레이션;
    상기 유사도를 이용하여 상기 제1 어플리케이션의 악성 여부를 판단하는 오퍼레이션; 및
    상기 판단의 결과 악성으로 판단된 경우, 상기 제1 어플리케이션과 상기 제2 어플리케이션 사이에 메서드 이름은 동일하나 해시값이 다른 메서드를 선정하고, 상기 선정된 메서드 및 상기 선정된 메서드의 해시값을 보관하는 오퍼레이션을 포함하되,
    상기 악성 코드는 메서드의 사용 빈도를 기준으로 기 정의된 카테고리로 분류되고,
    상기 유사도를 연산하는 오퍼레이션은,
    상기 제1 메서드 기반의 해시값과 각각의 카테고리에 대응되는 상기 제2 메서드 기반의 해시값을 비교하여, 기 정의된 카테고리 별로 유사도를 연산하는 오퍼레이션을 포함하고,
    상기 판단의 결과 악성으로 판단된 경우, 상기 기 정의된 카테고리 별로 연산된 유사도를 각각의 카테고리 별로 시각화하여 제공하는 오퍼레이션을 더 포함하는,
    악성 어플리케이션 탐지 장치.
KR1020170008681A 2017-01-18 2017-01-18 유사도 기반 악성 어플리케이션 탐지 방법 및 장치 KR101803888B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170008681A KR101803888B1 (ko) 2017-01-18 2017-01-18 유사도 기반 악성 어플리케이션 탐지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170008681A KR101803888B1 (ko) 2017-01-18 2017-01-18 유사도 기반 악성 어플리케이션 탐지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101803888B1 true KR101803888B1 (ko) 2017-12-04

Family

ID=60921391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170008681A KR101803888B1 (ko) 2017-01-18 2017-01-18 유사도 기반 악성 어플리케이션 탐지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101803888B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102053869B1 (ko) * 2019-05-29 2020-01-22 쿤텍 주식회사 리눅스 환경의 악성 코드 검출 방법 및 장치
KR20210110963A (ko) * 2020-03-02 2021-09-10 한화정밀기계 주식회사 복수의 장비에 소프트웨어를 설치하는 방법
WO2023014299A3 (en) * 2021-08-04 2023-04-13 Grabtaxi Holdings Pte. Ltd. Apparatus and method for determining a location-spoofing application
CN116127457A (zh) * 2023-02-16 2023-05-16 软安科技有限公司 一种基于winnowing算法的恶意代码检测方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101472321B1 (ko) * 2013-06-11 2014-12-12 고려대학교 산학협력단 이동단말의 어플리케이션 내 악성코드 탐지 방법 및 시스템
US20160070911A1 (en) 2013-08-19 2016-03-10 Amazon Technologies, Inc. Rapid malware inspection of mobile applications
KR101628837B1 (ko) * 2014-12-10 2016-06-10 고려대학교 산학협력단 악성 어플리케이션 또는 악성 웹사이트 탐지 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101472321B1 (ko) * 2013-06-11 2014-12-12 고려대학교 산학협력단 이동단말의 어플리케이션 내 악성코드 탐지 방법 및 시스템
US20160070911A1 (en) 2013-08-19 2016-03-10 Amazon Technologies, Inc. Rapid malware inspection of mobile applications
KR101628837B1 (ko) * 2014-12-10 2016-06-10 고려대학교 산학협력단 악성 어플리케이션 또는 악성 웹사이트 탐지 방법 및 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102053869B1 (ko) * 2019-05-29 2020-01-22 쿤텍 주식회사 리눅스 환경의 악성 코드 검출 방법 및 장치
KR20210110963A (ko) * 2020-03-02 2021-09-10 한화정밀기계 주식회사 복수의 장비에 소프트웨어를 설치하는 방법
KR102321879B1 (ko) * 2020-03-02 2021-11-03 한화정밀기계 주식회사 복수의 장비에 소프트웨어를 설치하는 방법
WO2023014299A3 (en) * 2021-08-04 2023-04-13 Grabtaxi Holdings Pte. Ltd. Apparatus and method for determining a location-spoofing application
CN116127457A (zh) * 2023-02-16 2023-05-16 软安科技有限公司 一种基于winnowing算法的恶意代码检测方法及系统
CN116127457B (zh) * 2023-02-16 2024-05-14 软安科技有限公司 一种基于winnowing算法的恶意代码检测方法及系统

Similar Documents

Publication Publication Date Title
CN106682505B (zh) 一种病毒检测方法、终端、服务器及系统
CN109145600B (zh) 使用静态分析元素检测恶意文件的系统和方法
Ham et al. Analysis of android malware detection performance using machine learning classifiers
KR101402057B1 (ko) 위험도 계산을 통한 리패키지 애플리케이션의 분석시스템 및 분석방법
KR101720686B1 (ko) 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
KR101803888B1 (ko) 유사도 기반 악성 어플리케이션 탐지 방법 및 장치
US10339315B2 (en) Apparatus and method for detecting malicious mobile app
KR20150044490A (ko) 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
CN109062667B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
JP6711000B2 (ja) 情報処理装置、ウィルス検出方法及びプログラム
CN112084497A (zh) 嵌入式Linux系统恶意程序检测方法及装置
CN103793649A (zh) 通过云安全扫描文件的方法和装置
US10073973B2 (en) Process testing apparatus, computer-readable medium, and process testing method
CN109828780B (zh) 一种开源软件的识别方法及装置
CN105205398B (zh) 一种基于apk加壳软件动态行为的查壳方法
Sun et al. Malware detection on Android smartphones using keywords vector and SVM
CN105791250B (zh) 应用程序检测方法及装置
KR20160099159A (ko) 악성 코드를 탐지하기 위한 전자 시스템 및 방법
CN109145589B (zh) 应用程序获取方法及装置
KR20160090566A (ko) 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법
JP5441043B2 (ja) プログラム、情報処理装置、及び情報処理方法
CN108509796B (zh) 一种风险性的检测方法及服务器
CN111291377A (zh) 一种应用漏洞的检测方法及系统
US10880316B2 (en) Method and system for determining initial execution of an attack
CN112395603B (zh) 基于指令执行序列特征的漏洞攻击识别方法、装置及计算机设备

Legal Events

Date Code Title Description
GRNT Written decision to grant