KR102336466B1 - 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 - Google Patents

악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102336466B1
KR102336466B1 KR1020190179135A KR20190179135A KR102336466B1 KR 102336466 B1 KR102336466 B1 KR 102336466B1 KR 1020190179135 A KR1020190179135 A KR 1020190179135A KR 20190179135 A KR20190179135 A KR 20190179135A KR 102336466 B1 KR102336466 B1 KR 102336466B1
Authority
KR
South Korea
Prior art keywords
malicious code
decision tree
tree model
features
code detection
Prior art date
Application number
KR1020190179135A
Other languages
English (en)
Other versions
KR20210085739A (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 KR1020190179135A priority Critical patent/KR102336466B1/ko
Publication of KR20210085739A publication Critical patent/KR20210085739A/ko
Application granted granted Critical
Publication of KR102336466B1 publication Critical patent/KR102336466B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

실시예의 악성코드 탐지장치는 예측에 필요한 특징을 추출하는 추출부와, 미리 학습된 결정트리모델을 이용하여 상기 추출된 특징에 대한악성 코드를 탐지하는 악성코드 탐지부를 포함하고, 상기 결정트리모델은 학습 데이터를 수집하고, 상기 학습 데이터에 대한 특징을 추출하고, 상기 수집된 데이터의 악성 코드의 탐지와 관련된 상기 특징의 추출 시간을 측정하고, 상기 특징의 추출 시간을 이용하여 생성된 모델일 수 있다.
실시예는 추출 시간이 빠른 특징들을 상위 트리에 배치시킴으로써, 악성코드의 탐지 시간을 효과적으로 줄일 수 있는 효과가 있다.

Description

악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램{APPARATUS AND METHOD FOR DETECTING MALICIOUS CODE, COMPUTER-READABLE STORAGE MEDIUM AND COMPUTER PROGRAM FOR CONTROLLING THE HOLDER DEVICE}
실시예는 결정트리모델을 이용하여 악성코드를 탐지하기 위한 악성코드 탐지장치 및 방법에 관한 것이다.
일반적으로, 악성 코드란 악의적인 목적을 가지고 제작되어 컴퓨터에 악영향을 끼치는 모든 소프트웨어를 칭한다. 악성코드 탐지방법은 악성 코드가 사용하는 특정 코드 섹션의 바이트를 가지고 탐지하거나, 악성 코드가 동작하며 발생하는 각종 로그 정보 및 파일의 구조 정보를 바탕으로 악성 코드가 생성하는 의심스런 DLL, API 함수의 존재 여부를 가지고 위험 수준을 측정하여 악성 여부를 판단하고 있다.
또한, 최근에는 머신 러닝을 이용하여 악성 코드를 탐지하는 기술이 개발되고 있다. 이러한 악성코드 탐지기술은 의심 파일을 수집하고, 의심 파일의 특징 및 행위 정보를 수집하고, 사전에 정의된 특징을 선택하여 추출하고, 이 특징을 기반으로 기계 학습을 이용하여 악성 코드 여부를 판단하게 된다.
하지만, 종래 머신 러닝을 이용한 악성코드 탐지방법은 악성 코드를 탐지하기 위한 데이터 및 머신 런닝에서 학습하는 데이터의 양이 많기 때문에 모델의 예측 속도가 현저하게 떨어지는 문제가 있다.
또한, 종래 머신 러닝을 이용한 악성코드 탐지방법은 모델의 입력으로 전체 특징 데이터를 요구하고 있으나, 전체 특징 중 시간이 상당히 소요되는 특징들이 일부 섞여있기 때문에 악성 코드의 전체 예측 시간이 상당히 소요되는 문제가 있다.
상술한 문제점을 해결하기 위해, 실시예는 악성코드의 탐지 속도를 향상시키기 위한 악성코드 탐지장치 및 방법을 제공하는 것을 그 목적으로 한다.
실시예의 악성코드 탐지장치는 예측에 필요한 특징을 추출하는 추출부와, 미리 학습된 결정트리모델을 이용하여 상기 추출된 특징에 대한악성 코드를 탐지하는 악성코드 탐지부를 포함하고, 상기 결정트리모델은 학습 데이터를 수집하고, 상기 학습 데이터에 대한 특징을 추출하고, 상기 수집된 데이터의 악성 코드의 탐지와 관련된 상기 특징의 추출 시간을 측정하고, 상기 특징의 추출 시간을 이용하여 생성된 모델일 수 있다.
상기 결정트리모델의 상위 트리는 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 생성되고, 상기 결정트리모델의 하위 트리는 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성될 수 있다.
상기 악성코드 탐지부는 상기 하위 트리에 포함된 상기 정상 코드에 대한 상기 악성 코드의 비율이 기준값 이상이면 상기 하위 트리를 절삭할 수 있다. 상기 기준값은 1/0.05일 수 있다.
상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 생성된 제1 결정트리모델과, 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성된 제2 결정트리모델을 포함할 수 있다.
상기 악성코드 탐지부는 예측 정확도에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지할 수 있다.
상기 악성코드 탐지부는 의심행위 발생 건수에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지할 수 있다.
상기 악성코드 탐지부는 의심행위 발생 건수가 기준 개수 미만이면 상기 제1 결정트리모델을 이용하여 악성 코드를 탐지하고, 상기 의심행위 발생 건수가 기준 개수 이상이면 상기 제2 결정트리모델을 이용하여 악성 코드를 탐지할 수 있다.
상기 악성코드 탐지부는 상기 악성코드 탐지장치가 탑재된 단말기의 보안 등급에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지할 수 있다.
상기 악성코드 탐지부는 상기 악성코드 탐지장치가 탑재된 단말기의 보안등급이 기준등급 이상이면 상기 제1 결정트리모델을 이용하여 악성 코드를 탐지하고, 상기 악성코드 탐지장치가 탑재된 단말기의 보안등급이 기준등급 미만이면 상기 제2 결정트리모델을 이용하여 악성 코드를 탐지할 수 있다.
실시예에 따른 악성코드 탐지방법은 예측에 필요한 특징을 추출하는 단계와, 미리 학습된 결정트리모델을 이용하여 상기 추출된 특징에 대한 악성 코드를 탐지하는 단계를 포함하고, 상기 결정트리모델을 생성하는 단계는 학습 데이터를 수집하는 단계와, 상기 학습 데이터에 대한 복수의 특징을 추출하는 단계와, 상기 복수의 특징에 대한 각각의 추출 시간을 측정하는 단계와, 상기 특징의 추출 시간을 이용하여 상기 결정트리모델을 생성하는 단계를 포함할 수 있다.
상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 상위 트리를 생성하는 단계와, 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 하위 트리를 생성하는 단계를 포함할 수 있다.
상기 결정트리모델은 복수의 하위 트리를 생성하는 단계를 더 포함하고, 상기 복수의 하위 트리에 포함된 악성 코드와 정상 코드 사이의 비율이 기준값 이상이면 상기 하위 트리를 절삭할 수 있다.
상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 제1 결정트리모델을 생성하는 단계와, 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 제2 결정트리모델을 생성하는 단계를 포함할 수 있다.
상기 악성코드 탐지부는 예측 정확도에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지할 수 있다.
상기 악성 코드를 탐지하는 단계는 의심행위 발생 건수에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지할 수 있다.
상기 악성 코드를 탐지하는 단계는 상기 악성코드 탐지장치가 탑재된 단말기의 보안 등급에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지할 수 있다.
실시예는 추출 시간이 빠른 특징들을 상위 트리에 배치시킴으로써, 악성코드의 탐지 시간을 효과적으로 줄일 수 있는 효과가 있다.
또한, 실시예는 추출 시간이 빠른 특징들을 이용하여 악성코드를 탐지함으로써, 추출 시간에 소요되는 비용을 줄일 수 있는 효과가 있다.
또한, 실시예는 다양한 결정트리모델을 선택적으로 이용함으로써, 예측 효율을 향상시킬 수 있는 효과가 있다.
도 1은 제1 실시예에 따른 악성코드 탐지장치가 장착된 전체 시스템을 나타낸 블록도이다.
도 2는 제1 실시예에 따른 악성코드 탐지장치를 나타낸 블록도이다.
도 3은 제1 실시예에 따른 악성코드 탐지장치에 장착된 결정트리모델을 나타낸 도면이다.
도 4는 제1 실시예에 따른 결정트리모델 생성부를 나타낸 블록도이다.
도 5는 제1 실시예에 따른 악성코드 탐지부에서 동작을 설명하기 위한 도면이다.
도 6은 제2 실시예에 따른 악성코드 탐지장치에 장착된 결정트리모델을 나타낸 도면이다.
도 7은 제1 실시예에 따른 악성코드 탐지방법을 나타낸 블록도이다.
도 8은 제1 실시예에 따른 결정트리모델의 생성방법을 나타낸 블록도이다.
도 9 내지 도 11은 제2 실시예에 따른 악성코드 탐지장치를 이용한 악성코드 탐지방법을 설명하기 위한 순서도이다.
이하, 도면을 참조하여 실시예를 상세히 설명하기로 한다.
도 1은 제1 실시예에 따른 악성코드 탐지장치가 장착된 전체 시스템을 나타낸 블록도이고, 도 2는 제1 실시예에 따른 악성코드 탐지장치를 나타낸 블록도이고, 도 3은 제1 실시예에 따른 악성코드 탐지장치에 장착된 결정트리모델을 나타낸 도면이고, 도 4는 제1 실시예에 따른 결정트리모델 생성부를 나타낸 블록도이고, 도 5는 제1 실시예에 따른 악성코드 탐지부에서 동작을 설명하기 위한 도면이고, 도 6은 제2 실시예에 따른 악성코드 탐지장치에 장착된 결정트리모델을 나타낸 도면이다.
도 1을 참조하면, 단말기(10)는 PC, 노트북, 태플릿 PC 등을 포함할 수 있다. 서버(20)는 네트워크 상에 연결되어 사용자 단말 등 클라이언트에 파일과 관련된 서비스를 제공할 수 있다. 서버(20)는 파일의 업로드 및 다운로드 하는 서비스를 제공하거나 파일을 송수신하는 기능을 수행할 수 있다. 서버(20)는 악성코드 탐지장치(100)를 단말기(10)에 제공할 수 있다.
악성코드 탐지장치(100)는 단말기(10)에 장착될 수 있다. 악성코드 탐지장치(100)는 단말기(10)로부터 수집되는 데이터(또는 파일)를 검사하여 악성코드를 탐지하는 역할을 한다. 도면에서는 악성코드 탐지장치(100)가 단말기(10)에 장착된 것으로 도시하였으나, 이와 다르게, 서버(20)에 설치되어 단말기(10)의 악성코드를 탐지할 수도 있다.
도 2에 도시된 바와 같이, 악성코드 탐지장치(100)는 추출부(110)와, 악성코드 탐지부(120)를 포함할 수 있다.
추출부(110)는 단말에서 사용되는 데이터 예컨대, 파일을 수집하는 역할을 한다. 추출부(110)는 예측에 필요한 특징을 추출할 수 있다.
추출부(110)는 파일에 대한 정적 정보 및 동적 정보를 수집할 수 있다. 파일의 정적 정보는 파일 자체의 구조 정보, 악성파일이 포함하는 코드(Code)의 특징 등을 포함할 수 있다. 파일의 동적 정보는 악성파일이 수행하는 행위에 대한 정보로서, 악성코드가 사용하는 DLL 함수, API 함수, 레지스트리 접근, 외부 네트워크 등에 대한 특징 정보 등을 포함할 수 있다.
악성코드 탐지부(120)는 파일에 대한 악성코드 여부를 탐지할 수 있다. 악성코드 탐지부(120)는 결정트리모델(130)을 이용하여 데이터의 악성코드를 탐지할 수 있다. 결정트리모델(130)은 미리 학습된 결정트리모델일 수 있다.
도 3에 도시된 바와 같이, 결정트리모델(130)은 복수의 트리를 포함할 수 있다. 결정트리모델(130)은 상위 트리와 적어도 하나 이상의 하위 트리들을 포함할 수 있다. 결정트리모델(130)은 제1 트리(T1)와, 제2 트리(T2)와, 제3 트리(T3)를 포함할 수 있다. 각각의 트리(T)에는 데이터의 특징(feature)이 포함될 수 있다. 트리(T)는 데이터의 특징들을 이용하여 if 조건을 설정하고, 이에 따라 악성코드와 정상코드를 분리할 수 있다.
제1 트리(T1)에는 데이터의 특징 추출 속도가 빠른 제1 특징이 포함될 수 있다. 제1 트리(T1)는 특징의 추출 속도가 빠른 제1 특징을 이용하여 악성코드와 정상코드를 분리할 수 있다.
제2 트리(T2)에는 제1 특징보다 느린 추출 속도를 가지는 제2 특징이 포함될 수 있다. 제2 트리(T2)는 제2 특징을 이용하여 악성코드와 정상코드를 분리할 수 있다.
제3 트리(T3)에는 제2 특징보다 느린 추출 속도를 가지는 제3 특징이 포함될 수 있다. 제3 트리(T3)는 제3 특징을 이용하여 악성코드와 정상코드를 분리할 수 있다.
도 1로 돌아가서, 결정트리모델(130)은 결정트리모델 생성부(200)로부터 생성될 수 있다. 결정트리모델 생성부(200)는 서버(20)에 설치될 수 있으나, 이에 한정되지 않는다.
도 4에 도시된 바와 같이, 결정트리모델 생성부(200)는 학습 데이터 수집부(210)와, 특징 추출부(220)와, 추출 시간 측정부(230)와, 모델 생성부(240)를 포함할 수 있다.
학습 데이터 수집부(210)는 결정트리모델(130)을 학습시키기 위한 데이터를 수집할 수 있다. 학습 데이터는 악성코드 및 정상코드를 포함하는 데이터일 수 있다.
특징 추출부(220)는 데이터에 대한 특징을 추출할 수 있다. 특징은 데이터의 파일명, PE 파일, PID(프로세스 ID), 파일경로(path), 해시정보를 포함할 수 있다.
추출 시간 측정부(230)는 특징에 대한 추출 시간을 측정할 수 있다. 예컨대, PE 파일, 파일명의 특징은 추출 시간이 빠르며, 해시정보와 같은 데이터는 연산을 많이 필요로하기 때문에 추출 시간이 늦을 수 있다.
모델 생성부(240)는 추출 시간을 이용하여 결정트리모델(130)을 생성할 수 있다. 모델 생성부(240)는 가장 빠른 속도인 제1 시간 구간을 가지는 제1 특징을 상위 트리인 제1 트리(T1)에 적용할 수 있다. 모델 생성부(240)는 제1 특징의 추출 시간 보다 느린 제2 시간 구간을 가지는 제2 특징을 제2 트리(T2)에 적용할 수 있다. 모델 생성부(240)는 제2 특징의 추출 시간보다 느린 제3 시간 구간을 가지는 제3 특징을 제3 트리(T3)에 적용할 수 있다.
따라서, 모델 생성부(240)는 시간이 빠른 특징들을 이용하여 악성코드와 정상코드를 분리시킴으로써, 악성코드 탐지시간이 지연되는 것을 줄일 수 있다. 즉, 추출 시간이 빠른 특징들을 상위 트리에 배치시키게 되면 전체 악성코드의 탐지 시간을 효과적으로 줄일 수 있는 효과가 있다.
악성코드 탐지부(120)는 하위 트리에 포함된 상기 악성 코드와 정상 코드 사이의 비율이 제1 기준값 이상이면 상기 악성 코드의 탐지를 종료할 수 있다.
도 5에 도시된 바와 같이, 결정트리모델의 하위 트리 중 어느 하나의 노드에서 악성코드(C1)의 비율이 정상코드(C2)의 비율 보다 현격하게 높을 수 있다. 악성코드 탐지부(130)는 정상 코드(C2)에 대한 악성코드(또는 정상코드인데 악성코드로 오인한 코드, C1)의 비율이 기준값 이상이면 하위 트리를 절삭(pruning)할 수 있다. 일예로 기준값은 1/0.05일 수 있으나, 이에 한정되지 않는다.
즉, 하위 트리를 절삭하게 되면, 하위 트리에 추출 시간이 오래 걸리는 특징을 사용하는 경우에 이를 더 효율화하기 위해 정확도 감소를 감수하더라도 예측 속도를 더욱 빠르게 할 수 있다.
악성코드 탐지부(120)는 추출 시간이 빠른 특징들을 이용하여 악성코드를 탐지하나, 필요 시 추출 시간이 늦은 특징들로 이루어진 하위 트리를 필요시에만 로딩할 수 있다. 예컨대, 제1 트리(T1) 및 제2 트리(T2)를 이용하여 악성코드를 탐지하는 도중 악성코드 보다 정확하게 탐지를 위해 제3 트리(T3) 중 어느 하나의 노드를 사용하거나, 그 이하의 트리 중 어느 하나의 노드를 이용하여 악성코드를 탐지할 수 있다. 이는 추출 시간이 늦은 특징들을 필요시에만 로딩함으로써, 운영 메모리를 최소화할 수 있는 효과가 있다.
제2 실시예에 따른 악성코드 탐지장치(100)는 추출부(110)와, 악성코드 탐지부(120)를 포함할 수 있다. 악성코드 탐지부(120)는 미리 학습된 결정트리모델(130)을 이용하여 악성코드를 탐지할 수 있다. 여기서, 결정트리모델(130)의 구조는 제1 실시예에 따른 결정트리모델과 다를 수 있다.
도 6에 도시된 바와 같이, 제2 실시예에 따른 결정트리모델(130)은 제1 결정트리모델(131)과, 제2 결정트리모델(132)과, 제3 결정트리모델(133)을 포함할 수 있다.
제1 결정트리모델(131)은 제1 시간 구간을 가지는 제1 특징들을 이용하여 생성될 수 있다. 즉, 제1 결정트리모델(131)은 제1 시간 내에 추출이 가능한 제1 특징들로만 구성될 수 있다. 여기서, 제1 시간 구간은 0.001초 미만의 시간 범위를 가질 수 있다.
제2 결정트리모델(132)은 제1 시간 구간 보다 느린 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성될 수 있다. 즉, 제2 결정트리모델(132)은 제2 시간 내에 추출이 가능한 제2 특징들로만 구성될 수 있다. 여기서, 제2 시간 구간은 0.001초 내지 0.01초의 시간 구간을 가질 수 있다.
제3 결정트리모델(133)은 제2 시간 구간 보다 느린 제3 시간 구간을 가지는 제3 특징들을 이용하여 생성될 수 있다. 즉, 제3 결정트리모델(133)은 제3 시간 내에 추출이 가능한 제3 특징들로만 구성될 수 있다. 여기서, 제3 시간 구간은 0.01초를 초과하는 시간 범위를 가질 수 있다.
악성코드 탐지부(120)는 예측 정확도에 따라 제1 결정트리모델 내지 제3 결정트리모델의 적어도 하나 또는 하나 이상의 모델들을 조합하여 악성코드를 탐지할 수 있다.
예컨대, 예측 정확도가 제1 기준값 이상일 경우, 제1 결정트리모델(131)을 이용하여 악성코드를 탐지할 수 있다. 예측 정확도가 제1 기준값 내지 제2 기준값 사이일 경우, 제2 결정트리모델(132)을 이용할 수 있다. 이때, 제1 결정트리모델(131)과 제2 결정트리모델(132)이 조합된 구성을 이용하여 악성코드를 탐지할 수도 있다. 예측 정확도가 제2 기준값 미만일 경우, 제3 결정트리모델(133)을 이용할 수 있다. 이때, 제1 결정트리모델 내지 제3 결정트리모델이 조합된 구성을 이용하여 악성코드를 탐지할 수도 있다.
악성코드 탐지부(120)는 의심행위 발생건수에 따라 제1 결정트리모델(131) 내지 제3 결정트리모델(133)의 적어도 하나 또는 하나 이상의 모델들을 조합하여 악성코드를 탐지할 수 있다.
의심행위 발생건수는 로그 정보를 이용하여 확인할 수 있다. 로그 정보에는 파일의 의심행위가 기록될 수 있다. 의심행위는 단말기에 자동으로 다운로드되거나, OS 정보를 바꾸려고 하는 등의 비정상적인 행위를 지칭할 수 있다.
예컨대, 악성코드 탐지부(120)는 의심행위 발생건수가 제1 기준개수 미만이면 제1 결정트리모델(131)을 이용하여 악성코드를 탐지할 수 있다. 악성코드 탐지부는 의심행위 발생건수가 제1 기준개수 내지 제2 기준개수 사이면 제2 결정트리 모델(132)을 이용하여 악성코드를 탐지할 수 있다. 이때, 제1 결정트리모델(131)과 제2 결정트리모델(132)이 조합된 구성을 이용하여 악성코드를 탐지할 수도 있다. 악성코드 탐지부(120)는 의심행위 발생건수가 제3 기준개수 이상이면 제3 결정트리 모델(133)을 이용하여 악성코드를 탐지할 수 있다. 이때, 제1 결정트리모델(131) 내지 제3 결정트리모델(133)을 조합된 구성을 이용하여 악성코드를 탐지할 수도 있다.
악성코드 탐지부(120)는 보안 등급에 따라 제1 결정트리모델(131) 내지 제3 결정트리모델(133)의 적어도 하나 또는 하나 이상의 모델들을 조합하여 악성코드를 탐지할 수 있다. 보안 등급은 PC에 악성코드의 노출빈도에 따라 결정될 수 있다. 보안 등급은 복수개의 등급으로 나눠질 수 있으나, 이에 한정되지 않는다.
예컨대, 악성코드 탐지부(120)는 보안등급이 제1 기준등급이면 제1 결정트리 모델(131)을 이용하여 악성코드를 탐지할 수 있다. 악성코드 탐지부(120)는 보안등급이 제2 기준등급이면 제2 결정트리모델(132)을 이용하여 악성코드를 탐지할 수 있다. 이때, 제1 결정트리모델(131)과 제2 결정트리모델(132)이 조합된 구성을 이용하여 악성코드를 탐지할 수도 있다. 악성코드 탐지부(120)는 보안등급이 제3 보안등급이면 제3 결정트리모델(133)을 이용하여 악성코드를 탐지할 수 있다. 이때, 제1 결정트리모델(131) 내지 제3 결정트리모델(133)이 조합된 구성을 이용하여 악성코드를 탐지할 수도 있다. 여기서, 제1 기준등급은 제2 기준등급보다 높은 보안 등급일 수 있다. 또한, 제2 기준등급은 제3 보안기준등릅보다 높은 보안등급일 수 있다.
도 7은 제1 실시예에 따른 악성코드 탐지방법을 나타낸 블록도이고, 도 8은 제1 실시예에 따른 결정트리모델의 생성방법을 나타낸 블록도이고, 도 9 내지 도 11은 제2 실시예에 따른 악성코드 탐지장치를 이용한 악성코드 탐지방법을 설명하기 위한 순서도이다.
도 7에 도시된 바와 같이, 제1 실시예에 따른 악성코드 탐지방법은 예측에 필요한 특징을 추출하는 단계(S100)와, 결정트리모델을 이용하여 악성코드를 탐지하는 단계(S200)를 포함할 수 있다. 여기서, 제1 실시예에 따른 악성코드 탐지방법은 제1 실시예에 따른 악성코드 탐지장치에서 수행될 수 있다.
예측에 필요한 특징을 추출하는 단계 (S100)는 추출부에서 수행될 수 있다. 예측에 필요한 특징을 추출하는 단계(S100)는 파일에 대한 정적 정보 및 동적 정보를 수집할 수 있다.
결정트리모델을 이용하여 악성코드를 탐지하는 단계(S200)는 악성코드 탐지부에서 수행될 수 있다. 악성코드를 탐지하는 단계(S200)는 미리 학습된 결정트리모델을 이용하여 악성코드를 탐지할 수 있다.
도 8에 도시된 바와 같이, 결정트리모델은 결정트리모델 생성부에서 생성될 수 있으며, 결정트리모델 생성하는 단계는 학습 데이터를 수집하는 단계(S10)와, 특징을 추출하는 단계(S20)와, 특징의 추출 시간을 측정하는 단계(S30)와, 추출 시간을 이용하여 결정트리 모델을 생성하는 단계(S40)를 수행할 수 있다.
학습 데이터를 수집하는 단계(S10)는 결정트리모델을 학습시키기 위한 데이터를 수집할 수 있다. 학습 데이터는 악성코드 및 정상코드를 포함하는 데이터일 수 있다.
특징을 추출하는 단계(S20)는 데이터에 대한 특징을 추출할 수 있다. 특징은 데이터의 파일명, PE 파일, PID(프로세스 ID), 파일경로(path), 해시정보를 포함할 수 있다.
특징의 추출 시간을 측정하는 단계(S30)는 특징에 대한 추출 시간을 측정할 수 있다. 예컨대, PE 파일, 파일명의 특징은 추출 시간이 빠르며, 해시정보와 같은 데이터는 연산을 많이 필요로 하기 때문에 추출 속도가 늦을 수 있다.
모델을 생성하는 단계(S40)는 특징의 추출 속도에 따라 트리를 구성할 수 있다. 결정트리모델의 상위 트리에는 데이터의 특징 추출 속도가 빠른 제1 시간 구간을 가지는 제1 특징을 포함할 수 있으며, 하위 트리에는 제1 시간 구간 보다 느린 제2 시간 구간으로 추출되는 제2 특징들이 포함할 수 있다. 그 아래의 하위 트리에는 제2 시간 구간 보다 느린 제3 시간 구간으로 추출되는 제3 특징들을 포함할 수 있다.
도 7로 돌아가서, 악성코드를 탐지하는 단계(S200)는 하위 트리에 포함된 상기 악성 코드와 정상 코드 사이의 비율이 제1 기준값 이상이면 상기 악성 코드의 탐지를 종료하는 단계를 더 수행할 수 있다. 예컨대, 악성코드(또는 정상코드인데 악성코드로 오인한 코드, C1)와 정상코드(C2)의 비율이 기준값 이상이면 악성코드 탐지를 종료할 수 있다. 일예로 기준값은 1:0.05일 수 있으나, 이에 한정되지 않는다.
도 9에 도시된 바와 같이, 제2 실시예에 따른 악성코드 탐지방법은 예측 정확성을 이용하여 악성코드를 탐지할 수 있다. 여기서, 제2 실시예에 따른 악성코드 탐지방법은 제2 실시예에 따른 악성코드 탐지장치에서 수행될 수 있다.
먼저, 제1 결정트리모델을 사용하여 악성코드를 탐지하고(S210), 제1 결정트리 모델의 예측 정확성을 판단하고(S211), 예측 정확성이 기준값 미만이면 제2 결정트리모델을 사용하여 악성코드를 탐지할 수 있다(S213).
이어서, 다시 예측 정확성이 기준값 이상인지 판단하는 단계를 수행할 수 있다(S213). 예측 정확성이 기준값 미만이면 제3 결정트리모델을 사용하여 악성코드를 탐지할 수 있다(S214).
도 10에 도시된 바와 같이, 제2 실시예에 따른 악성코드 탐지방법은 의심행위 발생 건수를 이용하여 악성코드를 탐지할 수 있다. 여기서, 제2 실시예에 따른 악성코드 탐지방법은 제2 실시예에 따른 악성코드 탐지장치에서 수행될 수 있다.
먼저, 제1 결정트리모델을 사용하여 악성코드를 탐지하고(S220), 의심행위 발생건수를 판단하고(S221), 의심행위 발생건수가 기준 개수 이상이면 제2 결정트리모델을 사용하여 악성코드를 탐지할 수 있다(S222).
이어서, 다시 의심행위 발생건수가 기준개수 이상인지 판단하는 단계를 수행할 수 있다(S23). 의심행위 발생건수가 기준개수 이상이면 제3 결정트리모델을 사용하여 악성코드를 탐지할 수 있다(S224).
도 11에 도시된 바와 같이, 제2 실시예에 따른 악성코드 탐지방법은 단말기의 보안등급을 이용하여 악성코드를 탐지할 수 있다. 여기서, 제2 실시예에 따른 악성코드 탐지방법은 제2 실시예에 따른 악성코드 탐지장치에서 수행될 수 있다.
먼저, 제1 결정트리모델을 사용하여 악성코드를 탐지하고(S230), 단말기의 보안등급을 판단하고(S231), 보안등급이 기준등급 미만이면 제2 결정트리모델을 사용하여 악성코드를 탐지할 수 있다(S232).
이어서, 다시 보안등급이 기준등급 미만인지 판단하는 단계를 수행할 수 있다(S233). 보안등급이 기준등급 미만이면 제3 결정트리모델을 사용하여 악성코드를 탐지할 수 있다(S234).
실시예는 추출 시간이 빠른 특징들을 상위 트리에 배치시킴으로써, 악성코드의 탐지 시간을 효과적으로 줄일 수 있는 효과가 있다.
또한, 실시예는 추출 시간이 빠른 특징들을 이용하여 악성코드를 탐지함으로써, 추출 시간에 소요되는 비용을 줄일 수 있는 효과가 있다.
또한, 실시예는 다양한 결정트리모델을 선택적으로 이용함으로써, 예측 효율을 향상시킬 수 있는 효과가 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 메모리(내장 메모리 또는 외장 메모리))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램)로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치를 포함할 수 있다. 상기 명령이 제어부에 의해 실행될 경우, 제어부가 직접, 또는 상기 제어부의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, 비일시적은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다.
일 실시예에 따르면, 데이터를 수집하는 동작과, 미리 학습된 결정트리모델을 이용하여 상기 수집된 데이터의 악성 코드를 탐지하는 동작을 포함하고, 상기 결정트리모델을 생성하는 단계는 학습 데이터를 수집하는 동작과, 상기 학습 데이터에 대한 복수의 특징을 추출하는 동작과, 상기 복수의 특징에 대한 각각의 추출 시간을 측정하는 동작과, 상기 특징의 추출 시간을 이용하여 상기 결정트리모델을 생성하는 동작을 포함하는 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.
일 실시예에 따르면, 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 데이터를 수집하는 동작과, 미리 학습된 결정트리모델을 이용하여 상기 수집된 데이터의 악성 코드를 탐지하는 동작을 포함하고, 상기 결정트리모델을 생성하는 단계는 학습 데이터를 수집하는 동작과, 상기 학습 데이터에 대한 복수의 특징을 추출하는 동작과, 상기 복수의 특징에 대한 각각의 추출 시간을 측정하는 동작과, 상기 특징의 추출 시간을 이용하여 상기 결정트리모델을 생성하는 동작을 포함하는 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.
상기에서는 도면 및 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 실시예의 기술적 사상으로부터 벗어나지 않는 범위 내에서 실시예는 다양하게 수정 및 변경시킬 수 있음은 이해할 수 있을 것이다.
100: 악성코드 탐지장치
110: 추출부
120: 악성코드 탐지부
130: 결정트리모델
200: 결정트리모델 생성부

Claims (19)

  1. 단말에서 사용되는 데이터에 대한 정적 정보 및 동적 정보를 포함하는 특징을 추출하는 추출부; 및
    미리 학습된 결정트리모델을 이용하여 상기 추출된 특징에 대한악성 코드를 탐지하는 악성코드 탐지부를 포함하고,
    상기 결정트리모델은 학습 데이터를 수집하고, 상기 학습 데이터에 대한 특징을 추출하고, 상기 수집된 데이터의 악성 코드의 탐지와 관련된 상기 특징의 추출 시간을 측정하고, 상기 특징의 추출 시간을 이용하여 생성된 모델이고,
    상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들과 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성되는 악성코드 탐지장치.
  2. 제1항에 있어서,
    상기 결정트리모델의 상위 트리는 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 생성되고,
    상기 결정트리모델의 하위 트리는 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성되는 악성코드 탐지장치.
  3. 제2항에 있어서,
    상기 악성코드 탐지부는 상기 하위 트리에 포함된 정상 코드에 대한 상기 악성 코드의 비율이 기준값 이상이면 상기 하위 트리를 절삭하는 악성코드 탐지장치.
  4. 제3항에 있어서,
    상기 기준값은 1/0.05인 악성코드 탐지장치.
  5. 제1항에 있어서,
    상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 생성된 제1 결정트리모델과, 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성된 제2 결정트리모델을 포함하는 악성코드 탐지장치.
  6. 제5항에 있어서,
    상기 악성코드 탐지부는 예측 정확도에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지하는 악성코드 탐지장치.
  7. 제5항에 있어서,
    상기 악성코드 탐지부는 의심행위 발생 건수에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지하는 악성코드 탐지장치.
  8. 제7항에 있어서,
    상기 악성코드 탐지부는 의심행위 발생 건수가 기준 개수 미만이면 상기 제1 결정트리모델을 이용하여 악성 코드를 탐지하고, 상기 의심행위 발생 건수가 기준 개수 이상이면 상기 제2 결정트리모델을 이용하여 악성 코드를 탐지하는 악성코드 탐지장치.
  9. 제5항에 있어서,
    상기 악성코드 탐지부는 상기 악성코드 탐지장치가 탑재된 단말기의 보안 등급에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지하는 악성코드 탐지장치.
  10. 제9항에 있어서,
    상기 악성코드 탐지부는 상기 악성코드 탐지장치가 탑재된 단말기의 보안등급이 기준등급 이상이면 상기 제1 결정트리모델을 이용하여 악성 코드를 탐지하고, 상기 악성코드 탐지장치가 탑재된 단말기의 보안등급이 기준등급 미만이면 상기 제2 결정트리모델을 이용하여 악성 코드를 탐지하는 악성코드 탐지장치.
  11. 악성코드 탐지장치에서 수행되는 악성코드 탐지방법에 있어서,
    단말에서 사용되는 데이터에 대한 정적 정보 및 동적 정보를 포함하는 특징을 추출하는 단계; 및
    미리 학습된 결정트리모델을 이용하여 상기 추출된 특징에 대한 악성 코드를 탐지하는 단계를 포함하고,
    상기 결정트리모델을 생성하는 단계는 학습 데이터를 수집하는 단계와, 상기 학습 데이터에 대한 복수의 특징을 추출하는 단계와, 상기 복수의 특징에 대한 각각의 추출 시간을 측정하는 단계와, 상기 특징의 추출 시간을 이용하여 상기 결정트리모델을 생성하는 단계를 포함하고,
    상기 결정트리모델을 생성하는 단계에서,
    상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들과 상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 생성되는 악성코드 탐지방법.
  12. 제11항에 있어서,
    상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 상위 트리를 생성하는 단계와,
    상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 하위 트리를 생성하는 단계를 포함하는 악성코드 탐지방법.
  13. 제12항에 있어서,
    상기 결정트리모델은 복수의 하위 트리를 생성하는 단계를 더 포함하고,
    상기 복수의 하위 트리에 포함된 악성 코드와 정상 코드 사이의 비율이 기준값 이상이면 상기 하위 트리를 절삭하는 악성코드 탐지방법.
  14. 제11항에 있어서,
    상기 결정트리모델은 상기 특징의 추출 시간이 제1 시간 구간을 가지는 제1 특징들을 이용하여 제1 결정트리모델을 생성하는 단계; 및
    상기 제1 시간 구간 보다 긴 제2 시간 구간을 가지는 제2 특징들을 이용하여 제2 결정트리모델을 생성하는 단계를 포함하는 악성코드 탐지방법.
  15. 제14항에 있어서,
    상기 악성 코드를 탐지하는 단계는 예측 정확도에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지하는 악성코드 탐지방법.
  16. 제14항에 있어서,
    상기 악성 코드를 탐지하는 단계는 의심행위 발생 건수에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지하는 악성코드 탐지방법.
  17. 제14항에 있어서,
    상기 악성 코드를 탐지하는 단계는 상기 악성코드 탐지장치가 탑재된 단말기의 보안 등급에 따라 상기 제1 결정트리모델 또는 상기 제2 결정트리모델을 선택적으로 사용하여 상기 악성 코드를 탐지하는 악성코드 탐지방법.
  18. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    제11항 내지 제17항 중 어느 하나의 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체.
  19. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은,
    제11항 내지 제17항 중 어느 하나의 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램.
KR1020190179135A 2019-12-31 2019-12-31 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 KR102336466B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190179135A KR102336466B1 (ko) 2019-12-31 2019-12-31 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190179135A KR102336466B1 (ko) 2019-12-31 2019-12-31 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20210085739A KR20210085739A (ko) 2021-07-08
KR102336466B1 true KR102336466B1 (ko) 2021-12-07

Family

ID=76894516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190179135A KR102336466B1 (ko) 2019-12-31 2019-12-31 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102336466B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008185885A (ja) * 2007-01-31 2008-08-14 Internatl Business Mach Corp <Ibm> 画面の表示を制御する技術
KR101384618B1 (ko) 2013-10-30 2014-04-11 주식회사 이글루시큐리티 노드 분석 기법을 이용한 위험요소 추출 시스템
KR101537088B1 (ko) 2014-09-02 2015-07-15 인포섹(주) Api 호출 흐름 기반의 악성코드 탐지 시스템 및 방법
KR101803225B1 (ko) 2017-02-03 2017-12-28 국방과학연구소 멀티 서버, 멀티도커 기반 고속 악성 웹사이트 탐지 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101535716B1 (ko) * 2013-09-10 2015-07-09 이화여자대학교 산학협력단 데이터 마이닝을 이용한 공격 탐지 장치 및 방법
KR20170108330A (ko) * 2016-03-17 2017-09-27 한국전자통신연구원 악성 코드 탐지 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008185885A (ja) * 2007-01-31 2008-08-14 Internatl Business Mach Corp <Ibm> 画面の表示を制御する技術
KR101384618B1 (ko) 2013-10-30 2014-04-11 주식회사 이글루시큐리티 노드 분석 기법을 이용한 위험요소 추출 시스템
KR101537088B1 (ko) 2014-09-02 2015-07-15 인포섹(주) Api 호출 흐름 기반의 악성코드 탐지 시스템 및 방법
KR101803225B1 (ko) 2017-02-03 2017-12-28 국방과학연구소 멀티 서버, 멀티도커 기반 고속 악성 웹사이트 탐지 시스템 및 방법

Also Published As

Publication number Publication date
KR20210085739A (ko) 2021-07-08

Similar Documents

Publication Publication Date Title
US10554805B2 (en) Information processing method, terminal, and computer-readable storage medium
CN105740707B (zh) 恶意文件的识别方法和装置
JP6228966B2 (ja) マルウェアを検出するコンピューティングデバイス
KR102317833B1 (ko) 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
CN109992969B (zh) 一种恶意文件检测方法、装置及检测平台
JP6711000B2 (ja) 情報処理装置、ウィルス検出方法及びプログラム
WO2020000743A1 (zh) 一种webshell检测方法及相关设备
CN110213207B (zh) 一种基于日志分析的网络安全防御方法及设备
KR102144914B1 (ko) 인공지능 학습을 위한 pe 명령코드의 왜곡 없는 이미지를 생성하는 악성코드 탐지 방법 및 장치
CN106156355A (zh) 日志处理方法及装置
CN107480522B (zh) 一种elf文件执行控制系统及方法
CN112688966A (zh) webshell检测方法、装置、介质和设备
CN111400707A (zh) 一种文件宏病毒检测方法、装置、设备及存储介质
CN109582549A (zh) 一种设备类型的识别方法及装置
CN112422581B (zh) JVM中的Webshell网页检测方法、装置及设备
KR102336466B1 (ko) 악성코드 탐지장치 및 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
CN110955894B (zh) 一种恶意内容检测方法、装置、电子设备及可读存储介质
CN112882797A (zh) 一种基于机器学习的容器安全检测方法
CN110806980A (zh) 一种检测方法、装置、设备及存储介质
CN108920956B (zh) 基于情景感知的机器学习方法及系统
KR20200067044A (ko) 악성 파일 탐지 방법 및 장치
US11811803B2 (en) Method of threat detection
CN110851822B (zh) 网络下载安全处理方法和装置
CN114547628A (zh) 漏洞检测方法及装置
KR101582420B1 (ko) 실행 모듈의 무결성 체크 방법 및 장치

Legal Events

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