KR20170108330A - 악성 코드 탐지 장치 및 방법 - Google Patents

악성 코드 탐지 장치 및 방법 Download PDF

Info

Publication number
KR20170108330A
KR20170108330A KR1020160032041A KR20160032041A KR20170108330A KR 20170108330 A KR20170108330 A KR 20170108330A KR 1020160032041 A KR1020160032041 A KR 1020160032041A KR 20160032041 A KR20160032041 A KR 20160032041A KR 20170108330 A KR20170108330 A KR 20170108330A
Authority
KR
South Korea
Prior art keywords
api call
sequence
malicious code
behavior pattern
similarity
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020160032041A
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 KR1020160032041A priority Critical patent/KR20170108330A/ko
Priority to US15/240,319 priority patent/US10007789B2/en
Publication of KR20170108330A publication Critical patent/KR20170108330A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 악성 코드 탐지 장치 및 방법에 관한 것이다. 본 발명에 따른 장치는, 악성코드와 정상 실행 프로그램들의 행위를 구분하여 특정할 수 있는 특성인자를 정의하고, 미리 수집된 악성코드를 실행하여 생성된 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 API 호출 이벤트를 API 호출 시퀀스로 변환하며, 변환된 API 호출 시퀀스의 행위에 대한 유사도에 따라 행위 패턴을 생성하여 행위 패턴 DB에 저장하는 행위 패턴 생성부, 및 타겟 프로세스가 실행되는 경우, 상기 타겟 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 API 호출 이벤트를 API 호출 시퀀스로 변환하고, 변환된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 시퀀스의 행위에 대한 유사도에 따라 악성코드인지를 판단하는 악성 코드 탐지부를 포함한다.

Description

악성 코드 탐지 장치 및 방법{Apparatus and method for detecting malware code}
본 발명은 악성 코드 탐지 장치 및 방법에 관한 것이다.
네트워크 인프라가 급속도로 성장함에 따라 악성 코드의 유포 또한 가속화되고 있으며, 이에 사이버 공격의 기본 단위가 되는 악성 코드의 탐지와 대응은 점점 어려워지고 있다.
기존의 악성 코드를 탐지하는 방법은 실행파일의 소스코드를 분석하는 정적 분석 방식과 악성 코드가 실행될 때의 행위나 시스템 정보 등을 이용한 동적 분석 방식이 있다.
정적 분석 방식의 경우, 해커는 실행 파일의 압축, 패킹 및 암호화 등의 기법을 사용하여 악성 코드의 정적 분석을 불가능하게 만드는 것이 가능하다.
동적 분석 방식의 경우, 통계 데이터를 활용한 특정 조건식의 생성이나 특정 행위에 해당되는 정보의 존재 유무 등으로 시그니처를 생성한다. 이러한 방식은 정확한 탐지는 가능하지만, 변종이나 알려지지 않은 악성 코드를 탐지하는 것이 어렵다.
국내 등록특허공보 제10-1543237호
본 발명의 목적은, 행위패턴 생성을 위한 특성인자를 추출하고, 이를 문자 시퀀스로 변형하여 그룹별로 분류하고, 유사도에 기반하여 고유 패턴을 생성함으로써 악성 코드를 동적으로 탐지하도록 하는 악성 코드 탐지 장치 및 방법을 제공함에 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기의 목적을 달성하기 위한 본 발명에 따른 악성 코드 탐지 장치는, 악성코드와 정상 실행 프로그램들의 행위를 구분하여 특정할 수 있는 특성인자를 정의하고, 미리 수집된 악성코드를 실행하여 생성된 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 API 호출 이벤트를 API 호출 시퀀스로 변환하며, 변환된 API 호출 시퀀스의 행위에 대한 유사도에 따라 행위 패턴을 생성하여 행위 패턴 DB에 저장하는 행위 패턴 생성부, 및 타겟 프로세스가 실행되는 경우, 상기 타겟 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 API 호출 이벤트를 API 호출 시퀀스로 변환하고, 변환된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 시퀀스의 행위에 대한 유사도에 따라 악성코드인지를 판단하는 악성 코드 탐지부를 포함하는 것을 특징으로 한다.
상기 행위 패턴 생성부는, 악성코드에 의해 실행되는 각 프로세스별로 추출된 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하는 것을 특징으로 한다.
상기 행위 패턴 생성부는, 호출되는 API의 통계값을 기반으로 미리 학습된 결정 트리(Decision Tree)를 이용하여 상기 API 호출 이벤트에 대응하는 API 호출 시퀀스를 복수 개의 그룹으로 분류하며, 분류된 각 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘에 적용하여 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도를 분석하고, 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도에 따라 각 그룹을 복수 개의 서브 그룹으로 분류하는 것을 특징으로 한다.
상기 행위 패턴 생성부는, 분류된 각 서브 그룹의 API 호출 시퀀스를 유사 행위 패턴에 따라 통합하여 복수 개의 최종 그룹으로 분류하는 것을 특징으로 한다.
상기 행위 패턴 생성부는, 상기 분류된 복수 개의 최종 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘을 통해 유사도가 높은 영역을 기준으로 정렬하고, API 호출 시퀀스에 대응하는 문자 코드의 출현 비율에 따라 행위 패턴을 생성하는 것을 특징으로 한다.
상기 특성인자는, 악성코드에 의한 프로세스가 호출하는 API 호출 이벤트가 'Process', 'Thread', 'Memory', 'File', 'Registry', 'Network', 'Service' 및 'Other'로 분류되어 정의되고, 각 API 호출 이벤트에 대응하는 문자 코드 정보가 정의된 것을 특징으로 한다.
상기 악성 코드 탐지부는, 상기 타겟 프로세스에 의해 호출된 API 호출 이벤트 중 특성인자에 해당하는 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하는 것을 특징으로 한다.
상기 악성 코드 탐지부는, 상기 생성된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 악성코드의 시퀀스를 입력값으로 두 시퀀스의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 산출하고, 산출된 최장공통부분시퀀스(LCS)의 길이와 두 시퀀스의 최소 길이를 비교하여 두 시퀀스 간 유사도를 측정하는 것을 특징으로 한다.
상기 악성 코드 탐지부는, 악성코드로 탐지된 API 호출 시퀀스의 행위 패턴을 행위 패턴 DB에 추가로 저장하는 것을 특징으로 한다.
한편, 상기의 목적을 달성하기 위한 본 발명에 따른 악성 코드 탐지 방법은, 악성코드와 정상 실행 프로그램들의 행위를 구분하여 특정할 수 있는 특성인자를 정의하는 단계, 미리 수집된 악성코드를 실행하여 생성된 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 각 프로세스의 API 호출 이벤트를 API 호출 시퀀스로 변환하는 단계, 변환된 API 호출 시퀀스의 행위에 대한 유사도에 따라 행위 패턴을 생성하여 상기 생성된 행위 패턴을 행위 패턴 DB에 저장하는 단계, 타겟 프로세스가 실행되는 경우, 상기 타겟 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 타겟 프로세스의 API 호출 이벤트를 API 호출 시퀀스로 변환하는 단계, 및 변환된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 시퀀스의 행위에 대한 유사도에 따라 악성코드인지를 판단하는 단계를 포함하는 것을 특징으로 한다.
상기 각 프로세스의 API 호출 이벤트를 API 호출 시퀀스로 변환하는 단계는, 악성코드에 의해 실행되는 각 프로세스별로 추출된 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 악성 코드 탐지 방법은, 상기 생성된 행위 패턴을 행위 패턴 DB에 저장하는 단계 이전에, 호출되는 API의 통계값을 기반으로 미리 학습된 결정 트리(Decision Tree)를 이용하여 상기 API 호출 이벤트에 대응하여 생성된 API 호출 시퀀스를 복수 개의 그룹으로 분류하는 단계, 분류된 각 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘에 적용하여 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도를 분석하고, 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도에 따라 각 그룹을 복수 개의 서브 그룹으로 분류하는 단계, 및 분류된 각 서브 그룹의 API 호출 시퀀스를 유사 행위 패턴에 따라 통합하여 복수 개의 최종 그룹으로 분류하는 단계를 더 포함하는 것을 특징으로 한다.
상기 생성된 행위 패턴을 행위 패턴 DB에 저장하는 단계는, 상기 분류된 복수 개의 최종 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘을 통해 유사도가 높은 영역을 기준으로 정렬하고, API 호출 시퀀스에 대응하는 문자 코드의 출현 비율에 따라 행위 패턴을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 타겟 프로세스의 API 호출 이벤트를 API 호출 시퀀스로 변환하는 단계는, 상기 타겟 프로세스에 의해 호출된 API 호출 이벤트 중 특성인자에 해당하는 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 악성코드인지를 판단하는 단계는, 상기 생성된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 악성코드의 시퀀스를 입력값으로 두 시퀀스의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 산출하는 단계, 및 산출된 최장공통부분시퀀스(LCS)의 길이와 두 시퀀스의 최소 길이를 비교하여 두 시퀀스 간 유사도를 측정하는 단계를 포함하는 것을 특징으로 한다. 여기서 유사도 측정 방식은 LCS 이외의 시퀀스 유사도 측정 알고리즘을 대체하여 사용 가능하다.
또한, 본 발명에 따른 악성 코드 탐지 방법은, 악성코드로 탐지된 API 호출 시퀀스의 행위 패턴을 행위 패턴 DB에 추가로 저장하는 단계를 더 포함하는 것을 특징으로 한다. 추가된 악성코드로 탐지된 API 호출 시퀀스의 행위 패턴은 추후 해당 악성코드 그룹의 행위 패턴을 갱신하는데 사용될 수 있다.
본 발명에 따르면, 행위패턴 생성을 위한 특성인자를 추출하고, 이를 문자 시퀀스로 변형하여 그룹별로 분류하고, 유사도에 기반하여 고유 패턴을 생성함으로써 악성 코드를 동적으로 탐지할 수 있으며, 변종이나 알려지지 않은 악성 코드를 탐지하는 것이 가능한 이점이 있다.
도 1은 본 발명에 따른 악성 코드 탐지 장치의 구성을 도시한 도면이다.
도 2는 본 발명에 따른 악성 코드 탐지 장치의 행위패턴 생성 동작을 설명하는데 참조되는 실시예를 도시한 도면이다.
도 3은 본 발명에 따른 악성 코드 탐지 장치의 시퀀스 분류 동작을 설명하는데 참조되는 실시예를 도시한 도면이다.
도 4는 본 발명에 따른 악성 코드 탐지 장치의 시퀀스 정렬 동작을 설명하는데 참조되는 실시예를 도시한 도면이다.
도 5는 본 발명에 따른 악성 코드 탐지 장치의 악성 코드 탐지 동작을 설명하는데 참조되는 실시예를 도시한 도면이다.
도 6 및 도 7은 본 발명에 따른 악성 코드 탐지 방법에 대한 동작 흐름을 도시한 순서도이다.
도 8은 본 발명에 따른 장치가 적용된 컴퓨팅 시스템의 구성을 도시한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명에 따른 악성 코드 탐지 장치의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 악성 코드 탐지 장치는 제어부(110), 인터페이스부(120), 통신부(130), 저장부(140) 및 신호 처리부(170)를 포함할 수 있다. 여기서, 제어부(110)는 악성 코드 탐지 장치의 각 부 간에 전달되는 신호를 처리할 수 있다.
인터페이스부(120)는 사용자로부터 소정의 제어 명령을 입력 받기 위한 입력수단을 포함할 수 있다. 입력수단으로는 키 버튼이 해당 될 수 있으며, 그 외에도 사용자로부터 제어 명령을 입력 받기 위한 수단이라면 어느 것이든 해당될 수 있다.
또한, 인터페이스부(120)는 악성 코드 탐지 장치의 동작 상태 및 결과 등을 출력하는 출력수단을 포함할 수 있다. 출력수단으로는 악성 코드 탐지 장치의 동작 상태 및 결과 등의 정보가 표시되는 디스플레이를 포함할 수 있으며, 결과를 음성으로 안내하는 스피커를 포함할 수도 있다.
이때, 디스플레이는 액정 디스플레이(Liquid Crystal Display, LCD), 박막 트랜지스터 액정 디스플레이(Thin Film Transistor-Liquid Crystal Display, TFT LCD), 유기 발광 다이오드(Organic Light-Emitting Diode, OLED), 플렉시블 디스플레이(Flexible Display), 전계 방출 디스플레이(Feld Emission Display, FED), 3차원 디스플레이(3D Display) 등이 포함될 수 있다. 물론, 디스플레이의 종류는 실시 형태에 따라 다양하게 구현될 수 있음은 당연한 것이다.
통신부(130)는 외부 시스템 또는 서버 등과의 통신 인터페이스를 지원하는 통신모듈을 포함할 수 있다.
일 예로서, 통신모듈은 무선 인터넷 접속을 위한 모듈, 근거리 통신(Short Range Communication)을 위한 모듈 또는 유선 통신을 위한 모듈을 포함할 수 있다.
여기서, 통신모듈은 무선 인터넷 접속을 위한 모듈 또는 근거리 통신(Short Range Communication)을 위한 모듈을 포함할 수 있으며, 유선 통신을 위한 모듈을 포함할 수도 있다.
이때, 무선 인터넷 기술로는 무선랜(Wireless LAN, WLAN), 와이브로(Wireless Broadband, Wibro), 와이파이(Wi-Fi), 와이맥스(World Interoperability for Microwave Access, Wimax) 및 HSDPA(High Speed Downlink Packet Access) 등이 포함될 수 있고, 근거리 통신 기술로는 블루투스(Bluetooth), 지그비(ZigBee), UWB(Ultra Wideband), RFID(Radio Frequency Identification) 및 적외선 통신(Infrared Data Association, IrDA) 등이 포함될 수 있다. 또한, 유선 통신 기술로는 USB(Universal Serial Bus) 통신 등이 포함될 수 있다.
저장부(140)는 악성 코드 탐지 장치가 동작하는데 필요한 데이터와 프로그램 등을 저장할 수 있다. 일 예로, 저장부(140)는 악성 코드에 대응하는 행위패턴을 생성하기 위한 알고리즘 및 제어 명령 등이 저장될 수 있다. 또한, 저장부(140)는 악성 코드를 탐지하기 위해 정의된 특성인자 정보가 저장되는 특성인자 DB(150) 및 이전에 생성된 악성 코드 관련 행위패턴 정보가 저장되는 행위 패턴 DB(160)를 포함할 수 있다.
여기서, 저장부(140)는 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), PROM(Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다.
신호 처리부(170)는 악성 코드에 대응하는 행위 패턴을 생성하고, 생성된 행위 패턴을 기반으로 하여 악성 코드를 탐지할 수 있다.
이에 신호 처리부(170)는 행위 패턴 생성부(180) 및 악성 코드 탐지부(190)를 포함할 수 있다.
먼저, 행위 패턴 생성부(180)는 악성 코드의 행위 패턴을 생성하는 역할을 하며, 행위 패턴 생성부(180)의 행위 패턴 생성 동작은 도 2를 참조하여 더욱 상세히 설명하도록 한다.
도 2를 참조하면, 행위 패턴 생성부(180)에서 수행하는 악성 코드의 행위 패턴 생성 과정은 7 단계로 분류하여 설명할 수 있다.
먼저, 제1 단계로서, 행위 패턴 생성부(180)는 미리 수집된 악성 코드 관련 데이터로부터 악성 코드 관련 정보임을 나타내는 특성인자를 정의하도록 한다.
특성인자는 악성 코드의 행위 패턴을 만들기 위해 필요한 정보로, 행위 패턴 생성부(180)는 악성 코드가 호출하는 API 호출 시퀀스를 이용하여 행위 패턴을 생성하기 때문에, 악성 코드의 고유한 행위 패턴을 정의할 수 있는 API를 정의할 수 있다.
행위 패턴 생성부(180)에 의해 정의된 특성인자는 아래 [표 1]과 같이 나타낼 수 있다. [표 1]에 도시된 바와 같이, 행위 패턴 생성부(180)는 API와 해당 API에 대한 호출 시퀀스 및 문자열 시퀀스를 생성하기 위한 알파벳 코드를 특성인자로 정의할 수 있다.
일 예로, 행위 패턴 생성부(180)는 악성 코드에 의한 프로세스가 호출하는 API를 8개의 대분류('Process', 'Thread', 'Memory', 'File', 'Registry', 'Network', 'Service', 'Other')와 26개의 중분류로 정의하였다. 물론, [표 1]에 정의된 특성인자는 일 실시예일 뿐 이에 한정되는 것은 아니며, 실시 형태에 따라 다양하게 변경 가능함은 당연한 것이다.
Figure pat00001
Figure pat00002
이후, 제2 단계로서, 행위 패턴 생성부(180)는 미리 수집된 악성 코드를 실행시키도록 한다. 물론, 행위 패턴 생성 동작은 악성 코드 실행 시에 호출되는 API를 이용하는 동적 분석 방식이기 때문에 가상머신이나 악성 코드 실행으로 인한 감염된 운영체제(Operating System, OS)를 복구하는 프로그램이 사전에 구비되어야 할 것이다.
제3 단계로서, 행위 패턴 생성부(180)는 악성 코드 실행 시에 프로세스가 호출하는 API 중 제1 단계에서 특성인자로 정의된 API 호출 이벤트를 추출하도록 한다. 이때, 행위 패턴 생성부(180)는 각 프로세스별로 호출된 API를 기록하도록 한다.
제4 단계로서, 행위 패턴 생성부(180)는 각 프로세스별로 추출된 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하도록 한다. 이때, 행위 패턴 생성부(180)는 API 호출 정보를 문자화하여, 시간 순서에 맞게 가공할 수 있다.
일 예로, 행위 패턴 생성부(180)는 [표 1]에 정의된 API 호출 시퀀스에 대응하는 Code 정보를 기초로 API 호출 정보를 알파벳 문자화할 수 있다.
제5 단계로서, 행위 패턴 생성부(180)는 제4 단계에서 생성한 API 호출 시퀀스를 분류하도록 한다. 이때, 행위 패턴 생성부(180)는 API 호출 시퀀스를 분류하여 다중시퀀스정렬(Multiple Sequence Alignment, MSA) 알고리즘에 적용하기 위한 그룹을 생성할 수 있다.
이에, API 호출 시퀀스를 분류하는 동작은 도 3과 같이 나타낼 수 있다.
도 3에 도시된 바와 같이, 행위 패턴 생성부(180)는 3차 분류 과정을 통해 API 호출 시퀀스를 분류할 수 있다.
먼저, 행위 패턴 생성부(180)는 결정 트리(Decision Tree)를 이용하여 API 호출 시퀀스를 1차 분류(1st classification)할 수 있다.
여기서, 1차 분류에 이용되는 결정 트리(Decision Tree)는 호출되는 API의 통계값을 기반으로 미리 학습이 된 것이다. 물론, 행위 패턴 생성 장치는 결정 트리(Decision Tree) 대신 안티 바이러스(Anti-virus) 시스템에서 진단한 진단명을 기반으로 1차 분류를 수행할 수도 있다.
이때, 행위 패턴 생성부(180)는 1차 분류 과정을 통해 API 호출 시퀀스를 n개의 그룹(Group#1, Group#2, Group#3, ..., Group#n)으로 분류할 수 있다.
API 호출 시퀀스에 대한 1차 분류가 완료되면, 행위 패턴 생성부(180)는 다중시퀀스정렬(MSA) 알고리즘을 이용하여 1차 분류된 API 호출 시퀀스를 2차 분류(2nd classification)할 수 있다.
2차 분류 과정은 분리(Division) 과정으로서, 행위 패턴 생성부(180)는 1차적으로 분류된 n개의 그룹에 속한 API 호출 시퀀스를 각각 다중시퀀스정렬(MSA) 알고리즘에 적용하여 각 그룹에 속한 API 호출 시퀀스의 공통된 행위 패턴을 추출할 수 있다. 이때, 행위 패턴 생성부(180)는 다중시퀀스정렬(MSA) 알고리즘을 통해 추출된 행위 패턴을 기반으로 각 그룹에 속한 API 호출 시퀀스의 유사도를 분석하여 유사 시퀀스별로 분류할 수 있다.
여기서, n 개의 그룹은 2차 분류 과정을 통해 유사 행위 패턴을 갖는 하나 이상의 서브 그룹(Sub-group)으로 각각 분리될 수 있다.
API 호출 시퀀스에 대한 2차 분류가 완료되면, 행위 패턴 생성부(180)는 2차 분류된 각 서브 그룹의 API 호출 시퀀스를 통합(Merge)하여 3차 분류(3rd classification)할 수 있다.
3차 분류 과정은 최종 분류 과정으로서, 행위 패턴 생성부(180)는 2차 분류된 서브 그룹들을 API 호출 시퀀스의 유사 행위 패턴에 따라 통합하여 m 개의 최종 그룹(Final Group#1, Final Group#2, Final Group#3, ..., Final Group#m)으로 분류할 수 있다. 여기서, 행위 패턴 생성부(180)는 어느 하나의 그룹에 속한 서브 그룹을 다른 그룹에 속한 서브 그룹과 통합할 수 있다.
제6 단계로서, 행위 패턴 생성부(180)는 제5 단계에서 m 개의 최종 그룹으로 분류된 API 호출 시퀀스를 이용하여 행위 패턴을 생성하도록 한다.
행위 패턴 생성부(180)는 제6 단계에서 다중시퀀스정렬(MSA) 알고리즘을 이용하여 각 최종 그룹별 시퀀스에 대응하는 행위 패턴을 생성하도록 한다.
우선, 행위 패턴 생성부(180)는 다중시퀀스정렬(MSA) 알고리즘을 통해 유사도가 높은 영역을 기준으로 시퀀스를 정렬하도록 한다. 이에 대한 실시예는 도 4를 참조하도록 한다.
이때, 다중시퀀스정렬(MSA) 알고리즘은 사용자 정의 matrix를 이용하여 분석을 하게 되는데, 사용자 정의 matrix는 특성인자에 해당되는 알파벳과 그들과의 관계성을 수치화하여 생성된다.
유사도에 따라 정렬된 각 시퀀스의 위치에 해당되는 문자들은 문자의 출현 횟수에 대응하는 비율을 가지게 된다. 따라서, 행위 패턴 생성부(180)는 문자들의 출현 비율의 임계치(threshold)에 따라서 고유한 행위 패턴을 생성하도록 한다.
여기서, 생성된 행위 패턴은 임계치가 높을수록 그 길이는 짧지만 반드시 공통적으로 수행되어야 하는 행위 시퀀스를 의미한다. 한편, 행위 패턴은 임계치가 상대적으로 낮으면 해당 최종 그룹에 속한 대부분의 악성 코드가 대체로 수행하는 행위 패턴을 의미한다.
마지막 제7 단계로서, 행위 패턴 생성부(180)는 제6 단계에서 생성한 각 최종 그룹의 행위 패턴을 행위 패턴 DB(160)에 저장하도록 한다. 행위 패턴 DB(160)에 저장된 행위 패턴은 타겟 프로세스가 악성 코드인지를 판단하는데 활용될 수 있다.
한편, 악성 코드 탐지부(190)는 행위 패턴 생성부(180)에 의해 생성된 행위 패턴을 이용하여 악성 코드를 탐지하는 역할을 하며, 악성 코드 탐지부(190)의 악성 코드 탐지 동작은 도 5를 참조하여 더욱 상세히 설명하도록 한다.
도 5를 참조하면, 악성 코드 탐지부(190)에서 수행하는 악성 코드 탐지 동작은 4 단계로 분류하여 설명할 수 있다.
먼저, 제1 단계로서, 악성 코드 탐지부(190)는 의심 실행파일의 실행으로 인해 타겟 프로세스(target process)가 생성되면, 타겟 프로세스가 호출하는 API 중 행위 패턴 생성부(180)에 의해 특성인자로 정의된 API 호출 이벤트를 추출하도록 한다. 이때, 악성 코드 탐지부(190)는 타겟 프로세스에 의해 호출된 API를 기록하도록 한다.
제1 단계를 통해 특성인자와 관련된 API 호출 이벤트가 추출되면, 악성 코드 탐지부(190)는 제2 단계로서 API 호출 시퀀스를 생성하도록 한다.
제2 단계에서, 악성 코드 탐지부(190)는 타겟 프로세스에 의해 추출된 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하도록 한다. 이때, 악성 코드 탐지부(190)는 API 호출 정보를 문자화하여, 시간 순서에 맞게 가공할 수 있다.
일 예로, 악성 코드 탐지부(190)는 [표 1]에 정의된 API 호출 시퀀스에 대응하는 Code 정보를 기초로 API 호출 정보를 알파벳 문자화할 수 있다.
제2 단계를 통해 API 호출 시퀀스가 생성되면, 악성 코드 탐지부(190)는 제3 단계로서 API 호출 시퀀스의 행위에 대한 유사도를 분석하도록 한다.
제3 단계에서, 악성 코드 탐지부(190)는 행위 패턴 DB(160)에 저장된 행위 패턴들과 제2 단계에서 생성된 타겟 프로세스의 API 호출 시퀀스에 대한 행위 패턴을 비교하고, 비교 결과를 토대로 유사도를 측정하도록 한다.
이때, 악성 코드 탐지부(190)는 아래 [수학식 1]을 이용하여 타겟 프로세스의 API 호출 시퀀스에 대한 행위 패턴에 대한 유사도를 측정할 수 있다.
Figure pat00003
악성 코드 탐지부(190)는 타겟 프로세스의 시퀀스와 행위 패턴 DB(160)에 저장된 악성 코드 그룹의 행위 패턴 시퀀스를 입력값(X, Y)으로 하여, 두 시퀀스의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 산출하도록 한다. 이때, 악성 코드 탐지부(190)는 산출된 최장공통부분시퀀스(LCS)의 길이와 두 시퀀스(X, Y)의 최소 길이를 [수학식 1]에 적용하여 두 시퀀스(X, Y)의 유사도를 측정할 수 있다.
제3 단계를 통해 유사도 분석이 완료되면, 악성 코드 탐지부(190)는 제4 단계로서 API 호출 시퀀스의 행위에 대한 유사도를 분석 결과를 토대로 악성 코드를 판단하도록 한다.
악성 코드 탐지부(190)는 유사도 측정 결과, 행위 패턴 DB(160)에 저장된 행위 패턴들 중 제2 단계에서 생성된 타겟 프로세스의 API 호출 시퀀스에 대한 행위 패턴과 유사한 행위 패턴이 존재하는 경우 악성 코드로 판단할 수 있다.
악성 코드 탐지부(190)는 해당 타겟 프로세스에 대한 API 호출 시퀀스의 유사도 판단 결과를 저장부(140)에 저장하고, 동작 516과 같이 제어부(110)로 보고할 수 있다. 만일, 타겟 프로세스의 API 호출 시퀀스가 악성 코드로 판단이 되면, 악성 코드 탐지부(190)는 해당 시퀀스를 행위 패턴 DB(160)에 추가로 저장할 수 있다. 추가로 저장된 시퀀스는 추후 행위 패턴 갱신 등에 사용되어 악성 코드 탐지에 활용되도록 한다.
상기와 같이 구성되는 본 발명에 따른 제어 장치의 동작 흐름을 보다 상세히 설명하면 다음과 같다.
도 6 및 도 7은 본 발명에 따른 악성 코드 탐지 방법에 대한 동작 흐름을 도시한 순서도이다.
먼저, 도 6을 참조하면, 악성 코드 탐지 장치는 악성코드와 정상 실행 프로그램들의 행위를 구분하여 특정할 수 있는 특성인자를 정의하도록 한다(S110). 일 예로, 특성인자는 앞서 설명한 [표 1]과 같이 정의할 수 있다.
이후, 악성 코드 탐지 장치는 미리 수집된 악성 코드를 실행시키고(S120), 해당 악성 코드 실행 시에 프로세스가 호출하는 API 중 'S110' 과정에서 특성인자로 정의된 API 호출 이벤트를 추출하도록 한다(S130).
악성 코드 탐지 장치는 'S130' 과정에서 추출한 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하도록 한다(S140). 'S140' 과정에서 악성 코드 탐지 장치는 [표 1]에 정의된 API 호출 시퀀스에 대응하는 Code 정보를 기초로 API 호출 정보를 문자화하여, 시간 순서에 맞게 가공할 수 있다.
이후, 악성 코드 탐지 장치는 'S140' 과정에서 가공된 API 호출 시퀀스를 분류하도록 한다(S150). 'S150' 과정에서 악성 코드 탐지 장치는 결정 트리(Decision Tree) 및 다중시퀀스정렬(MSA) 알고리즘 등을 이용하여 API 호출 시퀀스를 3차례에 걸쳐 분류하고, 3차례 분류 과정을 거치는 동안 API 호출 시퀀스의 공통된 특성에 따라 분리 및 통합 등을 통해 m 개의 최종 그룹으로 API 호출 시퀀스를 분류할 수 있다.
마지막으로, 악성 코드 탐지 장치는 다중시퀀스정렬(MSA) 알고리즘을 이용하여 'S150' 과정에서 분류된 각 최종 그룹의 API 호출 시퀀스에 대응하는 행위 패턴을 생성하고 행위 패턴 DB에 저장하도록 한다(S160).
'S160' 과정에서 생성 및 저장된 행위 패턴은 도 7에서 악성 코드를 탐지하는데 이용될 수 있다.
이에, 도 7을 참조하면, 의심 실행파일의 실행으로 인해 타겟 프로세스(target process)가 생성되면, 악성 코드 탐지 장치는 타겟 프로세스를 감지하고(S210), 감지된 타겟 프로세스가 호출하는 API 호출 이벤트 중 사전에 특성인자로 정의된 API 호출 이벤트를 추출하도록 한다(S220).
악성 코드 탐지 장치는 'S220' 과정에서 추출한 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하도록 한다(S230). 'S230' 과정에서 악성 코드 탐지 장치는 [표 1]에 정의된 API 호출 시퀀스에 대응하는 Code 정보를 기초로 API 호출 정보를 문자화하여, 시간 순서에 맞게 가공할 수 있다.
이후, 악성 코드 탐지 장치는 행위 패턴 DB를 호출하여(S240), 'S230' 과정에서 가공된 API 호출 시퀀스와 행위 패턴 DB에 저장된 악성 코드의 API 호출 시퀀스를 비교하여 두 시퀀스에 대한 행위의 유사도를 분석하도록 한다(S250).
'S250' 과정의 분석 결과, 행위 패턴 DB에 저장된 행위 패턴들 중 타겟 프로세스의 API 호출 시퀀스에 대한 행위 패턴과 유사한 행위 패턴이 존재하는 경우, 악성 코드 탐지 장치는 해당 시퀀스를 악성 코드로 판단할 수 있다.
악성 코드 탐지 장치는 'S250' 과정의 분석 결과로부터 해당 시퀀스에 대한 악성 코드 여부를 판단하고(S260), 판단 결과를 보고하도록 한다(S280). 만일, 'S260' 과정에서 해당 시퀀스가 악성 코드로 판단되면, 악성 코드 탐지 장치는 해당 시퀀스의 행위 패턴을 행위 패턴 DB에 추가로 저장할 수 있다(S270).
상기에서와 같이 동작하는 본 실시예에 따른 악성 코드 탐지 장치는 독립적인 하드웨어 장치 형태로 구현될 수 있다. 한편, 본 실시예에 따른 악성 코드 탐지 장치는 적어도 하나 이상의 프로세서(processor)로서 마이크로 프로세서나 범용 컴퓨터 시스템과 같은 다른 하드웨어 장치에 포함된 형태로 구동될 수 있다.
도 8은 본 발명에 따른 장치가 적용된 컴퓨팅 시스템의 구성을 도시한 도면이다.
도 8을 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 제어부 120: 인터페이스부
130: 통신부 140: 저장부
150: 특성인자 DB 160: 행위 패턴 DB
170: 신호 처리부 180: 행위 패턴 생성부
190: 악성 코드 탐지부

Claims (16)

  1. 악성코드와 정상 실행 프로그램들의 행위를 구분하여 특정할 수 있는 특성인자를 정의하고, 미리 수집된 악성코드를 실행하여 생성된 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 API 호출 이벤트를 시퀀스로 변환하며, 변환된 시퀀스의 유사도에 따라 행위 패턴을 생성하여 행위 패턴 DB에 저장하는 행위 패턴 생성부; 및
    타겟 프로세스가 실행되는 경우, 상기 타겟 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 API 호출 이벤트를 시퀀스로 변환하고, 변환된 시퀀스와 상기 행위 패턴 DB에 저장된 시퀀스의 유사도에 따라 악성코드인지를 판단하는 악성 코드 탐지부
    를 포함하는 것을 특징으로 하는 악성 코드 탐지 장치.
  2. 청구항 1에 있어서,
    상기 행위 패턴 생성부는,
    악성코드에 의해 실행되는 각 프로세스별로 추출된 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하고, 상기 API 호출 시퀀스를 문자 시퀀스로 변환하는 것을 특징으로 하는 악성 코드 탐지 장치.
  3. 청구항 1에 있어서,
    상기 행위 패턴 생성부는,
    호출되는 API의 통계값을 기반으로 미리 학습된 결정 트리(Decision Tree)를 이용하여 상기 API 호출 이벤트에 대응하는 API 호출 시퀀스를 복수 개의 그룹으로 분류하며,
    분류된 각 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘에 적용하여 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도를 분석하고, 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도에 따라 각 그룹을 복수 개의 서브 그룹으로 분류하는 것을 특징으로 하는 악성 코드 탐지 장치.
  4. 청구항 3에 있어서,
    상기 행위 패턴 생성부는,
    분류된 각 서브 그룹의 API 호출 시퀀스를 유사 행위 패턴에 따라 통합하여 복수 개의 최종 그룹으로 분류하는 것을 특징으로 하는 악성 코드 탐지 장치.
  5. 청구항 4에 있어서,
    상기 행위 패턴 생성부는,
    상기 분류된 복수 개의 최종 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘을 통해 유사도가 높은 영역을 기준으로 정렬하고, API 호출 시퀀스에 대응하는 문자 코드의 출현 비율에 따라 행위 패턴을 생성하는 것을 특징으로 하는 악성 코드 탐지 장치.
  6. 청구항 1에 있어서,
    상기 특성인자는,
    악성코드에 의한 프로세스가 호출하는 API 호출 이벤트가 'Process', 'Thread', 'Memory', 'File', 'Registry', 'Network', 'Service' 및 'Other'로 분류되어 정의되고, 각 API 호출 이벤트에 대응하는 문자 코드 정보가 정의된 것을 특징으로 하는 악성 코드 탐지 장치.
  7. 청구항 1에 있어서,
    상기 악성 코드 탐지부는,
    상기 타겟 프로세스에 의해 호출된 API 호출 이벤트 중 특성인자에 해당하는 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하고, 상기 API 호출 시퀀스를 문자 시퀀스로 변환하는 것을 특징으로 하는 악성 코드 탐지 장치.
  8. 청구항 7에 있어서,
    상기 악성 코드 탐지부는,
    상기 생성된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 악성코드의 시퀀스를 입력값으로 두 시퀀스의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 산출하고, 산출된 최장공통부분시퀀스(LCS)의 길이와 두 시퀀스의 최소 길이를 비교하여 두 시퀀스 간 유사도를 측정하는 것을 특징으로 하는 악성 코드 탐지 장치.
  9. 청구항 1에 있어서,
    상기 악성 코드 탐지부는,
    악성코드로 탐지된 API 호출 시퀀스의 행위 패턴을 행위 패턴 DB에 추가로 저장하는 것을 특징으로 하는 악성 코드 탐지 장치.
  10. 악성코드와 정상 실행 프로그램들의 행위를 구분하여 특정할 수 있는 특성인자를 정의하는 단계;
    미리 수집된 악성코드를 실행하여 생성된 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 각 프로세스의 API 호출 이벤트를 시퀀스로 변환하는 단계;
    변환된 시퀀스의 유사도에 따라 행위 패턴을 생성하여 상기 생성된 행위 패턴을 행위 패턴 DB에 저장하는 단계;
    타겟 프로세스가 실행되는 경우, 상기 타겟 프로세스에 의해 호출되는 API 호출 이벤트 중 상기 정의된 특성인자에 해당하는 타겟 프로세스의 API 호출 이벤트를 시퀀스로 변환하는 단계; 및
    변환된 시퀀스와 상기 행위 패턴 DB에 저장된 시퀀스의 유사도에 따라 악성코드인지를 판단하는 단계
    를 포함하는 것을 특징으로 하는 악성 코드 탐지 방법.
  11. 청구항 10에 있어서,
    상기 각 프로세스의 API 호출 이벤트를 API 호출 시퀀스로 변환하는 단계는,
    악성코드에 의해 실행되는 각 프로세스별로 추출된 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하고, 상기 API 호출 시퀀스를 문자 시퀀스로 변환하는 것을 특징으로 하는 악성 코드 탐지 방법.
  12. 청구항 10에 있어서,
    상기 생성된 행위 패턴을 행위 패턴 DB에 저장하는 단계 이전에,
    호출되는 API의 통계값을 기반으로 미리 학습된 결정 트리(Decision Tree)를 이용하여 상기 API 호출 이벤트에 대응하여 생성된 API 호출 시퀀스를 복수 개의 그룹으로 분류하는 단계;
    분류된 각 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘에 적용하여 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도를 분석하고, 각 그룹에 속한 API 호출 시퀀스의 행위 패턴에 대한 유사도에 따라 각 그룹을 복수 개의 서브 그룹으로 분류하는 단계; 및
    분류된 각 서브 그룹의 API 호출 시퀀스를 유사 행위 패턴에 따라 통합하여 복수 개의 최종 그룹으로 분류하는 단계를 더 포함하는 것을 특징으로 하는 악성 코드 탐지 방법.
  13. 청구항 12에 있어서,
    상기 생성된 행위 패턴을 행위 패턴 DB에 저장하는 단계는,
    상기 분류된 복수 개의 최종 그룹에 속한 API 호출 시퀀스를 다중시퀀스정렬(MSA) 알고리즘을 통해 유사도가 높은 영역을 기준으로 정렬하고, API 호출 시퀀스에 대응하는 문자 코드의 출현 비율에 따라 행위 패턴을 생성하는 단계를 포함하는 것을 특징으로 하는 악성 코드 탐지 방법.
  14. 청구항 10에 있어서,
    상기 타겟 프로세스의 API 호출 이벤트를 API 호출 시퀀스로 변환하는 단계는,
    상기 타겟 프로세스에 의해 호출된 API 호출 이벤트 중 특성인자에 해당하는 API 호출 이벤트에 기초하여 시간 순서에 따라 API 호출 시퀀스를 생성하고, 상기 API 호출 시퀀스를 문자 시퀀스로 변환하는 것을 특징으로 하는 악성 코드 탐지 방법.
  15. 청구항 10에 있어서,
    상기 악성코드인지를 판단하는 단계는,
    상기 생성된 API 호출 시퀀스와 상기 행위 패턴 DB에 저장된 악성코드의 시퀀스를 입력값으로 두 시퀀스의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 산출하는 단계; 및
    산출된 최장공통부분시퀀스(LCS)의 길이와 두 시퀀스의 최소 길이를 비교하여 두 시퀀스 간 유사도를 측정하는 단계를 포함하는 것을 특징으로 하는 악성 코드 탐지 방법.
  16. 청구항 10에 있어서,
    악성코드로 탐지된 API 호출 시퀀스의 행위 패턴을 행위 패턴 DB에 추가로 저장하는 단계를 더 포함하는 것을 특징으로 하는 악성 코드 탐지 방법.
KR1020160032041A 2016-03-17 2016-03-17 악성 코드 탐지 장치 및 방법 Ceased KR20170108330A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160032041A KR20170108330A (ko) 2016-03-17 2016-03-17 악성 코드 탐지 장치 및 방법
US15/240,319 US10007789B2 (en) 2016-03-17 2016-08-18 Apparatus and method for detecting malware code by generating and analyzing behavior pattern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160032041A KR20170108330A (ko) 2016-03-17 2016-03-17 악성 코드 탐지 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20170108330A true KR20170108330A (ko) 2017-09-27

Family

ID=59855695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160032041A Ceased KR20170108330A (ko) 2016-03-17 2016-03-17 악성 코드 탐지 장치 및 방법

Country Status (2)

Country Link
US (1) US10007789B2 (ko)
KR (1) KR20170108330A (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102005107B1 (ko) * 2019-01-29 2019-07-29 엘아이지넥스원 주식회사 Api 호출 시퀀스를 이용한 악성코드의 기능 분석 방법 및 장치
KR102046748B1 (ko) * 2019-04-25 2019-11-19 숭실대학교산학협력단 트리 부스팅 기반 애플리케이션의 위험도 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
KR102068605B1 (ko) * 2019-03-25 2020-01-21 (주)시큐레이어 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치
KR102150571B1 (ko) * 2019-09-04 2020-09-01 국방과학연구소 네트워크에서 정보 출처를 확인하기 위한 장치, 방법, 컴퓨터 판독 가능 기록매체 및 컴퓨터 프로그램
KR20210023633A (ko) * 2019-08-23 2021-03-04 숭실대학교산학협력단 호출되는 함수를 그룹화하여 악성코드를 분류하는 악성코드 분류 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
KR20210024399A (ko) * 2019-08-23 2021-03-05 숭실대학교산학협력단 악성 코드의 행위 특성 추출 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
WO2021071027A1 (ko) * 2019-10-07 2021-04-15 숭실대학교 산학협력단 운영체제의 api 레벨에 따라 변형되는 악성코드 분류 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
KR20210051669A (ko) * 2019-10-31 2021-05-10 삼성에스디에스 주식회사 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
KR20210056800A (ko) * 2019-11-11 2021-05-20 (주)하몬소프트 관심 동작 영역 기반의 edr 장치 및 방법
KR20210085739A (ko) * 2019-12-31 2021-07-08 주식회사 안랩 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
KR20220038643A (ko) * 2020-02-25 2022-03-29 국방과학연구소 악성코드 진화관계를 분석하는 장치 및 방법
KR20230100918A (ko) * 2021-12-29 2023-07-06 한국전자통신연구원 심볼릭 공간에서의 네트워킹 행위 이상도 측정 기반 공격 탐지 장치 및 방법
CN116520809A (zh) * 2023-06-02 2023-08-01 西南石油大学 面向高危气田的工业控制系统安全行为识别方法及系统
US11853421B2 (en) 2020-02-25 2023-12-26 Agency For Defense Development Method and apparatus for analyzing malicious code

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018124672A1 (en) * 2016-12-28 2018-07-05 Samsung Electronics Co., Ltd. Apparatus for detecting anomaly and operating method for the same
US10061921B1 (en) * 2017-02-13 2018-08-28 Trend Micro Incorporated Methods and systems for detecting computer security threats
JP6697123B2 (ja) * 2017-03-03 2020-05-20 日本電信電話株式会社 プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム
US10970388B2 (en) 2017-06-28 2021-04-06 Webroot Inc. Discrete processor feature behavior collection
CN107992741B (zh) * 2017-10-24 2020-08-28 阿里巴巴集团控股有限公司 一种模型训练方法、检测url的方法及装置
US20190156024A1 (en) * 2017-11-20 2019-05-23 Somansa Co., Ltd. Method and apparatus for automatically classifying malignant code on basis of malignant behavior information
CN110297750A (zh) * 2018-03-22 2019-10-01 北京京东尚科信息技术有限公司 程序相似性检测的方法和装置
EP3808036B1 (en) * 2018-07-13 2025-11-12 Schneider Electric USA, Inc. Late stage device configuration and behavior pattern-based validation
CN109614795B (zh) * 2018-11-30 2023-04-28 武汉大学 一种事件感知的安卓恶意软件检测方法
CN109711163B (zh) * 2018-12-26 2021-07-27 西安电子科技大学 基于api调用序列的安卓恶意软件检测方法
KR102090423B1 (ko) * 2019-04-25 2020-05-04 숭실대학교산학협력단 동적 api 추출 기반의 애플리케이션 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
US11296868B1 (en) 2019-09-17 2022-04-05 Trend Micro Incorporated Methods and system for combating cyber threats using a related object sequence hash
US12058135B2 (en) * 2019-11-20 2024-08-06 Royal Bank Of Canada System and method for unauthorized activity detection
CN111259388B (zh) * 2020-01-09 2023-01-17 中山大学 一种基于图卷积的恶意软件api调用序列检测方法
CN111737694B (zh) * 2020-05-19 2023-04-25 华南理工大学 一种基于行为树的恶意软件同源性分析方法
CN112000954B (zh) * 2020-08-25 2024-01-30 华侨大学 一种基于特征序列挖掘和精简的恶意软件检测方法
US11790085B2 (en) 2020-10-29 2023-10-17 Electronics And Telecommunications Research Institute Apparatus for detecting unknown malware using variable opcode sequence and method using the same
KR102308477B1 (ko) * 2020-12-07 2021-10-06 주식회사 샌즈랩 악성 코드의 악성 행위 특징 정보를 생성하는 방법
CN112698837B (zh) * 2020-12-31 2024-11-15 上海戎磐网络科技有限公司 基于软件基因的动态行为与二进制代码匹配方法和装置
CN113010892B (zh) * 2021-03-26 2022-09-20 支付宝(杭州)信息技术有限公司 小程序恶意行为检测方法和装置
US12498995B2 (en) * 2022-08-04 2025-12-16 Salesforce, Inc. Generating a federated application programming interface for heterogenous data sources
CN116305116B (zh) * 2023-02-15 2026-03-24 中国人民解放军网络空间部队信息工程大学 一种基于敏感信息流关系的软件检测方法及系统
US12050687B1 (en) 2024-01-11 2024-07-30 Morgan Stanley Services Group Inc. Systems and methods for malware detection in portable executable files
CN119557883B (zh) * 2025-01-24 2025-05-16 西安热工研究院有限公司 一种基于系统调用的应用程序行为度量方法及系统
US12536281B1 (en) 2025-06-04 2026-01-27 Morgan Stanley Services Group Inc. Systems and methods for malware detection in portable executable files

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913305B2 (en) * 2004-01-30 2011-03-22 Microsoft Corporation System and method for detecting malware in an executable code module according to the code module's exhibited behavior
US7779472B1 (en) * 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
US8181248B2 (en) 2006-11-23 2012-05-15 Electronics And Telecommunications Research Institute System and method of detecting anomaly malicious code by using process behavior prediction technique
US8935789B2 (en) * 2008-07-21 2015-01-13 Jayant Shukla Fixing computer files infected by virus and other malware
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
IL197477A0 (en) 2009-03-08 2009-12-24 Univ Ben Gurion System and method for detecting new malicious executables, based on discovering and monitoring of characteristic system call sequences
US8464345B2 (en) * 2010-04-28 2013-06-11 Symantec Corporation Behavioral signature generation using clustering
KR101295644B1 (ko) 2011-11-11 2013-09-16 한국전자통신연구원 스마트폰 앱 검증 시스템 및 그 방법
KR101324691B1 (ko) 2011-12-08 2013-11-04 한국인터넷진흥원 모바일 악성 행위 어플리케이션 탐지 시스템 및 방법
JP6005761B2 (ja) * 2012-12-21 2016-10-12 日本電信電話株式会社 監視装置および監視方法
KR101543237B1 (ko) 2014-12-03 2015-08-11 한국인터넷진흥원 코드 패턴을 이용한 정적 분석과 api 흐름을 이용한 동적 분석을 통한 악성 스크립트 탐지 차단 장치, 시스템 및 방법

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102005107B1 (ko) * 2019-01-29 2019-07-29 엘아이지넥스원 주식회사 Api 호출 시퀀스를 이용한 악성코드의 기능 분석 방법 및 장치
KR102068605B1 (ko) * 2019-03-25 2020-01-21 (주)시큐레이어 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치
KR102046748B1 (ko) * 2019-04-25 2019-11-19 숭실대학교산학협력단 트리 부스팅 기반 애플리케이션의 위험도 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
US10796005B1 (en) 2019-04-25 2020-10-06 Foundation Of Soongsil University-Industry Cooperation Method of application security vulnerability evaluation based on tree boosting, and readable medium and apparatus for performing the method
KR20210023633A (ko) * 2019-08-23 2021-03-04 숭실대학교산학협력단 호출되는 함수를 그룹화하여 악성코드를 분류하는 악성코드 분류 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
KR20210024399A (ko) * 2019-08-23 2021-03-05 숭실대학교산학협력단 악성 코드의 행위 특성 추출 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
KR102150571B1 (ko) * 2019-09-04 2020-09-01 국방과학연구소 네트워크에서 정보 출처를 확인하기 위한 장치, 방법, 컴퓨터 판독 가능 기록매체 및 컴퓨터 프로그램
WO2021071027A1 (ko) * 2019-10-07 2021-04-15 숭실대학교 산학협력단 운영체제의 api 레벨에 따라 변형되는 악성코드 분류 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
KR20210051669A (ko) * 2019-10-31 2021-05-10 삼성에스디에스 주식회사 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
US11475133B2 (en) 2019-10-31 2022-10-18 Samsung Sds Co., Ltd. Method for machine learning of malicious code detecting model and method for detecting malicious code using the same
KR20210056800A (ko) * 2019-11-11 2021-05-20 (주)하몬소프트 관심 동작 영역 기반의 edr 장치 및 방법
KR20210085739A (ko) * 2019-12-31 2021-07-08 주식회사 안랩 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
KR20220038643A (ko) * 2020-02-25 2022-03-29 국방과학연구소 악성코드 진화관계를 분석하는 장치 및 방법
US11853421B2 (en) 2020-02-25 2023-12-26 Agency For Defense Development Method and apparatus for analyzing malicious code
KR20230100918A (ko) * 2021-12-29 2023-07-06 한국전자통신연구원 심볼릭 공간에서의 네트워킹 행위 이상도 측정 기반 공격 탐지 장치 및 방법
US12309183B2 (en) 2021-12-29 2025-05-20 Electronics And Telecommunications Research Institute Attack detection apparatus and method based on measurement of networking behavior abnormalities in symbolic spaces
CN116520809A (zh) * 2023-06-02 2023-08-01 西南石油大学 面向高危气田的工业控制系统安全行为识别方法及系统
CN116520809B (zh) * 2023-06-02 2023-12-12 西南石油大学 面向高危气田的工业控制系统安全行为识别方法及系统

Also Published As

Publication number Publication date
US20170270299A1 (en) 2017-09-21
US10007789B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
KR20170108330A (ko) 악성 코드 탐지 장치 및 방법
US12443710B2 (en) System and method for automated machine-learning, zero-day malware detection
D’Angelo et al. Association rule-based malware classification using common subsequences of API calls
CN113935033B (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
US9665713B2 (en) System and method for automated machine-learning, zero-day malware detection
US9237161B2 (en) Malware detection and identification
Darus et al. Android malware detection using machine learning on image patterns
US11048798B2 (en) Method for detecting libraries in program binaries
CN105138916B (zh) 基于数据挖掘的多轨迹恶意程序特征检测方法
KR102151318B1 (ko) 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치
US11809557B2 (en) Mobile malicious code classification method based on feature selection and recording medium and device for performing the same
US11163877B2 (en) Method, server, and computer storage medium for identifying virus-containing files
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
Elkhawas et al. Malware detection using opcode trigram sequence with SVM
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
KR101803888B1 (ko) 유사도 기반 악성 어플리케이션 탐지 방법 및 장치
Darus et al. Android malware classification using xgboost on data image pattern
CN110362995A (zh) 一种基于逆向与机器学习的恶意软件检测及分析系统
CN115510449A (zh) 源代码漏洞检测方法及装置
KR102246405B1 (ko) Tf-idf 기반 벡터 변환 및 데이터 분석 장치 및 방법
CN114579965A (zh) 一种恶意代码的检测方法、装置及计算机可读存储介质
EP3964986A1 (en) Extraction device, extraction method, and extraction program
CN105809034A (zh) 一种恶意软件识别方法
CN112163217A (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
Pranav et al. Detection of botnets in IoT networks using graph theory and machine learning

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20160317

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20201204

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20160317

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20220110

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20220315

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20220110

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I