KR101880628B1 - 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치 - Google Patents

기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치 Download PDF

Info

Publication number
KR101880628B1
KR101880628B1 KR1020170159220A KR20170159220A KR101880628B1 KR 101880628 B1 KR101880628 B1 KR 101880628B1 KR 1020170159220 A KR1020170159220 A KR 1020170159220A KR 20170159220 A KR20170159220 A KR 20170159220A KR 101880628 B1 KR101880628 B1 KR 101880628B1
Authority
KR
South Korea
Prior art keywords
cluster
data
clusters
labeling
malicious code
Prior art date
Application number
KR1020170159220A
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 KR1020170159220A priority Critical patent/KR101880628B1/ko
Application granted granted Critical
Publication of KR101880628B1 publication Critical patent/KR101880628B1/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
    • G06F17/30598

Abstract

기계 학습 데이터셋에 대한 레이블링 방법이 제공된다. 컴퓨팅 장치에서 수행되는 본 발명의 일 실시예에 따른 기계 학습 데이터셋에 대한 레이블링 방법은, 클래스 레이블(class label)이 주어지지 않은 제1 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 단계, 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 단계, 상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 대표 클러스터를 지정하는 제3 단계 및 동일한 대표 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 단계를 포함할 수 있다.

Description

기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치{METHOD FOR LABELING MACHINE-LEARNING DATASET AND APPARATUS THEREOF}
본 발명은 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 클래스 레이블(class label)이 부여되지 않은 기계 학습 데이터셋에 대하여, 자동으로 클래스 레이블을 부여하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
전 세계적으로 매일 100만개 이상의 신종변종 악성코드가 새롭게 발견되고 있으며, 악성코드 발생량은 해마다 증가하고 있는 추세이다. 보안 장비에서 악성코드가 탐지되는 것을 우회하기 위해, 공격자는 주로 기존 악성코드를 변형한 변종 악성코드를 이용하여 사이버 공격을 수행한다. 신종 악성코드의 개발 비용이 상대적으로 높고, 신종 악성코드를 개발하는 것보다 기존 악성코드를 변형하는 것이 상대적으로 용이하기 때문이다. 최근에는 악성코드를 자동으로 제작하는 도구가 등장하면서 전문적인 공격자가 아니더라도 손쉽게 다양한 기능을 갖춘 악성코드를 대량으로 생성, 유포할 수 있는 환경이 되고 있다.
각종 악성코드에 의해 발생되는 사이버 공격에 효과적으로 대응하기 위해서는 악성코드를 유형 별로 분류할 필요가 있다. 대량의 악성코드가 유형 별로 분류되면, 사이버 공격에 이용된 악성코드의 유형에 따라 적절하고 신속한 대응이 가능하기 때문이다.
최근, 기계 학습 기술이 성숙됨에 따라, 악성코드의 주요 특징을 학습한 기계 학습 모델을 이용하여 악성코드를 자동으로 분류하려는 연구가 시도되고 있다. 상기와 같은 분류 태스크를 수행하는 기계 학습 모델은 악성코드의 유형이 클래스 레이블(class label)로 부여된 데이터셋을 지도 학습(supervised learning)함으로써 구축될 수 있다. 따라서, 악성코드의 유형이 클래스 레이블로 부여된 데이터셋의 확보가 선행되어야 한다.
그러나, 악성코드의 유형이 클래스 레이블이 부여된 데이터셋을 외부에서 확보하는 것은 쉽지 않은 실정이다. 또한, 클래스 레이블을 부여하는 레이블링 작업은 상당한 인적 비용 및 시간 비용이 소요되는 작업이기 때문에, 상기와 같은 데이터셋을 자체적으로 만드는 것 또한 쉽지 않은 문제이다.
한국공개특허 제10-2015-0044490호 (2015.04.27 공개)
본 발명이 해결하고자 하는 기술적 과제는, 클래스 레이블이 부여되지 않은 기계 학습 데이터셋에 대하여, 클래스 레이블을 부여하는 레이블링 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 악성코드의 유형을 가리키는 클래스 레이블이 부여되지 않은 기계 학습 데이터셋을 이용하여 악성코드의 유형을 자동으로 분류하는 악성코드 프로파일링 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 기계 학습 데이터셋에 대한 레이블링 방법은, 컴퓨팅 장치에서 수행되는 기계 학습 데이터셋에 대한 레이블링 방법에 있어서, 클래스 레이블(class label)이 주어지지 않은 제1 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 단계, 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 단계, 상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 대표 클러스터를 지정하는 제3 단계 및 동일한 대표 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 단계를 포함할 수 있다.
일 실시예에서, 상기 클러스터링은, K-평균 클러스터링(K-means clustering) 알고리즘을 이용하여 수행될 수 있다.
일 실시예에서, 상기 클러스터링에 이용되는 알고리즘은, 클러스터의 개수를 하이퍼파라미터(hyper-parameter)로 갖는 알고리즘이되, 상기 하이퍼파라미터의 값은 상기 제1 데이터셋의 데이터 개수에 기초하여 결정될 수 있다.
일 실시예에서, 상기 제3 단계는, 상기 복수의 클러스터 중에서, 데이터의 개수가 제1 임계 수치 이상인 클러스터를 후보 클러스터로 지정하는 단계, 상기 후보 클러스터 각각에 대하여, 클러스터에 속한 데이터 간의 유사도를 산출하는 단계 및 상기 후보 클러스터 중에서, 상기 산출된 유사도가 제2 임계 수치 이상인 클러스터를 상기 대표 클러스터로 지정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1 데이터셋 중에서 클래스 레이블이 부여된 데이터셋을 기계 학습하여, 분류 모델을 구축하는 단계, 상기 분류 모델을 이용하여, 상기 클래스 레이블이 주어지지 않은 분류 대상 데이터의 클래스를 예측하는 단계, 상기 복수의 클러스터 중에서, 상기 예측된 클래스에 대응되는 타깃 대표 클러스터를 선정하는 단계 및 상기 타깃 대표 클러스터와 상기 분류 대상 데이터 간의 유사도가 임계 수치 미만이라는 판정에 응답하여, 상기 분류 대상 데이터를 새로운 클래스로 분류하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 제1 데이터셋에 포함된 각각의 데이터는 벡터 형식의 데이터이고, 상기 벡터 형식의 데이터는, 특정 시퀀스로부터 추출된 n-gram 단위의 특징에 기초하여 생성될 수 있다.
일 실시예에서, 상기 클래스 레이블은 악성코드의 분류 정보를 가리키고, 상기 대표 클러스터에 속한 데이터는 제1 악성코드의 특징을 가리키는 제1 데이터 및 제2 악성코드의 특징을 가리키는 제2 데이터를 포함하며, 상기 대표 클러스터의 중심과 상기 제1 데이터 간의 제1 평균 유사도를 산출하는 단계, 상기 대표 클러스터의 중심과 상기 제2 데이터 간의 제2 평균 유사도를 산출하는 단계 및 상기 제1 평균 유사도와 상기 제2 평균 유사도의 비교 결과에 기초하여, 상기 제1 악성코드 및 상기 제2 악성코드 중 어느 하나의 악성코드를 상기 대표 클러스터의 대표 악성코드로 지정하는 단계를 더 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 기계 학습 데이터셋에 대한 레이블링 장치는, 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 클래스 레이블(class label)이 주어지지 않은 데이터셋 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 상기 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 인스트럭션, 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 인스트럭션, 상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 대표 클러스터를 지정하는 제3 인스트럭션 및 동일한 대표 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 인스트럭션을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 클래스 레이블(class label)이 주어지지 않은 제1 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 단계, 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 단계, 상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 대표 클러스터를 지정하는 제3 단계 및 동일한 대표 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 단계를 실행시키기 위하여 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명이 적용될 수 있는 예시적인 시스템 중 하나인 악성코드 탐지 및 분류 시스템의 구성도이다.
도 2 내지 도 4는 본 발명의 일 실시예에 따른 프로파일링 장치를 나타내는 블록도이다.
도 5는 본 발명의 몇몇 실시예들에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
도 6은 본 발명의 일 실시예에 따른 기계 학습 데이터셋 대한 레이블링 방법을 나타내는 흐름도이다.
도 7a 내지 도 7c는 본 발명의 몇몇 실시예에서 참조될 수 있는 K-평균 클러스터링 알고리즘의 예시도이다.
도 8은 본 발명의 일 실시예에 따른 클러스터 개수 결정 방법을 나타내는 흐름도이다.
도 9a 내지 도 9d는 본 발명의 몇몇 실시예에 따른 대표 클러스터 지정 방법을 나타내는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 분류 방법을 나타내는 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 분류 모델 갱신 방법을 나타내는 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 악성코드 프로파일링 방법을 나타내는 흐름도이다.
도 13 내지 도 14c는 본 발명의 일 실시예에 따른 행위 벡터 생성 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예에 따른 대표 악성코드 지정 방법을 나타내는 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 악성코드 프로파일링(profiling)이란, 비슷한 유형의 범죄를 저지른 사람들은 공통되는 성격과 특성을 공유한다는 전제하에 개발된 '프로파일링 기법'을 악성코드 관련 도메인(domain)에 적용하여, 악성코드를 유형 별로 분류하고 분석하는 작업을 총칭한다.
본 명세서에서, 인스트럭션(instruction)은 기능을 기준으로 묶인 일련의 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서에 의해 실행되는 것을 가리킨다.
본 명세서에서, 레이블링(labeling)은 레이블이 부여되지 않은 데이터에 소정의 레이블을 부여하는 작업을 의미한다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
후술할 본 발명의 몇몇 실시예들은 특정 도메인에 관계 없이 기계 학습 데이터셋에 소정의 클래스 레이블(class label)을 부여하는 모든 분야에 범용적으로 적용될 수 있다. 다만, 이해의 편의를 제공하기 위해, 악성코드 관련 도메인에서 악성코드 분류 모델의 구축에 이용되는 기계 학습 데이터셋을 생성하는 것을 예로 들어 설명하도록 한다.
도 1은 본 발명이 적용될 수 있는 예시적인 시스템 중 하나인 악성코드 탐지 및 분류 시스템의 구성도이다. 특히, 도 1은 기업의 인트라넷(intranet)에 악성코드 탐지 및 분류 시스템이 구축된 것을 예로써 도시하고 있다.
도 1을 참조하면, 상기 악성코드 탐지 및 분류 시스템은 수집 장치(50), 탐지 장치(30) 및 프로파일링 장치(10)를 포함하도록 구성될 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 악성코드 탐지 및 분류 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 수집 장치(50), 탐지 장치(30) 및 프로파일링 장치(10) 중 적어도 2개의 장치는 동일한 물리적 장치 내의 서로 다른 로직(logic)으로 구현될 수도 있다. 이하, 상기 악성코드 탐지 및 분류 시스템의 각 구성 요소에 대하여 설명하도록 한다.
상기 악성코드 탐지 및 분류 시스템에서, 수집 장치(50)는 네트워크 트래픽 정보, 사용자 단말의 모니터링 정보 등의 각종 정보를 수집하는 컴퓨팅 장치이다.
예를 들어, 수집 장치(50)는 외부 망에서 유입되는 인바운드 트래픽(inbound traffic) 및/또는 내부 망에서 외부 망으로 흐르는 아웃바운드 트래픽(outbound traffic)을 수집할 수 있다. 트래픽을 수집하는 방식은 어떠한 방식이 되더라도 무방하다.
다른 예를 들어, 수집 장치(50)는 인트라넷에 연결된 사용자 단말의 모니터링 정보를 수집할 수 있다. 보다 구체적인 예를 들어, 수집 장치(50)는 각 사용자 단말에 탑재된 모니터링 에이전트(monitoring agent)로부터 각종 파일의 행위 정보를 수집할 수 있다.
상기 악성코드 탐지 및 분류 시스템에서, 탐지 장치(50)는 수집 장치(50)에 의해 수집된 각종 정보에 기초하여 악성코드를 탐지하는 컴퓨팅 장치이다. 악성코드를 탐지하기 위해, 탐지 장치(50)는 정적 분석 기법, 동적 분석 기법 등 당해 기술 분야에서 널리 알려진 악성 코트 탐지 기법을 이용할 수 있다.
상기 악성코드 탐지 및 분류 시스템에서, 프로파일링 장치(10)는 기계 학습 기반의 분류 모델에 기초하여 악성코드를 유형별로 분류하는 컴퓨팅 장치이다. 여기서, 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능 및 통신 기능이 구비된 모든 종류의 장치를 포함할 수 있다.
구체적으로, 프로파일링 장치(10)는 탐지 장치(30)로부터 기 제공받은 악성코드 탐지 정보 및/또는 외부의 악성코드 DB(70)로부터 제공받은 악성코드 정보 등을 기계 학습하여 악성코드를 분류하는 소정의 분류 모델을 구축한다. 또한, 프로파일링 장치(10)는 상기 분류 모델을 이용하여 탐지 장치(30)에 의해 실시간으로 탐지된 악성코드에 대한 유형 정보 등의 각종 분석 정보를 제공한다. 이를 통해, 악성코드에 의해 유발되는 각종 사이버 공격에 신속하고 효과적으로 대응할 수 있으며, 사이버 공격에 의한 경제적 피해를 최소화할 수 있다.
특히, 프로파일링 장치(10)는 악성코드의 행위 특징에 기반하여 악성코드의 행위 벡터를 생성하고, 상기 생성된 행위 벡터에 악성코드의 유형을 가리키는 클래스 레이블을 부여하여 학습 데이터셋을 자동으로 생성할 수 있다. 이에 따라, 악성코드의 행위 기반 유사도에 기반한 정확도 높은 분류 모델이 구축될 수 있다. 아울러, 레이블링에 소요되는 인적 비용 및 시간 비용이 크게 절감될 수 있다. 이에 대한 설명은 도 2 이하의 도면을 참조하여 상세하게 설명하도록 한다.
상기 악성코드 탐지 및 분류 시스템을 구성하는 구성 요소 중 적어도 일부는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지, 도 1을 참조하여 본 발명이 적용될 수 있는 예시적인 시스템 중 하나인 악성코드 탐지 및 분류 시스템에 대하여 설명하였다. 다음으로, 본 발명의 일 실시예에 따른 프로파일링 장치(10)의 구성 및 동작에 대하여 도 2 내지 도 4를 참조하여 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 프로파일링 장치(10)를 나타내는 블록도이다.
도 2를 참조하면, 프로파일링 장치(10)는 행위 정보 생성 모듈(110), 레이블링 모듈(130), 모델 구축 모듈(150) 및 분류 모듈(190)을 포함하도록 구성될 수 있다. 다만, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 2에 도시된 프로파일링 장치(10)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다.
각 구성 요소를 살펴보면, 행위 정보 생성 모듈(110)은 악성코드의 행위 특징으로 구성된 행위 벡터를 생성한다. 이를 위해, 행위 정보 생성 모듈(110)은 도 3에 도시된 바와 같이 행위 정보 추출부(111) 및 전처리부(113)로 구성될 수 있다.
각 구성 요소를 살펴보면, 행위 정보 추출부(111)는 입력된 악성코드의 행위 정보를 추출한다. 구체적으로, 행위 정보 추출부(111)는 샌드박스(sandbox) 환경에서 악성코드에 대한 행위 분석을 수행함으로써 악성코드에 대한 행위 정보를 추출할 수 있다. 이때, 상기 행위 정보는 악성코드의 API(application programming interface) 호출 시퀀스를 포함할 수 있다.
전처리부(113)는 입력된 행위 정보에 대한 전처리를 수행하여 악성코드에 대한 행위 벡터를 생성한다. 전처리부(113)의 동작에 대한 자세한 설명은 도 13 내지 도 14c를 참조하여 후술하도록 한다.
다시 도 2를 참조하면, 레이블링 모듈(130)은 입력된 데이터셋에 악성코드의 유형을 가리키는 클래스 레이블을 부여한다. 이를 위해, 레이블링 모듈(130)은 도 4에 도시된 바와 같이 클러스터링부(131), 클러스터 평가부(133), 대표 클러스터 지정부(135) 및 레이블 부여부(137)로 구성될 수 있다.
각 구성 요소를 살펴보면, 클러스터링부(131)는 입력된 데이터셋에 대한 클러스터링을 수행하여 복수의 클러스터를 구축한다. 이를 위해, 클러스터링부(131)는 K-평균 클러스터링 알고리즘(K-means clustering algorithm)과 같이 당해 기술 분야에서 널리 알려진 클러스터링 알고리즘을 이용할 수 있다. 상기 K-평균 클러스터링 알고리즘에 대한 설명은 도 7a 내지 도 7c를 참조하도록 한다.
클러스터링부(131)의 동작에 대한 보다 자세한 설명은 도 6 내지 도 8의 설명 내용을 더 참조하도록 한다.
클러스터 평가부(133)는 구축된 클러스터에 대한 평가를 수행한다. 클러스터링 평가부(133)가 평가하는 항목은 예를 들어 클러스터의 크기, 클러스터 내부 유사도(e.g. 클러스터에 속한 데이터 간의 유사도), 클러스터 간 유사도 등을 포함할 수 있다.
대표 클러스터 지정부(135)는 클러스터 평가부(133)의 평가 결과에 기초하여 복수의 클러스터 중에서 대표 클러스터를 지정한다. 대표 클러스터 지정부(135)의 동작에 대한 자세한 설명은 도 9a 내지 도 9d를 참조하여 후술하도록 한다.
레이블 부여부(137)는 대표 클러스터에 속한 데이터셋에 클래스 레이블을 부여한다. 구체적으로, 레이블 부여부(137)는 동일한 대표 클러스터에 속한 데이터셋에 동일한 클래스 레이블을 부여하고, 상이한 대표 클러스터에 속한 데이터셋에 상이한 클래스 레이블을 부여한다.
모델 구축 모듈(150)은 클래스 레이블이 부여된 입력 데이터셋을 기계 학습하여 분류 모델을 구축한다. 상기 클래스 레이블이 악성코드의 유형인 경우, 악성코드를 분류하는 분류 모델(170)이 구축될 수 있다.
또한, 모델 구축 모듈(150)은 신규 클래스의 탐지에 응답하여 기 구축된 분류 모델을 갱신하거나, 분류 모델을 다시 구축할 수 있다. 이때, 레이블링 모듈(130)에 의해 추가 레이블링 동작이 수행될 수 있다. 이에 대한 자세한 설명은 도 11을 참조하여 후술하도록 한다.
분류 모듈(190)은 분류 모델(170)을 이용하여 입력된 악성코드의 유형을 분류한다. 분류 모듈(190)의 동작에 대한 자세한 설명은 도 10을 참조하여 후술하도록 한다.
프로파일링 장치(10)의 동작에 대한 추가적인 설명은 도 6 이하의 도면 더 참조하도록 한다.
도 2 내지 도 4에 도시된 프로파일링 장치(10)의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
참고로, 도 2는 프로파일링 장치(10)가 하나의 물리적 장치인 것으로 도시되어 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이며, 실시예에 따라, 프로파일링 장치(10)는 복수의 컴퓨팅 장치로 구성된 시스템으로 구현될 수도 있다. 예를 들어, 행위 정보 생성 모듈(110), 레이블링 모듈(130), 모델 구축 모듈(150) 및 분류 모듈(190) 중 적어도 일부 모듈은 독립된 컴퓨팅 장치로 구현될 수 있다. 보다 구체적인 예를 들어, 행위 정보 생성 모듈(110)이 악성코드의 행위 벡터를 생성하여 제공하는 별도의 행위 정보 생성 장치로 구현될 수 있고, 레이블링 모듈(130)이 입력된 데이터셋에 대하여 레이블링을 수행하는 별도의 레이블링 장치로 구현될 수 있다. 상기 프로파일링 시스템에서, 각 컴퓨팅 장치는 네트워크를 통해 통신할 수 있다.
지금까지, 도 2 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 프로파일링 장치(10)의 구성 및 동작에 대하여 설명하였다. 이하에서는, 도 5를 참조하여 본 발명의 몇몇 실시예들에 따른 장치(e.g. 프로파일링 장치 10, 레이블링 장치 등)를 구현할 수 있는 예시적인 컴퓨팅 장치에 대하여 설명하도록 한다.
도 5는 본 발명의 몇몇 실시예들에 따른 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
도 5를 참조하면, 컴퓨팅 장치(200)는 하나 이상의 프로세서(210), 버스(250), 네트워크 인터페이스(270), 프로세서(210)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(230)와, 컴퓨터 프로그램(291)를 저장하는 스토리지(290)를 포함할 수 있다. 다만, 도 5에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 5에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(210)는 컴퓨팅 장치(200)의 각 구성의 전반적인 동작을 제어한다. 프로세서(210)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(210)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(200)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(230)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(230)는 본 발명의 실시예들에 따른 기계 학습 데이터셋에 대한 레이블링 방법을 실행하기 위하여 스토리지(290)로부터 하나 이상의 프로그램(291)을 로드할 수 있다. 도 5에서 메모리(230)의 예시로 RAM이 도시되었다.
버스(250)는 컴퓨팅 장치(200)의 구성 요소 간 통신 기능을 제공한다. 버스(250)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(270)는 컴퓨팅 장치(200)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(270)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(270)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(290)는 하나 이상의 컴퓨터 프로그램(291)을 비임시적으로 저장할 수 있다.
스토리지(290)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
제1 실시예에서, 컴퓨팅 장치(200)는 레이블링 장치의 구현에 이용되는 장치일 수 있다. 이와 같은 경우, 컴퓨터 프로그램(291)은 프로세서(210)로 하여금 후술할 본 발명의 실시예에 따른 레이블링 방법을 실행하도록 하는 일련의 인스트럭션으로 구성된다. 이때, 상기 일련의 인스트럭션은 클래스 레이블이 주어지지 않은 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 인스트럭션, 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 인스트럭션, 상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 대표 클러스터를 지정하는 제3 인스트럭션 및 동일한 대표 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 인스트럭션을 포함할 수 있다.
제2 실시예에서, 컴퓨팅 장치(200)는 프로파일링 장치(10)의 구현에 이용되는 장치일 수 있다 이와 같은 경우, 컴퓨터 프로그램(291)은 프로세서(210)로 하여금 후술할 본 발명의 실시예에 따른 악성코드 프로파일링 방법을 실행하도록 하는 인스트럭션을 포함할 수 있다.
지금까지, 도 5를 참조하여 본 발명의 실시예에 따른 각종 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치(200)에 대하여 설명하였다. 다음으로, 도 6 내지 도 11을 참조하여 본 발명의 일 실시예에 따른 기계 학습 데이터셋에 대한 레이블링 방법에 대하여 상세하게 설명한다.
이하에서 후술될 본 발명의 실시예에 따른 기계 학습 데이터셋에 대한 레이블링 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 레이블링 모듈(130)이 탑재된 장치(e.g. 프로파일링 장치 10)일 수 있다. 다만, 설명의 편의를 위해, 상기 기계 학습 데이터셋에 대한 레이블링 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 기계 학습 데이터셋에 대한 레이블링 방법의 각 단계는 프로세서에 의해 실행되는 컴퓨터 프로그램의 인스트럭션으로 구현될 수 있다.
도 6은 본 발명의 일 실시예에 따른 기계 학습 데이터셋에 대한 레이블링 방법을 나타내는 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 6을 참조하면, 단계(S100)에서, 컴퓨팅 장치는 클래스 레이블이 주어지지 않은 제1 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축한다. 즉, 단계(S100)에서, 유사한 특성을 지닌 데이터끼리 그룹핑되어 클러스터가 형성 된다.
일 실시예에서, 상기 클러스터링은 K-평균 클러스터링 알고리즘(K-means clustering algorithm)과 같이 클러스터의 개수를 하이퍼파라미터(hyper-parameter)로 갖는 알고리즘을 이용하여 수행될 수 있다. 다만, 실시예에서 따라, 다른 클러스터링 알고리즘이 이용될 수도 있다.
K-평균 클러스터링 알고리즘은 클러스터 중심(centroid)과 클러스터 내 데이터 간의 거리의 분산이 최소화되도록 반복적으로 클러스터링을 수행하는 알고리즘이다. 따라서, 도 7a 내지 도 7c에 도시된 바와 같이, 단계 별로 클러스터의 중심이 이동될 수 있다. K-평균 클러스터링 알고리즘은 당해 기술 분야에서 이미 널리 알려진 알고리즘인 바 이에 대한 자세한 설명은 생략하도록 한다.
상술한 실시예에서, 클러스터 개수를 가리키는 하이퍼파라미터의 값은 다음의 몇몇 실시예들에 따라 결정될 수 있다.
제1 실시예에서, 도 8에 도시된 바와 같이, 클러스터의 개수는 데이터의 개수를 기초로 결정될 수 있다(S110). 예를 들어, 데이터의 개수가 n이라 할 때, 클러스터의 개수는 "√n/2"로 결정될 수 있다. 다만, 상기 예시는 본 발명의 일부 실시예를 설명하기 위한 것으로, 본 발명의 범위가 상기 예시에 한정되는 것은 아니다. 상기 제1 실시예에 따르면, 클러스터의 개수를 결정하기 위해 반복적인 클러스터링이 수행될 필요가 없다. 따라서, 컴퓨팅 자원 측면에서 효율적으로 클러스터 개수가 결정될 수 있다.
제2 실시예에서, 엘보우 기법(Elbow Method)을 이용하여 최적의 하이퍼파라미터 값이 탐색된다. 상기 엘보우 기법은 더 나은 클러스터링 결과가 나타나지 않을 때까지 하이퍼파라미터의 값을 순차적으로 증가시키며 클러스터링 및 평가를 반복 수행하는 기법이다. 상기 엘보우 기법은 당해 기술 분야에서 이미 널리 알려진 기법인 바, 더 이상의 설명은 생략하도록 한다.
제3 실시예에서, 지정된 범위 내에서 하이퍼파라미터 값을 변경해가며 클러스터링 및 평가를 반복 수행함으로써 최적의 하이퍼파라미터 값이 탐색된다. 하이퍼파라미터의 값을 변경하는 방식은 순차, 랜덤 등 어떠한 방식이 되더라도 무방하다. 예를 들어, K-평균 클러스터링 알고리즘의 경우, K의 값을 제1 값으로 설정하여 제1 복수의 클러스터가 구축되고, 상기 제1 복수의 클러스터에 대한 제1 평가 결과가 산출된다. 또한, 상기 K의 값을 제2 값으로 설정하여 제2 복수의 클러스터가 구축되고, 상기 제2 복수의 클러스터에 대한 제2 평가 결과가 산출된다. 이와 같은 방식으로, 지정된 범위 내에서 클러스터 구축 및 평가가 반복되며, 최종적으로 평가 결과가 가장 우수한 클러스터의 개수가 최적의 하이퍼파라미터의 값이 된다. 이때, 클러스터에 대한 평가 결과는 DBI(Davies-Bouldin index)와 같이 클러스터에 속한 데이터 간 유사도와 클러스터 간 비유사도에 기초하여 산출될 수 있다. 상기 제3 실시예에 따르면, 컴퓨팅 자원이 다소 소모될 수 있으나, 최적의 클러스터링 결과가 제공될 수 있다는 장점이 있다. 특히, 이후의 단계에서 동일 클러스터에 속한 데이터셋에 동일한 클래스 레이블이 부여되는 바, 상기 제3 실시예에 따르면, 레이블링 정확도가 향상되며, 이에 따라 기계 학습의 효과 또한 크게 향상될 수 있다.
다시 도 6을 참조하면, 단계(S200)에서, 컴퓨팅 장치가 상기 복수의 클러스터 각각에 대한 평가를 수행한다. 상기 평가의 항목은 예를 들어 클러스터의 크기, 클러스터 내부 유사도(e.g. 클러스터 내 데이터 간 유사도) 등이 될 수 있다.
상기 클러스터의 크기는 클러스터에 속한 데이터의 개수에 기초하여 산출될 수 있다.
상기 클러스터 내부 유사도는 예를 들어 클러스터 중심과 데이터 간의 평균 유사도에 기초하여 산출될 수 있다. 클러스터 중심과 각각의 데이터 간의 유사도는 예를 들어 유클리드 거리(euclidean distance), 코사인 유사도(cosine similarity) 등에 기초하여 산출될 수 있으나, 얼마든지 다른 유사도 측정 기법이 이용될 수 있다. 참고로, 상기 클러스터의 중심 또는 중심 벡터는 해당 클러스터에 속한 모든 데이터의 평균으로 결정될 수 있으나, 다른 방식으로 결정되더라도 무방하다.
단계(S300)에서, 컴퓨팅 장치는 단계(S200)의 평가 결과에 기초하여 복수의 클러스터 중에서 대표 클러스터를 지정한다. 상기 대표 클러스터는 클래스 레이블이 부여되는 클러스터를 의미한다.
제1 실시예에서, 도 9a에 도시된 바와 같이, 복수의 클러스터 중에서 클러스터의 크기가 임계 수치 이상인 클러스터가 대표 클러스터로 지정된다(S310, S330). 상기 임계 수치는 기 설정된 고정 값 또는 상황에 따라 변동되는 변동 값일 수 있다. 예를 들어, 상기 임계 수치는 클러스터의 평균 크기에 기초하여 변동되는 변동 값일 수 있다.
제2 실시예에서, 도 9b에 도시된 바와 같이, 복수의 클러스터 중에서 클러스터 내부 유사도가 임계 수치 이상인 클러스터가 대표 클러스터로 지정된다(S320, S330). 상기 임계 수치는 기 설정된 고정 값 또는 상황에 따라 변동되는 변동 값일 수 있다. 예를 들어, 상기 임계 수치는 클러스터의 평균 유사도에 기초하여 변동되는 변동 값일 수 있다.
제3 실시예에서, 도 9c에 도시된 바와 같이, 상기 제1 실시예 및 상기 제2 실시예의 조합에 따라 대표 클러스터가 지정될 수 있다. 구체적으로, 클러스터의 크기에 기초하여 후보 클러스터가 지정되고, 후보 클러스터 중에서 클러스터 내부 유사도가 임계치 이상인 클러스터가 대표 클러스터로 지정될 수 있다(S310 내지 S330).
한편, 본 발명의 몇몇 실시예에 따르면, 도 9b 및 도 9c에 도시된 단계(S320)에서, 클러스터 내부 유사도가 임계 수치 미만이라는 판정에 응답하여, 도 9d에 도시된 단계(S350, S370)가 수행될 수 있다. 구체적으로, 컴퓨팅 장치는 해당 클러스터에 속한 데이터 중에서 일부 데이터를 제외하고, 클러스터 내부 유사도를 다시 산출할 수 있다(S350, S370). 또한, 다시 산출된 유사도가 임계 수치 이상라는 판정에 응답하여, 상기 해당 클러스터가 대표 클러스터로 추가 지정될 수 있다(S320, S330).
이때, 상기 일부 데이터는 해당 클러스터의 중심과 유사도가 낮은 데이터로 결정될 수 있다. 예를 들어, 상기 일부 데이터는 해당 클러스터의 중심으로부터 평균 거리가 먼 데이터, 해당 클러스터의 중심과 코사인 유사도가 낮은 데이터 등으로 결정될 수 있다.
다시 도 6을 참조하면, 단계(S400)에서, 컴퓨팅 장치는 동일한 대표 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여한다. 즉, 제1 대표 클러스터에 속한 제1 데이터셋에 제1 클래스 레이블이 부여되고, 제2 대표 클러스터에 속한 제2 데이터셋에 제2 클래스 레이블이 부여된다.
단계(S500)에서, 컴퓨팅 장치는 클래스 레이블이 부여된 데이터셋을 이용하여 분류 모델을 구축한다. 구체적으로, 컴퓨팅 장치는 상기 데이터셋에 대한 기계 학습을 수행하여 상기 분류 모델을 구축한다. 이때, 상기 기계 학습에 이용되는 알고리즘은 어떠한 기계 학습 알고리즘이 되더라도 무방하다.
지금까지, 도 6 내지 도 9d를 참조하여 본 발명의 일 실시예에 따른 기계 학습 데이터셋에 대한 레이블을 방법에 대하여 설명하였다. 상술한 방법에 따르면, 클러스터링을 통해 유사한 특성의 데이터를 그룹핑하고, 유사한 특성의 데이터 별로 클래스 레이블이 부여된다. 이에 따라, 사람의 개입 없이 레이블링이 수행될 수 있는 바, 레이블링 작업에 소요되는 인적 비용 및 시간 비용이 크게 절감될 수 있다. 아울러, 클러스터링이 잘 된 대표 클러스터에만 클래스 레이블이 부여되고, 상기 대표 클러스터에 속한 데이터셋을 기반으로 분류 모델이 구축되는 바, 레이블링 및 기계 학습의 정확도가 향상될 수 있다.
상술한 방법에 따라 분류 모델이 구축되면, 컴퓨팅 장치는 클래스 레이블이 부여되지 않은 분류 대상 데이터에 대한 분류 태스크를 수행할 수 있다. 이하에서는, 입력된 분류 대상 데이터를 분류하는 방법에 대하여 도 10을 참조하여 설명하도록 한다. 이하에서 후술될 본 발명의 실시예에 따른 분류 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 분류 모듈(190)이 탑재된 컴퓨팅 장치(e.g. 프로파일링 장치 10)일 수 있다. 다만, 설명의 편의를 위해, 상기 분류 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 상기 분류 방법의 각 단계는 프로세서에 의해 실행되는 컴퓨터 프로그램의 인스트럭션으로 구현될 수 있다.
도 10은 본 발명의 일 실시예에 따른 분류 방법을 나타내는 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 10을 참조하면, 단계(S610)에서, 컴퓨팅 장치는 기 구축된 분류 모델을 이용하여 분류 대상 데이터의 클래스를 예측한다. 상기 분류 대상 데이터는 클래스 레이블이 부여되지 않은 임의의 데이터를 의미한다.
단계(S630)에서, 컴퓨팅 장치는 복수의 대표 클러스터 중에서 상기 예측된 클래스에 대응되는 타깃 대표 클러스터를 선정하고, 상기 타깃 대표 클러스터와 분류 대상 데이터 간의 유사도를 산출한다. 상기 유사도는 타깃 대표 클러스터의 중심과 상기 분류 대상 데이터 간의 유사도(e.g. 유클리드 거리, 코사인 유사도 등)에 기초하여 산출될 수 있다. 또는, 상기 유사도는 상기 타깃 대표 클러스터에 속한 데이터와 상기 분류 대상 데이터 간의 평균 유사도에 기초하여 산출될 수도 있으며, 어떠한 방식으로 산출되더라도 무방하다. 본 단계(S630)는 상기 예측된 클래스 레이블이 부여된 기존 데이터와 상기 분류 대상 데이터가 얼마나 유사한지를 산출하는 단계로 이해될 수 있다.
단계(S650)에서, 컴퓨팅 장치는 상기 산출된 유사도가 임계 수치 이상인지 여부를 판정한다. 상기 임계 수치는 기 설정된 고정 값 또는 상황에 따라 변동되는 변동 값일 수 있다.
단계(S670)에서, 상기 임계 수치 미만이라는 판정에 응답하여, 컴퓨팅 장치는 상기 분류 대상 데이터의 분류 결과를 새로운 클래스로 결정한다. 이때, 새로운 클래스는 지금까지 정의된 클래스에 포함되지 않은 클래스 또는 분류 모델에 의해 분류 가능한 클래스에 포함되지 않은 클래스를 의미한다. 예를 들어, 상기 분류 대상 데이터가 악성코드에 관한 데이터인 경우, 상기 새로운 클래스는 새로운 유형에 해당하는 신종 악성코드를 의미하는 것일 수 있다.
단계(S690)에서, 상기 임계 수치 이상이라는 판정에 응답하여, 컴퓨팅 장치는 예측된 클래스로 분류 결과를 출력한다.
지금까지, 도 10을 참조하여 본 발명의 일 실시예에 따른 분류 방법에 대하여 설명하였다. 상술한 방법에 따르면, 분류 모델의 출력 값에 의존하여 분류 결과가 출력되는 것이 아니라, 기존 데이터와의 유사도를 더 고려하여 분류 결과가 출력된다. 특히, 분류 모델이 악성코드의 유형을 분류하는 모델인 경우, 특정 악성코드가 새로운 유형의 악성코드(e.g. 신종 악성코드)에 해당한다는 분석 정보가 제공될 수 있다. 상기 분석 정보는 악성코드 관련 도메인에서 사이버 공격에 효과적으로 대응하기 위해 활용될 수 있다.
상술한 방법에 따라, 분류 대상 데이터가 새로운 클래스로 분류되면, 컴퓨팅 장치는 새로운 클래스를 학습하기 위해 분류 모델을 갱신할 수 있다. 이하에서는, 분류 모델을 갱신하는 방법에 대하여 도 11을 참조하여 설명하도록 한다. 이하에서 후술될 본 발명의 실시예에 따른 분류 모델 갱신 방법의 각 단계는, 컴퓨팅 장치(e.g. 프로파일링 장치 10)에 의해 수행될 수 있다. 또한, 상기 분류 모델 갱신 방법의 각 단계는 프로세서에 의해 실행되는 컴퓨터 프로그램의 인스트럭션으로 구현될 수 있다.
도 11은 본 발명의 일 실시예에 따른 분류 모델 갱신 방법을 나타내는 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 11을 참조하면, 단계(S710)에서, 컴퓨팅 장치가 클래스 레이블이 부여되지 않은 데이터셋에 분류 대상 데이터를 추가한다. 여기서, 클래스 레이블이 부여되지 않은 데이터셋은 대표 클러스터에 속하는 않는 데이터의 집합을 의미한다. 또한, 상기 분류 대상 데이터는 단계(S670)에서 새로운 클래스로 분류된 데이터를 의미한다.
단계(S730)에서, 컴퓨팅 장치는 상기 분류 대상 데이터가 추가된 데이터셋에 대하여 전술한 단계(S100 내지 S400)를 다시 수행한다. 즉, 단계(S730)에서, 컴퓨팅 장치는 새로운 클래스에 대한 레이블 부여 작업을 수행한다.
본 발명의 실시예에 따르면, 단계(S730)의 수행은 정량의 데이터가 추가된 경우에 트리거(trigger)될 수 있다. 다만, 실시예에 따라, 단계(S730)는 주기 또는 비주기적으로 수행될 수도 있다.
단계(S750)에서, 컴퓨팅 장치는 기 구축된 분류 모델을 갱신하거나, 분류 모델을 다시 구축한다.
구체적으로, 컴퓨팅 장치는 직전 단계(S730)에서 클래스 레이블이 부여된 데이터셋을 이용하여 기 구축된 분류 모델을 갱신할 수 있다.
또는, 컴퓨팅 장치는 단계(S400)에서 클래스 레이블이 부여된 제1 데이터셋과 직전 단계(S730)에서 추가로 클래스 레이블이 부여된 제2 데이터셋을 기계 학습하여 새로운 분류 모델을 구축할 수 있다.
지금까지, 도 10을 참조하여 본 발명의 일 실시예에 따른 분류 모델 갱신 방법에 대하여 설명하였다. 이하에서는, 보다 이해의 편의를 제공하기 위해, 악성코드 관련 도메인에서 본 발명의 기술적 사상이 구체화된 실시예들에 대하여 도 12 내지 도 16을 참조하여 설명하도록 한다. 이하에서 후술될 방법의 각 단계는 컴퓨팅 장치(e.g. 프로파일링 장치 10)에 의해 수행될 수 있고, 프로세서에 의해 실행되는 컴퓨터 프로그램의 인스트럭션으로 구현될 수 있다.
도 12는 본 발명의 일 실시예에 따른 악성코드 프로파일링 방법을 나타내는 흐름도이다.
도 12를 참조하면, 단계(S810)에서, 컴퓨팅 장치는 악성코드의 행위 벡터로 구성된 데이터셋을 획득한다. 상기 행위 벡터는 악성코드의 행위 특징을 벡터 요소로 갖는 벡터를 의미한다.
본 발명의 실시예에 따르면, 컴퓨팅 장치는 샌드박스 환경에서 악성코드의 동적 분석 또는 행위 분석을 수행하고, 상기 행위 분석에 결과를 기초하여 악성코드의 행위 벡터를 생성할 수 있다. 본 실시예에 대한 자세한 설명은 도 13 내지 도 14c를 참조하여 상세하게 설명하도록 한다.
단계(S830)에서, 컴퓨팅 장치는 획득된 데이터셋에 대한 레이블링 작업을 수행한다. 본 단계에 대한 상세한 설명은 전술한 바와 같으므로 생략하도록 한다. 본 단계(S830)에서, 유사한 행위 특징을 갖는 악성코드끼리 클러스터가 형성되고, 행위 특징에 기반하여 악성코드의 유형을 가리키는 클래스 레이블이 부여된다.
단계(S850)에서, 컴퓨팅 장치는 클래스 레이블이 부여된 데이터셋을 기계 학습하여 분류 모델을 구축한다. 이때, 상기 분류 모델은 악성코드의 행위 벡터를 입력 받고, 해당 악성코드의 유형을 결과로 출력하는 모델이 된다.
지금까지, 도 12를 참조하여 본 발명의 일 실시예에 따른 악성코드 프로파일링 방법에 대하여 설명하였다. 상술한 방법에 따르면, 행위 기반 프로파일링을 통해 악성코드의 유형을 정확하게 분류하는 분류 모델을 구축함으로써, 사이버 공격에 이용된 악성코드의 유형 정보를 제공할 수 있다. 이에 따라, 악성코드의 유형에 따라 우선순위 및 대응 정도를 달리하는 등 사이버 공격에 대한 효과적인 대응이 가능할 수 있다.
이하에서는, 도 13 내지 도 14c를 참조하여 악성코드에 대한 행위 벡터를 생성하는 방법에 대하여 설명하도록 한다.
도 13은 본 발명의 일 실시예에 따른 행위 벡터 생성 방법을 나타내는 흐름도이고, 도 14a 내지 도 14c는 행위 벡터가 생성되는 과정 나타내는 예시도이다.
도 13을 참조하면, 단계(S811)에서, 컴퓨팅 장치는 악성코드의 행위 분석을 통해 악성코드의 API(application programming interface)의 호출 시퀀스를 획득한다. 상기 악성코드의 행위 분석은 샌드박스(sandbox)와 같이 고립된 환경에서 수행될 수 있다. 악성코드의 API 호출 시퀀스의 예는 도 14a에 도시되어 있다. 구체적으로, 도 14a는 악성코드 A(310)의 API 호출 시퀀스(311)와 악성코드 B(320)의 API 호출 시퀀스(321)를 도시하고 있다.
단계(S813)에서, 컴퓨팅 장치는 n-gram 단위로 악성코드의 행위 특징을 추출한다. 행위 특징을 추출하는 예는 도 14b에 도시되어 있다. 특히, 도 14b는 2-gram 방식을 이용하여 2개의 연속된 API를 행위 특징으로 추출하는 예를 도시하고 있다. 도 14b에 도시된 심볼(A, B, C, D)은 API 명칭을 대체하는 용도로 편의상 이용된 것이다. 도 14b를 참조하면, 악성코드 A(310) 및 B(320)의 API 호출 시퀀스(311, 321)를 심볼로 대체하면, 왼쪽의 심볼열(313, 323)로 표현될 수 있다. 심볼열(313, 323)에 2-gram을 적용하면, 오른쪽에 도시된 바와 같이, 악성코드 A(310)의 행위 특징(315)은 AA, AA, AB, BC, CC가 되고, 악성코드 B(320)의 행위 특징(325)은 AA, AB, BC, CD, DD가 된다.
도 14a에 도시된 API 호출 시퀀스는 설명의 편의를 위해 다소 짧은 길이로 도시되었으나, 실제 악성코드의 API 호출 시퀀스의 길이는 매우 길기 때문에, n-gram 단위의 행위 특징을 벡터 요소로 갖는 행위 벡터는 매우 고차원의 벡터가 될 수 있다. 또한, 행위 벡터는 대부분의 벡터 요소가 ?0"이 되는 희소 벡터(sparse vector)가 될 수 있다. 따라서, 단계(S813)에서 추출된 행위 특징에 기반한 행위 벡터는 기계 학습을 위한 데이터로 적합하지 않다. 또한, 악성코드 별로 API 호출 시퀀스의 길이는 상이한 경우 행위 벡터의 길이가 악성코드 별로 달라지기 때문에, 벡터의 길이를 일치시키는 정규화 과정이 수행될 필요가 있다.
따라서, 단계(S815)에서, 추출된 행위 특징에 대한 피처 해싱(feature hashing)이 수행된다. 또한, 피처 해싱의 결과를 이용하여 실제 기계 학습에 이용되는 악성코드의 행위 벡터가 생성된다. 이에 대한 예는 도 14c에 도시되어 있다.
도 14c를 참조하면, 악성코드 A(310)의 행위 특징(AA, AB, BC, CC)에 대한 해시 값이 각각 0, 1, 1, 2라고 할 때, 악성코드 A(310)의 행위 벡터(317)는 (2, 2, 1)이 된다. 즉, 피처 해싱이 수행되는 경우, 해시 값이 행위 벡터의 인덱스(index)를 가리키고, 행위 특징의 개수가 행위 벡터의 값(value)으로 설정된다. 피처 해싱에 이용되는 해시 함수는 어떠한 함수가 되더라도 무방하고, 행위 벡터의 차원을 제한하기 위해 모듈로 함수(modular function, %)가 함께 이용될 수 있다. 또는, 모듈로 함수가 해시 함수로 이용될 수도 있다. 상기 피처 해싱은 당해 기술 분야에서 해싱 트릭(hashing trick)과 같은 용어와 혼용되어 사용될 수 있으나, 동일한 의미를 지칭하며, 당해 기술 분야에서 이미 널리 알려진 기법인 바 더 이상의 설명은 생략하도록 한다.
지금까지, 도 13 내지 도 14c를 참조하여 본 발명의 실시예에 따른 행위 벡터 생성 방법에 대하여 설명하였다. 상술한 방법에 따르면, API 호출 시퀀스에 기초하여 행위 특징이 추출되고, 피처 해싱을 통해 기계 학습에 적합한 데이터셋이 생성될 수 있다.
참고로, 도 13 내지 도 14c를 참조하여 설명한 본 발명의 실시예에 따른 행위 벡터 생성 방법은 임의의 도메인에서 기계 학습에 적합한 데이터셋을 생성하기 위한 용도로 이용될 수 있음에 유의하여야 한다. 예를 들어, 문자열 등과 같은 임의의 시퀀스로부터 벡터 형식의 데이터셋을 생성하기 위해 상술한 n-gram 기반 특징 추출과 피처 해싱이 그대로 이용될 수 있다.한편, 본 발명의 실시예에 따르면, 악성코드의 유형 별로 대표 악성코드가 자동으로 지정될 수 있다. 즉, 대표 클러스터별로 해당 클러스터를 대표하는 악성코드가 자동으로 지정될 수 있다. 이하에서는, 도 15를 참조하여 본 실시예에 대하여 설명하도록 한다.
도 15는 본 발명의 일 실시예에 따른 대표 악성코드 결정 방법을 나타내는 흐름도이다.
도 15를 참조하면, 단계(S910)에서, 컴퓨팅 장치는 악성코드별로 대표 클러스터의 중심과 행위 벡터 간의 평균 유사도를 산출한다. 보다 자세하게는, 특정 대표 클러스터에 속한 데이터가 제1 악성코드의 제1 행위 벡터와 제2 악성코드의 제2 행위 벡터를 포함한다고 할 때, 상기 특정 대표 클러스터의 중심과 상기 제1 행위 벡터 간의 제1 평균 유사도가 산출되고, 상기 중심과 상기 제2 행위 벡터 간의 제2 평균 유사도가 산출될 수 있다. 이때, 평균 유사도를 산출하는 이유는 해당 악성코드에 대한 행위 벡터가 복수 개일 수도 있음을 가정한 것이다.
단계(S930)에서, 컴퓨팅 장치는 악성코드별 평균 유사도를 이용하여 해당 대표 클러스터에 대한 대표 악성코드를 결정한다. 예를 들어, 평균 유사도가 가장 높은 악성코드가 해당 대표 클러스터의 대표 악성코드로 결정될 수 있다.
지금까지, 도 15를 참조하여 본 발명의 일 실시예에 따른 대표 악성코드 결정 방법에 대하여 설명하였다. 상술한 방법에 따르면, 악성코드의 유형 정보 외에 해당 악성코드의 유형을 대표하는 대표 악성코드에 대한 정보와 같이 유의미한 정보가 제공될 수 있다.
지금까지, 도 1 내지 도 15를 참조하여 본 발명의 몇몇 실시예들과 상기 몇몇 실시예들에 따른 효과들을 언급하였다. 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 15를 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티 태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (21)

  1. 컴퓨팅 장치에서 수행되는 기계 학습 데이터셋에 대한 레이블링 방법에 있어서,
    클래스 레이블(class label)이 주어지지 않은 제1 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 단계;
    클러스터에 속한 데이터 간의 제1 유사도를 기초로 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 단계;
    상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 레이블링 대상 클러스터를 지정하는 제3 단계; 및
    동일한 레이블링 대상 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 단계를 포함하되,
    상기 제3 단계는,
    상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 일부 클러스터를 제1 레이블링 대상 클러스터로 지정하는 단계;
    상기 제1 레이블링 대상 클러스터로 지정되지 않은 제1 클러스터에 대하여, 상기 제1 클러스터에 속한 데이터 중에서 일부 데이터를 제외하여 제2 클러스터를 형성하는 단계; 및
    상기 제2 클러스터에 속한 데이터 간의 제2 유사도를 산출하고, 상기 제2 유사도가 소정의 임계 수치 이상이라는 판정에 응답하여, 상기 제2 클러스터를 상기 레이블링 대상 클러스터로 추가 지정하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  2. 제1 항에 있어서,
    상기 클러스터링은,
    K-평균 클러스터링(K-means clustering) 알고리즘을 이용하여 수행되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  3. 제2 항에 있어서,
    상기 제1 단계는,
    K의 값을 제1 값으로 설정하여 제1 복수의 클러스터를 구축하고, 상기 제1 복수의 클러스터에 대한 제1 평가 결과를 산출하는 단계;
    상기 K의 값을 제2 값으로 설정하여 제2 복수의 클러스터를 구축하고, 상기 제2 복수의 클러스터에 대한 제2 평가 결과를 산출하는 단계; 및
    상기 제1 평가 결과와 상기 제2 평가 결과를 기초로, 상기 제1 복수의 클러스터 및 상기 제2 복수의 클러스터 중 어느 하나를 상기 복수의 클러스터로 결정하는 단계를 포함하되,
    상기 제1 평가 결과 및 상기 제2 평가 결과는,
    클러스터에 속한 데이터 간 유사도와 클러스터 간 비유사도에 기초하여 산출되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  4. 제1 항에 있어서,
    상기 클러스터링에 이용되는 알고리즘은,
    클러스터의 개수를 하이퍼파라미터(hyper-parameter)로 갖는 알고리즘이되,
    상기 하이퍼파라미터의 값은 상기 제1 데이터셋의 데이터 개수에 기초하여 결정되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  5. 제1 항에 있어서,
    상기 제3 단계는,
    상기 복수의 클러스터 중에서, 데이터의 개수가 임계 수치 이상인 클러스터를 레이블링 후보 클러스터로 선정하는 단계; 및
    상기 레이블링 후보 클러스터 중에서, 상기 평가의 결과에 기초하여 상기 레이블링 대상 클러스터를 지정하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  6. 제1 항에 있어서,
    상기 제3 단계는,
    상기 복수의 클러스터 중에서, 상기 제1 유사도가 임계 수치 이상인 클러스터를 상기 레이블링 대상 클러스터로 지정하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  7. 제1 항에 있어서,
    상기 제1 유사도는,
    클러스터의 중심(centroid)과 클러스터에 속한 데이터 간의 평균 거리에 기초하여 산출되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  8. 삭제
  9. 제1 항에 있어서,
    상기 일부 데이터는,
    상기 제1 클러스터의 중심과 상기 제1 클러스터에 속한 데이터 간의 거리에 기초하여 결정되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  10. 삭제
  11. 제1 항에 있어서,
    상기 제1 데이터셋 중에서 클래스 레이블이 부여된 데이터셋을 기계 학습하여, 분류 모델을 구축하는 단계;
    상기 분류 모델을 이용하여, 상기 클래스 레이블이 주어지지 않은 분류 대상 데이터의 클래스를 예측하는 단계;
    상기 레이블링 대상 클러스터 중에서, 상기 예측된 클래스에 대응되는 타깃 클러스터를 선정하는 단계; 및
    상기 타깃 클러스터와 상기 분류 대상 데이터 간의 유사도가 임계 수치 미만이라는 판정에 응답하여, 상기 분류 대상 데이터를 새로운 클래스로 분류하는 단계를 더 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  12. 제11 항에 있어서,
    상기 제1 데이터셋은 상기 클래스 레이블이 부여된 제1-1 데이터셋과 상기 클래스 레이블이 부여되지 않은 제1-2 데이터셋으로 구성되고,
    상기 제1-2 데이터셋에 상기 분류 대상 데이터를 추가하여 제2 데이터셋을 구성하는 단계; 및
    상기 제2 데이터셋을 대상으로 상기 제1 단계 내지 상기 제4 단계를 수행하여, 상기 제2 데이터셋 중 적어도 일부의 데이터에 새로운 클래스 레이블을 부여하는 단계를 더 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  13. 제12 항에 있어서,
    상기 적어도 일부의 데이터를 이용하여, 상기 분류 모델을 갱신하는 단계를 더 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  14. 제12 항에 있어서,
    상기 적어도 일부의 데이터 및 상기 제1-1 데이터셋을 이용하여, 상기 분류 모델을 재구축하는 단계를 더 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  15. 제1 항에 있어서,
    상기 제1 데이터셋에 포함된 각각의 데이터는 벡터 형식의 데이터이고,
    상기 벡터 형식의 데이터는,
    특정 시퀀스로부터 추출된 n-gram 단위의 특징에 기초하여 생성되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  16. 제15 항에 있어서,
    상기 벡터 형식의 데이터는,
    상기 n-gram 단위의 특징에 대하여 피처 해싱(feature hashing)이 수행된 결과에 기초하여 생성되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  17. 제15 항에 있어서,
    상기 클래스 레이블은 악성코드의 분류 정보를 가리키고,
    상기 벡터 형식의 데이터는 악성코드의 행위 벡터이며,
    상기 특정 시퀀스는 상기 악성코드의 API(application programming interface) 호출 시퀀스인 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  18. 제17 항에 있어서,
    상기 악성코드의 API 호출 시퀀스는,
    샌드박스(sandbox) 내에서 수행되는 상기 악성코드의 행위 분석을 통해 획득되는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  19. 제1 항에 있어서,
    상기 클래스 레이블은 악성코드의 분류 정보를 가리키고,
    상기 레이블링 대상 클러스터에 속한 데이터는 제1 악성코드의 특징을 가리키는 제1 데이터 및 제2 악성코드의 특징을 가리키는 제2 데이터를 포함하며,
    상기 레이블링 대상 클러스터의 중심과 상기 제1 데이터 간의 제1 평균 유사도를 산출하는 단계;
    상기 레이블링 대상 클러스터의 중심과 상기 제2 데이터 간의 제2 평균 유사도를 산출하는 단계; 및
    상기 제1 평균 유사도와 상기 제2 평균 유사도의 비교 결과에 기초하여, 상기 제1 악성코드 및 상기 제2 악성코드 중 어느 하나의 악성코드를 상기 레이블링 대상 클러스터의 대표 악성코드로 지정하는 단계를 더 포함하는 것을 특징으로 하는,
    기계 학습 데이터셋에 대한 레이블링 방법.
  20. 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리; 및
    클래스 레이블(class label)이 주어지지 않은 데이터셋 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 인스트럭션;
    클러스터에 속한 데이터 간의 제1 유사도를 기초로 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 인스트럭션;
    상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 레이블링 대상 클러스터를 지정하는 제3 인스트럭션; 및
    동일한 레이블링 대상 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 인스트럭션을 포함하되,
    상기 제3 인스트럭션은,
    상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 일부 클러스터를 제1 레이블링 대상 클러스터로 지정하는 인스트럭션;
    상기 제1 레이블링 대상 클러스터로 지정되지 않은 제1 클러스터에 대하여, 상기 제1 클러스터에 속한 데이터 중에서 일부 데이터를 제외하여 제2 클러스터를 형성하는 인스트럭션; 및
    상기 제2 클러스터에 속한 데이터 간의 제2 유사도를 산출하고, 상기 제2 유사도가 소정의 임계 수치 이상이라는 판정에 응답하여, 상기 제2 클러스터를 상기 레이블링 대상 클러스터로 추가 지정하는 인스트럭션을 포함하는 것을 특징으로 하는,
    레이블링 장치.
  21. 컴퓨팅 장치와 결합되어,
    클래스 레이블(class label)이 주어지지 않은 제1 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 구축하는 제1 단계;
    클러스터에 속한 데이터 간의 제1 유사도를 기초로 상기 복수의 클러스터 각각에 대한 평가를 수행하는 제2 단계;
    상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 레이블링 대상 클러스터를 지정하는 제3 단계; 및
    동일한 레이블링 대상 클러스터에 속한 데이터 각각에 대하여 동일한 클래스 레이블을 부여하는 제4 단계를 실행시키되,
    상기 제3 단계는,
    상기 평가의 결과에 기초하여, 상기 복수의 클러스터 중에서 일부 클러스터를 제1 레이블링 대상 클러스터로 지정하는 단계;
    상기 제1 레이블링 대상 클러스터로 지정되지 않은 제1 클러스터에 대하여, 상기 제1 클러스터에 속한 데이터 중에서 일부 데이터를 제외하여 제2 클러스터를 형성하는 단계; 및
    상기 제2 클러스터에 속한 데이터 간의 제2 유사도를 산출하고, 상기 제2 유사도가 소정의 임계 수치 이상이라는 판정에 응답하여, 상기 제2 클러스터를 상기 레이블링 대상 클러스터로 추가 지정하는 단계를 수행하도록 구현된 컴퓨터로 판독 가능한 기록매체에 저장된,
    컴퓨터 프로그램.
KR1020170159220A 2017-11-27 2017-11-27 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치 KR101880628B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170159220A KR101880628B1 (ko) 2017-11-27 2017-11-27 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170159220A KR101880628B1 (ko) 2017-11-27 2017-11-27 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR101880628B1 true KR101880628B1 (ko) 2018-08-16

Family

ID=63443873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170159220A KR101880628B1 (ko) 2017-11-27 2017-11-27 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101880628B1 (ko)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102088509B1 (ko) * 2019-03-27 2020-03-12 국방과학연구소 컴퓨터 시스템의 이상 행위 탐지 방법 및 장치
KR20200056183A (ko) * 2018-11-14 2020-05-22 주식회사 디플리 이상 탐지 방법
KR20200084441A (ko) 2018-12-26 2020-07-13 단국대학교 산학협력단 머신러닝의 학습 데이터셋 생성을 위한 애플리케이션 자동화 빌드 장치 및 방법
KR20200116831A (ko) * 2019-04-02 2020-10-13 주식회사 마키나락스 학습 데이터 관리 방법
KR102202911B1 (ko) * 2019-07-25 2021-01-14 호서대학교 산학협력단 Pe 섹션 정보를 이용한 패커 유형 분류 장치 및 방법
KR20210021838A (ko) * 2019-08-19 2021-03-02 국민대학교산학협력단 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
KR20210025246A (ko) * 2019-08-27 2021-03-09 국민대학교산학협력단 가중치 기반의 피처 벡터 생성 장치 및 방법
CN112667869A (zh) * 2019-10-15 2021-04-16 阿里巴巴集团控股有限公司 数据处理方法、设备、系统及存储介质
KR20220027573A (ko) * 2020-08-27 2022-03-08 재단법인대구경북과학기술원 딥러닝 기반 데이터 압축 방법 및 데이터 압축 장치
KR20220060894A (ko) * 2020-11-05 2022-05-12 서울대학교산학협력단 클래스 의존적 도메인 유사화 학습 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR20220127786A (ko) * 2021-03-09 2022-09-20 주식회사 마이데이터랩 자연어 의도를 분류하는 뉴럴 네트워크 훈련을 위한 데이터 처리 방법 및 장치
KR20220157720A (ko) * 2021-05-21 2022-11-29 국방과학연구소 공격을 탐지하는 장치 및 그 방법
WO2023085717A1 (ko) * 2021-11-09 2023-05-19 에스케이플래닛 주식회사 클러스터링을 기반으로 하는 레이블링을 수행하기 위한 장치, 이상 탐지를 위한 장치 및 이를 위한 방법
KR102540873B1 (ko) 2022-12-15 2023-06-07 주식회사 에이모 노이즈 레이블을 필터링하는 방법 및 장치
US11710068B2 (en) 2019-11-24 2023-07-25 International Business Machines Corporation Labeling a dataset
CN117332303A (zh) * 2023-12-01 2024-01-02 太极计算机股份有限公司 一种用于集群的标签纠正方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150044490A (ko) 2013-10-16 2015-04-27 (주)이스트소프트 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
US20150379423A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Feature processing recipes for machine learning
KR20160031588A (ko) * 2014-09-12 2016-03-23 고려대학교 산학협력단 악성코드 분류 장치 및 악성코드 분류 방법
KR101716564B1 (ko) * 2015-04-02 2017-03-15 현대오토에버 주식회사 하둡 기반의 악성코드 탐지 방법과 시스템
KR20170078256A (ko) * 2015-12-29 2017-07-07 삼성에스디에스 주식회사 시계열의 데이터를 예측 하는 방법 및 그 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150044490A (ko) 2013-10-16 2015-04-27 (주)이스트소프트 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
US20150379423A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Feature processing recipes for machine learning
KR20160031588A (ko) * 2014-09-12 2016-03-23 고려대학교 산학협력단 악성코드 분류 장치 및 악성코드 분류 방법
KR101716564B1 (ko) * 2015-04-02 2017-03-15 현대오토에버 주식회사 하둡 기반의 악성코드 탐지 방법과 시스템
KR20170078256A (ko) * 2015-12-29 2017-07-07 삼성에스디에스 주식회사 시계열의 데이터를 예측 하는 방법 및 그 장치

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200056183A (ko) * 2018-11-14 2020-05-22 주식회사 디플리 이상 탐지 방법
KR102600745B1 (ko) * 2018-11-14 2023-11-10 주식회사 디플리 신경망 분석 기반의 소리 분류용 이상 탐지 방법
KR20200084441A (ko) 2018-12-26 2020-07-13 단국대학교 산학협력단 머신러닝의 학습 데이터셋 생성을 위한 애플리케이션 자동화 빌드 장치 및 방법
KR102088509B1 (ko) * 2019-03-27 2020-03-12 국방과학연구소 컴퓨터 시스템의 이상 행위 탐지 방법 및 장치
KR102295805B1 (ko) 2019-04-02 2021-08-31 주식회사 마키나락스 학습 데이터 관리 방법
KR20200116831A (ko) * 2019-04-02 2020-10-13 주식회사 마키나락스 학습 데이터 관리 방법
US11562167B2 (en) 2019-04-02 2023-01-24 MakinaRocks Co., Ltd. Method of training neural network classification model using selected data
KR102202911B1 (ko) * 2019-07-25 2021-01-14 호서대학교 산학협력단 Pe 섹션 정보를 이용한 패커 유형 분류 장치 및 방법
KR20210021838A (ko) * 2019-08-19 2021-03-02 국민대학교산학협력단 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
KR102225820B1 (ko) * 2019-08-19 2021-03-10 국민대학교산학협력단 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
KR20210025246A (ko) * 2019-08-27 2021-03-09 국민대학교산학협력단 가중치 기반의 피처 벡터 생성 장치 및 방법
KR102289411B1 (ko) 2019-08-27 2021-08-12 국민대학교산학협력단 가중치 기반의 피처 벡터 생성 장치 및 방법
CN112667869A (zh) * 2019-10-15 2021-04-16 阿里巴巴集团控股有限公司 数据处理方法、设备、系统及存储介质
US11710068B2 (en) 2019-11-24 2023-07-25 International Business Machines Corporation Labeling a dataset
KR102500904B1 (ko) * 2020-08-27 2023-02-16 재단법인대구경북과학기술원 딥러닝 기반 데이터 압축 방법 및 데이터 압축 장치
KR20220027573A (ko) * 2020-08-27 2022-03-08 재단법인대구경북과학기술원 딥러닝 기반 데이터 압축 방법 및 데이터 압축 장치
KR102526086B1 (ko) * 2020-11-05 2023-04-25 서울대학교산학협력단 클래스 의존적 도메인 유사화 학습 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR20220060894A (ko) * 2020-11-05 2022-05-12 서울대학교산학협력단 클래스 의존적 도메인 유사화 학습 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR102477782B1 (ko) 2021-03-09 2022-12-16 주식회사 마이데이터랩 자연어 의도를 분류하는 뉴럴 네트워크 훈련을 위한 데이터 처리 방법 및 장치
KR20220127786A (ko) * 2021-03-09 2022-09-20 주식회사 마이데이터랩 자연어 의도를 분류하는 뉴럴 네트워크 훈련을 위한 데이터 처리 방법 및 장치
KR102483914B1 (ko) * 2021-05-21 2023-01-04 국방과학연구소 공격을 탐지하는 장치 및 그 방법
KR20220157720A (ko) * 2021-05-21 2022-11-29 국방과학연구소 공격을 탐지하는 장치 및 그 방법
WO2023085717A1 (ko) * 2021-11-09 2023-05-19 에스케이플래닛 주식회사 클러스터링을 기반으로 하는 레이블링을 수행하기 위한 장치, 이상 탐지를 위한 장치 및 이를 위한 방법
KR102540873B1 (ko) 2022-12-15 2023-06-07 주식회사 에이모 노이즈 레이블을 필터링하는 방법 및 장치
CN117332303A (zh) * 2023-12-01 2024-01-02 太极计算机股份有限公司 一种用于集群的标签纠正方法
CN117332303B (zh) * 2023-12-01 2024-03-26 太极计算机股份有限公司 一种用于集群的标签纠正方法

Similar Documents

Publication Publication Date Title
KR101880628B1 (ko) 기계 학습 데이터셋에 대한 레이블링 방법 및 그 장치
US20220067587A1 (en) Root cause discovery engine
Souza et al. Data stream classification guided by clustering on nonstationary environments and extreme verification latency
Luo et al. A novel intrusion detection system based on feature generation with visualization strategy
Euh et al. Comparative analysis of low-dimensional features and tree-based ensembles for malware detection systems
JP6378855B1 (ja) 画像検索システム、画像検索方法およびプログラム
US20200265119A1 (en) Site-specific anomaly detection
EP3306493B1 (en) Classification method, device and system for program file
US9959407B1 (en) Systems and methods for identifying potentially malicious singleton files
US10733385B2 (en) Behavior inference model building apparatus and behavior inference model building method thereof
WO2017036154A1 (zh) 一种信息处理方法及服务器、计算机存储介质
Imran et al. Using hidden markov model for dynamic malware analysis: First impressions
JP2017004123A (ja) 判定装置、判定方法および判定プログラム
US20220253725A1 (en) Machine learning model for entity resolution
JP7057761B2 (ja) 計算機システム及び情報の提示方法
KR20200052425A (ko) 시계열 데이터 분석 방법, 주영향 변수 결정 방법 및 그 방법들을 지원하는 장치
Wang et al. A malware variants detection methodology with an opcode based feature method and a fast density based clustering algorithm
KR102100204B1 (ko) 기계 학습 기반의 분류 방법 및 그 장치
JP2018018330A (ja) データ検索プログラム、データ検索方法およびデータ検索装置
KR20220032730A (ko) 그래프 임베딩과 인간참여 방식을 통한 악성코드 제작그룹 식별 방법
Oliver et al. Hac-t and fast search for similarity in security
CN111432003A (zh) 应用于云计算的数据推送方法、装置、电子设备及系统
KR20200073822A (ko) 악성코드 분류 방법 및 그 장치
JP6611679B2 (ja) データ生成方法及び計算機システム
CN109800775B (zh) 文件聚类方法、装置、设备及可读介质

Legal Events

Date Code Title Description
GRNT Written decision to grant