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

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

Info

Publication number
KR101932174B1
KR101932174B1 KR1020170090693A KR20170090693A KR101932174B1 KR 101932174 B1 KR101932174 B1 KR 101932174B1 KR 1020170090693 A KR1020170090693 A KR 1020170090693A KR 20170090693 A KR20170090693 A KR 20170090693A KR 101932174 B1 KR101932174 B1 KR 101932174B1
Authority
KR
South Korea
Prior art keywords
malicious code
information
subsequence
reliability
average value
Prior art date
Application number
KR1020170090693A
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 KR1020170090693A priority Critical patent/KR101932174B1/ko
Application granted granted Critical
Publication of KR101932174B1 publication Critical patent/KR101932174B1/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

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)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 악성 코드 탐지 방법 및 그 장치에 대한 것으로서, 보다 상세하게는 함수 호출 시퀀스를 이용한 악성 코드 탐지 방법 및 그 장치에 관한 것이다. 본 발명의 일 실시예에 따른 악성 코드 탐지 장치는, 프로세서 및 프로세서에 연결된 메모리를 포함하며, 메모리에는 프로세서에 의해 실행 가능한, 입력되는 실행프로그램의 함수 호출 시퀀스를 미리 저장된 인덱스정보를 이용하여 분석한 결과를 통해 실행프로그램의 악성 코드 가능성을 판단하도록 하는 프로그램 명령어들이 저장될 수 있다. 본 발명에 따르면 시간 효율성이 높은 악성 코드 탐지 방법 및 그 장치를 제공할 수 있다.

Description

악성 코드 탐지 방법 및 그 장치{MALICIOUS CODE DETECTING METHOD AND DEVICE THEREOF}
본 발명은 악성 코드 탐지 방법 및 그 장치에 대한 것으로서, 보다 상세하게는 함수 호출 시퀀스를 이용한 악성 코드 탐지 방법 및 그 장치에 관한 것이다.
인터넷의 영향력은 시대가 거듭할수록 점점 커지고 있다. 이에 따라 인터넷에 의한 각종 부작용도 증가하고 있는데, 악성 코드도 그 중 하나이다. 종류가 증가하고 그 수법도 매우 고도화되는 악성 코드에 대항하기 위해 여러 악성 코드 탐지 기법이 연구되어 왔다.
이들 기법들 중 이미 존재하는 악성 코드의 특징을 활용한 분석 기법이 널리 사용되는데, API 호출 시퀀스를 분석하는 방법도 그 중 하나이다. 임의의 프로그램이 실행될 때, 당해 프로그램에서 사용되는 API 시퀀스와 이미 알려진 악성 코드의 API 호출 시퀀스의 유사도를 계산하는 경우가 다수 존재한다. 종래의 기술에 따른 유사도 비교 분석 알고리즘은 대부분 시간 효율성이 낮으므로 분석 시간 오버헤드가 많이 발생되는 문제점이 있다.
본 발명은 시간 효율성이 높은 악성 코드 탐지 방법 및 그 장치를 제공하고자 한다.
본 발명의 일 실시예에 따르면, 프로세서; 및 상기 프로세서에 연결된 메모리;
를 포함하며, 상기 메모리는 상기 프로세서에 의해 실행 가능한, 입력되는 실행프로그램의 함수 호출 시퀀스를 미리 저장된 인덱스정보를 이용하여 분석한 결과를 통해 상기 실행프로그램의 악성 코드 가능성을 판단하도록 하는 프로그램 명령어들을 저장하되, 상기 인덱스정보는 서브시퀀스의 식별 정보와 악성 코드 가능성에 대한 정보가 매칭되어 저장된 정보인, 악성 코드 탐지 장치가 개시된다.
실시예에 따라, 상기 악성 코드 가능성에 대한 정보는, 미리 저장된 복수의 악성 코드들에서 추출된 제1 서브시퀀스와 상기 복수의 악성 코드들 간의 관련성에 대한 제1 신뢰도를 포함할 수 있다.
실시예에 따라, 상기 제1 서브시퀀스는, 상기 복수의 악성 코드들에 대한 제1 함수 호출 시퀀스가 미리 설정된 방법에 따라 코드화되고, 코드화된 상기 제1 함수 호출 시퀀스에 슬라이딩 윈도우가 적용되어 추출된 것일 수 있다.
실시예에 따라, 상기 제1 신뢰도는, 상기 제1 유사도와 상기 제1 빈도가 이용되어 생성된 정보이되, 상기 제1 유사도는 제1 모델의 전향 알고리즘을 통해 생성된 정보이고, 상기 제1 모델은 상기 복수의 악성 코드들에 대한 은닉 마르코프 모델이며, 상기 제1 빈도는 상기 제1 서브시퀀스가 상기 복수의 악성 코드들에서 추출되는 빈도에 대한 정보일 수 있다.
실시예에 따라, 상기 악성 코드 가능성에 대한 정보는, 미리 저장된 복수의 정상 코드들에서 추출된 제2 서브시퀀스와 상기 복수의 정상 코드들 간의 관련성에 대한 제2 신뢰도를 포함할 수 있다.
실시예에 따라, 상기 제2 서브시퀀스는, 상기 복수의 정상 코드들에 대한 제2 함수 호출 시퀀스가 미리 설정된 방법에 따라 코드화되고, 코드화된 상기 제2 함수 호출 시퀀스에 슬라이딩 윈도우가 적용되어 추출된 것일 수 있다.
실시예에 따라, 상기 제2 신뢰도는, 상기 제2 유사도와 상기 제2 빈도가 이용되어 생성된 정보이되, 상기 제2 유사도는 제2 모델의 전향 알고리즘을 통해 생성된 정보이고, 상기 제2 모델은 상기 복수의 정상 코드들에 대한 은닉 마르코프 모델이며, 상기 제2 빈도는 상기 제2 서브시퀀스가 상기 복수의 정상 코드들에서 추출되는 빈도에 대한 정보일 수 있다.
실시예에 따라, 상기 실행프로그램의 함수 호출 시퀀스 분석은, 상기 실행프로그램의 함수 호출 시퀀스에서 제3 서브시퀀스가 순차적으로 추출되고, 상기 인덱스정보에서 순차적으로 독출된 상기 제3 서브시퀀스에 상응하는 제1 신뢰도 및 제2 신뢰도 중 하나 이상을 이용하여 분석하는 것일 수 있다.
실시예에 따라, 상기 제3 서브시퀀스는, 상기 실행프로그램의 함수 호출 시퀀스가 미리 설정된 방법에 따라 코드화되고, 코드화된 상기 실행프로그램의 함수 호출 시퀀스에 슬라이딩 윈도우가 적용되어 순차적으로 추출된 것일 수 있다.
실시예에 따라, 상기 악성 코드 가능성 판단은, 제1 전체평균값이 제2 전체평균값보다 미리 설정된 임계상 이상 큰 값인지 여부를 통해 판단하는 것이되, 상기 제1 전체평균값은 순차적으로 독출되는 상기 제1 신뢰도가 모두 합산된 값이고, 상기 제2 전체평균값은 순차적으로 독출되는 상기 제2 신뢰도가 모두 합산된 값일 수 있다.
실시예에 따라, 상기 악성 코드 가능성 판단은, 제1 일부평균값이 제2 일부평균값보다 미리 설정된 임계상 이상 큰 값인지 여부를 통해 판단하는 것이되, 상기 제1 일부평균값은 순차적으로 독출되는 상기 제1 신뢰도 중 가장 최근에 독출된 m개의 제1 신뢰도가 합산된 값이고, 상기 제2 전체평균값은 순차적으로 독출되는 상기 제2 신뢰도 중 가장 최근에 독출된 상기 m개의 제2 신뢰도가 합산된 값이며, 상기 m은 2 이상의 자연수일 수 있다.
실시예에 따라, 상기 악성코드 탐지 장치는, 연결된 사용자장치로부터 상기 실행프로그램의 함수 호출 시퀀스를 수신하고, 입력된 알림정보를 상기 사용자장치로 전송하는 통신부;를 더 포함하되, 상기 프로세서는 상기 실행프로그램이 악성 코드로 판단되면 상기 알림정보를 생성하여 상기 통신부로 출력하며, 상기 사용자장치는 상기 실행프로그램이 실행되면 상기 함수 호출 시퀀스를 상기 통신부로 전송하고, 상기 알림정보를 디스플레이할 수 있다.
본 발명의 다른 실시예에 따르면, 악성 코드 탐지 장치에서 수행되는 악성 코드 탐지 방법에 있어서, 실행프로그램의 함수 호출 시퀀스가 입력되는 단계; 함수 호출 시퀀스를 미리 저장된 인덱스정보를 이용하여 분석하는 단계; 및 상기 분석 결과를 통해 상기 실행프로그램의 악성 코드 가능성을 판단하는 단계;를 포함하되, 상기 인덱스정보는 서브시퀀스의 식별 정보와 악성 코드 가능성에 대한 정보가 매칭되어 저장된 정보인, 악성 코드 탐지 방법이 개시된다.
실시예에 따라, 상기 악성 코드 가능성에 대한 정보는, 미리 저장된 복수의 악성 코드들에서 추출된 제1 서브시퀀스와 상기 복수의 악성 코드들 간의 관련성에 대한 제1 신뢰도를 포함하고, 미리 저장된 복수의 정상 코드들에서 추출된 제2 서브시퀀스와 상기 복수의 정상 코드들 간의 관련성에 대한 제2 신뢰도를 포함할 수 있다.
실시예에 따라, 상기 실행프로그램의 함수 호출 시퀀스를 분석하는 단계는, 상기 실행프로그램의 함수 호출 시퀀스에서 제3 서브시퀀스를 순차적으로 추출하는 단계; 및 상기 인덱스정보에서 상기 제3 서브시퀀스에 상응하는 제1 신뢰도 및 제2 신뢰도를 순차적으로 독출하는 단계; 를 포함하고, 상기 실행프로그램의 악성 코드 가능성을 판단하는 단계는, 상기 제1 신뢰도를 m개 이상 합산하여 제1 평균값을 생성하는 단계 - 단, 상기 m은 2 이상의 자연수임; 상기 제2 신뢰도를 상기 m개 이상 합산하여 제2 평균값을 생성하는 단계; 및 상기 제1 평균값이 상기 제2 평균값보다 미리 설정된 임계값 이상 큰 값인지 여부를 판단하는 단계;를 포함할 수 있다.
본 발명에 따르면 시간 효율성이 높은 악성 코드 탐지 방법 및 그 장치를 제공할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 악성 코드 탐지 시스템에 대한 구성도이다.
도 2는 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에 대한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 인덱스정보가 생성되는 과정에 대한 순서도이다.
도 4는 본 발명의 일 실시예에 따라 서브 시퀀스가 생성되는 과정에 대한 도면이다.
도 5는 본 발명의 일 실시예에 따른 인덱스정보를 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 악성 코드 탐지 방법에 대한 순서도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 악성 코드 탐지 시스템에 대한 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 악성 코드 탐지 시스템(100)은 악성 코드 탐지 장치(110), 이동통신 단말기(120-1), 노트북 컴퓨터(120-2), 퍼스널 컴퓨터(120-n) 등의 사용자 기기(이하 '120'으로 통칭함)(단, n은 자연수임)를 포함한다. 악성 코드 탐지 장치(110)는 사용자 기기(120)와 네트워크(130)를 통해 연결될 수 있다. 네트워크(130)는 인터넷(Internet), 인트라넷(Intranet), 이동통신망(Mobile Network) 등 악성 코드 탐지 장치(110)와 사용자 기기(120)를 통신적으로 연결할 수 있는 통신망이라면 그 종류와 무관하게 적용될 수 있다.
사용자 기기(120)는 사용자의 조작에 따라 실행프로그램이 실행되면, 실행프로그램의 함수 호출 시퀀스를 악성 코드 탐지 장치(110)로 전송할 수 있다. 악성 코드 탐지 장치(110)는 사용자 기기(120)로부터 순차적으로 수신되는 함수 호출 시퀀스(예를 들어, API 호출 시퀀스)를 분석하여 사용자 기기(120)에서 실행 중인 프로그램(이하, '실행프로그램'이라 칭함)의 악성 코드 여부를 판단할 수 있다.
악성 코드 탐지 장치(110)는 실행프로그램이 악성 코드로 판단되면 당해 실행프로그램이 악성 코드일 수 있다는 것을 알리기 위한 정보(이하, '알림정보'라 칭함)를 생성하여 사용자 기기(120)로 전송할 수 있다. 사용자 기기(120)는 알림정보가 수신되면 이를 디스플레이하거나 알람을 출력할 수 있다. 이에 의하여 사용자는 실행프로그램이 악성 코드일 수 있다는 것을 시각적 및/또는 청각적으로 인지할 수 있다.
이하, 도 2 내지 도 6을 참조하여 악성 코드 탐지 장치(110)가 실행프로그램의 함수 호출 시퀀스를 분석하여 실행프로그램의 악성 코드 여부를 판단하는 동작에 대하여 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에 대한 블록 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 악성 코드 탐지 장치(110)는 통신부(210), 악성코드판단부(220) 및 메모리(230)를 포함할 수 있다. 메모리(230)는 이미 공개된 복수의 악성코드들이 저장된 제1 데이터베이스(230-1), 이미 공개된 복수의 정상코드들이 저장된 제2 데이터베이스(230-2) 및 악성코드 및/또는 정상코드를 이용하여 생성된 인덱스정보가 저장된 인덱스정보 데이터베이스(230-3)를 포함할 수 있다.
통신부(210)는 네트워크(130)를 통하여 연결된 사용자 기기(120)로부터 실행프로그램의 함수 호출 시퀀스가 수신되면 이를 악성코드판단부(220)로 출력할 수 있다. 또한 통신부(210)는 악성코드판단부(220)로부터 알림정보가 수신되면 이를 사용자 기기(120)로 전송할 수 있다. 통신부(210)는 사용자 기기(120)와 각종 정보를 송수신할 수 있도록 네트워크(130)에 연결될 수 있는 통신 부품을 포함할 수 있다.
악성코드판단부(220)는 실행프로그램의 함수 호출 시퀀스가 입력되면 인덱스정보 데이터베이스(230-3)에 저장된 인덱스정보를 이용하여 실행프로그램의 악성 코드 가능성을 판단할 수 있다. 인덱스정보는 서브시퀀스의 식별 정보(예를 들어, 서브시퀀스의 명칭, 코드 등과 같은 고유 정보)와 악성 코드 가능성에 대한 정보가 매칭되어 미리 저장된 정보일 수 있다. 여기서 인덱스정보는 악성코드판단부(220)에서 생성한 정보이거나 다른 장치에서 생성되어 인덱스정보 데이터베이스(230-3)에 저장된 정보일 수 있다. 이하에서는 도 3을 참조하여 악성코드판단부(220)에서 인덱스정보를 생성하는 경우에 대하여 설명한다.
도 3은 본 발명의 일 실시예에 따른 인덱스정보가 생성되는 과정에 대한 순서도이다.
도 3을 참조하면, 단계 S310에서, 악성코드판단부(220)는 제1 데이터베이스부(230-1)에 저장된 악성코드에 대한 함수 호출 시퀀스들을 미리 설정된 방법에 따라 모델링하여 제1 모델을 생성할 수 있다. 예를 들어, 악성코드판단부(220)는 제1 데이터베이스부(230-1)에 저장된 악성코드의 함수 호출 시퀀스들에 대한 은닉 마르코프 모델(Hidden Markov Model)을 제1 모델로 생성할 수 있다. 여기서 악성코드판단부(220)는 기본 State 개수 및 Emission 값을 임의로 정하여 초기 모델을 만들고, EM(Baum-Welch) 알고리즘을 통해 초기 모델 최적화 수행하여 은닉 마르코프 모델을 생성할 수 있다. 악성코드판단부(220)가 제1 데이터베이스부(230-1)의 악성코드들의 함수 호출 시퀀스를 이용하여 은닉 마르코프 모델을 생성하는 동작은 통상의 기술자들에게 널리 알려져 있으므로 이에 대한 상세한 설명은 생략한다.
단계 S320에서, 악성코드판단부(220)는 제2 데이터베이스부(230-1)에 저장된 정상코드에 대한 함수 호출 시퀀스들을 미리 설정된 방법에 따라 모델링하여 제2 모델을 생성할 수 있다. 예를 들어, 악성코드판단부(220)는 제2 데이터베이스부(230-2)에 저장된 정상코드의 함수 호출 시퀀스들에 대한 은닉 마르코프 모델을 제2 모델로 생성할 수 있다.
단계 S330에서, 악성코드판단부(220)는 제1 모델을 이용하여 미리 설정된 방법에 따라 제1 데이터베이스부(230-1)의 각 서브시퀀스(이하, '제1 서브시퀀스'라 칭함)에 대한 제1 유사도를 생성할 수 있다. 먼저 악성코드판단부(220)는 제1 데이터베이스부(230-1)의 악성코드들의 함수 호출 시퀀스(이하, '제1 함수 호출 시퀀스'라 칭함)의 각 제1 서브시퀀스를 생성할 수 있다. 예를 들어 악성코드판단부(220)는 제1 함수 호출 시퀀스를 미리 설정된 방법에 따라 코드화하고, 코드화된 제1 함수 호출 시퀀스에 슬라이딩 윈도우를 적용하여 제1 서브시퀀스들을 생성할 수 있다. 이하 도 4를 참조하여 제1 서브시퀀스가 생성되는 일 실시예에 대해 설명한다.
도 4는 본 발명의 일 실시예에 따라 서브 시퀀스가 생성되는 과정에 대한 도면이다.
먼저 악성코드판단부(220)는 제1 함수 호출 시퀀스(410)에 포함된 함수 이름에 미리 설정된 고유 코드를 부여할 수 있다. 도 4의 예시에서는 악성코드판단부(220)가 제1 함수 호출 시퀀스에 포함된 함수 이름에 A, B, C 등과 같은 알파벳이 고유 코드로 부여된 경우가 예시되어 있다.
이후 악성코드판단부(220)는 코드화된 제1 함수 호출 시퀀스에 N-gram 알고리즘에 따른 슬라이딩 윈도우(420)를 적용하여 제1 서브시퀀스(430)들을 생성할 수 있다. 도 4의 예시에서는 N이 '3'인 N-gram 알고리즘이 적용된 경우가 예시되어 있다.
다시 도 3의 단계 S330을 참조하면, 악성코드판단부(220)는 미리 설정된 방법에 따라 생성된 제1 서브시퀀스에 대한 제1 유사도를 생성할 수 있다. 예를 들어 제1 유사도는 각 제1 서브시퀀스별 log-likelihood 값일 수 있다. 악성코드판단부(220)는 은닉 마르코브 모델 알고리즘의 전향 알고리즘(Forward 알고리즘)을 활용하여 개별 제1 서브시퀀스가 제1 모델에 얼마나 잘 부합하는지에 대한 log-likelihood 값을 생성할 수 있다. 이후 악성코드판단부(220)는 생성된 log-likelihood 값의 정규화를 진행할 수 있다. 악성코드판단부(220)가 각 제1 서브시퀀스별 log-likelihood 값을 생성하는 동작은 이미 공개된 내용이므로 여기에서는 이에 대한 구체적인 설명은 생략한다. 또한 악성코드판단부(220)가 제1 유사도를 생성하는 방법은 다양할 수 있으므로 제1 유사도가 log-likelihood 값에 한정되는 것은 아니다.
단계 S340에서, 악성코드판단부(220)는 제1 모델을 이용하여 미리 설정된 방법에 따라 제1 서브시퀀스에 대한 제1 빈도를 생성할 수 있다. 여기서 제1 빈도는 상기 제1 서브시퀀스가 복수의 제1 함수 호출 시퀀스에서 추출되는 빈도에 대한 정보일 수 있다. 예를 들어 추출된 제1 서브시퀀스의 총 개수가 100개일 경우를 가정한다. 이 때 임의의 제1 서브시퀀스가 7개 추출되었다면 제1 빈도는 '7' 또는 '0.07' 중 어느 하나로 생성될 수 있다.
단계 S350에서, 악성코드판단부(220)는 제2 모델을 이용하여 미리 설정된 방법에 따라 제2 데이터베이스부(230-2)의 각 서브시퀀스(이하, '제2 서브시퀀스'라 칭함)에 대한 제2 유사도를 생성할 수 있다. 악성코드판단부(220)가 제2 유사도를 생성하는 방법은 제1 유사도를 생성하는 방법과 동일 또는 유사할 수 있다.
단계 S360에서, 악성코드판단부(220)는 제2 모델을 이용하여 미리 설정된 방법에 따라 제2 서브시퀀스에 대한 제2 빈도를 생성할 수 있다. 악성코드판단부(220)가 제2 유사도를 생성하는 방법은 제1 유사도를 생성하는 방법과 동일 또는 유사할 수 있다.
단계 S370에서, 악성코드판단부(220)는 제1 유사도 및 제1 빈도를 이용하여 제1 서브시퀀스 각각에 대한 제1 신뢰도를 생성할 수 있다. 예를 들어 악성코드판단부(220)는 제1 유사도와 제1 빈도를 곱하여 제1 서브시퀀스 각각에 대한 제1 신뢰도를 생성할 수 있다. 임의의 제1 서브시퀀스의 제1 유사도가 0.58이고, 제1 빈도가 0.5인 경우, 당해 제1 서브시퀀스의 제1 신뢰도는 0.29로 생성될 수 있는 것이다.
한편, 도 3에는 예시되지 않았지만, 악성코드판단부(220)는 생성된 제1 유사도를 미리 설정된 방법에 따라 정규화할 수 있고, 정규화된 제1 유사도와 제1 빈도를 이용하여 제1 서브시퀀스 각각에 대한 제1 신뢰도를 생성할 수도 있다.
단계 S380에서, 악성코드판단부(220)는 제2 유사도 및 제2 빈도를 이용하여 제2 서브시퀀스 각각에 대한 제2 신뢰도를 생성할 수 있다. 예를 들어 악성코드판단부(220)는 제2 유사도와 제2 빈도를 곱하여 제2 서브시퀀스 각각에 대한 제2 신뢰도를 생성할 수 있다.
한편, 도 3에는 예시되지 않았지만, 악성코드판단부(220)는 생성된 제2 유사도를 미리 설정된 방법에 따라 정규화할 수 있고, 정규화된 제2 유사도와 제2 빈도를 이용하여 제2 서브시퀀스 각각에 대한 제2 신뢰도를 생성할 수도 있다.
단계 S390에서, 악성코드판단부(220)는 각 서브시퀀스별 제1 신뢰도 및 제2 신뢰도를 포함하는 인덱스정보를 생성할 수 있다. 임의의 서브시퀀스는 제1 서브시퀀스로도 추출될 수 있고, 제2 서브시퀀스로도 추출될 수 있기 때문이다. ABB라는 서브시퀀스는 제1 서브시퀀스로도 추출될 수 있고, 제2 서브시퀀스로도 추출될 수 있다. 따라서 ABB에 상응하는 제1 신뢰도 및 제2 신뢰도는 각각 생성될 수 있다. 따라서 악성코드판단부(220)는 도 5에 예시된 바와 같이 각 서브시퀀스별 제1 신뢰도 및 제2 신뢰도를 포함하는 인덱스정보를 생성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 인덱스정보를 예시한 도면이다.
도 5를 참조하면, AAA라는 서브시퀀스의 제1 신뢰도는 2.07이고, 제2 신뢰도는 0.51인 경우가 예시된다. 또한, AAB라는 서브시퀀스의 제1 신뢰도는 0.48이고, 제2 신뢰도는 1.87인 경우가 예시된다. 또한, ABC라는 서브시퀀스의 제1 신뢰도는 1.96이고, 제2 신뢰도는 0.57인 경우가 예시된다. 또한, BCC라는 서브시퀀스의 제1 신뢰도는 0.52이고, 제2 신뢰도는 2.11인 경우가 예시된다.
도 6은 본 발명의 일 실시예에 따른 악성 코드 탐지 방법에 대한 순서도이다.
이하 도 6을 참조하여 악성코드판단부(220)가 사용자 기기(120)에서 수신되는 실행프로그램의 함수 호출 시퀀스를 이용하여 실행프로그램의 악성 코드 가능성을 판단하는 동작에 대해 설명한다.
단계 S610에서, 사용자 기기(120)는 사용자의 조작에 따라 실행프로그램이 실행되면, 당해 실행프로그램의 함수 호출 시퀀스를 순차적으로 악성 코드 판단 장치(110)로 전송할 수 있다(단계 S620)
단계 S630에서, 악성 코드 판단 장치(110)의 악성코드판단부(220)는 실행 프로그램의 함수 호출 시퀀스에서 미리 설정된 방법에 따라 서브시퀀스를 순차적으로 추출할 수 있다. 이하 실행 프로그램에서 추출된 서브시퀀스를 제3 서브시퀀스라 칭한다. 악성코드판단부(220)가 제3 서브시퀀스를 추출하는 방법은 제1 서브시퀀스를 추출하는 방법과 동일 또는 유사할 수 있으므로 이에 대한 구체적인 설명은 생략한다.
단계 S640에서, 악성코드판단부(220)는 인덱스정보에서 순차적으로 생성되는 제3 서브시퀀스에 상응하는 제1 신뢰도 및/또는 제2 신뢰도를 추출할 수 있다. 도 5 예시된 인덱스정보를 가정하면, 제3 서브시퀀스가 BCC인 경우 악성코드판단부(220)는 제1 신뢰도는 0.52로, 제2 신뢰도는 2.11로 독출할 수 있다. 유사한 과정에 의하여 악성코드판단부(220)는 인덱스정보에서 순차적으로 추출되는 제3 서브시퀀스에 대한 제1 신뢰도 및/또는 제2 신뢰도를 독출할 수 있다.
단계 S650에서, 악성코드판단부(220)는 순차적으로 독출되는 제3 서브시퀀스들에 대한 제1 전체평균값 및/또는 제1 일부평균값을 생성할 수 있다. 여기서, 제1 전체평균값은 추출된 모든 제3 서브시퀀스에 상응하는 제1 신뢰도를 모두 합산한 값일 수 있다. 예를 들어, 제3 서브시퀀스가 5개 추출되었고, 각 제3 시퀀스에 상응하는 제1 신뢰도가 1, 2, 3, 4, 5인 경우, 제1 전체평균값은 15일 수 있다.
또한 제1 일부평균값은 추출된 제3 서브시퀀스 중 가장 최근에 독출된 m개의 제1 신뢰도가 합산된 값일 수 있다(단, m은 2 이상의 자연수임). 예를 들어, 제3 서브시퀀스가 5개 추출되었고, m이 3이며, 각 제3 시퀀스에 상응하는 제1 신뢰도가 1, 2, 3, 4, 5로 순차적으로 독출된 경우, 제1 전체평균값은 12일 수 있다.
단계 S660에서, 악성코드판단부(220)는 순차적으로 독출되는 제3 서브시퀀스들에 대한 제2 전체평균값 및/또는 제2 일부평균값을 생성할 수 있다. 여기서, 제2 전체평균값은 추출된 모든 제3 서브시퀀스에 상응하는 제2 신뢰도를 모두 합산한 값일 수 있다. 또한 제2 일부평균값은 추출된 제3 서브시퀀스 중 가장 최근에 독출된 m개의 제2 신뢰도가 합산된 값일 수 있다.
단계 S670에서, 악성코드판단부(220)는 제1 전체평균값이 제2 전체평균값보다 미리 설정된 제1 임계값 이상 크거나, 제1 일부평균값이 제2 일부평균값보다 미리 설정된 제2 임계값 이상 크면, 실행프로그램을 악성코드로 판단할 수 있다. 여기서 제1 임계값과 제2 임계값은 동일한 값일 수도 있고 그렇지 않을 수도 있다. 제1 평균값(제1 전체평균값 또는 제1 일부평균값)이 제2 평균값(제2 전체평균값 또는 제2 일부평균값)보다 일정 수준 이상 크면 악성코드와 유사하다고 판단할 수 있기 때문이다.
단계 S680에서, 악성코드판단부(220)는 실행프로그램이 악성코드로 판단되면 알림정보를 생성하여 통신부(210)로 출력할 수 있고, 통신부(210)는 알림정보를 사용자 기기(120)로 전송할 수 있다.
단계 S690에서, 사용자 기기(120)는 알림정보가 수신되면 이를 디스플레이하거나 알람을 출력할 수 있다. 이에 의하여 사용자는 실행프로그램이 악성 코드일 수 있다는 것을 시각적 및/또는 청각적으로 인지할 수 있다.
이상에서는 악성 코드 탐지 장치(110)에서 사용자 기기(120-n)에서 실행되는 프로그램의 악성 코드 여부를 판단하는 것을 예시로 설명하였으나, 사용자 기기(120-n)는 자체적으로 실행되는 프로그램의 악성 코드 여부를 판단할 수도 있다. 이 경우 사용자 기기(120-n)는 도 2에 예시된 악성코드판단부(220), 메모리(230) 등의 구성 요소를 포함하여 도 4 내지 도 6을 참조하여 설명한 동작을 수행할 수 있을 것이다.
또한 상술한 본 발명에 따른 악성 코드 탐지 장치(110)는 프로세서와 메모리를 포함하는 구성으로 형성될 수 있다. 이 경우 메모리에는 제1 데이터베이스부(230-1), 제2 데이터베이스부(230-2), 인덱스정보 데이터베이스부(230-3)에 저장된 정보들이 저장될 수 있고, 도 2의 악성코드판단부(220)의 동작이 프로세서에 의해 실행 가능하도록 구현된 컴퓨터로 판독 가능한 프로그램 명령어들이 저장되어 실행프로그램의 악성 코드 여부기 판단될 수 있다.
또한 악성 코드 탐지 장치(110)가 수행하는 악성 코드 탐지 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
또한, 상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 악성 코드 탐지 시스템
110 : 악성 코드 탐지 서버
120 : 사용자 기기
120-1 : 이동통신 단말기
120-2 : 노트북 컴퓨터
120-n : 퍼스널 컴퓨터

Claims (15)

  1. 삭제
  2. 프로세서; 및
    상기 프로세서에 연결된 메모리;
    를 포함하며,
    상기 메모리는 상기 프로세서에 의해 실행 가능한,
    입력되는 실행프로그램의 함수 호출 시퀀스를 미리 저장된 인덱스정보를 이용하여 분석한 결과를 통해 상기 실행프로그램의 악성 코드 가능성을 판단하도록 하는 프로그램 명령어들을 저장하되,
    상기 인덱스정보는 미리 저장된 복수의 코드들에서 추출된 서브시퀀스의 식별 정보와 악성 코드 가능성에 대한 정보가 매칭되어 저장된 정보이고,
    상기 악성 코드 가능성에 대한 정보는,
    미리 저장된 복수의 악성 코드들에서 추출된 제1 서브시퀀스와 상기 복수의 악성 코드들 간의 관련성에 대한 제1 신뢰도를 포함하는, 악성 코드 탐지 장치.
  3. 제2항에 있어서,
    상기 제1 서브시퀀스는,
    상기 복수의 악성 코드들에 대한 제1 함수 호출 시퀀스가 미리 설정된 방법에 따라 코드화되고, 코드화된 상기 제1 함수 호출 시퀀스에 슬라이딩 윈도우가 적용되어 추출된 것인, 악성 코드 탐지 장치.
  4. 제2항에 있어서,
    상기 제1 신뢰도는,
    제1 유사도와 제1 빈도가 이용되어 생성된 정보이되,
    상기 제1 유사도는 제1 모델의 전향 알고리즘을 통해 생성된 정보이고,
    상기 제1 모델은 상기 복수의 악성 코드들에 대한 은닉 마르코프 모델이며,
    상기 제1 빈도는 상기 제1 서브시퀀스가 상기 복수의 악성 코드들에서 추출되는 빈도에 대한 정보인, 악성 코드 탐지 장치.
  5. 제2항에 있어서,
    상기 악성 코드 가능성에 대한 정보는,
    미리 저장된 복수의 정상 코드들에서 추출된 제2 서브시퀀스와 상기 복수의 정상 코드들 간의 관련성에 대한 제2 신뢰도를 포함하는, 악성 코드 탐지 장치.
  6. 제5항에 있어서,
    상기 제2 서브시퀀스는,
    상기 복수의 정상 코드들에 대한 제2 함수 호출 시퀀스가 미리 설정된 방법에 따라 코드화되고, 코드화된 상기 제2 함수 호출 시퀀스에 슬라이딩 윈도우가 적용되어 추출된 것인, 악성 코드 탐지 장치.
  7. 제5항에 있어서,
    상기 제2 신뢰도는,
    제2 유사도와 제2 빈도가 이용되어 생성된 정보이되,
    상기 제2 유사도는 제2 모델의 전향 알고리즘을 통해 생성된 정보이고,
    상기 제2 모델은 상기 복수의 정상 코드들에 대한 은닉 마르코프 모델이며,
    상기 제2 빈도는 상기 제2 서브시퀀스가 상기 복수의 정상 코드들에서 추출되는 빈도에 대한 정보인, 악성 코드 탐지 장치.

  8. 제5항에 있어서,
    상기 실행프로그램의 함수 호출 시퀀스 분석은,
    상기 실행프로그램의 함수 호출 시퀀스에서 제3 서브시퀀스가 순차적으로 추출되고, 상기 인덱스정보에서 순차적으로 독출된 상기 제3 서브시퀀스에 상응하는 제1 신뢰도 및 제2 신뢰도 중 하나 이상을 이용하여 분석하는 것인, 악성 코드 탐지 장치.
  9. 제8항에 있어서,
    상기 제3 서브시퀀스는,
    상기 실행프로그램의 함수 호출 시퀀스가 미리 설정된 방법에 따라 코드화되고, 코드화된 상기 실행프로그램의 함수 호출 시퀀스에 슬라이딩 윈도우가 적용되어 순차적으로 추출된 것인, 악성 코드 탐지 장치.
  10. 제8항에 있어서,
    상기 악성 코드 가능성 판단은,
    제1 전체평균값이 제2 전체평균값보다 미리 설정된 임계상 이상 큰 값인지 여부를 통해 판단하는 것이되,
    상기 제1 전체평균값은 순차적으로 독출되는 상기 제1 신뢰도가 모두 합산된 값이고, 상기 제2 전체평균값은 순차적으로 독출되는 상기 제2 신뢰도가 모두 합산된 값인. 악성 코드 탐지 장치.
  11. 제8항에 있어서,
    상기 악성 코드 가능성 판단은,
    제1 일부평균값이 제2 일부평균값보다 미리 설정된 임계상 이상 큰 값인지 여부를 통해 판단하는 것이되,
    상기 제1 일부평균값은 순차적으로 독출되는 상기 제1 신뢰도 중 가장 최근에 독출된 m개의 제1 신뢰도가 합산된 값이고, 상기 제2 일부평균값은 순차적으로 독출되는 상기 제2 신뢰도 중 가장 최근에 독출된 상기 m개의 제2 신뢰도가 합산된 값이며, 상기 m은 2 이상의 자연수인. 악성 코드 탐지 장치.
  12. 제2항에 있어서,
    연결된 사용자장치로부터 상기 실행프로그램의 함수 호출 시퀀스를 수신하고, 입력된 알림정보를 상기 사용자장치로 전송하는 통신부;
    를 더 포함하되,
    상기 프로세서는 상기 실행프로그램이 악성 코드로 판단되면 상기 알림정보를 생성하여 상기 통신부로 출력하며, 상기 사용자장치는 상기 실행프로그램이 실행되면 상기 함수 호출 시퀀스를 상기 통신부로 전송하고, 상기 알림정보를 디스플레이하는, 악성 코드 탐지 장치.
  13. 삭제
  14. 악성 코드 탐지 장치에서 수행되는 악성 코드 탐지 방법에 있어서,
    실행프로그램의 함수 호출 시퀀스가 입력되는 단계;
    함수 호출 시퀀스를 미리 저장된 인덱스정보를 이용하여 분석하는 단계; 및
    상기 분석 결과를 통해 상기 실행프로그램의 악성 코드 가능성을 판단하는 단계;
    를 포함하되,
    상기 인덱스정보는 미리 저장된 복수의 코드들에서 추출된 서브시퀀스의 식별 정보와 악성 코드 가능성에 대한 정보가 매칭되어 저장된 정보이고,
    상기 악성 코드 가능성에 대한 정보는,
    미리 저장된 복수의 악성 코드들에서 추출된 제1 서브시퀀스와 상기 복수의 악성 코드들 간의 관련성에 대한 제1 신뢰도를 포함하고, 미리 저장된 복수의 정상 코드들에서 추출된 제2 서브시퀀스와 상기 복수의 정상 코드들 간의 관련성에 대한 제2 신뢰도를 포함하는, 악성 코드 탐지 방법.
  15. 제14항에 있어서,
    상기 실행프로그램의 함수 호출 시퀀스를 분석하는 단계는,
    상기 실행프로그램의 함수 호출 시퀀스에서 제3 서브시퀀스를 순차적으로 추출하는 단계; 및
    상기 인덱스정보에서 상기 제3 서브시퀀스에 상응하는 제1 신뢰도 및 제2 신뢰도를 순차적으로 독출하는 단계;
    를 포함하고,
    상기 실행프로그램의 악성 코드 가능성을 판단하는 단계는,
    상기 제1 신뢰도를 m개 이상 합산하여 제1 평균값을 생성하는 단계 - 단, 상기 m은 2 이상의 자연수임;
    상기 제2 신뢰도를 상기 m개 이상 합산하여 제2 평균값을 생성하는 단계; 및
    상기 제1 평균값이 상기 제2 평균값보다 미리 설정된 임계값 이상 큰 값인지 여부를 판단하는 단계;
    를 포함하는, 악성 코드 탐지 방법.
KR1020170090693A 2017-07-18 2017-07-18 악성 코드 탐지 방법 및 그 장치 KR101932174B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170090693A KR101932174B1 (ko) 2017-07-18 2017-07-18 악성 코드 탐지 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170090693A KR101932174B1 (ko) 2017-07-18 2017-07-18 악성 코드 탐지 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR101932174B1 true KR101932174B1 (ko) 2018-12-26

Family

ID=65006604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170090693A KR101932174B1 (ko) 2017-07-18 2017-07-18 악성 코드 탐지 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101932174B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102089946B1 (ko) * 2019-07-17 2020-03-17 주식회사 에프원시큐리티 슬라이딩 윈도우 기반 웹쉘 탐지 장치 및 방법
KR20210144452A (ko) 2020-05-22 2021-11-30 인하대학교 산학협력단 동적 분석 및 기계 학습을 사용한 2 단계 랜섬웨어(ransomware) 탐지 방법
CN117540385A (zh) * 2024-01-09 2024-02-09 北京数基信息有限公司 脚本文件的监测方法、系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101251002B1 (ko) 2010-12-20 2013-04-04 한국인터넷진흥원 악성코드 자동 분석 시스템 및 그 방법
KR101472321B1 (ko) * 2013-06-11 2014-12-12 고려대학교 산학협력단 이동단말의 어플리케이션 내 악성코드 탐지 방법 및 시스템
KR101749210B1 (ko) * 2015-12-18 2017-06-20 한양대학교 산학협력단 다중 서열 정렬 기법을 이용한 악성코드 패밀리 시그니쳐 생성 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101251002B1 (ko) 2010-12-20 2013-04-04 한국인터넷진흥원 악성코드 자동 분석 시스템 및 그 방법
KR101472321B1 (ko) * 2013-06-11 2014-12-12 고려대학교 산학협력단 이동단말의 어플리케이션 내 악성코드 탐지 방법 및 시스템
KR101749210B1 (ko) * 2015-12-18 2017-06-20 한양대학교 산학협력단 다중 서열 정렬 기법을 이용한 악성코드 패밀리 시그니쳐 생성 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102089946B1 (ko) * 2019-07-17 2020-03-17 주식회사 에프원시큐리티 슬라이딩 윈도우 기반 웹쉘 탐지 장치 및 방법
KR20210144452A (ko) 2020-05-22 2021-11-30 인하대학교 산학협력단 동적 분석 및 기계 학습을 사용한 2 단계 랜섬웨어(ransomware) 탐지 방법
CN117540385A (zh) * 2024-01-09 2024-02-09 北京数基信息有限公司 脚本文件的监测方法、系统及存储介质
CN117540385B (zh) * 2024-01-09 2024-03-29 北京数基信息有限公司 脚本文件的监测方法、系统及存储介质

Similar Documents

Publication Publication Date Title
EP3136249B1 (en) Log analysis device, attack detection device, attack detection method and program
US10777207B2 (en) Method and apparatus for verifying information
CN102592079B (zh) 用于检测未知恶意软件的系统和方法
KR101932174B1 (ko) 악성 코드 탐지 방법 및 그 장치
EP2182460A2 (en) Structural recognition of malicious code patterns
KR20150038738A (ko) 비밀 정보의 검출
CN110222511B (zh) 恶意软件家族识别方法、装置及电子设备
KR101472321B1 (ko) 이동단말의 어플리케이션 내 악성코드 탐지 방법 및 시스템
RU2011152811A (ru) Способ выявления ложных положительных результатов сканирования файлов на вредоносное по
KR20120078018A (ko) 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
CN106022349B (zh) 用于设备类型确定的方法和系统
CN104539514A (zh) 消息过滤方法和装置
CN111460814A (zh) 敏感信息检测方法、装置、终端及介质
JP7314243B2 (ja) マルウェアの悪意ある行為フィーチャー情報を生成する方法
CN109087647B (zh) 声纹识别处理方法、装置、电子设备及存储介质
AU2018218526B2 (en) Identifying human interaction with a computer
CN114065187A (zh) 异常登录检测方法、装置、计算设备及存储介质
CN109766499B (zh) 群组的加入方法、装置和计算机设备
CN112699272A (zh) 信息输出方法、装置和电子设备
CN111753548A (zh) 信息获取方法及装置、计算机存储介质、电子设备
CN116611065B (zh) 脚本的检测方法、深度学习模型的训练方法及装置
KR20200010669A (ko) 빅데이터 기반의 웹접근성 개선 장치 및 방법
US20240037215A1 (en) Program analysis device, program analysis method, and computer-readable medium
US20230351017A1 (en) System and method for training of antimalware machine learning models
CN117238419B (zh) 优化钛合金热扩散连接的钛材材料抗性提高方法及系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant