KR20160119678A - 기계 학습을 이용한 웹 공격 탐지방법 및 장치 - Google Patents

기계 학습을 이용한 웹 공격 탐지방법 및 장치 Download PDF

Info

Publication number
KR20160119678A
KR20160119678A KR1020150152133A KR20150152133A KR20160119678A KR 20160119678 A KR20160119678 A KR 20160119678A KR 1020150152133 A KR1020150152133 A KR 1020150152133A KR 20150152133 A KR20150152133 A KR 20150152133A KR 20160119678 A KR20160119678 A KR 20160119678A
Authority
KR
South Korea
Prior art keywords
machine learning
data
feature vector
web traffic
web
Prior art date
Application number
KR1020150152133A
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 KR1020150152133A priority Critical patent/KR20160119678A/ko
Publication of KR20160119678A publication Critical patent/KR20160119678A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/142Denial of service attacks against network infrastructure

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

기계 학습을 이용한 웹 공격 탐지방법 및 장치가 개시된다. 상기 기계 학습을 이용한 웹 공격 탐지방법은, 기계 학습을 수행하여 적어도 하나 이상의 분류자(classifier)를 생성하는 단계; 네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출하는 단계; 및 상기 생성된 분류자를 사용하여, 상기 웹 트래픽 특징벡터에 대응하는 상기 웹 트래픽의 정상 여부를 결정하는 단계를 포함한다.

Description

기계 학습을 이용한 웹 공격 탐지방법 및 장치{METHOD AND APPARATUS FOR DETECTING MALICIOUS WEB TRAFFIC USING MACHINE LEARNING TECHNOLOGY}
본 발명은 웹 트래픽에 대한 웹 공격 여부를 탐지하기 위한 것으로, 보다 상세하게는 하나 또는 그 이상의 기계 학습 기술을 이용하여 네트워크로 수신되는 웹 트래픽에 대해 정상적인 웹 트래픽과 웹 공격에 해당하는 웹 트래픽을 실시간으로 판단할 수 있도록 하는 기술에 관한 것이다.
일반적으로, 인터넷(internet) 등의 네트워크로부터 수신된 웹 트래픽(web traffic(HTTP Request))은 웹 서버(web server)에 도달하기 전에 방화벽(firewall)을 거친다. 방화벽은 웹 트래픽에서 원하는 정보를 레이어(layer)에서 추출한다. HTTP는 어플리케이션 레이어(application layer)에 속하므로, 방화벽은 주로 어플리케이션/트랜스포트(application/transport) 레벨의 레이어를 검사한다.
이때, 기존 기술은 보안 전문가가 공격 데이터를 관찰하여 공통적인 특징을 추출하여 공격 탐지 시그네쳐(signature)를 수동으로 구성한다. 이로 인해 다음과 같은 한계점이 존재한다.
첫째, 보안 전문가가 모든 공격 데이터를 분석하는 것이 어려우므로 분석하지 못한 공격에 대한 대응이 불가능하다. 둘째, 새로운 보안 트렌드에 대한 반영이 현실적으로 불가능하다. 셋째, 시그네쳐의 구조가 명확하여 해커가 여러 시도를 통해 구조를 파악한 후, 우회가 가능하다. 넷째, 시그네쳐의 구조가 단순하기 때문에 공격이 아닌 정상 트래픽도 공격으로 탐지될 가능성이 매우 높아 오탐율이 높다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 인간이 아닌 컴퓨터가 웹 트래픽에 대한 공격 데이터의 특징을 추출하여 공격 위험도를 생성하고, 이를 이용하여 특정한 위험도를 기준으로 웹 트래픽의 정상 여부를 실시간으로 판단할 수 있도록 하는 기계 학습을 이용한 웹 공격 탐지방법 및 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 기계 학습을 이용한 웹 공격 탐지방법은, 기계 학습을 수행하여 적어도 하나 이상의 분류자(classifier)를 생성하는 단계; 네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출하는 단계; 및 상기 생성된 분류자를 사용하여, 상기 웹 트래픽 특징벡터에 대응하는 상기 웹 트래픽의 정상 여부를 결정하는 단계를 포함한다.
여기서, 상기 기계 학습을 수행하기 위한 기계 학습 특징벡터를 추출하는 단계를 더 포함할 수 있다.
여기서, 상기 기계 학습 특징벡터를 추출하는 단계는, 상기 기계 학습을 위해 사용되는 기계 학습 데이터에서 중복 데이터를 제거하는 단계; 상기 중복 데이터가 제거된 상기 기계 학습 데이터에 대한 데이터 셔플(shuffle)을 수행하는 단계; 데이터 셔플된 상기 기계 학습 데이터에 대한 정상 데이터 및 공격 데이터 사이의 비율을 결정하는 단계; 및 상기 정상 데이터 및 상기 공격 데이터 사이의 비율이 결정된 상기 기계 학습 데이터로부터 상기 기계 학습 특징벡터를 추출하는 단계를 포함할 수 있다.
여기서, 상기 기계 학습을 위한 알고리즘은 support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network, 및 deep learning 계열 알고리즘에 속하는 deep neural network, deep boltzman machine, deep belief network, convolutional neural network 중 적어도 하나 이상의 알고리즘을 포함할 수 있다.
여기서, 상기 웹 트래픽 특징벡터를 추출하는 단계는, N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 및 referrer existence 중 적어도 하나 이상을 상기 웹 트래픽 특징벡터로서 추출할 수 있다.
여기서, 상기 웹 트래픽의 정상 여부를 결정하는 단계는, 상기 분류자가 복수개인 경우에, 상기 복수개의 분류자들 중에서 상기 웹 트래픽을 정상 웹 트래픽 또는 공격 웹 트래픽으로 결정한 분류자들의 개수를 비교하여 상기 웹 트래픽의 정상 여부를 결정할 수 있다.
여기서, 상기 웹 트래픽의 정상 여부를 결정하는 단계는, Injection Attacks, Cross Site Scripting, Malicious File Upload, Security Misconfiguration, Sensitive Data Exposure 및 Unvalidated Redirects and Forwards 중 적어도 하나 이상을 웹 트래픽의 공격 유형으로 결정할 수 있다.
여기서, 상기 웹 트래픽의 정상 여부 결정결과에 대응하는 결정 라벨링값(labeling value)을 로그 정보로서 저장하는 단계를 더 포함할 수 있다.
여기서, 상기 기계 학습 특징벡터를 추출하는 단계는, 상기 로그 정보를 이용하여 상기 기계 학습 특징벡터를 추출할 수 있다.
여기서, 사용자의 요청에 따라, 상기 로그 정보에 포함된 상기 결정 라벨링값을 수정하는 단계를 더 포함할 수 있다.
여기서, 상기 분류자를 생성하는 단계는, 상기 결정 라벨링값과 상기 사용자의 요청에 따른 수정 라벨링값의 오차가 감소되도록 상기 분류자를 생성할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 기계 학습을 이용한 웹 공격 탐지장치는, 기계 학습을 수행하여 적어도 하나 이상의 분류자(classifier)를 생성하는 기계 학습부; 네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출하는 웹 트래픽 특징벡터 추출부; 및 상기 생성된 분류자를 사용하여, 상기 웹 트래픽 특징벡터에 대응하는 상기 웹 트래픽의 정상 여부를 결정하는 웹 공격 결정부를 포함한다.
여기서, 상기 기계 학습을 수행하기 위한 기계 학습 특징벡터를 추출하는 기계 학습 특징벡터 추출부를 더 포함하고, 상기 기계 학습 특징벡터 추출부는 상기 추출된 기계 학습 특징벡터를 상기 기계 학습부로 출력할 수 있다.
여기서, 상기 기계 학습 특징벡터 추출부는, 상기 기계 학습에 사용되는 기계 학습 데이터에서 중복 데이터를 제거하는 중복 데이터 제거모듈; 상기 중복 데이터가 제거된 상기 기계 학습 데이터에 대한 데이터 셔플(shuffle)을 수행하는 데이터 셔플모듈; 데이터 셔플된 상기 기계 학습 데이터에 대한 정상 데이터 및 이상 데이터 비율을 결정하는 비율 결정모듈; 및 상기 정상 데이터 및 상기 공격 데이터 비율이 결정된 상기 기계 학습 데이터로부터 상기 기계 학습 특징벡터를 추출하는 특징 벡터 추출모듈을 포함할 수 있다.
여기서, 상기 기계 학습부는, support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network, 및 deep learning 계열 알고리즘에 속하는 deep neural network, deep boltzman machine, deep belief network, convolutional neural network 중 적어도 하나 이상의 기계 학습 알고리즘을 사용할 수 있다.
여기서, 상기 웹 트래픽 특징벡터 추출부는, N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 및 referrer existence 중 적어도 하나 이상을 상기 웹 트래픽 특징벡터로서 추출할 수 있다.
여기서, 상기 웹 공격 결정부는, 상기 분류자가 복수개인 경우에, 상기 복수개의 분류자들 중에서 상기 웹 트래픽을 정상 웹 트래픽 또는 공격 웹 트래픽으로 결정한 분류자들의 개수를 비교하여 상기 웹 트래픽의 정상 여부를 결정할 수 있다.
여기서, 상기 웹 트래픽의 정상 여부 결정결과에 대응하는 결정 라벨링값(labeling value)을 로그 정보로서 저장하는 로그 정보 저장부를 더 포함할 수 있다.
여기서, 상기 기계 학습 특징벡터 추출부는, 상기 로그 정보를 이용하여 상기 기계 학습 특징벡터를 추출할 수 있다.
여기서, 사용자의 요청에 따라, 상기 로그 정보에 포함된 상기 결정 라벨링값을 수정하는 사용자 인터페이스부를 더 포함할 수 있다.
본 발명에 의하면, 인간이 인식하지 못할 정도로 많은 데이터의 분석을 기계가 수행하므로, 알려지지 않은공격에 대한 탐지가 가능하다.
또한, 실시간으로 데이터를 학습함으로써, 최신의 보안 트렌드를 반영할 수 있다.
또한, 기존의 시그네쳐 방식에서 우회가 가능했던 해커의 시도가 본 특허에서는 위험도가 높게 측정되므로 우회가 불가능하다.
또한, 오탐으로 분류된 데이터를 학습에 활용함으로서 오탐율을 현저히 낮출 수 있다.
도 1은 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지방법을 설명하기 위한 일 실시예의 흐름도이다.
도 2는 도 1에 도시된 기계 학습 특징벡터를 추출하는 과정을 설명하기 위한 일 실시예의 흐름도이다.
도 3은 기계 학습 데이터로부터 기계 학습 특징벡터를 추출하는 과정을 예시하는 참조도이다.
도 4는 기계 학습 특징벡터의 일 예를 나타내는 참조도이다.
도 5는 도 4에 도시된 기계 학습 특징벡터의 라벨링값을 예시하는 참조도이다.
도 6은 기계 학습의 수행에 따라 분류자가 생성되는 것을 설명하기 위한 일 예의 참조도이다.
도 7은 기계 학습의 수행을 위한 deep neural network 알고리즘의 구조를 예시한 참조도이다.
도 8은 도 7에 도시된 deep neural network 알고리즘에 따라 최적화된 분류자를 생성하는 과정을 설명하기 위한 참조도이다.
도 9는 복수개의 분류자들을 이용하여 웹 트래픽의 정상 여부를 결정하는 것을 설명하기 위한 참조도이다.
도 10은 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지 프로세스를 설명하기 위한 일 실시예의 참조도이다.
도 11은 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지 프로세스를 설명하기 위한 다른 실시예의 참조도이다.
도 12는 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지장치를 설명하기 위한 일 실시예의 블록도이다.
도 13은 도 12에 도시된 기계 학습 특징벡터 추출부를 설명하기 위한 일 실시예의 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지방법을 설명하기 위한 일 실시예의 흐름도이다.
기계 학습을 수행하기 위한 기계 학습 특징벡터를 추출한다(S100). 여기서, 기계 학습을 위한 알고리즘은 support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network 또는 deep learning (예를 들어, deep neural network, deep boltzman machine, deep belief network, convolutional neural network 등) 등을 포함할 수 있다.
기계 학습 특징벡터는 기계 학습을 위해 미리 구비되어 있는 데이터의 특징 벡터로서 웹 트래픽 공격을 판단하기 위한 특징 벡터를 의미한다.
도 2는 도 1에 도시된 기계 학습 특징벡터를 추출하는 과정을 설명하기 위한 일 실시예의 흐름도이다.
기계 학습을 위해 사용되는 기계 학습 데이터에서 중복 데이터를 제거한다(S200). 웹 트래픽 공격을 판단하기 위해 구비된 기계 학습 데이터는 웹 방화벽의 특성 상 중복된 데이터를 상당히 보유할 수 있다. 이에 따라, 데이터를 정제하기 위해, 기계 학습 데이터로부터 중복되는 데이터를 제거한다.
S200 단계 후에, 상기 중복 데이터가 제거된 상기 기계 학습 데이터에 대한 데이터 셔플(shuffle)을 수행한다(S202). 기계 학습 데이터는 시간적으로 순차적인 특성을 갖을 수 있다. 이러한 기계 학습 데이터에서 시간적인 특성을 배제할 수 있도록 데이터 셔플 즉, 데이터 뒤섞기를 수행한다. 데이터 셔플에 따라, 기계 학습 데이터는 시간에 따라 다양하게 변화되는 웹 트래픽의 공격을 적절하게 판단할 수 있는 데이터가 된다.
S202 단계 후에, 데이터 셔플된 상기 기계 학습 데이터에 대한 정상 데이터 및 공격 데이터 사이의 비율을 결정한다(S204). 기계 학습 데이터의 과적합(overfit)을 방지하기 위해, 정상 데이터 및 공격 데이터로 라벨링되는 데이터들 사이의 비율을 결정한다. 예를 들어, 기계 학습 데이터의 정상 데이터와 공격 데이터 비율이 7:3이 되도록 결정할 수 있다. 여기서, 정상 데이터 및 공격 데이터 비율은 필요에 따라 조정이 가능하다.
S204 단계 후에, 정상 데이터 및 상기 공격 데이터 비율이 결정된 상기 기계 학습 데이터로부터 상기 기계 학습 특징벡터를 추출한다(S206). 여기서, 추출되는 기계 학습 특징 벡터는 N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 또는 referrer existence 등을 포함할 수 있다.
도 3은 기계 학습 데이터로부터 상기 기계 학습 특징벡터를 추출하는 과정을 예시하는 참조도이다. 도 3에 도시된 바와 같이, 기계 학습 데이터(300)가 Duplication remover(310)에서 중복 데이터가 제거되고, Shuffler(320)에서 데이터가 섞이며, Label moderator(330)에서 정상 및 이상 데이터의 비율이 결정된다. 그 후, 특징 벡터 추출모듈(340)에서 라벨링된 기계 학습 특징벡터(350)가 추출된다.
도 4는 기계 학습 특징벡터의 일 예를 나타내는 참조도이고, 도 5는 도 4에 도시된 기계 학습 특징벡터의 라벨링값을 예시하는 참조도이다.
도 4에 도시된 바와 같이, 기계 학습 데이터로부터 웹 트래픽의 정상 여부를 판단하기 위한 특징을 추출하고, 이러한 특징들을 수치화하여 벡터 형태로 표현함으로서 특징벡터를 얻을 수 있다. 또한, 도 5에 도시된 바와 같이, 기계 학습 데이터에 대한 정상 여부의 결정값에 해당하는 라벨링값을 표시하고 있다. 예를 들어, 정상인 데이터인 경우에 0의 라벨링값을 갖으며, 웹 공격에 해당하는 비정상적인 데이터인 경우에 1로 표시한다. 이러한 라벨링값은 후술하는 바와 같이, 분류자에 의해 결정될 수도 있고, 보안 전문가의 입력을 통해 결정될 수도 있다.
도 4 및 도 5에 도시된 기계 학습 데이터의 특징벡터와 라벨링값이 S102 단계의 수행을 위해 사용된다.
상기 S100 단계 후에, 기계 학습 데이터의 특징벡터와 라벨링값을 이용하여 기계 학습을 수행함으로써, 적어도 하나 이상의 분류자(classifier)를 생성한다(S102). 여기서, 기계 학습은 support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network, deep learning (예를 들어, deep neural network, deep boltzman machine, deep belief network, convolutional neural network 등)등의 알고리즘을 이용할 수 있다.
특히, deep learning 계열 알고리즘으로서, deep neural network, deep belief network, deep boltzman machine, convolutional neural network를 이용하여 기계 학습을 수행할 수 있다. 특징벡터와 라벨링값을 이용한 기계 학습에 따라, 웹 트래픽의 정상 여부를 판단하기 위한 분류자를 생성한다.
도 6은 기계 학습의 수행에 따라 분류자가 생성되는 것을 설명하기 위한 일 예의 참조도이다. 도 6에 도시된 바와 같이, deep learning 계열 알고리즘 및 decision tree 알고리즘을 이용한 기계 학습을 수행하여 분류자를 생성한다.
도 7은 기계 학습의 수행을 위한 deep neural network 알고리즘의 구조를 예시한 참조도이고, 도 8은 도 7에 도시된 deep neural network 알고리즘에 따라 최적화된 분류자를 생성하는 과정을 설명하기 위한 참조도이다.
deep neural network 알고리즘을 통한 분류자의 생성은 activator node들을 잇는 edge들의 가중치(weight)를 최적화하여 에러(error)를 최소화하는 것이다. 여기서, 에러는 보안 전문가가 라벨링한 값과 분류자에 의해 결정된 웹 트래픽의 정상 여부에 대한 결정 라벨링값의 차이를 의미한다. activator node들을 잇는 edge들의 가중치를 최적화하기 위해, Backpropogation 알고리즘을 사용할 수 있다. 도 8에 도시된 바와 같이, deep neural network에 사용하는 가중치들에 따른 에러를 벡터 공간(vector space)에 표현할 수 있다. Backpropogation이란 에러를 최소화하는 방향의 gradient를 구해서 이곳으로 가중치 벡터(weight vector)를 이동시키는 알고리즘이다. 이러한 방식을 사용해, 기계 학습 데이터의 특징벡터와 라벨링값에 따른 분류자를 생성한다.
이러한 분류자는 하나를 생성할 수도 있지만, 초기(initial) 가중치를 달리하여 동일한 기계 학습 특징벡터에 대한 복수개의 서로 다른 분류자들을 생성할 수도 있다.
S102 단계 후에, 네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출한다(S104). 웹 트래픽에 대한 특징벡터로서 N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 및 referrer existence 등을 추출할 수 있다.
S104 단계 후에, 상기 생성된 분류자를 사용하여, 웹 트래픽 특징벡터에 대응하는 웹 트래픽의 정상 여부를 결정한다(S106). 예를 들어, 웹 트래픽에 대해 Injection Attacks, Cross Site Scripting, Malicious File Upload, Security Misconfiguration, Sensitive Data Exposure 및 Unvalidated Redirects and Forwards 등의 공격에 해당하는 웹 공격 트래픽으로 결정할 수 있다.
생성된 분류자에 웹 트래픽 특징벡터를 입력함으로써, 분류자의 기계 학습에 따른 웹 트래픽의 정상 여부에 대한 결정 라벨링값이 출력된다. 예를 들어, 해당 웹 트래픽이 정상이라고 판단되면 결정 라벨링값으로서 0을 결정한다. 또한, 해당 웹 트래픽이 공격 웹 트래픽이라고 판단되면 결정 라벨링값으로서 1을 결정한다.
한편, 복수개의 분류자들이 구비되어 있다면, 상기 복수개의 분류자들 중에서 상기 웹 트래픽을 정상 웹 트래픽 또는 공격 웹 트래픽으로 결정한 분류자들의 개수를 비교하여 상기 웹 트래픽의 정상 여부를 결정한다.
도 9는 복수개의 분류자들을 이용하여 웹 트래픽의 정상 여부를 결정하는 것을 설명하기 위한 참조도이다. 예를 들어, 10개의 분류자들이 구비되어 있는 상황에서, 웹 트래픽이 각각의 분류자들에 입력되었다고 가정한다. 이때, 10개의 분류자들 중 7개의 분류자들에서 해당 웹 트래픽이 공격 웹 트래픽으로 결정되고, 3개의 분류자들에서 정상 웹 트래픽으로 결정되었다면, 공격 웹 트래픽으로 결정된 분류자들의 개수가 상대적으로 많으므로, 해당 웹 트래픽을 공격 웹 트래픽으로 최종 결정한다.
S106 단계 후에, 웹 트래픽의 정상 여부 결정 결과에 대응하는 결정 라벨링값(labeling value)을 로그 정보로서 저장한다(S108). 결정 라벨링값은 분류자의 기계 학습에 따른 웹 트래픽의 정상 여부에 대한 결정값으로, 예를 들어, 해당 웹 트래픽이 정상이라면 결정 라벨링값은 0일 수 있고, 해당 웹 트래픽이 공격 웹 트래픽이라면 결정 라벨링값은 1일 수 있다. 이러한 결정 라벨링값은 이후의 기계 학습 특징벡터를 추출하는데 사용하기 위해 로그 정보로서 저장된다. 따라서, 전술한 S100 단계에서, 웹 트래픽의 정상 여부의 결정 결과에 대응하는 로그 정보를 이용하여 기계 학습 특징벡터를 추출할 수 있다.
S108 단계 후에, 사용자의 명령에 따라, 상기 로그 정보에 포함된 상기 결정 라벨링값을 수정한다(S110). 사용자(예를 들어, 보안 전문가)는 분류자의 결정 결과가 올바르지 않다고 판단되면, 이러한 결정 라벨링값을 수정할 것을 요청할 수 있다. 이에 따라, 사용자의 수정 요청에 대응하여 로그 정보에 포함된 결정 라벨링값이 수정된다. 예를 들어, 분류자에 의해 해당 웹 트래픽이 정상이라고 판단되어 결정 라벨링값이 0으로 결정되었다고 하더라도, 사용자는 해당 웹 트래픽을 공격 웹 트래픽으로 판단할 수 있다. 따라서, 사용자는 해당 웹 트래픽의 결정 라벨링값을 1로 수정하도록 요청할 수 있으며, 이에 따라, 웹 트래픽의 결정 라벨링값이 1로 수정될 수 있다.
상기 S108 단계 및 S110 단계에 따른 상기 웹 트래픽의 정상 여부 결정에 따른 결정 라벨링값과 사용자의 요청에 따른 수정 라벨링값의 오차가 감소되도록 상기 분류자가 갱신(업데이트)될 수 있다. 이를 통해, 분류자의 분류 성능을 강화할 수 있다. 이에 대한 설명은 전술한 도 7 및 도 8에서 설명한 바와 같다.
도 10은 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지 프로세스를 설명하기 위한 일 실시예의 참조도이다.
기계학습이 수행된 deep neural network 즉, 분류자는 수학적 함수(mathematical function)이다. 새로운 웹 트래픽(HTTP Request)이 인터넷을 통해 수신되면, 특징 벡터 추출부에서 웹 트래픽의 특징 벡터를 추출한다. 추출한 특징 벡터가 Deep Neural Network에 입력되면, 함수 연산을 통해 웹 트래픽의 정상 여부에 대한 결정 라벨링값이 출력된다. 이러한 결정 라벨링값에 의해, 수신된 웹 트래픽에 대한 정상 웹 트래픽 또는 공격 웹 트래픽 여부가 판별될 수 있다.
도 11은 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지 프로세스를 설명하기 위한 다른 실시예의 참조도이다. 도 11은 사용자(예를 들어, 보안 전문가) 별로 특화하여 웹 트래픽의 정상 여부를 다르게 판단할 수 있도록 하는 실시예이다. 사용자별로 특화한다는 것은 사용자별로 기계학습에 사용하는 데이터가 달라진다는 것을 의미한다. 각 사용자의 웹 방화벽에는 서로 다른 웹 트래픽이 수신된다. 또한 동일한 웹 트래픽이라 하더라도, 각 사용자에 따라 공격으로 간주할 수도 아닐 수도 있다. 즉, 동일한 특징 벡터라 하더라도, 결정 라벨링값을 수정하면, 수정된 결정 라벨링값에 의해 기계학습을 수행할 수 있다. 따라서 사용자가 로그 정보에 포함된 결정 라벨링값을 자신의 판단에 따라 수정 요청하고, 사용자에 의해 수정 요청된 라벨링값이 실시간으로 분류자에 반영된다. 따라사, 이 후의 웹 트래픽에 대한 정상 여부 판단은 사용자에게 특화된 결과가 도출될 수 있다.
도 12는 본 발명에 따른 기계 학습을 이용한 웹 공격 탐지장치를 설명하기 위한 일 실시예의 블록도로서, 기계 학습 특징벡터 추출부(1200), 기계 학습부(1210), 웹 트래픽 특징벡터 추출부(1220), 웹 공격 결정부(1230), 로그정보 저장부(1240), 사용자 인터페이스부(1250)를 포함한다.
기계 학습 특징벡터 추출부(1200)는 기계 학습을 수행하기 위한 기계 학습 특징벡터를 추출한다. 기계 학습 특징벡터는 기계 학습을 위해 미리 구비되어 있는 데이터의 특징 벡터로서 웹 트래픽 공격을 판단하기 위한 특징 벡터를 의미한다. 기계 학습 특징벡터 추출부(1200)는 추출된 기계 학습 특징벡터를 기계 학습부(1210)로 출력한다.
도 13은 도 12에 도시된 기계 학습 특징벡터 추출부(1200)를 설명하기 위한 일 실시예의 블록도로서, 중복 데이터 제거모듈(1300), 데이터 셔플모듈(1310), 비율 결정모듈(1320) 및 특징벡터 추출모듈(1330)을 포함한다.
중복 데이터 제거모듈(1300)은 기계 학습에 사용되는 기계 학습 데이터에서 중복 데이터를 제거한다. 웹 트래픽 공격을 판단하기 위한 기계 학습 데이터는 웹 방화벽의 특성 상 중복된 데이터를 갖을 수 있다. 따라서, 중복 데이터 제거모듈(1300)은 기계 학습 데이터를 정제하기 위해, 기계 학습 데이터로부터 중복되는 데이터를 제거한다.
데이터 셔플모듈(1310)은 중복 데이터가 제거된 기계 학습 데이터에 대한 데이터 셔플(shuffle)을 수행한다. 기계 학습 데이터는 시간적으로 순차적인 특성을 갖을 수 있다. 데이터 셔플모듈(1310)은 기계 학습 데이터에서 시간적인 특성을 배제할 수 있도록 데이터 셔플 즉, 데이터 뒤섞기를 수행한다.
비율 결정모듈(1320)은 데이터 셔플된 기계 학습 데이터에 대한 정상 데이터 및 이상 데이터 사이의 비율을 결정한다. 기계 학습 데이터의 과적합(overfit)을 방지하기 위해, 비율 결정모듈(1320)은 정상 데이터 및 공격 데이터로 라벨링되는 데이터들 사이의 비율을 결정한다. 여기서, 비율 결정모듈(1320)은 정상 데이터 및 공격 데이터 비율을 필요에 따라 조정할 수 있다.
특징벡터 추출모듈(1330)은 정상 데이터 및 공격 데이터 비율이 결정된 기계 학습 데이터로부터 기계 학습 특징벡터를 추출한다. 여기서, 추출되는 기계 학습 특징 벡터는 N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 또는 referrer existence 등을 포함할 수 있다.
기계 학습부(1210)는 기계 학습을 수행하여 적어도 하나 이상의 분류자(classifier)를 생성하고, 생성된 하나 이상의 분류자를 웹 공격 결정부(1230)로 출력한다. 기계 학습부(1210)는 기계 학습 특징벡터 추출부(1200)에서 제공된 기계 학습 특징벡터와 이러한 특징 벡터의 라벨링값의 기계 학습을 이용하여 웹 트래픽의 정상 여부를 판단하기 위한 분류자를 생성한다.
여기서, 기계 학습부(1210)는 support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network, deep learning (예를 들어, deep neural network, deep boltzman machine, deep belief network, convolutional neural network 등) 등의 기계 학습 알고리즘을 사용하여 하나 이상의 분류자들을 생성할 수 있다.
특히, 기계 학습부(1210)는 deep learning 계열 알고리즘으로서, deep neural network, deep belief network, deep boltzman machine, convolutional neural network를 이용하여 기계 학습을 수행할 수 있다. 기계 학습부(1210)는 deep neural network 알고리즘을 이용해 activator node들을 잇는 edge들의 가중치(weight)를 최적화하여 에러(error)가 최소화된 분류자를 생성한다. 기계 학습부(1210)는 activator node들을 잇는 edge들의 가중치를 최적화하기 위해, Backpropogation 알고리즘을 사용할 수 있다. deep neural network에 사용하는 가중치들에 따른 에러를 벡터 공간(vector space)에 표현할 수 있으며, 기계 학습부(1210)는 에러를 최소화하는 방향의 gradient를 구해서 이곳으로 가중치 벡터(weight vector)를 이동시키는 알고리즘을 사용해 분류자를 생성한다.
기계 학습부(1210)는 분류자를 하나 생성할 수도 있지만, 초기(initial) 가중치를 달리하여 동일한 기계 학습 특징벡터에 대한 복수개의 서로 다른 분류자들을 생성할 수도 있다.
웹 트래픽 특징벡터 추출부(1220)는 네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출하고, 추출된 웹 트래픽 특징벡터를 웹 공격 결정부(1230)로 출력한다. 웹 트래픽 특징벡터 추출부(1220)는 N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 및 referrer existence 등을 웹 트래픽 특징벡터로서 추출할 수 있다.
웹 공격 결정부(1230)는 기계 학습부(1210)에서 생성된 분류자를 사용하여, 상기 웹 트래픽 특징벡터에 대응하는 상기 웹 트래픽의 정상 여부를 결정한다. 예를 들어, 웹 공격 결정부(1230)는 웹 트래픽을 Injection Attacks, Cross Site Scripting, Malicious File Upload, Security Misconfiguration, Sensitive Data Exposure 및 Unvalidated Redirects and Forwards 등에 해당하는 웹 공격 트래픽으로 결정할 수 있다.
웹 공격 결정부(1230)는 분류자에 웹 트래픽 특징벡터를 입력함으로써, 분류자의 기계 학습에 따른 웹 트래픽의 정상 여부에 대한 결정 라벨링값을 결정한다. 예를 들어, 해당 웹 트래픽이 정상이라고 판단되면 웹 공격 결정부(1230)는 결정 라벨링값으로서 0을 결정한다. 또한, 해당 웹 트래픽이 공격 웹 트래픽이라고 판단되면 웹 공격 결정부(1230)는 결정 라벨링값으로서 1을 결정한다.
웹 공격 결정부(1230)는 분류자가 복수개인 경우에, 복수개의 분류자들 중에서 웹 트래픽을 정상 웹 트래픽 또는 공격 웹 트래픽으로 결정한 분류자들의 개수를 비교하여 수신된 웹 트래픽의 정상 여부를 개수가 많은 쪽으로 결정할 수 있다.
전술한 도 9에 도시된 바와 같이, 웹 공격 결정부(1230)의 10개의 분류자들 중 7개의 분류자들에서 해당 웹 트래픽이 공격 웹 트래픽으로 결정하고, 3개의 분류자들에서 정상 웹 트래픽으로 결정하였다면, 웹 공격 결정부(1230)는 공격 웹 트래픽으로 결정된 분류자들의 개수가 상대적으로 많으므로, 해당 웹 트래픽을 공격 웹 트래픽으로 최종 결정한다.
로그정보 저장부(1240)는 상기 웹 트래픽의 정상 여부 결정결과에 대응하는 결정 라벨링값(labeling value)을 로그 정보로서 저장한다. 결정 라벨링값은 기계 학습한 분류자를 이용하여 웹 트래픽의 정상 여부를 판단한 결정값이다. 로그정보 저장부(1240)는 이후의 기계 학습 특징벡터를 추출하는데 사용하기 위해 결정 라벨링값을 로그 정보로서 저장한다. 이를 위해, 로그정보 저장부(1240)는 데이터를 저장하기 위한 저장소를 포함하고 있다. 그 후, 기계 학습 특징벡터 추출부(1200)는 로그정보 저장부(1240)에 저장된 로그 정보를 이용하여 기계 학습 특징벡터를 추출하고, 다시 기계 학습부(1210)를 거침으로써 업데이트된 분류자를 생성할 수 있다.
사용자 인터페이스부(1250)는 사용자의 요청에 따라, 로그정보 저장부(1240)의 로그 정보에 포함된 결정 라벨링값을 수정할 수 있다. 사용자(예를 들어, 보안 전문가)는 분류자의 결정 결과가 올바르지 않다고 판단되면, 이러한 결정 라벨링값을 수정할 것을 사용자 인터페이스부(1250)를 통해 요청할 수 있다. 이에 따라, 사용자 인터페이스부(1250)는 사용자의 수정 요청에 대응하여 로그 정보에 포함된 결정 라벨링값을 수정한다. 예를 들어, 분류자에 의해 해당 웹 트래픽이 정상이라고 판단되어 결정 라벨링값이 0으로 결정되었다고 하더라도, 사용자는 해당 웹 트래픽을 공격 웹 트래픽으로 판단할 수 있다. 따라서, 사용자는 해당 웹 트래픽의 결정 라벨링값을 1로 수정하도록 요청할 수 있다. 이에 따라, 사용자 인터페이스부(1250)는 사용자의 요청에 따라, 웹 트래픽의 결정 라벨링값을 1로 수정할 수 있다.
한편, 기계 학습부(1210)는 웹 트래픽의 정상 여부 결정에 따른 결정 라벨링값과 사용자의 요청에 따른 수정 라벨링값의 오차가 감소되도록 상기 분류자를 갱신(업데이트)할 수 있다. 예를 들어, 기계 학습부(1210)는 deep neural network 알고리즘의 activator node들을 잇는 edge들의 가중치가 최적화되도록 분류자를 갱신(업데이트)할 수 있다. 이때, 기계 학습부(1210)는 edge들의 가중치가 최적화되도록 분류자를 갱신(업데이트)하기 위해, 분류자가 기존에 판단했던 결정값과 사용자의 요청에 따른 수정 라벨링값의 오차가 최소화되도록 하는 Backpropogation 알고리즘을 사용할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1200: 기계 학습 특징벡터 추출부
1210: 기계 학습부
1220: 웹 트래픽 특징벡터 추출부
1230: 웹 공격 결정부
1240: 로그정보 저장부
1250: 사용자 인터페이스부
1300: 중복 데이터 제거모듈
1310: 데이터 셔플모듈
1320: 비율 결정모듈
1330: 특징벡터 추출모듈

Claims (20)

  1. 기계 학습을 이용한 웹 공격 탐지방법에 있어서,
    기계 학습을 수행하여 적어도 하나 이상의 분류자(classifier)를 생성하는 단계;
    네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출하는 단계; 및
    상기 생성된 분류자를 사용하여, 상기 웹 트래픽 특징벡터에 대응하는 상기 웹 트래픽의 정상 여부를 결정하는 단계를 포함하는 기계 학습을 이용한 웹 공격 탐지방법.
  2. 청구항 1에 있어서,
    상기 기계 학습을 수행하기 위한 기계 학습 특징벡터를 추출하는 단계를 더 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  3. 청구항 2에 있어서, 상기 기계 학습 특징벡터를 추출하는 단계는
    상기 기계 학습을 위해 사용되는 기계 학습 데이터에서 중복 데이터를 제거하는 단계;
    상기 중복 데이터가 제거된 상기 기계 학습 데이터에 대한 데이터 셔플(shuffle)을 수행하는 단계;
    데이터 셔플된 상기 기계 학습 데이터에 대한 정상 데이터 및 공격 데이터 사이의 비율을 결정하는 단계; 및
    상기 정상 데이터 및 상기 공격 데이터 사이의 비율이 결정된 상기 기계 학습 데이터로부터 상기 기계 학습 특징벡터를 추출하는 단계를 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  4. 청구항 1에 있어서,
    상기 기계 학습을 위한 알고리즘은 support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network 및 deep learning 계열 알고리즘에 속하는 deep neural network, deep boltzman machine, deep belief network, convolutional neural network 중 적어도 하나 이상의 알고리즘을 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  5. 청구항 1에 있어서, 상기 웹 트래픽 특징벡터를 추출하는 단계는
    N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 및 referrer existence 중 적어도 하나 이상을 상기 웹 트래픽 특징벡터로서 추출하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  6. 청구항 1에 있어서, 상기 웹 트래픽의 정상 여부를 결정하는 단계는
    상기 분류자가 복수개인 경우에, 상기 복수개의 분류자들 중에서 상기 웹 트래픽을 정상 웹 트래픽 또는 공격 웹 트래픽으로 결정한 분류자들의 개수를 비교하여 상기 웹 트래픽의 정상 여부를 결정하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  7. 청구항 1에 있어서, 상기 웹 트래픽의 정상 여부를 결정하는 단계는
    Injection Attacks, Cross Site Scripting, Malicious File Upload, Security Misconfiguration, Sensitive Data Exposure 및 Unvalidated Redirects and Forwards 중 적어도 하나 이상을 웹 트래픽의 공격 유형으로 결정하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  8. 청구항 2에 있어서,
    상기 웹 트래픽의 정상 여부 결정결과에 대응하는 결정 라벨링값(labeling value)을 로그 정보로서 저장하는 단계를 더 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  9. 청구항 8에 있어서, 상기 기계 학습 특징벡터를 추출하는 단계는
    상기 로그 정보를 이용하여 상기 기계 학습 특징벡터를 추출하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  10. 청구항 8에 있어서,
    사용자의 요청에 따라, 상기 로그 정보에 포함된 상기 결정 라벨링값을 수정하는 단계를 더 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  11. 청구항 10에 있어서, 상기 분류자를 생성하는 단계는
    상기 결정 라벨링값과 상기 사용자의 요청에 따른 수정 라벨링값의 오차가 감소되도록 상기 분류자를 실시간으로 갱신하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지방법.
  12. 기계 학습을 이용한 웹 공격 탐지장치에 있어서,
    기계 학습을 수행하여 적어도 하나 이상의 분류자(classifier)를 생성하는 기계 학습부;
    네트워크를 통해 수신되는 웹 트래픽에 대한 웹 트래픽 특징벡터를 추출하는 웹 트래픽 특징벡터 추출부; 및
    상기 생성된 분류자를 사용하여, 상기 웹 트래픽 특징벡터에 대응하는 상기 웹 트래픽의 정상 여부를 결정하는 웹 공격 결정부를 포함하는 기계 학습을 이용한 웹 공격 탐지장치.
  13. 청구항 12에 있어서,
    상기 기계 학습을 수행하기 위한 기계 학습 특징벡터를 추출하는 기계 학습 특징벡터 추출부를 더 포함하고,
    상기 기계 학습 특징벡터 추출부는 상기 추출된 기계 학습 특징벡터를 상기 기계 학습부로 출력하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  14. 청구항 13에 있어서, 상기 기계 학습 특징벡터 추출부는
    상기 기계 학습에 사용되는 기계 학습 데이터에서 중복 데이터를 제거하는 중복 데이터 제거모듈;
    상기 중복 데이터가 제거된 상기 기계 학습 데이터에 대한 데이터 셔플(shuffle)을 수행하는 데이터 셔플모듈;
    데이터 셔플된 상기 기계 학습 데이터에 대한 정상 데이터 및 이상 데이터 사이의 비율을 결정하는 비율 결정모듈; 및
    상기 정상 데이터 및 상기 공격 데이터 사이의 비율이 결정된 상기 기계 학습 데이터로부터 상기 기계 학습 특징벡터를 추출하는 특징 벡터 추출모듈을 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  15. 청구항 12에 있어서, 상기 기계 학습부는
    support vector machine, decision tree, Random Forest, boosted decision tree, naive bayesian, logistic regression, artificial neural network, 및 deep learning 계열 알고리즘에 속하는 deep neural network, deep boltzman machine, deep belief network, convolutional neural network 중 적어도 하나 이상의 기계 학습 알고리즘을 사용하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  16. 청구항 12에 있어서, 상기 웹 트래픽 특징벡터 추출부는
    N-gram, URI length, HTTP Method, HTTP body length, NULL character count, Special character count, custom header existence 및 referrer existence 중 적어도 하나 이상을 상기 웹 트래픽 특징벡터로서 추출하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  17. 청구항 12에 있어서, 상기 웹 공격 결정부는
    상기 분류자가 복수개인 경우에, 상기 복수개의 분류자들 중에서 상기 웹 트래픽을 정상 웹 트래픽 또는 공격 웹 트래픽으로 결정한 분류자들의 개수를 비교하여 상기 웹 트래픽의 정상 여부를 결정하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  18. 청구항 12에 있어서,
    상기 웹 트래픽의 정상 여부 결정결과에 대응하는 결정 라벨링값(labeling value)을 로그 정보로서 저장하는 로그 정보 저장부를 더 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  19. 청구항 18에 있어서, 상기 기계 학습 특징벡터 추출부는
    상기 로그 정보를 이용하여 상기 기계 학습 특징벡터를 추출하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
  20. 청구항 18에 있어서,
    사용자의 요청에 따라, 상기 로그 정보에 포함된 상기 결정 라벨링값을 수정하는 사용자 인터페이스부를 더 포함하는 것을 특징으로 하는 기계 학습을 이용한 웹 공격 탐지장치.
KR1020150152133A 2015-10-30 2015-10-30 기계 학습을 이용한 웹 공격 탐지방법 및 장치 KR20160119678A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150152133A KR20160119678A (ko) 2015-10-30 2015-10-30 기계 학습을 이용한 웹 공격 탐지방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150152133A KR20160119678A (ko) 2015-10-30 2015-10-30 기계 학습을 이용한 웹 공격 탐지방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150048483 Division 2015-04-06

Publications (1)

Publication Number Publication Date
KR20160119678A true KR20160119678A (ko) 2016-10-14

Family

ID=57157239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150152133A KR20160119678A (ko) 2015-10-30 2015-10-30 기계 학습을 이용한 웹 공격 탐지방법 및 장치

Country Status (1)

Country Link
KR (1) KR20160119678A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062318A (ko) * 2016-11-30 2018-06-08 숭실대학교산학협력단 SVM-SOM 결합 기반 DDoS 탐지 시스템 및 방법
WO2018149530A1 (en) * 2017-02-17 2018-08-23 NEC Laboratories Europe GmbH Method for operating a network
WO2019004671A1 (ko) * 2017-06-30 2019-01-03 주식회사 씨티아이랩 인공지능 기반 악성코드 검출 시스템 및 방법
KR20190070583A (ko) * 2017-12-13 2019-06-21 건국대학교 산학협력단 사이버 위협 정보에 대한 통합 표현 규격 데이터 생성 방법 및 장치
US10445738B1 (en) 2018-11-13 2019-10-15 Capital One Services, Llc Detecting a transaction volume anomaly
KR20190123369A (ko) 2018-04-11 2019-11-01 고려대학교 산학협력단 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치
KR102046789B1 (ko) * 2019-04-05 2019-11-20 호서대학교 산학협력단 웹 어플리케이션에 대한 딥러닝 기반의 침입탐지 방법, 시스템 및 컴퓨터 프로그램
KR102168780B1 (ko) * 2019-12-31 2020-10-22 충남대학교 산학협력단 기계학습을 이용한 ap 식별 방법 및 시스템

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062318A (ko) * 2016-11-30 2018-06-08 숭실대학교산학협력단 SVM-SOM 결합 기반 DDoS 탐지 시스템 및 방법
WO2018149530A1 (en) * 2017-02-17 2018-08-23 NEC Laboratories Europe GmbH Method for operating a network
US11552985B2 (en) 2017-02-17 2023-01-10 Nec Corporation Method for predicting events using a joint representation of different feature types
WO2019004671A1 (ko) * 2017-06-30 2019-01-03 주식회사 씨티아이랩 인공지능 기반 악성코드 검출 시스템 및 방법
US11200315B2 (en) 2017-06-30 2021-12-14 Ctilab Co., Ltd. Artificial intelligence based malware detection system and method
KR20190070583A (ko) * 2017-12-13 2019-06-21 건국대학교 산학협력단 사이버 위협 정보에 대한 통합 표현 규격 데이터 생성 방법 및 장치
KR20190123369A (ko) 2018-04-11 2019-11-01 고려대학교 산학협력단 머신러닝 기반 악성코드 탐지를 위한 특성선정 방법 및 이를 수행하기 위한 기록매체 및 장치
US10445738B1 (en) 2018-11-13 2019-10-15 Capital One Services, Llc Detecting a transaction volume anomaly
US11195183B2 (en) 2018-11-13 2021-12-07 Capital One Services, Llc Detecting a transaction volume anomaly
KR102046789B1 (ko) * 2019-04-05 2019-11-20 호서대학교 산학협력단 웹 어플리케이션에 대한 딥러닝 기반의 침입탐지 방법, 시스템 및 컴퓨터 프로그램
US10778705B1 (en) 2019-04-05 2020-09-15 Hoseo University Academic Cooperation Foundation Deep-learning-based intrusion detection method, system and computer program for web applications
KR102168780B1 (ko) * 2019-12-31 2020-10-22 충남대학교 산학협력단 기계학습을 이용한 ap 식별 방법 및 시스템

Similar Documents

Publication Publication Date Title
KR20160119678A (ko) 기계 학습을 이용한 웹 공격 탐지방법 및 장치
US11822657B2 (en) Machine learning-based malware detection system and method
US10243982B2 (en) Log analyzing device, attack detecting device, attack detection method, and program
CN107918733B (zh) 检测网页的恶意元素的系统和方法
US11108809B2 (en) System and method for analyzing binary code for malware classification using artificial neural network techniques
CN107154950B (zh) 一种日志流异常检测的方法及系统
CN108156131B (zh) Webshell检测方法、电子设备和计算机存储介质
US9680848B2 (en) Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and API flow-based dynamic analysis
US8401982B1 (en) Using sequencing and timing information of behavior events in machine learning to detect malware
CN111614599B (zh) 基于人工智能的webshell检测方法和装置
CN111600919B (zh) 智能网络应用防护系统模型的构建方法和装置
CN111611586A (zh) 基于图卷积网络的软件漏洞检测方法及装置
JP2016091549A (ja) マルウェアイベントとバックグラウンドイベントとを分離するためのシステム、デバイス、および方法
JPWO2019013266A1 (ja) 判定装置、判定方法、および、判定プログラム
Patil et al. Detection of malicious javascript code in web pages
KR102359597B1 (ko) 패킷 데이터에 대한 사이버 공격을 방어하기 위한 공격 방어 방법 및 이를 수행하는 장치들
CN114692156A (zh) 内存片段恶意代码入侵检测方法、系统、存储介质及设备
WO2020125477A1 (zh) 一种提升爬虫识别召回率的方法、装置、介质及设备
WO2020196549A1 (ja) 誤り判定装置、誤り判定方法、及びプログラム
Khan et al. A dynamic method of detecting malicious scripts using classifiers
KR101322037B1 (ko) N-그램 모델에 기반한 인덱스를 생성하여 효율적인 고속 매칭 메커니즘을 제공하는 침입 탐지 시스템의 동작 방법
US11321453B2 (en) Method and system for detecting and classifying malware based on families
KR102018443B1 (ko) 네트워크 침입 탐지 시스템 및 방법, 이를 수행하기 위한 기록매체
Hai et al. An efficient classification of malware behavior using deep neural network
CN112580027A (zh) 恶意样本的确定方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
A107 Divisional application of patent