KR102032249B1 - 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치 - Google Patents

딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치 Download PDF

Info

Publication number
KR102032249B1
KR102032249B1 KR1020180088477A KR20180088477A KR102032249B1 KR 102032249 B1 KR102032249 B1 KR 102032249B1 KR 1020180088477 A KR1020180088477 A KR 1020180088477A KR 20180088477 A KR20180088477 A KR 20180088477A KR 102032249 B1 KR102032249 B1 KR 102032249B1
Authority
KR
South Korea
Prior art keywords
traffic
malicious traffic
data
malicious
learning
Prior art date
Application number
KR1020180088477A
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 KR1020180088477A priority Critical patent/KR102032249B1/ko
Application granted granted Critical
Publication of KR102032249B1 publication Critical patent/KR102032249B1/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
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

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

Abstract

딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치가 제시된다. 본 발명에서 제안하는 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치는 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 데이터 수집 모듈, 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 전처리 모듈, 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 병합 모듈, 생성된 최종 데이터를 학습하고 학습된 모델을 생성하는 학습 모듈 및 생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 테스트 모듈을 포함한다.

Description

딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치{Method and Apparatus for Seed based Malicious Traffic Detection using Deep-Learning}
본 발명은 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치에 관한 것이다.
오늘날의 네트워크가 급속하게 성장하고 네트워크 기능이 다양한 응용 및 서비스 개발에서 중요한 요소로 자리 잡고 있다. 동시에 네트워크 환경을 위협하는 다양한 악성 트래픽(Traffic)이 발생하고 있다. 이러한 악성 트래픽은 네트워크 환경에 막대한 피해를 입히므로 악성 트래픽 탐지 연구는 필수 불가결하다. 기존에 악성 트래픽 탐지에 대한 연구가 진행되었으나 정확한 탐지에 있어 한계점을 지닌다.
시드기반 악성 트래픽 탐지는 정상 트래픽과 악성 트래픽이 섞여 있는 혼합 트래픽 세트의 트래픽 플로우들 중 한 플로우가 확실하게 악성 트래픽 플로우라는 것을 알고 있다는 가정을 한다. 그리고 이 플로우를 시드라고 정의한다. 시드로부터 정상 트래픽과 악성 트래픽이 섞인 혼합 트래픽 세트의 트래픽 플로우들과의 연결성을 계산하고 이를 통해 혼합 트래픽 세트로부터 시드와 관련 있는 다른 악성 트래픽을 탐지한다.
첫 번째 단계에서 탐지한 플로우들을 시드와 합쳐 악성 트래픽 세트를 생성하고 악성 트래픽 세트의 모든 플로우와 혼합 트래픽 세트의 모든 플로우들 간 연결성을 계산하여 악성 트래픽 플로우를 탐지한다. 이 과정을 더 이상 탐지할 수 있는 악성 트래픽 플로우가 없을 때까지 반복한다.
위에서 언급한 시드기반 악성 트래픽 탐지의 개념과 시드와 다른 트래픽 플로우와의 연관성을 계산하는 특정 수식을 통해 악성 트래픽을 탐지하는 방법을 제안하였다. 악성 트래픽을 플로우 형태로 변환하고 이 중 한 플로우에서 5-튜플(tuple)(Source IP, Destination IP, Source Port, Destination Port, Protocol)과 플로우의 발생 시간인 스타트 타임(Start time)을 추출하고 이를 시드라고 정의하고 시드의 정보와 주어진 트래픽 세트의 다른 플로우의 정보를 가지고 유사성 및 연결성을 특정 수식을 통하여 계산하고 계산된 값이 일정 임계값을 넘으면 그룹핑한다. 그리고 이를 연속적으로 반복하여 악성 트래픽을 탐지한다. 하지만 연결성을 계산하는 과정의 가중치 조절이 정교하지 못하여 악성 트래픽 플로우가 가진 다양한 특성을 모두 반영하기 힘들고 가중치를 조절하는 과정이 무차별 공격(Brute-Force)하여 큰 시간-복잡도를 가진다. 기존 모델의 한계점 극복을 위하여 딥-러닝을 이용한 연결성 계산하는 방법을 제안하였고 기존의 탐지 모델과의 실험 결과 비교를 통해 시드기반 악성 트래픽 탐지에 딥-러닝 방법을 적용하는 것이 적절하다.
본 발명에서는 보다 높은 정확도 및 악성 트래픽 탐지 커버리지 개선을 위하여 딥-러닝을 이용한 시드 기반 연속적 그룹핑을 통해 악성 트래픽을 탐지하는 방법을 제안한다.
본 발명이 이루고자 하는 기술적 과제는 악성 트래픽이 네트워크 환경에 막대한 피해를 입히는 것을 줄이고, 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치를 제안하며, 악성 트래픽 탐지 실험 결과를 통해 기존 악성 트래픽 탐지 모델과 비교하고 평가한다.
일 측면에 있어서, 본 발명에서 제안하는 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치는 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 데이터 수집 모듈, 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 전처리 모듈, 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 병합 모듈, 생성된 최종 데이터를 학습하고 학습된 모델을 생성하는 학습 모듈 및 생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 테스트 모듈을 포함한다.
상기 데이터 수집 모듈은 정상 트래픽과 악성 트래픽을 수집하고, 정상 트래픽은 개인 PC를 통해 네트워크 기능을 사용하는 응용 프로그램 및 응용 서비스를 실행하고, 실행된 응용 프로그램 및 응용 서비스로부터 발생하는 네트워크 트래픽을 와이어 샤크(Wireshark)를 통해 수집하고,
악성 트래픽은 악성 트래픽 분석 사이트로부터 악성 트래픽 파일을 다운로드하여 수집하고, 수집된 정상 트래픽 및 악성 트래픽은 학습에 적합한 형태로 변환하기 위해 패킷 정보를 추출하여 .pkt(Packet) 파일을 생성하고, .pkt 파일이 포함하는 패킷들을 모아 플로우 형태로 변환하여 .fwp(flow with packet) 파일을 생성하고, .fwp 확장자를 가진 파일로부터 특징을 추출하고 플로우 데이터를 이용하여 .csv 파일을 생성한다.
상기 전처리 모듈은 데이터 수집 모듈에서 생성된 플로우 데이터가 정상인지 악성인지 학습시키기 위해 각 플로우 데이터에 레이블링을 하고, 정상 트래픽 및 악성 트래픽의 발생 시간을 맞추기 위해 타이밍 쉬프팅을 수행한다.
상기 병합 모듈은 전처리 모듈에서 전처리된 정상 트래픽 플로우 데이터 및 악성 트래픽 플로우 데이터에 대하여 악성 트래픽 플로우 데이터와 관련 있는 악성트래픽 플로우는 분류하고 악성 트래픽 플로우와 관련 없는 정상 트래픽 플로우를 분류하지 않게 학습시키기기 위해 정상 데이터 및 악성 데이터를 병합한다.
상기 학습 모듈은 학습 과정을 반복하여 탐지에 적절하게 가중치와 바이어스 값을 학습하고, 학습을 마친 모델의 가중치와 바이어스 값들이 ckpt 확장자를 가지는 파일로 저장되어 학습 모델을 생성하고, 생성된 학습 모델을 통해 병합된 트래픽 플로우 데이터를 학습하고 최종적으로 학습된 모델을 생성한다.
상기 테스트 모듈은 학습 모듈에서 생성된 학습 모델에 시드와 타겟 플로우가 병합된 데이터를 입력하고 정상 트래픽 그룹과 악성 트래픽 그룹을 도출하고, 그룹핑된 결과를 통해 탐지 결과를 도출한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법은 데이터 수집 모듈을 통해 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 단계, 전처리 모듈을 통해 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 단계, 병합 모듈을 통해 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 단계, 학습 모듈을 통해 생성된 최종 데이터를 학습하고 학습된 모델을 생성하는 단계 및 테스트 모듈을 통해 생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 단계를 포함한다.
본 발명의 실시예들에 따르면 딥-러닝을 이용하여 시드 기반 악성 트래픽을 연속적으로 그룹핑하는 방법을 제안하고, 이를 통해 기존 모델의 탐지 방법보다 탐지 커버리지에서 좋은 결과를 나타내는 것을 확인하였으며, 딥-러닝을 이용한 연속적 그룹핑 모델이 기존 모델보다 악성 트래픽 탐지에 적합함을 확인하였다.
도 1은 본 발명의 일 실시예에 따른 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치의 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터 수집 모듈을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 전처리 모듈을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 레이블링된 플로우 데이터의 구조를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 IP 조소가 스케일링된 플로우 데이터의 구조를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 타임 쉬프팅 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 병합 모듈을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 병합된 트래픽 플로우 데이터의 구조를 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 병합 과정의 레이블링의 예시를 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 학습 모듈을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 학습 모델의 간략한 구조를 나타내는 도면이다.
도 12는 본 발명의 일 실시예에 따른 학습 과정에서 히든 레이어 내 계산 과정을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시예에 따른 학습 과정에서 출력 레이어 내 계산 과정을 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시예에 따른 테스트 모듈을 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예에 따른 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법을 설명하기 위한 흐름도이다.
시드(seed) 기반 악성 트래픽 탐지는 정상 트래픽과 악성 트래픽이 섞여 있는 혼합 트래픽 세트(Mixed Traffic set)의 트래픽 플로우(Traffic Flow)들 중 한 플로우(Flow)가 확실하게 악성 트래픽 플로우라는 것을 알고 있다는 가정을 한다. 그리고 이러한 플로우를 시드라고 정의한다. 시드로부터 정상 트래픽과 악성 트래픽이 섞인 혼합 트래픽 세트의 트래픽 플로우들과의 연결성을 계산하고 이를 통해 혼합 트래픽 세트로부터 시드와 관련 있는 다른 악성 트래픽을 탐지한다.
첫 번째 단계에서 탐지한 플로우들을 시드와 합쳐 악성 트래픽 세트(Malicious Traffic Set)를 생성하고 악성 트래픽 세트(Malicious Traffic Set)의 모든 플로우들과 혼합된 트래픽 세트 혼합 트래픽 세트의 모든 플로우들 간 연결성을 계산하여 악성 를 탐지한다. 이 과정을 더 이상 탐지할 수 있는 악성 트래픽 플로우가 없을 때까지 반복한다.
종래기술에서는 위에서 언급한 시드 기반 악성 트래픽 탐지의 개념과 시드와 다른 트래픽 플로우와의 연관성을 계산하는 특정 수식을 통해 악성 트래픽을 탐지하는 방법을 제안하였다. 악성 트래픽을 플로우 형태로 변환하고, 이 중 한 플로우에서 5-튜플(tuple)(Source IP, Destination IP, Source Port, Destination Port, Protocol)과 플로우의 발생 시간인 스타트 타임을 추출하고 이를 시드라고 정의한다.
시드의 정보와 주어진 트래픽 세트의 다른 플로우의 정보를 가지고 유사성 및 연결성을 특정 수식을 통하여 계산하고, 계산된 값이 일정 임계값을 넘으면 그룹핑한다. 그리고 이를 연속적으로 반복하여 악성 Traffic을 탐지한다. 하지만 연결성을 계산하는 과정의 가중치 조절이 정교하지 못하여 악성 트래픽 플로우가 가진 다양한 특성을 모두 반영하기 힘들고 가중치를 조절하는 과정이 무차별 공격(Brute-Force)하여 큰 시간-복잡도를 가진다. 기존 모델의 한계점 극복을 위하여 종래 기술에서는 딥-러닝을 이용한 연결성 계산하는 방법을 제안하였고 기존의 탐지 모델과의 실험 결과 비교를 통해 시드 기반 악성 트래픽 탐지에 딥-러닝 방법을 적용하는 것이 적절함을 증명하였다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치의 구성을 나타내는 도면이다.
제안하는 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치(100)는 데이터 수집 모듈(110), 전처리 모듈(120), 병합 모듈(130), 학습 모듈(140), 테스트 모듈(150)을 포함한다.
데이터 수집 모듈(110)은 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출한다.
데이터 수집 모듈(110)은 정상 트래픽과 악성 트래픽을 수집하고, 정상 트래픽은 개인 PC를 통해 네트워크 기능을 사용하는 응용 프로그램 및 응용 서비스를 실행하고, 실행된 응용 프로그램 및 응용 서비스로부터 발생하는 네트워크 트래픽을 와이어 샤크(Wireshark)를 통해 수집한다.
악성 트래픽은 악성 트래픽 분석 사이트로부터 악성 트래픽 파일을 다운로드하여 수집한다. 수집된 정상 트래픽 및 악성 트래픽은 학습에 적합한 형태로 변환하기 위해 패킷 정보를 추출하여 .pkt(Packet) 파일을 생성하고, .pkt 파일이 포함하는 패킷들을 모아 플로우 형태로 변환하여 .fwp(flow with packet) 파일을 생성한다. .fwp 확장자를 가진 파일로부터 특징을 추출하고 플로우 데이터를 이용하여 .csv 파일을 생성한다.
전처리 모듈(120)은 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행한다. 전처리 모듈(120)은 데이터 수집 모듈에서 생성된 플로우 데이터가 정상인지 악성인지 학습시키기 위해 각 플로우 데이터에 레이블링을 하고, 정상 트래픽(121) 및 악성 트래픽(122)의 발생 시간을 맞추기 위해 타이밍 쉬프팅을 수행한다.
병합 모듈(130)은 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성한다. 상기 병합 모듈(130)은 전처리 모듈에서 전처리된 정상 트래픽 플로우 데이터 및 악성 트래픽 플로우 데이터에 대하여 악성 트래픽 플로우 데이터와 관련 있는 악성트래픽 플로우는 분류하고 악성 트래픽 플로우와 관련 없는 정상 트래픽 플로우를 분류하지 않게 학습시키기기 위해 정상 데이터 및 악성 데이터를 병합한다.
학습 모듈(140)은 생성된 최종 데이터를 학습하고 학습된 모델을 생성한다. 학습 모듈(140)은 학습 과정을 반복하여 탐지에 적절하게 가중치와 바이어스 값을 학습하고, 학습을 마친 모델의 가중치와 바이어스 값들이 ckpt 확장자를 가지는 파일로 저장되어 학습 모델을 생성한다. 생성된 학습 모델을 통해 병합된 트래픽 플로우 데이터를 학습하고 최종적으로 학습된 모델을 생성한다.
테스트 모듈(150)은 생성된 최종 데이터를 테스트하고 탐지 결과를 도출한다. 테스트 모듈(150)은 학습 모듈에서 생성된 학습 모델에 시드와 타겟 플로우가 병합된 데이터를 입력하고 정상 트래픽 그룹과 악성 트래픽 그룹을 도출하고, 그룹핑된 결과를 통해 탐지 결과를 도출한다.
도 2는 본 발명의 일 실시예에 따른 데이터 수집 모듈을 설명하기 위한 도면이다.
데이터 수집 모듈은 정상 트래픽과 악성 트래픽을 수집한다. 정상 트래픽(221)은 실험에 사용하는 개인 PC를 통해 네트워크 기능을 사용하는 다양한 응용 프로그램 및 응용 서비스를 실행하고, 실행된 응용 프로그램 및 응용 서비스로부터 발생하는 네트워크 트래픽을 와이어 샤크(Wireshark)(211)를 통해 수집한다.
악성 트래픽(222)은 악성 트래픽 분석 웹사이트(212)로부터 악성 트래픽(222) 파일을 다운로드하여 수집한다. 수집된 정상 트래픽(221) 및 악성 트래픽(222)은 .pcap 확장자(231)를 가진 파일이며 이를 학습에 적합하게 변환과정을 거친다. 먼저 패킷(Packet)(232)의 정보를 추출하여 .pkt 파일을 생성한다. 이 .pkt파일이 포함하는 패킷들 중 5-튜플(tuple)(Source IP address, Destination IP address, Source Port, Destination Port, Protocol)과 같은 패킷을 모아 플로우의 형태로 변환하고 .fwp (flow with packet) 파일을 생성한다. 정상 트래픽(241) 및 악성 트래픽(242)은 추출 모듈(250)을 통해 이렇게 생성된 .fwp 확장자를 가진 파일로부터 5-튜플 정보와 플로우의 시작 곧 첫 패킷의 발생시간 정보인 스타트-타임(Start-time) 총 6개의 특징를 추출한다. 이후 정상 트래픽(261) 및 악성 트래픽(262)은 추출된 플로우 데이터를 가지고 .csv 파일을 생성하여 전처리 모듈(270)로 전송된다.
도 3은 본 발명의 일 실시예에 따른 전처리 모듈을 설명하기 위한 도면이다.
전-처리 모듈에서는 데이터 수집 모듈(310)에서 추출된 트래픽 플로우 데이터를 입력으로 받아 학습에 적절하도록 전-처리한다.
먼저 플로우 데이터가 정상 트래픽(321)인지 악성 트래픽(322)인지 학습시키기 위해 각 플로우 데이터에 레이블링(Labeling)(331)을 한다. 정상 플로우 데이터의 경우 0으로 레이블링하며 악성 플로우 데이터의 경우 1로 레이블링 한다.
도 4는 본 발명의 일 실시예에 따른 레이블링된 플로우 데이터의 구조를 나타내는 도면이다.
도 4(a)는 레이블링된 트래픽 플로우 데이터의 구조이고, 도 4(b)는 정상 트래픽 플로우 데이터 및 도 4(c)는 악성 트래픽 플로우 데이터의 예시를 보여준다.
데이터 레이블링 단계에서 생성된 플로우 데이터는 레이블 값을 포함하여 7개의 특징을 가진다.
IP 스케일링(Scaling)(332) 단계에서는 레이블링된 정상 트래픽 플로우 및 악성 트래픽 플로우 데이터의 IP 정보인 8비트 주소 4개 총 32비트 데이터를 4개의 8비트 데이터로 나눈다. 이 과정을 거친 데이터의 구조는 도 5와 같다.
도 5는 본 발명의 일 실시예에 따른 IP 조소가 스케일링된 플로우 데이터의 구조를 나타내는 도면이다.
도 5(a)는 스케일링된 트래픽 플로우 데이터의 구조이고, 도 5(b)는 정상 트래픽 플로우 데이터 및 도 5(c)는 악성 트래픽 플로우 데이터의 예시를 보여준다.
IP 스케일링 단계에서 생성된 트래픽 플로우 데이터는 스타트 타임(Start-Time)(1), 소스 IP 주소(Source IP Address)(4), 목적 IP 주소(Destination IP Address)(4), 소스 포트(Source Port)(1), 목적 포트(Destination Port)(1), 프로토콜(Protocol)(1), 레이블(Label)(1) 총 13개의 특징를 가진다.
만약 동 시간대에 발생하지 않은 데이터를 학습시킨다면 학습하는 과정에서 스타트 타임에 편향된 가중치 값과 바이어스 값을 할당하게 되고 이 결과는 악성 트래픽과 정상 트래픽 간 명확히 구별된 특성을 통해 탐지했다고 말하기 힘들다. 그렇기 때문에 정상 및 악성 트래픽을 수집할 때 동시간대에 발생한 트래픽 세트를 수집하는 것이 정확한 악성 트래픽 탐지를 함에 있어 중요하다. 하지만 과거에 발생했던 정상 트래픽과 악성 트래픽이 섞여 있는 트래픽 데이터 세트를 수집하기 힘들다는 한계점이 있기에 본 발명에서는 악성 트래픽을 수집할 때 악성 트래픽 분석 웹사이트에서 다운로드를 받는다. 다운로드를 받은 악성 트래픽은 이전 과거에 발생했던 데이터이기 때문에 수집한 정상 트래픽과의 발생 시간과의 차이가 생긴다. 정확한 학습과 탐지를 위하여 타임 쉬프팅(Time Shifting)(333)을 수행하며 이 단계는 정상 및 악성 트래픽의 발생 시간을 맞춰주는 과정이다. 예를 들어 악성 트래픽은 2015년에 발생했던 랜섬웨어 트래픽(Ransomware Traffic)을 다운로드 하고 정상 트래픽은 2018년도에 수집을 하였다면 이는 3년이라는 발생시간 차이를 가지게 된다. 따라서 이 두 트래픽이 동일한 시간에 발생했다고 가정하고 실험하기 어렵기에 이를 동일한 시간대에서 발생한 것처럼 스타트 타임을 임의로 수정하며 악성 트래픽 및 정상 트래픽을 모두 1970년 1월 1일에 발생한 것처럼 스타트 타임을 수정한다. 이 과정을 통해 정상 트래픽과 악성 트래픽이 동일한 시간대에 발생을 하였다고 가정하고 실험할 수 있다. 이 과정은 도 6에 간략히 나타나 있다.
도 6은 본 발명의 일 실시예에 따른 타임 쉬프팅 과정을 설명하기 위한 도면이다.
도 6(a)는 타임 쉬프팅 전 정상 트래픽 및 악성 트래픽의 분포를 나타내며 악성 트래픽의 발생 시간과 정상 트래픽의 발생시간이 겹치지 않아 같은 시간대에 발생했다고 가정하기 어렵다.
도 6(b)는 타임 쉬프팅 이후 정상 트래픽 및 악성 트래픽의 분포를 나타내며 악성 트래픽의 발생 시간과 정상 트래픽의 발생시간이 동일한 시간대에 있어 같은 시간대에 발생한 트래픽이라고 가정하고 실험이 가능하다.
마지막 정규화(Normalizing)(334) 단계는 학습에 적절하도록 트리팩 플로우 데이터를 정규화하는 과정이다. 정규화 함수로는 수학식 (1)을 이용하며 모든 데이터의 값이 0~1 범위에 존재하도록 한다.
Figure 112018075095874-pat00001
수학식(1)
이렇게 전처리된 정상 트래픽(341) 및 전처리된 악성 트래픽(342)은 병합 모듈(350)로 전송된다.
도 7은 본 발명의 일 실시예에 따른 병합 모듈을 설명하기 위한 도면이다.
데이터 병합 모듈에서는 전처리 모듈(710)에서 전처리된 정상 트래픽 플로우 데이터(721) 및 악성 트래픽 플로우 데이터(722)를 병합(730)하여 학습 모델에 넣을 병합 데이터(740)를 생성하며 이를 테스트 모듈(750)로 전송한다.
정상 및 악성 데이터의 병합은 악성 트래픽 플로우와 관련 있는 악성 트래픽 플로우는 분류하고 악성 트래픽 플로우와 관련 없는 정상 트래픽 플로우들을 분류하지 않게 학습시키기 위함이다. 병합된 트래픽 플로우 데이터는 소스 플로우 데이터와 타겟 플로우 데이터 두 개가 합쳐진 형태이며 각각이 포함하는 원소는 수학식 2와 같다.
Figure 112018075095874-pat00002
수학식(2)
악성 트래픽 플로우와 타겟 플로우의 연결성을 계산하여 정상인지 비정상인지 구별을 위해 수학식2에서 나타낸 것처럼 소스 플로우는 악성 트래픽 플로우만을 가지고 타겟 플로우는 정상 및 악성 트래픽 플로우를 모두 가지며 이를 통해 시드 기반 악성 트래픽 탐지의 개념을 구현한다.
각각의 소스 플로우 데이터와 플로우 데이터를 병합하여 최종적으로 학습 모델에 입력될 병합된 플로우 데이터를 생성하며 병합된 플로우 데이터의 구조는 도 8과 같다.
도 8은 본 발명의 일 실시예에 따른 병합된 트래픽 플로우 데이터의 구조를 나타내는 도면이다.
또한, 소스 플로우 데이터와 타겟 플로우 데이터를 병합할 때 정상 및 악성 트래픽 데이터의 라벨 값에 따라 새롭게 레이블링을 한다. 모든 소스 플로우 데이터는 악성 트래픽 플로우이기 때문에 1로 레이블링되어 있으며 타겟 플로우 데이터의 레이블에 따라 새롭게 레이블링된다. 타겟 플로우 데이터의 레이블 값이 0, 곧 정상 트래픽 플로우라면 0으로 레이블링하고 이는 악성 트래픽 플로우와 연관이 없는 정상 트래픽 플로우를 탐지하지 않도록 학습시킨다는 의미이다. 반대로 타겟 플로우 데이터의 레이블 값이 1, 곧 악성 트래픽 플로우라면 1로 레이블링하고 이는 악성 트래픽 플로우와 연관이 있는 악성 트래픽 플로우를 탐지하도록 학습시킨다는 의미이다. 이 과정은 도 9에 간략하게 나타나 있다.
도 9는 본 발명의 일 실시예에 따른 병합 과정의 레이블링의 예시를 나타내는 도면이다.
플로우 데이터 병합단계를 거친 데이터는 레이블 값이 삭제된 소스 플로우 데이터(12), 타겟 플로우 데이터(12), 새롭게 레이블링된 값(1) 총 25개의 특징을 가진다.
도 10은 본 발명의 일 실시예에 따른 학습 모듈을 설명하기 위한 도면이다.
학습 모듈(1030)은 병합 모듈(1010)로부터 모든 처리 과정을 마친 병합된 트래픽 데이터(1020)를 학습하고 탐지에 사용할 학습된 모델을 생성하여 테스트 모듈(1040)로 전송한다. 학습 모듈로는 멀티-레이어 로직 레그레이션(Multi-Layer Logistic Regression)을 사용하며 입력 레이어(Input Layer), 3개의 히든 레이어(Hidden Layer) 그리고 출력 레이어(Output Layer)로 구성되고 활성 함수로는 시그모이드 펑션(Sigmoid Function), 비용(Cost) 최소화 알고리즘으로 그레이디언트 디센트 알고리즘(Gradient Descent Algorithm)을 사용한다. 간략한 학습 모델의 구조는 도 11에 나타나 있다.
도 11은 본 발명의 일 실시예에 따른 학습 모델의 간략한 구조를 나타내는 도면이다.
전처리와 병합 과정을 거친 트래픽 플로우 데이터를 학습할 때 총 25개의 데이터 중 X 배열에 24개의 값이 할당되고 레이블 값은 Y에 할당된다. 먼저 24개의 특징을 가진 X 배열은 24 X 24 랜덤 가변 행렬(Random Variable Matrix) 곧 가중치 행렬(Matrix of Weights)과 행렬을 곱하여 크기 24의 배열을 생성한다. 여기에 랜덥 가변 어레이(Random Variable Array) 곧 크기가 24인 바이어스(Bias)를 더하고 24개 각각의 원소를 시그모이드(Sigmoid) 함수의 입력으로 넣어 결과적으로 크기가 24인 배열을 생성한다. 시그모이드(Sigmoid) 함수는 수학식 (3)과 같다.
Figure 112018075095874-pat00003
수학식(3)
사용한 모델은 3개의 히든 레이어로 구성되어 있으며 따라서 3번의 과정을 반복하고 결과적으로 크기가 24인 배열을 생성한다. 레이어 내 전체적인 계산 과정은 도 12에 나타나 있다.
도 12는 본 발명의 일 실시예에 따른 학습 과정에서 히든 레이어 내 계산 과정을 설명하기 위한 도면이다.
3번의 레이어를 거쳐 계산되고 크기가 24인 배열을 결과물로 도출한다. 전 단계에서 생성된 24개의 값을 가진 배열을 24 X 1 크기의 랜덤 가변 행렬과 행렬 곱셈을 하고 결과물로 한 개의 값을 도출한다. 이 값에 랜덤 바이어스 값을 더하고 시그모이드 함수로 계산하면 최종 출력 값이 도출된다. 출력 레이어에서의 계산 과정은 도 13와 같다.
도 13은 본 발명의 일 실시예에 따른 학습 과정에서 출력 레이어 내 계산 과정을 설명하기 위한 도면이다.
24 크기의 입력 값을 통해 1개의 출력 값을 계산하고 이 값이 0.5보다 크면 예측 값을 1로 올림하고 반대로 0.5보다 작으면 예측 값을 0으로 내림한다. 다음으로 예측된 값을 원래 데이터가 지닌 레이블 값과 비교하고 두 값의 오차를 계산한다. 오차를 계산하는 수식은 수학식(4)와 같다.
Figure 112018075095874-pat00004
수학식(4)
마지막으로 그레이디언트 디센트 알고리즘(Gradient Descent Algorithm)을 이용해 비용을 줄여나간다. 이러한 과정을 반복하여 탐지에 적절하게 가중치와 바이어스 값을 학습하고 적절한 이터레이션(Iteration)을 반복한 후에 학습을 종료한다. 학습을 마친 모델의 가중치 및 바이어스 값들이 .ckpt 확장자를 가지는 파일로 저장되며 이는 곧 학습된 모델이다. 이 모델을 통해 병합된 트래픽 플로우 데이터를 학습하고 최종적으로 학습된 모델을 생성한다. 생성된 모델은 테스트 단계에서 사용된다.
도 14는 본 발명의 일 실시예에 따른 테스트 모듈을 설명하기 위한 도면이다.
테스트 모듈(1410)은 병합 모듈(1410)에서 병합된 데이터를 테스트하고 정상 트래픽 그룹(1431) 및 악성 트래픽 그룹(1432)으로 탐지된 결과를 도출한다.
병합 모듈(1410)에서 소스 플로우를 구성하는 원소는 악성 트래픽 플로우들 중 한 개만을 선택한다. 이는 수학식(5)에 나타나 있다.
Figure 112018075095874-pat00005
수학식(5)
이 플로우 데이터는 시드라고 지칭하며 이 시드를 통해 다른 플로우 데이터와의 연관성을 분석하고 연속적으로 악성 트래픽 플로우를 탐지한다.
테스트 모듈에서는 학습 시스템에서 생성된 학습 모델에 시드와 타겟 플로우가 병합된 데이터를 입력하고 정상 트래픽 그룹과 악성 트래픽 그룹을 도출한다. 그리고 그룹핑된 결과를 통해 탐지 결과를 도출한다.
첫 번째 단계에서는 시드와 타겟 플로우들이 병합된 데이터를 입력받고 시드와 연관 있는 트래픽 플로우들을 탐지한다. 탐지된 플로우는 정상 및 악성 트래픽이 섞여있는 혼합 트랙픽 그룹으로부터 시드 트래픽 그룹로 이동한다. 이 때 시드 트래픽 그룹은 하나 이상의 악성 트래픽 플로우를 가지게 되므로 악성 트래픽 그룹이라고 지칭한다.
두 번째 단계부터 악성 트래픽 그룹의 소스 플로우와 혼합 트래픽 그룹의 타겟 플로우를 병합하여 학습된 모델에 입력하고 탐지된 트래픽 플로우를 악성 트래픽 그룹에 추가한다. 단, 두 번째 단계부터는 소스 플로우를 구성하는 트래픽 플로우가 한 개 이상이다. 따라서 소스 플로우를 구성하는 트래픽들 중 한 트래픽 플로우와 타겟 플로우와 병합했을 때 해당 타겟 플로우가 정상 트래픽 플로우라고 판단하고 다른 한 트래픽 플로우와 타겟 플로우와 병합했을 때 위에서 정상이라고 판단했던 트래픽 플로우에 대하여 악성이라고 탐지할 수 있다는 문제점이 생긴다. 이 문제의 명확한 해결을 위하여 소스 플로우를 구성하는 트래픽 플로우 중 과반 수 이상이 해당 타겟 플로우에 대하여 악성이라고 탐지하였을 때 타겟 플로우를 악성 트래픽이라고 판단하고 악성 트래픽 그룹에 추가하고 반대로 과반을 넘지 못할 경우는 혼합 트래픽 그룹에 남겨둔다. 이 과정을 더 이상 탐지할 플로우가 없을 때까지 반복하고 최종적으로 탐지한 악성 트래픽 그룹과 악성 트래픽 플로우 트래픽 플로우가 제외된 정상 트래픽 그룹을 생성한다.
도 15는 본 발명의 일 실시예에 따른 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법을 설명하기 위한 흐름도이다.
제안하는 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법은 데이터 수집 모듈을 통해 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 단계(1510), 전처리 모듈을 통해 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 단계(1520), 병합 모듈을 통해 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 단계(1530), 학습 모듈을 통해 생성된 최종 데이터를 학습하고 학습된 모델을 생성하는 단계(1540) 및 테스트 모듈을 통해 생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 단계(1550)를 포함한다.
단계(1510)에서, 데이터 수집 모듈을 통해 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출한다.
정상 트래픽과 악성 트래픽을 수집하고, 정상 트래픽은 개인 PC를 통해 네트워크 기능을 사용하는 응용 프로그램 및 응용 서비스를 실행하고, 실행된 응용 프로그램 및 응용 서비스로부터 발생하는 네트워크 트래픽을 와이어 샤크(Wireshark)를 통해 수집한다.
악성 트래픽은 악성 트래픽 분석 사이트로부터 악성 트래픽 파일을 다운로드하여 수집한다.
수집된 정상 트래픽 및 악성 트래픽은 학습에 적합한 형태로 변환하기 위해 패킷 정보를 추출하여 .pkt(Packet) 파일을 생성하고, .pkt 파일이 포함하는 패킷들을 모아 플로우 형태로 변환하여 .fwp(flow with packet) 파일을 생성하고, .fwp 확장자를 가진 파일로부터 특징을 추출하고 플로우 데이터를 이용하여 .csv 파일을 생성한다.
단계(1520)에서, 전처리 모듈을 통해 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행한다.
데이터 수집 모듈에서 생성된 플로우 데이터가 정상인지 악성인지 학습시키기 위해 각 플로우 데이터에 레이블링하고, 정상 트래픽 및 악성 트래픽의 발생 시간을 맞추기 위해 타이밍 쉬프팅을 수행한다.
단계(1530)에서, 병합 모듈을 통해 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성한다.
전처리 모듈에서 전처리된 정상 트래픽 플로우 데이터 및 악성 트래픽 플로우 데이터에 대하여 악성 트래픽 플로우 데이터와 관련 있는 악성트래픽 플로우는 분류하고 악성 트래픽 플로우와 관련 없는 정상 트래픽 플로우를 분류하지 않게 학습시키기기 위해 정상 데이터 및 악성 데이터를 병합한다.
단계(1540)에서, 학습 모듈을 통해 생성된 최종 데이터를 학습하고 학습된 모델을 생성한다.
학습 과정을 반복하여 탐지에 적절하게 가중치와 바이어스 값을 학습하고, 학습을 마친 모델의 가중치와 바이어스 값들이 ckpt 확장자를 가지는 파일로 저장되어 학습 모델을 생성하고, 생성된 학습 모델을 통해 병합된 트래픽 플로우 데이터를 학습하고 최종적으로 학습된 모델을 생성한다.
단계(1550)에서, 테스트 모듈을 통해 생성된 최종 데이터를 테스트하고 탐지 결과를 도출한다.
학습 모듈에서 생성된 학습 모델에 시드와 타겟 플로우가 병합된 데이터를 입력하고 정상 트래픽 그룹과 악성 트래픽 그룹을 도출하고, 그룹핑된 결과를 통해 탐지 결과를 도출한다.
제안하는 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치는 딥-러닝을 이용하여 시드 기반 악성 트래픽을 연속적으로 그룹핑하는 방법을 제안하고 실험하였다. 실험 결과를 통해 기존 모델의 탐지 방법보다 탐지 커버리지에서 좋은 결과를 나타내는 것을 확인하였으며 이를 통해 딥-러닝을 이용한 연속적 그룹핑 모델이 기존 모델보다 악성 트래픽 탐지에 적합함을 확인하였다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (12)

  1. 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 데이터 수집 모듈;
    생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 전처리 모듈;
    전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 병합 모듈;
    생성된 최종 데이터를 학습하고 학습된 모델을 생성하는 학습 모듈; 및
    생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 테스트 모듈
    을 포함하고,
    상기 테스트 모듈은,
    학습 모듈에서 생성된 학습 모델에 시드와 타겟 플로우가 병합된 데이터를 입력하고 정상 트래픽 그룹과 악성 트래픽 그룹을 도출하고, 그룹핑된 결과를 통해 탐지 결과를 도출하고,
    시드와 타겟 플로우가 병합된 데이터를 입력 받고 시드와 연관 있는 트래픽 플로우들을 탐지하여, 탐지된 트래픽 플로우는 정상 및 악성 트래픽이 섞여있는 혼합 트랙픽 그룹으로부터 시드 트래픽 그룹으로 이동하고,
    하나 이상의 악성 트래픽 플로우를 갖는 시드 트래픽 그룹을 악성 트래픽 그룹으로 지칭하고, 악성 트래픽 그룹의 소스 플로우와 혼합 트래픽 그룹의 타겟 플로우를 병합하여 학습된 모델에 입력하고 탐지된 트래픽 플로우를 악성 트래픽 그룹에 추가하고,
    소스 플로우를 구성하는 트래픽 플로우 중 과반 수 이상이 해당 타겟 플로우에 대하여 악성이라고 탐지하였을 때 타겟 플로우를 악성 트래픽이라고 판단하여 악성 트래픽 그룹에 추가하고, 더 이상 탐지할 플로우가 없을 때까지 반복하여 최종적으로 탐지한 악성 트래픽 그룹과 악성 트래픽 플로우 트래픽 플로우가 제외된 정상 트래픽 그룹을 생성하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치.
  2. 제1항에 있어서,
    상기 데이터 수집 모듈은,
    정상 트래픽과 악성 트래픽을 수집하고,
    정상 트래픽은 개인 PC를 통해 네트워크 기능을 사용하는 응용 프로그램 및 응용 서비스를 실행하고, 실행된 응용 프로그램 및 응용 서비스로부터 발생하는 네트워크 트래픽을 와이어 샤크(Wireshark)를 통해 수집하고,
    악성 트래픽은 악성 트래픽 분석 사이트로부터 악성 트래픽 파일을 다운로드하여 수집하고,
    수집된 정상 트래픽 및 악성 트래픽은 학습에 적합한 형태로 변환하기 위해 패킷 정보를 추출하여 .pkt(Packet) 파일을 생성하고, .pkt 파일이 포함하는 패킷들을 모아 플로우 형태로 변환하여 .fwp(flow with packet) 파일을 생성하고, .fwp 확장자를 가진 파일로부터 특징을 추출하고 플로우 데이터를 이용하여 .csv 파일을 생성하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치.
  3. 제1항에 있어서,
    상기 전처리 모듈은,
    데이터 수집 모듈에서 생성된 플로우 데이터가 정상인지 악성인지 학습시키기 위해 각 플로우 데이터에 레이블링을 하고,
    정상 트래픽 및 악성 트래픽의 발생 시간을 맞추기 위해 타이밍 쉬프팅을 수행하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치.
  4. 제1항에 있어서,
    상기 병합 모듈은,
    전처리 모듈에서 전처리된 정상 트래픽 플로우 데이터 및 악성 트래픽 플로우 데이터에 대하여 악성 트래픽 플로우 데이터와 관련 있는 악성트래픽 플로우는 분류하고 악성 트래픽 플로우와 관련 없는 정상 트래픽 플로우를 분류하지 않게 학습시키기기 위해 정상 데이터 및 악성 데이터를 병합하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 장치.
  5. 삭제
  6. 삭제
  7. 데이터 수집 모듈을 통해 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 단계;
    전처리 모듈을 통해 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 단계;
    병합 모듈을 통해 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 단계;
    학습 모듈을 통해 생성된 최종 데이터를 학습하고 학습된 모델을 생성하는 단계; 및
    테스트 모듈을 통해 생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 단계
    를 포함하고,
    테스트 모듈을 통해 생성된 최종 데이터를 테스트하고 탐지 결과를 도출하는 단계는,
    학습 모듈에서 생성된 학습 모델에 시드와 타겟 플로우가 병합된 데이터를 입력하고 정상 트래픽 그룹과 악성 트래픽 그룹을 도출하고, 그룹핑된 결과를 통해 탐지 결과를 도출하고,
    시드와 타겟 플로우가 병합된 데이터를 입력 받고 시드와 연관 있는 트래픽 플로우들을 탐지하여, 탐지된 트래픽 플로우는 정상 및 악성 트래픽이 섞여있는 혼합 트랙픽 그룹으로부터 시드 트래픽 그룹으로 이동하고,
    하나 이상의 악성 트래픽 플로우를 갖는 시드 트래픽 그룹을 악성 트래픽 그룹으로 지칭하고, 악성 트래픽 그룹의 소스 플로우와 혼합 트래픽 그룹의 타겟 플로우를 병합하여 학습된 모델에 입력하고 탐지된 트래픽 플로우를 악성 트래픽 그룹에 추가하고,
    소스 플로우를 구성하는 트래픽 플로우 중 과반 수 이상이 해당 타겟 플로우에 대하여 악성이라고 탐지하였을 때 타겟 플로우를 악성 트래픽이라고 판단하여 악성 트래픽 그룹에 추가하고, 더 이상 탐지할 플로우가 없을 때까지 반복하여 최종적으로 탐지한 악성 트래픽 그룹과 악성 트래픽 플로우 트래픽 플로우가 제외된 정상 트래픽 그룹을 생성하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법.
  8. 제7항에 있어서,
    상기 데이터 수집 모듈을 통해 정상 및 악성 트래픽을 수집하고 수집된 데이터를 변환하여 플로우 데이터를 생성하고 학습에 사용할 특징을 추출하는 단계는,
    정상 트래픽과 악성 트래픽을 수집하고,
    정상 트래픽은 개인 PC를 통해 네트워크 기능을 사용하는 응용 프로그램 및 응용 서비스를 실행하고, 실행된 응용 프로그램 및 응용 서비스로부터 발생하는 네트워크 트래픽을 와이어 샤크(Wireshark)를 통해 수집하고,
    악성 트래픽은 악성 트래픽 분석 사이트로부터 악성 트래픽 파일을 다운로드하여 수집하고,
    수집된 정상 트래픽 및 악성 트래픽은 학습에 적합한 형태로 변환하기 위해 패킷 정보를 추출하여 .pkt(Packet) 파일을 생성하고, .pkt 파일이 포함하는 패킷들을 모아 플로우 형태로 변환하여 .fwp(flow with packet) 파일을 생성하고, .fwp 확장자를 가진 파일로부터 특징을 추출하고 플로우 데이터를 이용하여 .csv 파일을 생성하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법.
  9. 제7항에 있어서,
    상기 전처리 모듈을 통해 생성된 플로우 데이터를 학습에 이용하기 위해 전처리를 수행하는 단계는,
    데이터 수집 모듈에서 생성된 플로우 데이터가 정상인지 악성인지 학습시키기 위해 각 플로우 데이터에 레이블링을 하고,
    정상 트래픽 및 악성 트래픽의 발생 시간을 맞추기 위해 타이밍 쉬프팅을 수행하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법.
  10. 제7항에 있어서,
    상기 병합 모듈을 통해 전처리된 플로우 데이터를 병합하여 학습 모델에 입력하기 위한 최종 데이터를 생성하는 단계는,
    전처리 모듈에서 전처리된 정상 트래픽 플로우 데이터 및 악성 트래픽 플로우 데이터에 대하여 악성 트래픽 플로우 데이터와 관련 있는 악성트래픽 플로우는 분류하고 악성 트래픽 플로우와 관련 없는 정상 트래픽 플로우를 분류하지 않게 학습시키기기 위해 정상 데이터 및 악성 데이터를 병합하는
    딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법.
  11. 삭제
  12. 삭제
KR1020180088477A 2018-07-30 2018-07-30 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치 KR102032249B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180088477A KR102032249B1 (ko) 2018-07-30 2018-07-30 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180088477A KR102032249B1 (ko) 2018-07-30 2018-07-30 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102032249B1 true KR102032249B1 (ko) 2019-10-15

Family

ID=68209547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180088477A KR102032249B1 (ko) 2018-07-30 2018-07-30 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102032249B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210103205A (ko) 2020-02-13 2021-08-23 한국전력공사 악성 코드 탐지 및 시각화 시스템 및 방법
CN113923026A (zh) * 2021-10-11 2022-01-11 广州大学 一种基于TextCNN的加密恶意流量检测模型及其构建方法
KR20220151050A (ko) 2021-05-04 2022-11-14 엘아이지넥스원 주식회사 네트워크 침입 탐지 시스템 및 네트워크 침입 탐지 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090079330A (ko) * 2008-01-17 2009-07-22 한남대학교 산학협력단 에스브이엠 침입 탐지 시스템 및 그 동작 방법
KR20140044979A (ko) * 2012-09-19 2014-04-16 한국전력공사 네트워크 서비스의 통신 패턴 추출 장치 및 방법
KR20160087187A (ko) * 2015-01-13 2016-07-21 한국전자통신연구원 사이버 블랙박스 시스템 및 그 방법
JP2018067304A (ja) * 2016-10-21 2018-04-26 ニューソフト コーポレーションNeusoft Corporation ネットワーク侵入検出方法及び装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090079330A (ko) * 2008-01-17 2009-07-22 한남대학교 산학협력단 에스브이엠 침입 탐지 시스템 및 그 동작 방법
KR20140044979A (ko) * 2012-09-19 2014-04-16 한국전력공사 네트워크 서비스의 통신 패턴 추출 장치 및 방법
KR20160087187A (ko) * 2015-01-13 2016-07-21 한국전자통신연구원 사이버 블랙박스 시스템 및 그 방법
JP2018067304A (ja) * 2016-10-21 2018-04-26 ニューソフト コーポレーションNeusoft Corporation ネットワーク侵入検出方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210103205A (ko) 2020-02-13 2021-08-23 한국전력공사 악성 코드 탐지 및 시각화 시스템 및 방법
KR20220151050A (ko) 2021-05-04 2022-11-14 엘아이지넥스원 주식회사 네트워크 침입 탐지 시스템 및 네트워크 침입 탐지 방법
CN113923026A (zh) * 2021-10-11 2022-01-11 广州大学 一种基于TextCNN的加密恶意流量检测模型及其构建方法

Similar Documents

Publication Publication Date Title
KR102032249B1 (ko) 딥 러닝을 이용한 시드기반 악성 트래픽 탐지 방법 및 장치
Bansal et al. A comparative analysis of machine learning techniques for botnet detection
CN108334781B (zh) 病毒检测方法、装置、计算机可读存储介质和计算机设备
CN108108622B (zh) 基于深度卷积网络和控制流图的漏洞检测***
Hu et al. GANFuzz: A GAN-based industrial network protocol fuzzing framework
CN110505241B (zh) 一种网络攻击面检测方法及***
Zhu et al. Network anomaly detection and identification based on deep learning methods
CN105205396A (zh) 一种基于深度学习的安卓恶意代码检测***及其方法
Lavrova et al. Applying correlation analysis methods to control flow violation detection in the internet of things
CN111931179B (zh) 基于深度学习的云端恶意程序检测***及方法
Yu et al. An encrypted malicious traffic detection system based on neural network
JP2023549284A (ja) 分散型テレメトリデータ分析によるマルウェア検出
More et al. Trust-based voting method for efficient malware detection
Lin et al. A comparative analysis of emulated and real iec-104 spontaneous traffic in power system networks
Sheffey et al. Improving meek with adversarial techniques
Farzaneh et al. DTL-IDS: Deep transfer learning-based intrusion detection system in 5G networks
CN110581857B (zh) 一种虚拟执行的恶意软件检测方法及***
CN108073803A (zh) 用于检测恶意应用的方法及装置
CN116208356B (zh) 一种基于深度学习的虚拟货币挖矿流量检测方法
CN114070708B (zh) 基于流量特征提取的虚拟网络功能资源消耗预测方法
KR20210073391A (ko) 머신러닝을 이용한 악성 트래픽 탐지 방법, 장치, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독가능한 기록매체
Li et al. Fast and accurate NoC latency estimation for application-specific traffics via machine learning
Fuentes Jr et al. Leak detection in water distribution networks via pressure analysis using a machine learning ensemble
US20220075871A1 (en) Detecting hacker tools by learning network signatures
US10769334B2 (en) Intelligent fail recognition

Legal Events

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