KR101880907B1 - 비정상 세션 감지 방법 - Google Patents

비정상 세션 감지 방법 Download PDF

Info

Publication number
KR101880907B1
KR101880907B1 KR1020170122363A KR20170122363A KR101880907B1 KR 101880907 B1 KR101880907 B1 KR 101880907B1 KR 1020170122363 A KR1020170122363 A KR 1020170122363A KR 20170122363 A KR20170122363 A KR 20170122363A KR 101880907 B1 KR101880907 B1 KR 101880907B1
Authority
KR
South Korea
Prior art keywords
neural network
lstm
session
vector
processor
Prior art date
Application number
KR1020170122363A
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 KR1020170122363A priority Critical patent/KR101880907B1/ko
Priority to US15/908,594 priority patent/US20190095301A1/en
Priority to JP2018041354A priority patent/JP6608981B2/ja
Application granted granted Critical
Publication of KR101880907B1 publication Critical patent/KR101880907B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2263Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
    • 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
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Image Analysis (AREA)

Abstract

서버가 클라이언트로부터 수신하는 요청 메시지와, 상기 서버가 생성하는 응답 메시지를 포함하는 세션의 비정상 여부를 감지하는 방법이 개시된다. 개시된 방법은, 상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계, 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 벡터로 변환하는 단계 및 상기 메시지들로부터 획득된 표현 벡터들을 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하고, LSTM 신경망을 이용하여, 상기 제1 표현 벡터 시퀀스를 분석함으로써, 상기 세션의 비정상 여부를 판단하는 단계를 포함한다.

Description

비정상 세션 감지 방법{METHOD FOR DETECTING ABNORMAL SESSION}
본 발명은 서버의 비정상 세션을 감지하는 방법에 관한 것으로, 컨볼루셔널 신경망 및 LSTM 신경망을 이용하여 비정상 세션을 감지하는 방법에 관한 것이다.
일반적으로, 서버가 클라이언트에게 서비스를 제공하는 동안 클라이언트는 서버에게 요청 메시지(ex. http reqeust)를 전송하고, 서버는 요청에 응답하여 응답 메시지(ex. http response)를 생성한다. 서비스 제공 과정에서 발생한 요청 메시지들과 응답 메시지들을 시간 순으로 정렬한 것을 세션(ex. http session)이라 할 수 있다.
만약, 서버의 동작에 오류가 발생하거나, 공격자가 다른 사용자의 로그인 정보를 탈취하여 접속을 하게 되면 요청 메시지와 응답 메시지들의 배열 특징이 평소와 달라지면서 정상적인 세션과 다른 특징을 가지는 비정상 세션이 발생한다. 서비스 오류를 빠르게 복원하기 위해서는 세션을 모니터링하고 비정상적인 세션을 감지할 수 있는 기술이 요구된다. 한편 자동적으로 데이터의 특징을 추출하고 카테고리화 하는 기술로 머신 러닝이 각광 받고 있다.
머신 러닝(machine learning; 기계 학습)이란 인공지능(Artificial Intelligence: AI) 의 한 종류로서, 데이터를 기반으로 컴퓨터가 스스로 학습한 내용을 바탕으로 회귀, 분류, 군집화 등의 예측 작업을 수행하는 것을 말한다.
딥 러닝(deep learning)은 사람의 사고방식을 컴퓨터에게 가르치는 기계 학습의 한 분야이며, 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계 학습(machine learning) 알고리즘의 집합으로 정의될 수 있다.
딥 러닝 구조는 인공신경망(ANN, artificial neural networks)에 기반하여 설계된 개념이다. 인공신경망은 가상의 뉴런을 수학적으로 모델링한 후 시뮬레이션하여 인간의 뇌와 같은 학습 능력을 갖게 하고자 하는 알고리즘으로서, 주로 패턴인식에 많이 사용된다. 딥 러닝에서 이용하는 인공신경망 모델은 선형 맞춤 (linear fitting)과 비선형 변환 (nonlinear transformation or activation)을 반복해 쌓아 올린 구조를 가진다. 딥 러닝에서 사용하는 신경망 모델은 심층 신경망(Deep Neural Network, DNN), 컨볼루셔널 신경망(Convolutional Neural Network, CNN), 순환 신경망(Recurrent Neural Network, RNN), 제한 볼츠만 머신 (Restricted Boltzmann Machine, RBM), 심층 신뢰 신경망 (Deep Belief Network, DBN), 심층 Q-네트워크(Deep Q-Networks) 등을 들 수 있다.
본 발명은, 인공 신경망을 이용하여 비정상적인 세션을 감지하는 방법을 제공하는데 목적이 있다.
일 측면에 있어서,
서버가 클라이언트로부터 수신하는 요청 메시지와, 상기 서버가 생성하는 응답 메시지를 포함하는 세션의 비정상 여부를 감지하는 방법에 있어서, 상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계; 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 (representation) 표현 벡터로 변환하는 단계; 및 상기 메시지들로부터 획득된 표현 벡터들을, 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하고, LSTM 신경망을 이용하여, 상기 제1 표현 벡터 시퀀스를 분석함으로써, 상기 세션의 비정상 여부를 판단하는 단계;를 포함하는 비정상 세션 감지 방법이 개시된다.
상기 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계는,
상기 메시지들 각각에 포함된 문자를 원 핫 벡터(one-hot vector)로 변환함으로써, 상기 메시지들 각각을 행렬 형태의 데이터로 변환할 수 있다.
상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함할 수 있다.
상기 LSTM 인코더는 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 미리 정해진 크기의 숨김 벡터를 출력하고,
상기 LSTM 디코더는 상기 숨김 벡터를 입력 받아 상기 제1 표현 벡터 시퀀스에 대응하는 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 세션이 정상인지 비정상인지를 판단하는 단계는,
상기 제1 표현 벡터 시퀀스와 상기 제2 표현 벡터 시퀀스 사이의 차이에 기초하여 상기 세션이 정상인지 비정상인지를 판단할 수 있다.
상기 LSTM 디코더는 상기 제1 표현 벡터 시퀀스에 포함되는 표현 벡터들 각각에 대응하는 추정 벡터들을 역순으로 출력함으로써, 상기 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 LSTM 신경망은 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 출력할 수 있다.
상기 세션의 비정상 여부를 판단하는 단계는,
상기 LSTM 신경망이 출력한 추정 벡터와, 상기 LSTM 신경망이 입력 받는 표현 벡터 사이의 차이로부터 상기 세션의 비정상 여부를 판단할 수 있다.
상기 비정상 세션 감지 방법은, 상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝(training) 하는 단계를 더 포함할 수 있다.
상기 비정상 세션 감지 방법은, 훈련 데이터를 상기 컨볼루셔널 신경망에 입력하고, 상기 컨볼루셔널 신경망의 출력을 상기 컨볼루셔널 신경망에 대칭적인 구조를 가지는 대칭 신경망에 입력시키고, 상기 대칭 신경망의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 컨볼루셔널 신경망에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 컨볼루셔널 신경망을 트레이닝 할 수 있다.
상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함하며, 상기 비정상 세션 감지 방법은, 훈련 데이터를 상기 LSTM 인코더에 입력하고, 상기 LSTM 인코더에서 출력되는 숨김 벡터 및 상기 훈련 데이터를 상기 LSTM 디코더에 입력하고, 상기 LSTM 디코더의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 LSTM 인코더 및 상기 LSTM 디코더에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 LSTM 신경망을 트레이닝 할 수 있다.
다른 측면에 있어서,
상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계; 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 벡터로 변환하는 단계; 및 상기 메시지들로부터 획득된 표현 벡터들을, 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하고, GRU 신경망을 이용하여, 상기 제1 표현 벡터 시퀀스를 분석함으로써, 상기 세션의 비정상 여부를 판단하는 단계;를 포함하는 비정상 세션 감지 방법이 개시된다.
상기 GRU 신경망은 복수의 GRU 레이어들을 포함하는 GRU 인코더 및 상기 GRU 인코더와 대칭적인 구조를 가지는 GRU 디코더를 포함할 수 있다.
상기 GRU 인코더는 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 미리 정해진 크기의 숨김 (hidden) 벡터를 출력하고,
상기 GRU 디코더는 상기 숨김 벡터를 입력 받아 상기 제1 표현 벡터 시퀀스에 대응하는 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 세션이 정상인지 비정상인지를 판단하는 단계는,
상기 제1 표현 벡터 시퀀스와 상기 제2 표현 벡터 시퀀스 사이의 차이에 기초하여 상기 세션이 정상인지 비정상인지를 판단할 수 있다.
상기 GRU 디코더는 상기 제1 표현 벡터 시퀀스에 포함되는 표현 벡터들 각각에 대응하는 추정 벡터들을 역순으로 출력함으로써, 상기 제2 표현 벡터 시퀀스를 출력할 수 있다.
상기 GRU 신경망은 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 예측 값을 출력할 수 있다.
상기 세션의 비정상 여부를 판단하는 단계는,
상기 GRU 신경망이 출력한 예측 값과, 상기 GRU 신경망이 입력 받는 표현 벡터 사이의 차이로부터 상기 세션의 비정상 여부를 판단할 수 있다.
개시된 실시예들에 따르면, 컨볼루셔널 신경망을 이용하여 세션에 포함된 메시지들을 낮은 차원의 표현 벡터들로 변환할 수 있다. 또한, LSTM 또는 GRU 신경망을 이용하여, 세션에 포함된 표현 벡터 시퀀스를 분석하고 이로부터 세션의 비정상 여부를 판단할 수 있다. 실시예들에 따르면, 수동적인 작업의 개입 없이 인공 신경망을 이용하여 세션의 비정상 여부를 용이하게 판단할 수 있다.
도 1은 예시적인 실시예에 따른 장치를 나타낸 블록도이다.
도 2는 본 발명의 예시적인 실시예에 따른 장치에서 수행되는 비정상 세션 감지 방법을 나타낸 순서도이다.
도 3은 세션의 일 예를 나타낸 개념도이다.
도 4는 프로세서가 메시지의 문자열을 행렬 형태의 데이터로 변환하는 것을 예시적으로 나타낸 개념도이다.
도 5는 컨볼루셔널 신경망을 예시적으로 나타낸 개념도이다.
도 6은 컨볼루션 연산을 예시적으로 나타낸 개념도이다.
도 7은 프로세서가 도 6에서 나타낸 이미지로부터 컨볼루션 이미지를 추출한 것을 나타낸 개념도이다.
도 8은 도 5에서 나타낸 컨볼루션 및 풀링 레이어의 동작을 나타낸 개념도이다.
도 9는 LSTM 신경망을 예시적으로 나타낸 개념도이다.
도 10은 LSTM 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 11은 LSTM 인코더 동작 방식을 나타낸 개념도이다.
도 12는 LSTM 디코더의 동작 방식을 나타낸 개념도이다.
도 13은 LSTM 신경망이 곧바로 추정 벡터를 출력하는 예를 나타낸 개념도이다.
도 14는 GRU 신경망을 예시적으로 나타낸 개념도이다.
도 15는 GRU 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 16은 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법의 변형예를 나타낸 순서도이다.
도 17은 컨볼루셔널 신경망의 트레이닝 과정을 나타낸 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 예시적인 실시예에 따른 장치(100)를 나타낸 블록도이다.
도 1의 장치(100)는 서비스를 제공하는 서버일 수도 있고, 서버와 연결되어 서버의 세션을 분석하는 다른 장치일 수도 있다.
도 1을 참조하면, 예시적인 실시예에 따른 장치(100)는 적어도 하나의 프로세서(110), 메모리(120) 및 저장 장치(125) 등을 포함할 수 있다.
프로세서(110)는 메모리(120) 및/또는 저장 장치(125)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit; CPU), 그래픽 처리 장치(graphics processing unit; GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(120)와 저장 장치(160)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(120)는 읽기 전용 메모리(read only memory; ROM) 및/또는 랜덤 액세스 메모리(random access memory; RAM)로 구성될 수 있다.
메모리(120)는 프로세서(110)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다.
메모리(120)에 저장된 명령들은 프로세서(110)의 기계 학습에 의해 업데이트될 수 있다. 프로세서(110)는 기계 학습에 의해 메모리에 저장된 명령을 변경할 수 있다. 프로세서(110)가 수행하는 기계 학습은 지도 학습 방식 또는 비지도 학습 방식에 의해 이루어질 수 있다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 기계 학습은 강화 학습 등 다른 방식에 의해 이루어질 수도 있다.
도 2는 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법을 나타낸 순서도이다.
도 2를 참조하면, S110 단계에서, 프로세서(110)는 세션을 구성할 수 있다. 프로세서(110)는 클라이언트가 서버에게 전송한 요청 메시지와 서버가 생성한 응답 메시지로부터 세션을 구성할 수 있다. 요청 메시지는 http request를 포함할 수 있다. 응답 메시지는 http response를 포함할 수 있다. 세션은 http session을 포함할 수 있다. 프로세서(110)는 요청 메시지 및 응답 메시지를 생성 시점에 따라 순차적으로 나열하여 세션을 구성할 수 있다.
도 3은 세션의 일 예를 나타낸 개념도이다.
도 3을 참조하면, 프로세서(110)는 요청 메시지 및 응답 메시지를 생성 시점에 따라 순차적으로 나열함으로써, 세션을 구성할 수 있다. 프로세서(110)는 요청 메시지 및 응답 메시지 각각에 식별자를 부여할 수도 있다. 프로세서(110)는 후술하는 과정에서 세션의 특징을 분석함으로써, 세션의 비정상 여부를 판단할 수 있다. 프로세서(110)는 세션의 특징을 분석함으로써, 비정상적인 패턴으로 요청 메시지와 응답 메시지가 나열된 세션을 비정상 세션으로 판단할 수 있다.
다시 도 2를 참조하면, S130 단계에서, 프로세서(110)는 세션에 포함된 메시지들 중 적어도 일부를 추출할 수 있다. 예를 들어, 프로세서(110)는 세션에 포함된 요청 메시지 및 응답 메시지 모두를 추출할 수 있다. 다른 예로, 프로세서(110)는 세션에 포함된 요청 메시지만 추출할 수 있다. 또 다른 예로, 프로세서(110)는 세션에 포함된 응답 메시지만 추출할 수도 있다.
프로세서(110)는 추출한 메시지들 각각을 행렬 형태의 데이터로 변환할 수 있다. 프로세서(110)는 메시지들 각각에 포함된 문자를 원 핫 벡터(one-hot vector)로 변환할 수 있다.
도 4는 프로세서(110)가 메시지의 문자열을 행렬 형태의 데이터로 변환하는 것을 예시적으로 나타낸 개념도이다.
도 4를 참조하면, 프로세서(110)는 메시지에 포함된 문자열의 마지막 문자부터 역순으로 문자들 각각을 원 핫 벡터(one-hot vector)로 변환할 수 있다. 프로세서(110)는 문자들 각각을 원 핫 벡터로 변환함으로써, 메시지의 문자열을 행렬로 변환할 수 있다.
원 핫 벡터는 하나의 성분만 1이고 나머지 성분은 0이거나, 모든 성분이 0일 수 있다. 원 핫 벡터에서 '1' 값을 가지는 성분의 위치는 원 핫 벡터가 나타내는 문자의 종류에 따라 달라질 수 있다. 예를 들어, 도 4에서 나타낸 바와 같이, 알파벳 C, F, B, D 각각에 대응하는 one-hot vector는 서로 다른 위치의 성분이 '1'값을 가질 수 있다. 도 4에서 나타낸 점자 이미지는 예시적인 것에 불과하며 실시예가 이에 제한되는 것은 아니다. 예를 들어, 원 핫 벡터의 크기는 도 4에서 나타낸 것보다 더 클 수 있다. one-hot vector는 텍스트 집합 텍스트 합 "abcdefghijklmnopqrstuvwxyz0123456789-,;.!?:'\"/\\|_@#$%^&*~`+-=<>()[]{}"을 표현할 수 있다. 혹은 다양한 문자에 대응하기 위하여, 입력되는 문자열을 UTF-8 코드로 변환 후 다시 16진수 변환을 거쳐 "0123456789abcdef"로 표현할 수 있다. 예를 들어, 이러한 변화를 거친 영문자 1자는 2자의 16진수로 표현된다.
one-hot vector에서 '1' 성분의 위치는 one-hot vector가 나타내는 문자의 순서에 따라 달라질 수 있다.
문자의 종류가 총
Figure 112017092640205-pat00001
(ex. 69개(영문자 26, 숫자 0-9, new line, 33개의 특수문자)인 경우, 프로세서(110)는 각각의 메시지를
Figure 112017092640205-pat00002
크기의 행렬로 변환할 수 있다. 만약, 메시지의 길이가
Figure 112017092640205-pat00003
보다 작으면, 부족한 표현 벡터들은 모두 0 표현 벡터로 변환할 수 있다. 다른 예로, 메시지의 길이가
Figure 112017092640205-pat00004
보다 크면,
Figure 112017092640205-pat00005
개의 문자들만 원 핫 벡터로 변환할 수 있다.
다시 도 3을 참조하면, S140 단계에서, 프로세서(110)는 컨볼루셔널 신경망(Convolutional neural network)를 이용하여 행렬 데이터를 낮은 차원의 표현 벡터로 매핑할 수 있다. 프로세서(110)는 컨볼루셔널 신경망을 이용하여, 행렬 데이터의 특성이 반영된 표현 벡터를 출력할 수 있다. 출력된 표현 벡터의 차원은 행렬 데이터의 차원보다 낮을 수 있다. 이하에서는 컨볼루셔널 신경망에 대하여 설명한다.
도 5는 컨볼루셔널 신경망을 예시적으로 나타낸 개념도이다.
도 5를 참조하면, 컨볼루셔널 신경망은 적어도 하나의 컨볼루션 및 풀링 레이어(convolution & pooling layer)와, 적어도 하나의 전체 연결 레이어(fully connected layer)를 포함할 수 있다. 도 5에서는 하나의 레이어에서 컨볼루션 동작 및 풀링 동작이 이루어지는 예를 나타냈지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 컨볼루션 동작이 수행되는 레이어와 풀링 동작이 수행되는 레이어가 서로 분리되어 있을 수도 있다. 또한, 컨볼루셔널 신경망은 풀링 동작을 수행하지 않을 수도 있다.
컨볼루셔널 신경망은 입력 받은 데이터의 특징을 추출하고, 입력 받은 데이터보다 스케일이 작은 출력 데이터를 생성할 출력할 수 있다. 컨볼루셔널 신경망은 이미지 또는 행렬 형태의 데이터를 입력 받을 수 있다.
컨볼루션 및 풀링 레이어는 행렬 데이터를 입력받고, 입력 받은 행렬 데이터에 대해 컨볼루션 연산을 수행할 수 있다.
도 6은 컨볼루션 연산을 예시적으로 나타낸 개념도이다.
도 6을 참조하면, 프로세서(110)는 커널(FI)을 이용하여 입력 이미지(OI)에 대한 컨볼루션 연산을 수행할 수 있다. 커널(FI)은 이미지(OI)의 픽셀 개수보다 작은 크기의 행렬일 수 있다. 예시적으로, 필터 커널(FI)의 (1,1) 성분은 0일 수 있다. 따라서, 컨볼루션을 계산할 때, 커널(FI)의 (1,1) 성분에 대응하는 이미지(OI)의 픽셀에 대해서 0이 곱해질 수 있다. 다른 예로, 커널(FI)의 (2,1) 성분은 1이다. 따라서, 컨볼루션을 계산할 때, 커널(FI)의 (2,1) 성분에 대응하는 이미지(OI)의 픽셀에 대해서 1이 곱해질 수 있다.
프로세서(110)는 이미지(OI) 상에서 커널(FI)의 위치를 변경해가면서, 이미지(OI)에 대한 컨볼루션 연산을 수행할 수 있다. 그리고, 프로세서(110)는 계산된 컨볼루션 값들로부터 컨볼루션 이미지를 출력할 수 있다.
도 7은 프로세서(110)가 도 6에서 나타낸 이미지(OI)로부터 컨볼루션 이미지를 추출한 것을 나타낸 개념도이다.
도 7에서 나타낸 필터 커널(FI)이 이미지(OI) 상에서 움직일 수 있는 경우의 수가 (10-3+1)×(10-3+1)=8×8 개이기 때문에, 프로세서(110)는 8×8 개의 컨볼루션 값들을 계산할 수 있다. 그리고, 8×8 개의 컨볼루션 값들로부터 도 6에서 나타낸 바와 같은 8×8 픽셀 크기의 컨볼루션 이미지를 추출할 수 있다. 컨볼루션 이미지(CI)의 픽셀 개수는 원본 이미지(OI)보다 작아지게 된다. 프로세서(110)는 커널(FI)을 이용함으로써, 원본 이미지의 특성이 반영된 컨볼루션 이미지를 추출할 수 있다. 프로세서(110)는 커널(FI)를 이용하여 입력된 이미지(OI)보다 크기가 작으며 입력된 이미지(OI)의 특성을 반영하는 컨볼루션 이미지(CI)를 출력할 수 있다. 컨볼루션 연산은 컨볼루션 레이어 또는 컨볼루션 및 풀링 레이어에서 수행될 수 있다.
도 8은 도 5에서 나타낸 컨볼루션 및 풀링 레이어의 동작을 나타낸 개념도이다.
도 8에서는 편의상 컨볼루셔널 신경망의 첫 번째 컨볼루션 및 풀링 레이어(Convolution and pooling layer 1)에서의 동작을 예시적으로 나타냈다. 도 8을 참조하면, 입력 레이어는
Figure 112017092640205-pat00006
크기의 행렬 데이터를 입력 받을 수 있다. 입력 레이어는
Figure 112017092640205-pat00007
크기를 가지는 n개의 컨볼루셔널 필터를 이용해 컨볼루션 연산을 수행할 수 있다. 입력 레이어는 컨볼루션 연산을 통해 n개의 특징 맵(feature map)들을 출력할 수 있다. 특징 맵 각각의 차원은
Figure 112017092640205-pat00008
보다 작을 수 있다.
컨볼루션 및 풀링 레이어(layer 1)은 컨볼루션 연산에 의해 출력된 특징 맵들 각각에 대해 풀링 연산을 수행함으로써, 특징 맵의 크기를 줄일 수 있다. 풀링 연산은 특징 맵에서 인접한 픽셀들을 머지(merge)하여 하나의 대표 값을 획득하는 연산일 수 있다. 컨볼루션 및 풀링 레이어에서 풀링 연산에 의해 특징맵의 크기가 줄어들 수 있다.
대표값은 다양한 방법으로 획득될 수 있다. 예를 들어, 프로세서(110)는 특징맵에서 서로 인접한
Figure 112017092640205-pat00009
개의 픽셀들의 값들 중 최대 값을 대표 값으로 결정할 수 있다. 다른 예로, 프로세서(110)는 특징맵에서 서로 인접한
Figure 112017092640205-pat00010
개의 픽셀들의 값들의 평균 값을 대표 값으로 결정할 수 있다.
다시 도 5를 참조하면,
Figure 112017092640205-pat00011
개의 컨볼루션 및 풀링 레이어에서 컨볼루션 연산과 풀링 연산이 수행될 수 있다. 컨볼루션 연산 및 풀링 연산이 수행됨에 따라 특징 맵의 크기는 점점 감소할 수 있다. 마지막 컨볼루션 및 풀링 레이어(Layer NC)에서
Figure 112017092640205-pat00012
크기를 가지는 특징맵
Figure 112017092640205-pat00013
개가 출력될 수 있다. 마지막 컨볼루션 및 풀링 레이어(Layer NC)에서 출력되는 특징맵들은 다음과 같이 표현될 수 있다.
Figure 112017092640205-pat00014
마지막 컨볼루션 및 풀링 레이어(Layer NC)에서 출력되는 특징맵들은 첫 번째 전체 연결 레이어(Layer NC+1)에 입력될 수 있다. 첫 번째 전체 연결 레이어는 입력 받은 특징맵들을
Figure 112017092640205-pat00015
크기를 가지는 1차원 표현 벡터
Figure 112017092640205-pat00016
로 변환할 수 있다.
첫 번째 전체 연결 레이어는 변환한 1차원 표현 벡터에 대해 웨이트(weight) 행렬을 곱할 수 있다. 예시적으로, 첫 번째 전체 연결 레이어가 수행하는 연산은 수학식 7과 같이 나타낼 수 있다.
Figure 112017092640205-pat00017
수학식 1에서
Figure 112017092640205-pat00018
는, 첫 번째 전체 연결 레이어에서 이용하는 웨이트 행렬을 의미한다.
Figure 112017092640205-pat00019
는 첫 번째 전체 연결 레이어에서 출력되는 표현 벡터를 의미한다.
Figure 112017092640205-pat00020
는 1차원 표현 벡터일 수 있다.
Figure 112017092640205-pat00021
는 첫 번재 전체 연결 레이어에서 출력되는 표현 벡터
Figure 112017092640205-pat00022
의 크기를 의미한다.
수학식 1을 참조하면, 첫 번째 전체 연결 레이어는
Figure 112017092640205-pat00023
크기의 표현 벡터로부터 웨이트 행렬을 이용하여
Figure 112017092640205-pat00024
크기의 표현 벡터를 출력할 수 있다.
도 5를 참조하면, 컨볼루셔널 신경망은 NF개의 전체 연결 레이어들을 포함할 수 있다. 수학식 1을 일반화 하여, l번째 전체 연결 레이어에서 수행되는 연산은 수학식 2와 같이 나타낼 수 있다.
Figure 112017092640205-pat00025
수학식 2에서
Figure 112017092640205-pat00026
는 l번째 전체 연결 레이어의 출력 표현 벡터를 의미한다.
Figure 112017092640205-pat00027
는 l번째 전체 연결 레이어에서 이용하는 웨이트 행렬을 의미한다.
Figure 112017092640205-pat00028
은 l번째 전체 연결 레이어에서 이용하는 활성화 함수를 의미한다.
Figure 112017092640205-pat00029
은 l-1번째 전체 연결 레이어의 출력 표현 벡터로서, l번째 전체 연결 레이어에 대한 입력 표현 벡터일 수 있다.
출력 레이어(Output layer)는 마지막 전체 연결 레이어의 출력 표현 벡터
Figure 112017092640205-pat00030
를 입력 받을 수 있다. 출력 레이어는 수학식 3과 같이 표현 벡터 연산을 수행할 수 있다.
Figure 112017092640205-pat00031
Figure 112017092640205-pat00032
수학식 3에서
Figure 112017092640205-pat00033
는 출력 레이어서 출력되는 표현 벡터를 의미한다. C는 출력 표현 벡터
Figure 112017092640205-pat00034
의 클래스(class) 개수를 의미한다.
출력 레이어는 수학식 3에서 획득한 출력 표현 벡터
Figure 112017092640205-pat00035
의 각각의 클래스에 대한 최종 출력 값을 계산할 수 있다. 출력 레이어는 활성화 함수를 이용하여 최종 출력 표현 벡터를 계산할 수 있다. 출력 레이어의 최종 출력 값 계산 과정은 수학식 4와 같이 나타낼 수 있다.
Figure 112017092640205-pat00036
수학식 4에서
Figure 112017092640205-pat00037
는 출력 레이어에서 이용되는 활성화 함수를 의미한다.
Figure 112017092640205-pat00038
는 시그모이드 함수, 하이퍼 탄젠트 함수 및 정류 선형 유닛 중 적어도 하나일 수 있다. 수학식 4를 참조하면, 출력 레이어는 출력 표현 벡터
Figure 112017092640205-pat00039
에 대한 최종 출력 표현 벡터
Figure 112017092640205-pat00040
를 계산할 수 있다.
다른 예로, 최종 출력 레이어는 소프트 맥스(soft max) 함수를 이용하여 최종 출력 값을 계산할 수도 있다. 출력 레이어의 최종 출력 표현 벡터 계산 과정은 수학식 5와 같이 나타낼 수도 있다.
Figure 112017092640205-pat00041
수학식 5를 참조하면, 최종 출력 레이어는 출력 표현 벡터의 클래스 값에 대한 지수 함수를 이용하여 최종 출력 값을 계산할 수 있다.
수학식 3내지 5에서
Figure 112017092640205-pat00042
이므로, 컨볼루셔널 신경망은
Figure 112017092640205-pat00043
크기의 표현 벡터를 출력할 수 있다. 즉, 컨볼루셔널 신경망은
Figure 112017092640205-pat00044
크기의 행렬 데이터를 입력 받아
Figure 112017092640205-pat00045
크기의 표현 벡터를 출력할 수 있다.
컨볼루셔널 신경망은 비지도 학습 방식으로도 트레이닝 될 수 있다. 컨볼루셔널 신경망의 트레이닝 방식은 도 17을 참조한 설명에서 후술한다.
다시 도 2를 참조하면, S150 단계에서, 프로세서(110)는 세션에 대응하는 제1 표현 벡터 시퀀스를 생성할 수 있다. 프로세서(110)는 컨볼루셔널 신경망을 이용하여 세션에서 추출한 메시지들 각각으로부터 획득한 표현 벡터들을 이용하여 제1 표현 벡터 시퀀스를 생성할 수 있다. 예를 들어, 프로세서(110)는 메시지의 생성 순서에 따라 표현 벡터들을 순차적으로 나열하여 표현 벡터 시퀀스를 생성할 수 있다. 제1 표현 벡터 시퀀스는 예시적으로 아래와 같이 표현될 수 있다.
Figure 112017092640205-pat00046
Figure 112017092640205-pat00047
는 세션의 t번째 메시지(요청 메시지 또는 응답 메시지)로부터 생성된 표현 벡터를 의미할 수 있다.
S160 단계에서, 프로세서(110)는 제1 표현 벡터 시퀀스를 분석함으로써, 세션의 비정상 여부를 판단할 수 있다. 프로세서(110)는 LSTM(Long short term memory) 신경망을 이용하여 제1 표현 벡터 시퀀스를 분석할 수 있다. LSTM 신경망은 정보를 저장하는 셀 상태(Cell state)의 선택적인 갱신을 통해 RNN(Recurrent Neural Network)의 장기 의존성을 회피할 수 있다. 이하에서는 LSTM 신경망에 대하여 설명한다.
도 9는 LSTM 신경망을 예시적으로 나타낸 개념도이다.
도 9를 참조하면, LSTM 신경망은 복수개의 LSTM 레이어들을 포함할 수 있다. LSTM 신경망은 표현 벡터 시퀀스를 입력 받을 수 있다. LSTM 신경망은 표현 벡터 시퀀스에 포함된 표현 벡터들
Figure 112017092640205-pat00048
을 순차적으로 입력 받을 수 있다. LSTM 신경망의 0번째 레이어(layer 0)는 t번째 표현 벡터
Figure 112017092640205-pat00049
및 0번째 레이어(layer 0)가
Figure 112017092640205-pat00050
을 입력 받아 출력한
Figure 112017092640205-pat00051
을 입력 받을 수 있다. 0번째 레이어는 t번째 표현 벡터
Figure 112017092640205-pat00052
에 대한 숨김 벡터
Figure 112017092640205-pat00053
을 출력하기 위해, 이전 표현 벡터에 대한 숨김 벡터
Figure 112017092640205-pat00054
을 이용할 수 있다. 즉, LSTM 레이어는 입력 받은 표현 벡터에 대한 숨김 벡터를 출력할 때 이전 표현 벡터에 대한 숨김 벡터 출력을 참조함으로써, 시퀀스의 표현 벡터들 사이의 상관관계를 고려할 수 있다.
n번째 레이어는 n-1번째 레이어로부터 숨김 벡터
Figure 112017092640205-pat00055
을 입력 받을 수 있다. n번째 레이어는 이전 표현 벡터에 대한 숨김 벡터
Figure 112017092640205-pat00056
및 n-1번째 레이어로부터 수신한
Figure 112017092640205-pat00057
을 이용하여
Figure 112017092640205-pat00058
을 출력할 수 있다.
이하에서는 LSTM 신경망의 레이어들 각각의 동작에 관해 설명한다. 이하의 설명에서는 0번째 레이어를 기준으로 레이어의 동작을 설명한다. n번째 레이어는 표현 벡터
Figure 112017092640205-pat00059
대신 n-1번째 레이어의 숨김 벡터
Figure 112017092640205-pat00060
를 입력 받는 것 외에 기본적인 동작원리는 0번째 레이어와 유사할 수 있다.
도 10은 LSTM 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 10을 참조하면, LSTM 레이어는 잊기 게이트(forget gate)(810), 입력 게이트(input gate)(850), 출력 게이트(output gate)(860)을 포함할 수 있다. 도 10에서 박스 중앙의 라인은 레이어의 셀(cell) 상태를 나타내는 라인이다.
잊기 게이트(810)는 t번째 표현 벡터
Figure 112017092640205-pat00061
와, 셀의 이전 상태
Figure 112017092640205-pat00062
및 이전 표현 벡터에 대한 숨김 벡터
Figure 112017092640205-pat00063
을 이용하여
Figure 112017092640205-pat00064
를 계산할 수 있다. 잊기 게이트(810)는
Figure 112017092640205-pat00065
를 계산하는 과정에서 이전 상태에서 어떤 정보를 어느 정도로 버릴지를 결정할 수 있다. 잊기 게이트(810)는 예시적으로 수학식 6을 이용하여
Figure 112017092640205-pat00066
를 계산할 수 있다.
Figure 112017092640205-pat00067
수학식 6에서
Figure 112017092640205-pat00068
는 시그모이드(sigmoid)함수를 의미한다.
Figure 112017092640205-pat00069
는 바이어스(bias)를 의미한다.
Figure 112017092640205-pat00070
Figure 112017092640205-pat00071
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00072
Figure 112017092640205-pat00073
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00074
Figure 112017092640205-pat00075
에 대한 가중치를 의미한다.
입력 게이트(850)는 셀 상태에 어떤 새로운 정보를 반영할 것인지를 결정할 수 있다. 입력 게이트(850)는 수학식 7을 이용하여 셀 상태에 반영할 새로운 정보
Figure 112017092640205-pat00076
를 계산할 수 있다.
Figure 112017092640205-pat00077
수학식 7에서
Figure 112017092640205-pat00078
는 시그모이드(sigmoid)함수를 의미한다.
Figure 112017092640205-pat00079
는 바이어스(bias)를 의미한다.
Figure 112017092640205-pat00080
Figure 112017092640205-pat00081
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00082
Figure 112017092640205-pat00083
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00084
Figure 112017092640205-pat00085
에 대한 가중치를 의미한다.
입력 게이트(850)는 새로운 셀 상태
Figure 112017092640205-pat00086
에 대한 후보 값
Figure 112017092640205-pat00087
를 계산할 수 있다. 입력 게이트(850)는 수학식 8을 이용하여 후보 값
Figure 112017092640205-pat00088
를 계산할 수 있다.
Figure 112017092640205-pat00089
수학식 8에서
Figure 112017092640205-pat00090
는 바이어스(bias)를 의미한다.
Figure 112017092640205-pat00091
Figure 112017092640205-pat00092
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00093
Figure 112017092640205-pat00094
에 대한 가중치를 의미한다.
셀라인은
Figure 112017092640205-pat00095
,
Figure 112017092640205-pat00096
,
Figure 112017092640205-pat00097
를 이용하여 새로운 셀 상태
Figure 112017092640205-pat00098
를 계산할 수 있다. 예시적으로,
Figure 112017092640205-pat00099
는 수학식 9에 따라 계산될 수 있다.
Figure 112017092640205-pat00100
수학식 8을 참조하면, 수학식 9는 수학식 10과 같이 나타낼 수 있다.
Figure 112017092640205-pat00101
출력 게이트(860)는 셀 상태
Figure 112017092640205-pat00102
를 이용하여 출력 값을 계산할 수 있다. 예시적으로, 출력 게이트(860)는 수학식 11에 따라 출력 값을 계산할 수 있다.
Figure 112017092640205-pat00103
수학식 11에서
Figure 112017092640205-pat00104
는 시그모이드(sigmoid)함수를 의미한다.
Figure 112017092640205-pat00105
는 바이어스(bias)를 의미한다.
Figure 112017092640205-pat00106
Figure 112017092640205-pat00107
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00108
Figure 112017092640205-pat00109
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00110
Figure 112017092640205-pat00111
에 대한 가중치를 의미한다.
LSTM 레이어는 출력 값
Figure 112017092640205-pat00112
및 새로운 셀 상태
Figure 112017092640205-pat00113
를 이용하여 표현 벡터
Figure 112017092640205-pat00114
에 대한 숨김 벡터
Figure 112017092640205-pat00115
를 계산할 수 있다. 예시적으로,
Figure 112017092640205-pat00116
는 수학식 12에 따라 계산될 수 있다.
Figure 112017092640205-pat00117
LSTM 신경망은 LSTM 인코더(encoder) 및 LSTM 인코더에 대칭적인 구조를 가지는 LSTM 디코더(decoder)를 포함할 수 있다. LSTM 인코더는 제1 표현 벡터 시퀀스를 입력 받을 수 있다. LSTM 인코더는 제1 표현 벡터 시퀀스를 입력 받고 미리 정해진 크기의 숨김 벡터를 출력할 수 있다. LSTM 디코더는 LSTM 인코더로부터 출력된 숨김 벡터를 입력 받을 수 있다. LSTM 디코더는 LSTM 인코더에서 사용된 가중치 행렬과 바이어스 값을 그대로 사용할 수 있다. LSTM 디코더는 제1 표현 벡터 시퀀스에 대응하는 제2 표현 벡터 시퀀스를 출력할 수 있다. LSTM 디코더는 제2 표현 벡터 시퀀스는 제1 표현 벡터 시퀀스에 포함된 표현 벡터들에 대응하는 추정 벡터들을 포함할 수 있다. LSTM 디코더는 추정 벡터들을 역순으로 출력할 수 있다. 즉, LSTM 디코더는 제1 표현 벡터 시퀀스의 표현 벡터 순서의 반대로 추정 벡터들을 출력할 수 있다.
도 11은 LSTM 인코더 동작 방식을 나타낸 개념도이다.
도 11을 참조하면, LSTM 인코더는 제1 표현 벡터 시퀀스의 표현 벡터들을 순차적으로 입력 받을 수 있다. 예를 들어, LSTM 인코더는 제1 표현 벡터 시퀀스
Figure 112017092640205-pat00118
를 입력 받을 수 있다. LSTM 인코더의 n번째 레이어는 n-1번째 레이어의 출력을 입력 받을 수 있다. 또한, n번째 레이어는 t번째 표현 벡터
Figure 112017092640205-pat00119
에 대한 숨김 벡터
Figure 112017092640205-pat00120
을 계산하기 위해, 이전 표현 벡터
Figure 112017092640205-pat00121
에 대한 숨김 벡터
Figure 112017092640205-pat00122
을 이용할 수 있다.
LSTM 인코더는 제1 표현 벡터 시퀀스의 마지막 표현 벡터
Figure 112017092640205-pat00123
을 입력 받은 후,
Figure 112017092640205-pat00124
내지
Figure 112017092640205-pat00125
을 출력할 수 있다. 여기서,
Figure 112017092640205-pat00126
는 LSTM 인코더의 레이어 개수일 수 있다.
도 12는 LSTM 디코더의 동작 방식을 나타낸 개념도이다.
LSTM 디코더는 LSTM 인코더로부터
Figure 112017092640205-pat00127
내지
Figure 112017092640205-pat00128
을 입력 받아 표현 벡터
Figure 112017092640205-pat00129
에 대한 추정 벡터인
Figure 112017092640205-pat00130
을 출력할 수 있다.
LSTM 디코더는 제1 표현 벡터 시퀀스
Figure 112017092640205-pat00131
에 대한 추정 벡터들을 포함하는 제2 표현 벡터 시퀀스
Figure 112017092640205-pat00132
를 출력할 수 있다. LSTM 디코더는 추정 벡터들을 역순(제1 표현 벡터 시퀀스 상에서 표현 벡터들 순서의 반대)으로 출력할 수 있다.
LSTM 디코더는
Figure 112017092640205-pat00133
을 계산하는 과정에서
Figure 112017092640205-pat00134
내지
Figure 112017092640205-pat00135
를 출력할 수 있다. LSTM 디코더는
Figure 112017092640205-pat00136
를 출력한 다음,
Figure 112017092640205-pat00137
을 입력 받고,
Figure 112017092640205-pat00138
내지
Figure 112017092640205-pat00139
를 이용하여
Figure 112017092640205-pat00140
에 대한 추정 벡터
Figure 112017092640205-pat00141
를 출력할 수 있다. LSTM 디코더는
Figure 112017092640205-pat00142
를 계산하기 위해
Figure 112017092640205-pat00143
내지
Figure 112017092640205-pat00144
만을 이용할 수 있다. 즉, LSTM 디코더는
Figure 112017092640205-pat00145
를 계산하는 과정에서
Figure 112017092640205-pat00146
을 입력 받지 않을 수도 있다.
LSTM 디코더가 제2 표현 벡터 시퀀스
Figure 112017092640205-pat00147
를 출력하면, 프로세서(110)는 제2 표현 벡터 시퀀스와 제1 표현 벡터 시퀀스를 비교할 수 있다. 예를 들어, 프로세서(110)는 수학식 13을 이용하여 세션의 비정상 여부를 판단할 수 있다.
Figure 112017092640205-pat00148
수학식 13에서 S는 세션에서 추출한 메시지들(요청 메시지 또는 응답 메시지)의 개수를 의미한다.
Figure 112017092640205-pat00149
는 t번째 메시지로부터 출력된 표현 벡터고,
Figure 112017092640205-pat00150
는 LSTM 디코더가 출력한
Figure 112017092640205-pat00151
에 대한 추정 벡터다. 프로세서(110)는 제1 표현 벡터 시퀀스와 제2 표현 벡터 시퀀스 사이의 차이가 미리 정해진 기준 값
Figure 112017092640205-pat00152
보다 작은 지 여부를 판단할 수 있다. 만약, 제1 표현 벡터 시퀀스와 제2 표현 벡터 시퀀스 사이의 차이가 기준 값
Figure 112017092640205-pat00153
보다 크면 프로세서(110)는 세션이 비정상적이라고 판단할 수 있다.
상술한 설명에서는 LSTM 신경망이 LSTM 인코더 및 LSTM 디코더를 포함하는 예에 관해 설명했다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, LSTM 신경망은 곧바로 추정 벡터를 출력할 수도 있다.
도 13은 LSTM 신경망이 곧바로 추정 벡터를 출력하는 예를 나타낸 개념도이다.
도 13을 참조하면, LSTM 신경망은 제1 표현 벡터 시퀀스에 포함된 표현 벡터들
Figure 112017092640205-pat00154
을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 출력할 수 있다.
예를 들어, LSTM 신경망은
Figure 112017092640205-pat00155
를 입력 받아,
Figure 112017092640205-pat00156
에 대한 추정 벡터
Figure 112017092640205-pat00157
을 출력할 수 있다. 마찬가지로 LSTM 신경망은
Figure 112017092640205-pat00158
을 입력 받아
Figure 112017092640205-pat00159
를 출력할 수 있다. 프로세서(110)는 LSTM 신경망이 출력한 추정 벡터들
Figure 112017092640205-pat00160
과, LSTM 신경망이 입력 받는 표현 벡터들
Figure 112017092640205-pat00161
사이의 차이로부터 세션의 비정상 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 수학식 14를 이용하여 세션의 비정상 여부를 판단할 수 있다.
Figure 112017092640205-pat00162
프로세서(110)는 표현 벡터들
Figure 112017092640205-pat00163
과, 추정 벡터들
Figure 112017092640205-pat00164
사이의 차이가 미리 정해진 기준 값
Figure 112017092640205-pat00165
보다 작은 지 여부를 판단할 수 있다. 만약, 차이가 기준 값
Figure 112017092640205-pat00166
보다 크면 프로세서(110)는 세션이 비정상적이라고 판단할 수 있다.
상술한 설명에서는 프로세서(110)가 LSTM 신경망을 이용하여 세션의 비정상 여부를 판단하는 예에 관해 설명했다. 하지만, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 프로세서(110)는 S160 단계에서, GRU 신경망을 이용하여 세션의 비정상 여부를 판단할 수도 있다.
도 14는 GRU 신경망을 예시적으로 나타낸 개념도이다.
도 14를 참조하면, GRU 신경망은 LSTM 신경망과 유사한 방식으로 동작할 수 있다. GRU 신경망은 복수개의 GRU 레이어들을 포함할 수 있다. GRU 신경망은 표현 벡터 시퀀스에 포함된 표현 벡터들
Figure 112017092640205-pat00167
을 순차적으로 입력 받을 수 있다. GRU 신경망의 0번째 레이어(layer 0)는 t번째 표현 벡터
Figure 112017092640205-pat00168
및 0번째 레이어(layer 0)가
Figure 112017092640205-pat00169
을 입력 받아 출력한
Figure 112017092640205-pat00170
을 입력 받을 수 있다. 0번째 레이어는 t번째 표현 벡터
Figure 112017092640205-pat00171
에 대한 숨김 벡터
Figure 112017092640205-pat00172
을 출력하기 위해, 이전 표현 벡터에 대한 숨김 벡터 출력
Figure 112017092640205-pat00173
을 이용할 수 있다. 즉, GRU 레이어는 입력 받은 표현 벡터에 대한 숨김 벡터를 출력할 때 이전 표현 벡터에 대한 숨김 벡터 출력을 참조함으로써, 시퀀스의 표현 벡터들 사이의 상관관계를 고려할 수 있다.
n번째 레이어는 n-1번째 레이어로부터
Figure 112017092640205-pat00174
을 입력 받을 수 있다. 다른 예로 n번째 레이어는 n-1번째 레이어로부터
Figure 112017092640205-pat00175
Figure 112017092640205-pat00176
를 입력 받을 수도 있다. n번째 레이어는 이전 표현 벡터에 대한
Figure 112017092640205-pat00177
및 n-1번째 레이어로부터 수신한
Figure 112017092640205-pat00178
을 이용하여
Figure 112017092640205-pat00179
을 출력할 수 있다.
이하에서는 GRU 신경망의 레이어들 각각의 동작에 관해 설명한다. 이하의 설명에서는 0번째 레이어를 기준으로 레이어의 동작을 설명한다. n번째 레이어는 표현 벡터
Figure 112017092640205-pat00180
대신 n-1번째 레이어의 숨김 벡터 출력
Figure 112017092640205-pat00181
또는
Figure 112017092640205-pat00182
및 표현 벡터
Figure 112017092640205-pat00183
를 모두 입력 받는 것 외에 기본적인 동작원리는 0번째 레이어와 유사할 수 있다.
도 15는 GRU 레이어의 구성을 예시적으로 나타낸 개념도이다.
도 15를 참조하면, GRU 레이어는 리셋 게이트(r) 및 업데이트 게이트(z)를 포함할 수 있다. 리셋 게이트(r)는 새로운 입력을 이전 메모리와 어떻게 합칠지를 정할 수 있다. 업데이트 게이트(z)는 이전 메모리를 얼마나 반영할 지를 결정할 수 있다. LSTM 레이어와 달리, GRU 레이어에서는 셀 상태와 출력이 구분되지 않을 수 있다.
예시적으로, 리셋 게이트(r)는 수학식 15를 이용하여 리셋 파라미터 r을 계산할 수 있다.
Figure 112017092640205-pat00184
수학식 15에서
Figure 112017092640205-pat00185
는 시그모이드(sigmoid)함수를 의미한다.
Figure 112017092640205-pat00186
Figure 112017092640205-pat00187
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00188
Figure 112017092640205-pat00189
에 대한 가중치를 의미한다.
예시적으로, 업데이트 게이트(z)는 수학식 16을 이용하여, 업데이트 파라미터 z를 계산할 수 있다.
Figure 112017092640205-pat00190
수학식 16에서
Figure 112017092640205-pat00191
는 시그모이드(sigmoid)함수를 의미한다.
Figure 112017092640205-pat00192
Figure 112017092640205-pat00193
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00194
Figure 112017092640205-pat00195
에 대한 가중치를 의미한다.
GRU 레이어는 새로운 숨김 벡터에 대한 추정 값 h를 수학식 17에 따라 계산할 수 있다.
Figure 112017092640205-pat00196
수학식 17에서
Figure 112017092640205-pat00197
는 시그모이드(sigmoid)함수를 의미한다.
Figure 112017092640205-pat00198
Figure 112017092640205-pat00199
에 대한 가중치를 의미하고,
Figure 112017092640205-pat00200
Figure 112017092640205-pat00201
및 r의 곱
Figure 112017092640205-pat00202
에 대한 가중치를 의미한다.
GRU 레이어는 수학식 17에서 계산한
Figure 112017092640205-pat00203
를 이용하여
Figure 112017092640205-pat00204
에 대한 숨김 벡터
Figure 112017092640205-pat00205
를 계산할 수 있다. 예를 들어, GRU 레이어는 수학식 18을 이용하여
Figure 112017092640205-pat00206
에 대한 숨김 벡터
Figure 112017092640205-pat00207
를 계산할 수 있다.
Figure 112017092640205-pat00208
GRU 신경망은 레이어 각각의 구성상 차이를 제외하고는, LSTM 신경망과 유사하게 동작할 수 있다. 예를 들어, 도 11내지 도 13에서 나타낸 LSTM 신경망의 실시예들이 GRU 신경망에도 유사하게 적용될 수 있다. GRU 신경망의 경우, 각각의 레이어 동작이 도 15에서 나타낸 바와 동작하는 것 외에 LSTM 신경망과 유사한 원리로 동작할 수 있다.
예를 들어, GRU 신경망은 도 11 및 도 12에서 나타낸 바와 같이 GRU 인코더 및 GRU 디코더를 포함할 수 있다. GRU 인코더는 제1 표현 벡터 시퀀스
Figure 112017092640205-pat00209
의 표현 벡터들을 순차적으로 입력 받고, 숨김 벡터
Figure 112017092640205-pat00210
내지
Figure 112017092640205-pat00211
을 출력할 수 있다, 여기서,
Figure 112017092640205-pat00212
는 GRU 인코더의 레이어 개수일 수 있다.
GRU 디코더는 제1 표현 벡터 시퀀스
Figure 112017092640205-pat00213
에 대한 추정 벡터들을 포함하는 제2 표현 벡터 시퀀스
Figure 112017092640205-pat00214
를 출력할 수 있다. GRU 디코더는 GRU 인코더에서 사용된 가중치 행렬과 바이어스 값을 그대로 사용할 수 있다. GRU 디코더는 추정 벡터들을 역순(제1 표현 벡터 시퀀스 상에서 표현 벡터들 순서의 반대)으로 출력할 수 있다.
프로세서(110)는 수학식 13을 이용하여, 제1 표현 벡터 시퀀스와 제2 표현 벡터 시퀀스를 비교함으로써, 세션의 비정상 여부를 판단할 수 있다.
다른 예로, GRU 신경망은 인코더와 디코더로 나누어지지 않을 수도 있다. 예를 들어, GRU 신경망은 도 13을 참조하여 설명한 바와 같이 곧바로 추정 벡터를 출력할 수 있다. GRU 신경망은 제1 표현 벡터 시퀀스에 포함된 표현 벡터들
Figure 112017092640205-pat00215
을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 출력할 수 있다.
GRU 신경망은
Figure 112017092640205-pat00216
를 입력 받아,
Figure 112017092640205-pat00217
에 대한 추정 벡터
Figure 112017092640205-pat00218
을 출력할 수 있다. 마찬가지로 GRU 신경망은
Figure 112017092640205-pat00219
을 입력 받아
Figure 112017092640205-pat00220
를 출력할 수 있다. 프로세서(110)는 GRU신경망이 출력한 추정 벡터들
Figure 112017092640205-pat00221
과, GRU 신경망이 입력 받는 표현 벡터들
Figure 112017092640205-pat00222
사이의 차이로부터 세션의 비정상 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 수학식 14를 이용하여 세션의 비정상 여부를 판단할 수 있다.
도 16은 본 발명의 예시적인 실시예에 따른 장치(100)에서 수행되는 비정상 세션 감지 방법의 변형예를 나타낸 순서도이다.
도 16의 실시예를 설명함에 있어서, 도 2와 중복되는 내용은 생략한다.
도 16을 참조하면, S100 단계에서, 프로세서(110)는 컨볼루셔널 신경망 및 LSTM(또는 GRU) 신경망을 트레이닝 시킬 수 있다.
예시적으로, 프로세서(110)는 비지도 학습 방식으로 컨볼루셔널 신경망을 트레이닝 할 수 있다. 다른 예로, 메시지들과 메시지들에 라벨링된 출력 표현 벡터를 포함하는 훈련 데이터가 존재하는 경우, 프로세서(110)는 지도 학습 방식으로 컨볼루셔널 신경망을 트레이닝할 수도 있다.
비지도 학습의 경우, 프로세서(110)는 프로세서(110)는 컨볼루셔널 신경망에 대해 대칭적 구조를 가지는 대칭 신경망을 컨볼루셔널 신경망에 연결할 수 있다. 프로세서(110)는 컨볼루셔널 신경망의 출력을 대칭 신경망에 입력시킬 수 있다.
도 17은 컨볼루셔널 신경망의 트레이닝 과정을 나타낸 개념도이다.
도 17을 참조하면, 프로세서(110)는 컨볼루셔널 신경망의 출력을 대칭 신경망에 입력 시킬 수 있다. 대칭 신경망은, 상기 컨볼루셔널 신경망의 전체 연결 레이어에 대응하는 역방향 전체 연결 레이어(backward fully connected layer)와, 상기 컨볼루셔널 신경망의 컨볼루션 레이어 및 풀링 레이어에 대응하는 디컨볼루션 레이어 및 언풀링 레이어를 포함할 수 있다. 대칭 신경망의 구체적인 동작에 대한 설명은 한국 특허 출원(10-2015-183898)로 대신한다.
프로세서(110)는 대칭 신경망의 출력과 컨볼루셔널 신경망에 입력되는 입력 사이의 차이에 기초하여, 컨볼루셔널 신경망의 가중치 파라미터들을 갱신할 수 있다. 예를 들어, 프로세서(110)는 대칭 신경망의 출력과 컨볼루셔널 신경망에 입력되는 입력 사이의 재구성 오류(reconstruction error) 및 평균 제곱 오류(mean squared error) 중 적어도 하나에 기초하여 비용함수를 결정할 수 있다. 프로세서(110)는 상술한 방식에 의해 결정된 비용함수를 최소화 하는 방향으로 가중치 파라미터들을 갱신할 수 있다.
예시적으로, 프로세서(110)는 비지도 학습 방식으로 LSTM(GRU) 신경망을 트레이닝 할 수 있다.
LSTM(GRU) 신경망이 LSTM(GRU) 인코더 및 LSTM(GRU) 디코더를 포함하는 경우, 프로세서(110)는 LSTM(GRU) 인코더에 입력되는 표현 벡터들과, LSTM(GRU) 디코더에서 출력되는 표현 벡터들을 비교함으로써, 비용함수를 계산할 수 있다. 예를 들어, 프로세서(110)는 수학식 19를 이용하여 비용함수를 계산할 수 있다.
Figure 112017092640205-pat00223
수학식 19에서
Figure 112017092640205-pat00224
는 비용함수 값을 의미하고,
Figure 112017092640205-pat00225
는 훈련용 데이터
Figure 112017092640205-pat00226
에 포함된 세션들의 개수를 의미하고,
Figure 112017092640205-pat00227
은 n번째 훈련용 세션에 포함된 메시지들의 개수를 의미하고,
Figure 112017092640205-pat00228
은 n번째 훈련용 세션의 t번째 메시지에 대응하는 표현 벡터를 의미하고,
Figure 112017092640205-pat00229
은 LSTM(GRU) 디코더에서 출력된 추정 벡터로서,
Figure 112017092640205-pat00230
에 대한 추정 벡터를 의미한다. 또한,
Figure 112017092640205-pat00231
는 LSTM(GRU) 신경망의 가중치 파라미터들의 집합을 의미한다. 예를 들어, LSTM 신경망의 경우,
Figure 112017092640205-pat00232
일 수 있다.
프로세서(110)는 수학식 19에서 나타낸 비용함수
Figure 112017092640205-pat00233
를 최소화 하는 방향으로
Figure 112017092640205-pat00234
에 포함된 가중치 파라미터들을 갱신할 수 있다.
이상에서 도 1 내지 도 17과 수학식 1 내지 수학식 19를 참조하여 본 발명의 실시예들에 따른 비정상 세션 감지 방법에 관하여 설명하였다. 상술한 실시예들에 따르면, 컨볼루셔널 신경망을 이용하여 세션에 포함된 메시지들을 낮은 차원의 표현 벡터들로 변환할 수 있다. 또한, LSTM 또는 GRU 신경망을 이용하여, 세션에 포함된 표현 벡터 시퀀스를 분석하고 이로부터 세션의 비정상 여부를 판단할 수 있다. 실시예들에 따르면, 수동적인 작업의 개입 없이 인공 신경망을 이용하여 세션의 비정상 여부를 용이하게 판단할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬, 램, 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 1의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (18)

  1. 프로세서 및 메모리를 포함하는 서버가 클라이언트와의 송수신 메시지를 포함하는 세션에 대하여 수행하는 비정상 세션 감지 방법에 있어서,
    상기 프로세서에 의해 상기 세션에 포함된 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계;
    상기 프로세서에 의해 컨볼루셔널 신경망을 이용하여 상기 행렬 형태의 데이터를 상기 행렬보다 작은 차원의 표현 벡터로 변환하는 단계;
    상기 프로세서에 의해 상기 메시지들로부터 획득된 표현 벡터들을, 상기 메시지들의 발생 순서에 따라 나열함으로써 제1 표현 벡터 시퀀스를 구성하는 단계;
    상기 프로세서에 의해 LSTM 신경망을 이용하여 상기 제1 표현 벡터 시퀀스로부터 제2 표현 벡터 시퀀스를 생성하는 단계; 및
    상기 프로세서에 의해 상기 제1 표현 벡터 시퀀스 및 상기 제2 표현 벡터 시퀀스의 차이값과 기준값을 비교하여 상기 세션의 비정상 여부를 판단하는 단계를 포함하는 비정상 세션 감지 방법.
  2. 청구항 1에 있어서,
    상기 메시지들 중 적어도 일부를 행렬 형태의 데이터로 변환하는 단계는,
    상기 메시지들 각각에 포함된 문자를 원 핫 벡터(one-hot vector)로 변환함으로써, 상기 메시지들 각각을 행렬 형태의 데이터로 변환하는 비정상 세션 감지 방법.
  3. 청구항 1에 있어서,
    상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함하는 비정상 세션 감지 방법.
  4. 청구항 3에 있어서,
    상기 LSTM 인코더는 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 미리 정해진 크기의 숨김 (hidden) 벡터를 출력하고,
    상기 LSTM 디코더는 상기 숨김 벡터를 입력 받아 상기 제1 표현 벡터 시퀀스에 대응하는 상기 제2 표현 벡터 시퀀스를 생성하는 비정상 세션 감지 방법.
  5. 삭제
  6. 청구항 4에 있어서,
    상기 LSTM 디코더는 상기 제1 표현 벡터 시퀀스에 포함되는 표현 벡터들 각각에 대응하는 추정 벡터들을 역순으로 출력함으로써, 상기 제2 표현 벡터 시퀀스를 생성하는 비정상 세션 감지 방법.
  7. 청구항 1에 있어서,
    상기 LSTM 신경망은 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터들을 순차적으로 입력 받고, 입력 받은 표현 벡터로부터 다음 순번의 표현 벡터에 대한 추정 벡터를 포함하는 상기 제2 표현 벡터 시퀀스를 생성하는 비정상 세션 감지 방법.
  8. 청구항 7에 있어서,
    상기 세션의 비정상 여부를 판단하는 단계는,
    상기 제2 표현 벡터 시퀀스에 포함된 상기 추정 벡터와 상기 제1 표현 벡터 시퀀스에 포함된 표현 벡터 사이의 차이값과 상기 기준값을 비교하여 상기 세션의 비정상 여부를 판단하는 비정상 세션 감지 방법.
  9. 청구항 1에 있어서,
    상기 프로세서에 의해 상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝(training)하는 단계를 더 포함하는 비정상 세션 감지 방법.
  10. 청구항 9에 있어서,
    상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝하는 단계는,
    훈련 데이터를 상기 컨볼루셔널 신경망에 입력하는 단계;
    상기 컨볼루셔널 신경망의 출력을 상기 컨볼루셔널 신경망에 대칭적인 구조를 가지는 대칭 신경망에 입력하는 단계; 및
    상기 대칭 신경망의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 컨볼루셔널 신경망에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 컨볼루셔널 신경망을 트레이닝하는 단계를 포함하는 비정상 세션 감지 방법.
  11. 청구항 9에 있어서,
    상기 LSTM 신경망은 복수의 LSTM 레이어들을 포함하는 LSTM 인코더 및 상기 LSTM 인코더와 대칭적인 구조를 가지는 LSTM 디코더를 포함하며,
    상기 컨볼루셔널 신경망 및 상기 LSTM 신경망을 트레이닝하는 단계는,
    훈련 데이터를 상기 LSTM 인코더에 입력하는 단계;
    상기 LSTM 인코더에서 출력되는 숨김 벡터 및 상기 훈련 데이터를 상기 LSTM 디코더에 입력하는 단계; 및
    상기 LSTM 디코더의 출력과 상기 훈련 데이터 사이의 차이에 기초하여 상기 LSTM 인코더 및 상기 LSTM 디코더에서 사용하는 가중치 파라미터들을 갱신함으로써 상기 LSTM 신경망을 트레이닝하는 단계를 포함하는 비정상 세션 감지 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020170122363A 2017-09-22 2017-09-22 비정상 세션 감지 방법 KR101880907B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170122363A KR101880907B1 (ko) 2017-09-22 2017-09-22 비정상 세션 감지 방법
US15/908,594 US20190095301A1 (en) 2017-09-22 2018-02-28 Method for detecting abnormal session
JP2018041354A JP6608981B2 (ja) 2017-09-22 2018-03-07 異常セッション感知方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170122363A KR101880907B1 (ko) 2017-09-22 2017-09-22 비정상 세션 감지 방법

Publications (1)

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

Family

ID=63443876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170122363A KR101880907B1 (ko) 2017-09-22 2017-09-22 비정상 세션 감지 방법

Country Status (3)

Country Link
US (1) US20190095301A1 (ko)
JP (1) JP6608981B2 (ko)
KR (1) KR101880907B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110875912A (zh) * 2018-09-03 2020-03-10 中移(杭州)信息技术有限公司 一种基于深度学习的网络入侵检测方法、装置和存储介质
CN111091863A (zh) * 2019-11-29 2020-05-01 浪潮(北京)电子信息产业有限公司 一种存储设备故障检测方法及相关装置
KR20200057608A (ko) * 2019-08-29 2020-05-26 아이덴티파이 주식회사 인공지능 기술을 이용한 배기가스 배출량 예측방법
CN112016866A (zh) * 2019-05-31 2020-12-01 北京京东尚科信息技术有限公司 订单数据处理方法、装置、电子设备及可读介质
KR102374817B1 (ko) * 2021-03-05 2022-03-16 경북대학교 산학협력단 시계열 특성의 군집화 분석을 사용한 고성능 심층 신경망 기반의 기계 고장 진단 방법 및 시스템
US11381651B2 (en) * 2019-05-29 2022-07-05 Adobe Inc. Interpretable user modeling from unstructured user data
CN116112265A (zh) * 2023-02-13 2023-05-12 山东云天安全技术有限公司 一种异常会话的确定方法、电子设备及存储介质

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690938B1 (en) 2015-08-05 2017-06-27 Invincea, Inc. Methods and apparatus for machine learning based malware detection
WO2017223294A1 (en) * 2016-06-22 2017-12-28 Invincea, Inc. Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning
KR101984730B1 (ko) * 2018-10-23 2019-06-03 (주) 글루시스 서버 장애 자동 예측 시스템 및 자동 예측 방법
CN110430183A (zh) * 2019-07-31 2019-11-08 福建师范大学 基于会话特征相似性的mh-lstm异常检测方法
CN111178523B (zh) * 2019-08-02 2023-06-06 腾讯科技(深圳)有限公司 一种行为检测方法、装置、电子设备及存储介质
KR102232871B1 (ko) * 2019-08-14 2021-03-26 펜타시큐리티시스템 주식회사 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치
CN110569925B (zh) * 2019-09-18 2023-05-26 南京领智数据科技有限公司 应用于电力设备运检的基于lstm的时序异常检测方法
CN110874744B (zh) * 2019-11-18 2022-08-02 中国银联股份有限公司 一种数据异常检测方法及装置
WO2021097515A1 (en) * 2019-11-20 2021-05-27 Canva Pty Ltd Systems and methods for generating document score adjustments
US11716338B2 (en) * 2019-11-26 2023-08-01 Tweenznet Ltd. System and method for determining a file-access pattern and detecting ransomware attacks in at least one computer network
CN111277603B (zh) * 2020-02-03 2021-11-19 杭州迪普科技股份有限公司 无监督异常检测系统和方法
JP2021189721A (ja) 2020-05-29 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
CN112232948A (zh) * 2020-11-02 2021-01-15 广东工业大学 一种流量数据的异常检测方法及装置
CN113595987B (zh) * 2021-07-02 2022-06-21 中国科学院信息工程研究所 一种基于基线行为刻画的通联异常发现方法、装置、存储介质及电子装置
CN115037543B (zh) * 2022-06-10 2024-03-19 江苏大学 一种基于双向时间卷积神经网络的异常网络流量检测方法
CN115952465B (zh) * 2023-03-10 2023-07-21 畅捷通信息技术股份有限公司 一种传感器数据异常检测的方法、装置及计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644998B1 (ko) * 2015-12-22 2016-08-02 엑스브레인 주식회사 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107636693B (zh) * 2015-03-20 2022-01-11 弗劳恩霍夫应用研究促进协会 针对人工神经网络的相关性分数指派
US10606846B2 (en) * 2015-10-16 2020-03-31 Baidu Usa Llc Systems and methods for human inspired simple question answering (HISQA)
JP6517681B2 (ja) * 2015-12-17 2019-05-22 日本電信電話株式会社 映像パターン学習装置、方法、及びプログラム
US20180260699A1 (en) * 2017-03-13 2018-09-13 Intel IP Corporation Technologies for deep machine learning with convolutional neural networks and reduced set support vector machines
CA3000166A1 (en) * 2017-04-03 2018-10-03 Royal Bank Of Canada Systems and methods for cyberbot network detection
GB201714917D0 (en) * 2017-09-15 2017-11-01 Spherical Defence Labs Ltd Detecting anomalous application messages in telecommunication networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644998B1 (ko) * 2015-12-22 2016-08-02 엑스브레인 주식회사 Convolutional Neural Network를 이용하여 비정상 입력 데이터를 검출하는 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Lopez-Martin, Manuel, et al. "Network Traffic Classifier With Convolutional and Recurrent Neural Networks for Internet of Things." IEEE Access 5, 2017.9.6.* *
R. Vinayakumar, K. P. Soman and P. Poornachandran, "Applying convolutional neural network for network intrusion detection," ICACCI 2017. Udupi, 2017.9.13 *
Vosoughi, Soroush, Prashanth Vijayaraghavan, and Deb Roy. "Tweet2vec: Learning tweet embeddings using character-level cnn-lstm encoder-decoder." Proceedings of the 39th International ACM SIGIR,2016.7.* *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110875912A (zh) * 2018-09-03 2020-03-10 中移(杭州)信息技术有限公司 一种基于深度学习的网络入侵检测方法、装置和存储介质
US11381651B2 (en) * 2019-05-29 2022-07-05 Adobe Inc. Interpretable user modeling from unstructured user data
CN112016866A (zh) * 2019-05-31 2020-12-01 北京京东尚科信息技术有限公司 订单数据处理方法、装置、电子设备及可读介质
CN112016866B (zh) * 2019-05-31 2023-09-26 北京京东振世信息技术有限公司 订单数据处理方法、装置、电子设备及可读介质
KR20200057608A (ko) * 2019-08-29 2020-05-26 아이덴티파이 주식회사 인공지능 기술을 이용한 배기가스 배출량 예측방법
KR102118088B1 (ko) 2019-08-29 2020-06-02 아이덴티파이 주식회사 인공지능 기술을 이용한 배기가스 배출량 예측방법
CN111091863A (zh) * 2019-11-29 2020-05-01 浪潮(北京)电子信息产业有限公司 一种存储设备故障检测方法及相关装置
KR102374817B1 (ko) * 2021-03-05 2022-03-16 경북대학교 산학협력단 시계열 특성의 군집화 분석을 사용한 고성능 심층 신경망 기반의 기계 고장 진단 방법 및 시스템
WO2022186461A1 (ko) * 2021-03-05 2022-09-09 경북대학교 산학협력단 고급 심층 시간 클러스터링 모델 기반의 기계 고장 진단 시스템
CN116112265A (zh) * 2023-02-13 2023-05-12 山东云天安全技术有限公司 一种异常会话的确定方法、电子设备及存储介质
CN116112265B (zh) * 2023-02-13 2023-07-28 山东云天安全技术有限公司 一种异常会话的确定方法、电子设备及存储介质

Also Published As

Publication number Publication date
JP2019061647A (ja) 2019-04-18
JP6608981B2 (ja) 2019-11-20
US20190095301A1 (en) 2019-03-28

Similar Documents

Publication Publication Date Title
KR101880907B1 (ko) 비정상 세션 감지 방법
KR101880901B1 (ko) 기계 학습 방법 및 장치
US11875268B2 (en) Object recognition with reduced neural network weight precision
CN110929622B (zh) 视频分类方法、模型训练方法、装置、设备及存储介质
US20210390397A1 (en) Method, machine-readable medium and system to parameterize semantic concepts in a multi-dimensional vector space and to perform classification, predictive, and other machine learning and ai algorithms thereon
Li et al. Deep independently recurrent neural network (indrnn)
CN116415654A (zh) 一种数据处理方法及相关设备
AU2021354030B2 (en) Processing images using self-attention based neural networks
KR102011788B1 (ko) 계층적 시각 특징을 이용한 시각 질의 응답 장치 및 방법
CN114418030B (zh) 图像分类方法、图像分类模型的训练方法及装置
CN111782840A (zh) 图像问答方法、装置、计算机设备和介质
CN111368656A (zh) 一种视频内容描述方法和视频内容描述装置
CN111428854A (zh) 一种结构搜索方法及结构搜索装置
CN114021696A (zh) 用于高保真图像变换的条件轴向变换层
CN112115744A (zh) 点云数据的处理方法及装置、计算机存储介质、电子设备
JP2022537542A (ja) 動的な画像解像度評価
CN114328943A (zh) 基于知识图谱的问题回答方法、装置、设备及存储介质
CN113158970B (zh) 一种基于快慢双流图卷积神经网络的动作识别方法与系统
CN112183669B (zh) 图像分类方法和装置、设备及存储介质
KR20230092371A (ko) 공진화 신경 상미분 방정식 기반의 인공지능 신경망 장치 및 방법
CN113674383A (zh) 生成文本图像的方法及装置
WO2023231796A1 (zh) 一种视觉任务处理方法及其相关设备
CN115631524A (zh) 训练年龄检测模型的方法、年龄检测方法及相关装置
CN117671680A (zh) 基于图像的生成方法、装置、设备及介质
CN117828407A (zh) 双向跳跃存储的双阶段门控注意力时序分类方法及系统

Legal Events

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