KR101858620B1 - 기계 학습을 이용한 자바스크립트 분석 장치 및 방법 - Google Patents

기계 학습을 이용한 자바스크립트 분석 장치 및 방법 Download PDF

Info

Publication number
KR101858620B1
KR101858620B1 KR1020170003348A KR20170003348A KR101858620B1 KR 101858620 B1 KR101858620 B1 KR 101858620B1 KR 1020170003348 A KR1020170003348 A KR 1020170003348A KR 20170003348 A KR20170003348 A KR 20170003348A KR 101858620 B1 KR101858620 B1 KR 101858620B1
Authority
KR
South Korea
Prior art keywords
sequence
call
javascript
learning
feature vector
Prior art date
Application number
KR1020170003348A
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 KR1020170003348A priority Critical patent/KR101858620B1/ko
Application granted granted Critical
Publication of KR101858620B1 publication Critical patent/KR101858620B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • G06F17/30324
    • G06F17/30896
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

자바스크립트 분석 장치가 개시된다. 상기 자바스크립트 분석 장치는 학습 대상 문서에 포함된 자바스크립트를 동적으로 실행하여 자바스크립트 함수의 제1 호출 시퀀스를 추출하고, 상기 제1 호출 시퀀스로부터 제1 특징 벡터(feature vector)를 추출하는 시퀀스 추출 모듈 및 상기 제1 특징 벡터를 이용하여 상기 학습 대상 문서에 악성 스크립트의 포함 여부를 결정하는 분류기 모델을 학습하는 분류기 학습 모듈을 포함한다.

Description

기계 학습을 이용한 자바스크립트 분석 장치 및 방법{DEVICE AND METHOD FOR ANALYZING JAVASCRIPT USING MACHINE LEARNING}
본 발명의 개념에 따른 실시 예는 기계 학습을 이용한 자바스크립트 분석 장치 및 방법에 관한 것이다.
백신제품 벤치마킹 테스트 전문기관인 AV-TEST의 분석보고서에 따르면, 2012년부터 2013년 동안에 변종 포함 4700만 개의 새로운 악성코드가 출현하였다. 악성코드 제작자는 악성행위를 위한 핵심코드를 재사용하면서 악성코드의 변종을 쉽게 만든다.
백신회사는 하루에도 수천 개의 신종 악성코드를 주로 시그니처(Signature) 기반의 탐지방법으로 분석하고 있다. 백신회사는 악성코드의 인스트럭션(instruction) 코드 및/또는 바이너리(binary) 코드로부터 악성코드의 고유 특징을 추출하여 시그니처를 생성 및 데이터베이스에 저장한다.
한편 다형화(Polymorphism)와 변형성(Metamorphism) 기술이 적용된 악성코드는 시그니처 기반의 악성코드 탐지기법을 쉽게 우회할 수 있고, 악성코드 분석가는 이러한 악성코드의 시그니처를 추출하기 위해서는 언패킹 및 난독화 해독 과정을 선행하여야 한다. 시그니처 기반의 탐지기법은 분석가가 끊임없이 데이터베이스를 업데이트해야 하고 알려지지 않은(Zero-day) 공격의 경우 탐지가 용이치 않고 악성코드 행위는 유지된 채 악성코드의 일부 또는 악성코드의 전체를 변경한 악성코드의 경우 탐지율이 떨어지는 문제가 있다.
따라서, 시그니처 기반의 악성코드 탐지 기법의 한계점을 보완하기 위한 새로운 접근 방법으로 악성 코드의 탐지 및 분류를 가능케 하는 악성 코드의 탐지 및 분류 방법이 필요하다.
미합중국 등록특허 제9,438,622호 미합중국 등록특허 제9,282,117호
본 발명이 이루고자 하는 기술적인 과제는 자바스크립트 함수의 호출 시퀀스 분석을 통해 악성 스크립트가 포함된 웹페이지를 탐지할 수 있는 기계 학습을 이용한 자바스크립트 분석 장치 및 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 자바스크립트 분석 장치는 학습 대상 문서에 포함된 자바스크립트를 동적으로 실행하여 자바스크립트 함수의 제1 호출 시퀀스를 추출하고, 상기 제1 호출 시퀀스로부터 제1 특징 벡터(feature vector)를 추출하는 시퀀스 추출 모듈 및 상기 제1 특징 벡터를 이용하여 상기 학습 대상 문서에 악성 스크립트의 포함 여부를 결정하는 분류기 모델을 학습하는 분류기 학습 모듈을 포함한다.
본 발명의 실시 예에 따른 자바스크립트 분석 방법은 학습 단계와 분석 단계를 포함하고, 자바스크립트 분석 장치에서 수행되며, 상기 학습 단계는 상기 자바스크립트 분석 장치에 포함되는 시퀀스 추출 모듈이 학습 대상 문서에 포함된 자바스크립트를 동적으로 실행하여 자바스크립트 함수의 제1 호출 시퀀스를 추출하는 단계, 상기 시퀀스 추출 모듈이 상기 제1 호출 시퀀스로부터 제1 특징 벡터를 추출하는 단계 및 상기 자바스크립트 분석 장치에 포함되는 분류기 학습 모듈이 상기 제1 특징 벡터를 이용하여 상기 학습 대상 문서에 악성 스크립트의 포함 여부를 결정하는 분류기 모델을 학습하는 단계를 포함하고, 상기 분석 단계는 상기 시퀀스 추출 모듈이 분석 대상 문서를 동적으로 실행하여 자바스크립트 함수의 제2 호출 시퀀스를 추출하고, 상기 제2 호출 시퀀스로부터 제2 특징 벡터를 추출하는 단계 및 상기 자바스크립트 분석 장치에 포함되는 분류 모듈이 학습된 분류기 모델을 이용하여 상기 분석 대상 문서에 악성 스크립트의 포함 여부를 결정하는 단계를 포함하고, 상기 학습 대상 문서와 상기 분석 대상 문서는 HTML 문서인 것을 특징으로 한다.
본 발명의 실시 예에 따른 기계 학습을 이용한 자바스크립트 분석 장치 및 방법에 의할 경우, 스크립트의 난독화 방식과 무관하게 숨겨진 위험 스크립트를 식별하고 이를 통하여 악성 스크립트가 포함된 웹페이지를 탐지할 수 있는 효과가 있다.
또한, 본 발명에 의할 경우, 명시적인 스크립트가 아닌 실제로 사용되어지는 자바스크립트 함수의 호출 시퀀스를 분석하기 때문에 변종 스크립트 공격에 효과적으로 대응할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 의한 자바스크립트 분석 장치의 예시적인 하드웨어 블럭도이다.
도 2는 도 1에 도시된 자바스크립트 분석 장치의 기능 블럭도이다.
도 3은 도 2에 도시된 자바스크립트 분석 장치에서 수행되는 자바스크립트 분석 방법을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 의한 자바스크립트 분석 장치의 예시적인 하드웨어 블럭도이다.
도 1을 참조하면, 자바스크립트 분석 장치(100)는 통신 인터페이스(101), 입력 인터페이스(103), 출력 인터페이스(105), 메모리(107), 하드 디스크(109), 하나 이상의 프로세서(111) 및 시스템 버스/제어 버스(113)를 포함한다. 도 1에 도시된 자바스크립트 분석 장치(100)는 PC(Personal Computer), 인터넷 망을 통해 액세스 가능한 서버(Server), 노트북 등으로 구현될 수 있다.
자바스크립트 분석 장치(100)의 하드웨어 블럭들을 간단히 살펴보면, 통신 인터페이스(101)는 자바스크립트 분석 장치(100) 외부의 장치와 통신할 수 있도록 구성된다. 통신 인터페이스(101)는 유선 또는 무선 통신을 수행하도록 구성되며, 예를 들어 무선 랜이나 유선 랜에 연결될 수 있도록 하는 맥(MAC) 칩을 포함한다.
입력 인터페이스(103)는 자바스크립트 분석 장치(100)를 제어하기 위한 사용자 입력을 수신한다. 입력 인터페이스(103)는 키보드, 마우스 등을 포함하여 본 자바스크립트 분석 장치(100)를 제어할 수 있다. 예를 들어 입력 인터페이스(103)는 악성 코드인지 또는 특정 악성코드 클래스 내에서 어떤 패밀리인지를 분류할 대상 문서(또는 대상 프로그램)의 선택, 대상 문서(또는 대상 프로그램)에 대한 탐지 및 분류의 시작 및 종료를 결정할 수 있는 사용자 입력을 수신할 수 있다.
출력 인터페이스(105)는 자바스크립트 분석 장치(100)에 의해서 탐지 및 분류된 처리 결과를 출력한다. 출력 인터페이스(105)는 디스플레이, 스피커 등으로 구현될 수 있다.
메모리(107)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함한다. 메모리(107)는 각종 데이터와 프로그램을 저장한다. 휘발성 메모리는 각종 데이터와 프로그램의 조각(segment)을 임시로 저장하고 비휘발성 메모리는 셋업 또는 부팅에 필요한 각종 셋업 데이터와 부팅 프로그램 등을 비일시적으로 저장할 수 있다.
하드 디스크(109)는 대용량 저장매체로서 각종 데이터를 저장하고 각종 프로그램들을 저장한다. 하드 디스크(109)는 적어도 본 발명에 따른 악성 코드의 탐지 및 분류를 위한 악성코드 분류 방법을 수행하는 프로그램(예컨대, 기계 학습 알고리즘)을 포함한다. 하드 디스크(109)는 또한 악성코드 분류 방법의 프로그램에 이용될 데이터들을 포함한다. 이러한 데이터들은 특정 프로그램에 의해서 액세스 및 관리될 수 있다. 악성 코드 분류에 이용되는 데이터들과 이 특정 프로그램은 데이터베이스로 바람직하게 구성된다.
프로세서(111)는 비휘발성 메모리나 하드디스크(109) 등에 저장된 프로그램의 프로그램 코드를 로딩하여 프로그램 코드를 실행시킬 수 있다. 프로세서(111)는 프로그램 코드의 명령어(instruction)를 실행할 수 있는 실행 유닛(Execution Unit)을 포함하여 악성코드 분류를 위한 프로그램, 악성코드 분류에 이용되는 각종 데이터를 트레이닝하기 위한 프로그램 등을 실행할 수 있다.
시스템 버스/제어 버스(113)는 각 하드웨어 블록 사이에 (제어) 데이터를 송수신할 수 있도록 구성된다. 시스템 버스/제어 버스(113)는 병렬 버스이거나 시리얼 버스 등일 수 있다.
도 2는 도 1에 도시된 자바스크립트 분석 장치의 기능 블럭도이다.
도 1과 도 2를 참조하면, 자바스크립트 분석 장치(100)는 시퀀스 추출 모듈(120), 분류기 학습 모듈(140), 분류 모듈(160) 및 데이터베이스(180) 중 적어도 하나 이상을 포함할 수 있다. 자바스크립트 분석 장치(100)는 도 1에 도시된 하드웨어 상에서 수행되고 바람직하게는 하드 디스크(109) 등에 저장된 프로그램 코드를 프로세서(111)에 로딩하여 프로그램 코드에 따라 각 하드웨어 블럭을 제어함으로써 수행될 수 있다.
시퀀스 추출 모듈(120)은 자바스크립트를 동적으로 실행하여 자바스크립트 함수의 호출 시퀀스를 추출한다. 구체적으로, 소정의 입력 장치 또는 유무선 통신망을 통하여 수신된 문서(예컨대, HTML(Hypertext Markup Language) 문서)에 포함된 자바스크립트를 동적으로 실행하여 상기 호출 시퀀스를 추출할 수 있다. 상기 호출 시퀀스는 시퀀스 추출 모듈(120)에 의해 데이터베이스(180)에 저장될 수 있다. 이때, 상기 문서는 분류기 모델의 학습을 위한 학습 문서와 분류 내지 탐지의 대상인 탐지 대상 문서로 나뉠 수 있다.
또한, 시퀀스 추출 모듈(120)은 통신 인터페이스(101) 또는 입력 인터페이스(103)를 경유하여 하드 디스크(109)로부터 상기 문서를 수신할 수 있다.
실시 예에 따라, 시퀀스 추출 모듈(120)은 추출된 호출 시퀀스 각각의 특징 벡터(feature vector)를 추출할 수 있다. 상기 특징 벡터는 함수 호출 시퀀스의 길이, 함수 호출 시퀀스에 포함된 함수의 종류 개수, 함수 호출 시퀀스의 엔트로피, 함수 호출 시퀀스의 N-gram, 함수 호출 시퀀스에 포함되어 반복적으로 수행되는 서브-시퀀스의 종류, 서브-시퀀스의 개수, 호출 스택(stack)의 개수, 호출 스택의 종류, 호출 스택의 평균 깊이(depte), 호출 스택의 최대 깊이 중 적어도 하나를 포함할 수 있다.
다른 실시 예로, 시퀀스 추출 모듈(120)은 추출된 호출 시퀀스를 미리 정해진 길이로 분할함으로써, 분할된 호출 시퀀스를 특징 벡터로 추출하거나, 분할된 호출 시퀀스를 다른 형태로 인코딩한 값을 특징 벡터로 추출할 수도 있다.
추출된 특징 벡터는 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장될 수 있다.
분류기 학습 모듈(140)은 시퀀스 추출 모듈(120)에 의해 추출된 호출 시퀀스 또는 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장되어 있는 호출 시퀀스를 이용하여 분류기 모델을 학습할 수 있다.
실시 예에 따라, 분류기 학습 모듈(140)은 시퀀스 추출 모듈(120)에 의해 추출된 특징 벡터 또는 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장되어 있는 특징 벡터를 이용하여 상기 분류기 모델을 학습할 수 있다.
또한, 분류기 학습 모듈(140)은 기계 학습(Machine Learning) 알고리즘을 이용하여 상기 분류기 모델을 학습할 수 있다. 상기 기계 학습 알고리즘은 서포트 벡터 머신(support vector machine, SVM), 의사 결정 나무(decision tree), 랜덤 포레스트(random forest), 나이브 베이지안(naive bayesian), 로지스틱 회귀분석(logistic regression), 인공 신경망(artificial neural network) 및 딥러닝(deep learning) 계열 알고리즘에 속하는 심층 신경망(deep neural network), 컨볼루션 신경망(convolutional neural network), 순환형 신경망(recurrent neural network) 중 적어도 하나 이상의 알고리즘을 포함할 수 있다.
분류기 학습 모델(140)에 의해 학습된 분류기 모델은 문서를 적어도 2 이상의 카테고리로 분류할 수 있고, 이때 상기 2 이상의 카테고리에는 악성 스크립트가 포함된 자바스크립트의 집합을 포함할 수 있다. 실시 예에 따라 상기 학습된 분류기 모델은 추출된 호출 시퀀스 또는 특징 벡터에 기초하여 분석 대상 자바스크립트에 악성 스크립트가 포함되어 있는지 여부를 결정할 수도 있다. 이를 위해, 분류기 학습 모델(140)은 각각의 호출 시퀀스와 함께 각 호출 시퀀스에 악성 스크립트 포함 여부 및/또는 해당 악성 스크립트에 관한 정보를 이용하여 상기 분류기 모델을 학습할 수 있고, 상기 악성 스크립트 포함 여부 및/또는 해당 악성 스크립트에 관한 정보는 통신 인터페이스(101) 또는 입력 인터페이스(103)를 경유하여 하드 디스크(109)로부터 수신할 수 있다.
분류 모듈(160)은 학습된 분류기 모델을 이용하여 탐지 대상 문서 또는 상기 탐지 대상 문서에 포함된 자바스크립트에 악성 스크립트가 포함되어 있는지 여부를 결정할 수 있다.
데이터베이스(180)에는 시퀀스 추출 모듈(120)에 의해 추출된 호출 시퀀스 및/또는 특징 벡터 등이 저장될 수 있다.
도 2에 도시된 자바스크립트 분석 장치(100)의 구성들 각각은 기능 및 논리적으로 분리될 수 있음으로 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것이 아님을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아니다.
도 3은 도 2에 도시된 자바스크립트 분석 장치에서 수행되는 자바스크립트 분석 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 3을 참조하면, 자바스크립트 분석 방법은 크게 복수의 문서들 각각의 분석을 통해 분류기 모델을 학습하는 학습 단계와 학습된 분류기 모델을 이용하여 분석 대상 문서에 악성 스크립트 포함 여부를 결정하는 분석 단계를 포함한다.
학습 단계에서, 자바스크립트 분석 장치(100)의 시퀀스 추출 모듈(120)은 복수의 학습 대상 문서들 각각으로부터 자바스크립트 함수의 호출 시퀀스를 추출한다(S110). 추출된 호출 시퀀스는 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장될 수 있다.
실시 예에 따라, 상기 학습 단계는 시퀀스 추출 모듈(120)이 추출된 호출 시퀀스로부터 특징 벡터를 추출하는 단계(S130)를 더 포함할 수도 있다. 추출된 특징 벡터 역시 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장될 수 있다. 여기서, 상기 특징 벡터는 함수 호출 시퀀스의 길이, 함수 호출 시퀀스에 포함된 함수의 종류 개수, 함수 호출 시퀀스의 엔트로피, 함수 호출 시퀀스의 N-gram, 함수 호출 시퀀스에 포함되어 반복적으로 수행되는 서브-시퀀스의 종류, 서브-시퀀스의 개수, 호출 스택(stack)의 개수, 호출 스택의 종류, 호출 스택의 평균 깊이(depte), 호출 스택의 최대 깊이 중 적어도 하나를 포함할 수 있다.
자바스크립트 분석 장치(100)의 분류기 학습 모듈(140)은 추출된 호출 시퀀스 및/또는 추출된 특징 벡터를 이용하여 분류기 모델을 학습할 수 있다. 상기 분류기 모델의 학습에는 기계 학습 알고리즘, 예컨대 서포트 벡터 머신(support vector machine, SVM), 의사 결정 나무(decision tree), 랜덤 포레스트(random forest), 나이브 베이지안(naive bayesian), 로지스틱 회귀분석(logistic regression), 인공 신경망(artificial neural network) 및 딥러닝(deep learning) 계열 알고리즘에 속하는 심층 신경망(deep neural network), 컨볼루션 신경망(convolutional neural network), 순환형 신경망(recurrent neural network) 중 적어도 하나 이상의 알고리즘이 이용될 수 있다.
분석 단계에서, 시퀀스 추출 모듈(120)은 적어도 하나의 분석 대상 문서로부터 자바스크립트 함수의 호출 시퀀스를 추출한다(S310). 추출된 호출 시퀀스는 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장될 수 있다.
실시 예에 따라, 상기 분석 단계는 시퀀스 추출 모듈(120)이 추출된 호출 시퀀스로부터 특징 벡터를 추출하는 단계(S330)를 더 포함할 수도 있다. 추출된 특징 벡터 역시 시퀀스 추출 모듈(120)에 의해 DB(180)에 저장될 수 있다.
다음으로, 분류 모듈(160)은 학습된 분류기 모델을 이용하여 상기 적어도 하나의 분석 대상 문서의 악성 스크립트 포함 여부를 결정할 수 있다(S350).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 자바스크립트 분석 장치
120 : 시퀀스 추출 모듈
140 : 분류기 학습 모듈
160 : 분류 모듈
180 : DB

Claims (9)

  1. 학습 대상 문서에 포함된 자바스크립트를 동적으로 실행하여 자바스크립트 함수의 제1 호출 시퀀스를 추출하고, 상기 제1 호출 시퀀스로부터 제1 특징 벡터(feature vector)를 추출하는 시퀀스 추출 모듈; 및
    상기 제1 특징 벡터를 이용하여 상기 학습 대상 문서에 악성 스크립트의 포함 여부를 결정하는 분류기 모델을 학습하는 분류기 학습 모듈을 포함하고,
    상기 제1 특징 벡터는 상기 제1 호출 시퀀스의 길이, 상기 제1 호출 시퀀스에 포함된 함수의 종류 개수, 상기 제1 호출 시퀀스의 엔트로피, 상기 제1 호출 시퀀스의 N-gram, 상기 제1 호출 시퀀스 내에서 반복적으로 수행되는 반복 서브-시퀀스의 종류, 상기 반복 서브-시퀀스의 개수, 상기 제1 호출 시퀀스에 포함된 호출 스택(stack)의 개수, 상기 호출 스택의 종류, 상기 호출 스택의 평균 깊이(depte) 및 상기 호출 스택의 최대 깊이 중 적어도 하나 이상을 포함하고,
    상기 시퀀스 추출 모듈은 상기 제1 호출 시퀀스를 미리 정해진 길이로 분할함으로써, 분할된 호출 시퀀스를 추출하여 상기 제1 특징 벡터에 추가로 포함시키는,
    자바스크립트 분석 장치.
  2. 제1항에 있어서,
    상기 시퀀스 추출 모듈은 분석 대상 문서를 동적으로 실행하여 자바스크립트 함수의 제2 호출 시퀀스를 추출하고, 상기 제2 호출 시퀀스로부터 제2 특징 벡터를 추출하고,
    상기 자바스크립트 분석 장치는, 학습된 분류기 모델을 이용하여 상기 분석 대상 문서에 악성 스크립트의 포함 여부를 결정하는 분류 모듈을 더 포함하는,
    자바스크립트 분석 장치.
  3. 제2항에 있어서,
    상기 학습 대상 문서와 상기 분석 대상 문서는 HTML(Hypertext Markup Langjage) 문서인,
    자바스크립트 분석 장치.
  4. 삭제
  5. 제2항에 있어서,
    상기 제2 특징 벡터는 상기 제2 호출 시퀀스의 길이, 상기 제2 호출 시퀀스에 포함된 함수의 종류 개수, 상기 제2 호출 시퀀스의 엔트로피, 상기 제2 호출 시퀀스의 N-gram, 상기 제2 호출 시퀀스 내에서 반복적으로 수행되는 반복 서브-시퀀스의 종류, 상기 반복 서브-시퀀스의 개수, 상기 제2 호출 시퀀스에 포함된 호출 스택(stack)의 개수, 상기 호출 스택의 종류, 상기 호출 스택의 평균 깊이(depte) 및 상기 호출 스택의 최대 깊이 중 적어도 하나 이상을 포함하는,
    자바스크립트 분석 장치.
  6. 제1항에 있어서,
    상기 분류기 학습 모듈은 서포트 벡터 머신(support vector machine, SVM), 의사 결정 나무(decision tree), 랜덤 포레스트(random forest), 나이브 베이지안(naive bayesian), 로지스틱 회귀분석(logistic regression), 인공 신경망(artificial neural network), 심층 신경망(deep neural network), 컨볼루션 신경망(convolutional neural network) 및 순환형 신경망(recurrent neural network) 중 적어도 하나 이상의 알고리즘을 포함하는 기계 학습 알고리즘을 이용하여 상기 분류기 모델을 학습하는,
    자바스크립트 분석 장치.
  7. 학습 단계와 분석 단계를 포함하고, 자바스크립트 분석 장치에서 수행되는 자바스크립트 분석 방법에 있어서,
    상기 학습 단계는,
    상기 자바스크립트 분석 장치에 포함되는 시퀀스 추출 모듈이 학습 대상 문서에 포함된 자바스크립트를 동적으로 실행하여 자바스크립트 함수의 제1 호출 시퀀스를 추출하는 단계;
    상기 시퀀스 추출 모듈이 상기 제1 호출 시퀀스로부터 제1 특징 벡터를 추출하는 단계; 및
    상기 자바스크립트 분석 장치에 포함되는 분류기 학습 모듈이 상기 제1 특징 벡터를 이용하여 상기 학습 대상 문서에 악성 스크립트의 포함 여부를 결정하는 분류기 모델을 학습하는 단계를 포함하고,
    상기 분석 단계는,
    상기 시퀀스 추출 모듈이 분석 대상 문서를 동적으로 실행하여 자바스크립트 함수의 제2 호출 시퀀스를 추출하고, 상기 제2 호출 시퀀스로부터 제2 특징 벡터를 추출하는 단계; 및
    상기 자바스크립트 분석 장치에 포함되는 분류 모듈이 학습된 분류기 모델을 이용하여 상기 분석 대상 문서에 악성 스크립트의 포함 여부를 결정하는 단계를 포함하고,
    상기 학습 대상 문서와 상기 분석 대상 문서는 HTML 문서이고,
    상기 제1 특징 벡터는 상기 제1 호출 시퀀스의 길이, 상기 제1 호출 시퀀스에 포함된 함수의 종류 개수, 상기 제1 호출 시퀀스의 엔트로피, 상기 제1 호출 시퀀스의 N-gram, 상기 제1 호출 시퀀스 내에서 반복적으로 수행되는 제1 반복 서브-시퀀스의 종류, 상기 제1 반복 서브-시퀀스의 개수, 상기 제1 호출 시퀀스에 포함된 제1 호출 스택(stack)의 개수, 상기 제1 호출 스택의 종류, 상기 제1 호출 스택의 평균 깊이(depte) 및 상기 제1 호출 스택의 최대 깊이 중 적어도 하나 이상을 포함하고,
    상기 제1 특징 벡터는 상기 제1 호출 시퀀스를 미리 정해진 길이로 분할함으로써, 추출된 분할된 호출 시퀀스를 상기 제1 특징 벡터에 추가로 포함하는,
    자바스크립트 분석 방법.
  8. 제7항에 있어서,
    상기 제2 특징 벡터는 상기 제2 호출 시퀀스의 길이, 상기 제2 호출 시퀀스에 포함된 함수의 종류 개수, 상기 제2 호출 시퀀스의 엔트로피, 상기 제2 호출 시퀀스의 N-gram, 상기 제2 호출 시퀀스 내에서 반복적으로 수행되는 제2 반복 서브-시퀀스의 종류, 상기 제2 반복 서브-시퀀스의 개수, 상기 제2 호출 시퀀스에 포함된 제2 호출 스택(stack)의 개수, 상기 제2 호출 스택의 종류, 상기 제2 호출 스택의 평균 깊이(depte) 및 상기 제2 호출 스택의 최대 깊이 중 적어도 하나 이상을 포함하는,
    자바스크립트 분석 방법.
  9. 제7항에 있어서,
    상기 분류기 학습 모듈은 서포트 벡터 머신(support vector machine, SVM), 의사 결정 나무(decision tree), 랜덤 포레스트(random forest), 나이브 베이지안(naive bayesian), 로지스틱 회귀분석(logistic regression), 인공 신경망(artificial neural network), 심층 신경망(deep neural network), 컨볼루션 신경망(convolutional neural network) 및 순환형 신경망(recurrent neural network) 중 적어도 하나 이상의 알고리즘을 포함하는 기계 학습 알고리즘을 이용하여 상기 분류기 모델을 학습하는,
    자바스크립트 분석 방법.
KR1020170003348A 2017-01-10 2017-01-10 기계 학습을 이용한 자바스크립트 분석 장치 및 방법 KR101858620B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170003348A KR101858620B1 (ko) 2017-01-10 2017-01-10 기계 학습을 이용한 자바스크립트 분석 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170003348A KR101858620B1 (ko) 2017-01-10 2017-01-10 기계 학습을 이용한 자바스크립트 분석 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101858620B1 true KR101858620B1 (ko) 2018-05-17

Family

ID=62485924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170003348A KR101858620B1 (ko) 2017-01-10 2017-01-10 기계 학습을 이용한 자바스크립트 분석 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101858620B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101922956B1 (ko) * 2018-08-07 2019-02-27 (주)케이사인 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법
KR20200048033A (ko) * 2018-10-29 2020-05-08 한국과학기술원 자바스크립트 파일 재작성을 통한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR20200052433A (ko) * 2018-10-29 2020-05-15 한국과학기술원 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR20200133644A (ko) * 2019-05-20 2020-11-30 (주)지란지교시큐리티 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
KR20220060843A (ko) * 2020-11-05 2022-05-12 국민대학교산학협력단 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법
US11716348B2 (en) * 2017-10-31 2023-08-01 Bluvector, Inc. Malicious script detection
US11783034B2 (en) 2020-02-05 2023-10-10 Electronics And Telecommunications Research Institute Apparatus and method for detecting malicious script

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090005934A (ko) * 2007-07-10 2009-01-14 삼성전자주식회사 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램인지여부를 진단하는 장치 및 방법
JP2012088803A (ja) * 2010-10-15 2012-05-10 Univ Of Aizu 悪性ウェブコード判別システム、悪性ウェブコード判別方法および悪性ウェブコード判別用プログラム
US20120158626A1 (en) * 2010-12-15 2012-06-21 Microsoft Corporation Detection and categorization of malicious urls
US8838992B1 (en) * 2011-04-28 2014-09-16 Trend Micro Incorporated Identification of normal scripts in computer systems
US20150200962A1 (en) * 2012-06-04 2015-07-16 The Board Of Regents Of The University Of Texas System Method and system for resilient and adaptive detection of malicious websites
KR20160099160A (ko) * 2015-02-11 2016-08-22 한국전자통신연구원 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090005934A (ko) * 2007-07-10 2009-01-14 삼성전자주식회사 컴퓨터 프로그램의 행동을 이용하여 악성 프로그램인지여부를 진단하는 장치 및 방법
JP2012088803A (ja) * 2010-10-15 2012-05-10 Univ Of Aizu 悪性ウェブコード判別システム、悪性ウェブコード判別方法および悪性ウェブコード判別用プログラム
US20120158626A1 (en) * 2010-12-15 2012-06-21 Microsoft Corporation Detection and categorization of malicious urls
US8838992B1 (en) * 2011-04-28 2014-09-16 Trend Micro Incorporated Identification of normal scripts in computer systems
US20150200962A1 (en) * 2012-06-04 2015-07-16 The Board Of Regents Of The University Of Texas System Method and system for resilient and adaptive detection of malicious websites
KR20160099160A (ko) * 2015-02-11 2016-08-22 한국전자통신연구원 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11716348B2 (en) * 2017-10-31 2023-08-01 Bluvector, Inc. Malicious script detection
KR101922956B1 (ko) * 2018-08-07 2019-02-27 (주)케이사인 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법
KR20200048033A (ko) * 2018-10-29 2020-05-08 한국과학기술원 자바스크립트 파일 재작성을 통한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR20200052433A (ko) * 2018-10-29 2020-05-15 한국과학기술원 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR102132450B1 (ko) * 2018-10-29 2020-07-09 엘아이지넥스원 주식회사 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR102132449B1 (ko) * 2018-10-29 2020-07-09 엘아이지넥스원 주식회사 자바스크립트 파일 재작성을 통한 자바스크립트 해석 엔진 테스트 방법 및 장치
KR20200133644A (ko) * 2019-05-20 2020-11-30 (주)지란지교시큐리티 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
KR102241859B1 (ko) * 2019-05-20 2021-04-20 (주)지란지교시큐리티 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체
US11783034B2 (en) 2020-02-05 2023-10-10 Electronics And Telecommunications Research Institute Apparatus and method for detecting malicious script
KR20220060843A (ko) * 2020-11-05 2022-05-12 국민대학교산학협력단 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법
KR102437278B1 (ko) * 2020-11-05 2022-08-29 국민대학교산학협력단 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법

Similar Documents

Publication Publication Date Title
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
Jerlin et al. A new malware detection system using machine learning techniques for API call sequences
CN110808968B (zh) 网络攻击检测方法、装置、电子设备和可读存储介质
Ye et al. SBMDS: an interpretable string based malware detection system using SVM ensemble with bagging
Baldwin et al. Leveraging support vector machine for opcode density based detection of crypto-ransomware
Sanz et al. MAMA: manifest analysis for malware detection in android
Kapratwar et al. Static and dynamic analysis of android malware
Lu Malware detection with lstm using opcode language
Samra et al. Analysis of clustering technique in android malware detection
Mehtab et al. AdDroid: rule-based machine learning framework for android malware analysis
CN111639337B (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN107659570A (zh) 基于机器学习与动静态分析的Webshell检测方法及系统
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
Palahan et al. Extraction of statistically significant malware behaviors
KR20230002436A (ko) 거짓 양성 멀웨어 탐지율을 감소시키기 위한 머신 러닝 시스템 및 방법
Miura et al. Macros finder: Do you remember loveletter?
Motiur Rahman et al. StackDroid: Evaluation of a multi-level approach for detecting the malware on android using stacked generalization
Ahmadi et al. Intelliav: Toward the feasibility of building intelligent anti-malware on android devices
Kakisim et al. Sequential opcode embedding-based malware detection method
CN114357443A (zh) 基于深度学习的恶意代码检测方法、设备与存储介质
CN113971284B (zh) 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质
Khan et al. A dynamic method of detecting malicious scripts using classifiers
Ugarte-Pedrero et al. On the adoption of anomaly detection for packed executable filtering
JP2020109611A (ja) コンピュータシステム内の悪意のあるアクティビティの源を検出するシステムおよび方法
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质

Legal Events

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