KR20230023136A - 주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법 - Google Patents

주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법 Download PDF

Info

Publication number
KR20230023136A
KR20230023136A KR1020210104942A KR20210104942A KR20230023136A KR 20230023136 A KR20230023136 A KR 20230023136A KR 1020210104942 A KR1020210104942 A KR 1020210104942A KR 20210104942 A KR20210104942 A KR 20210104942A KR 20230023136 A KR20230023136 A KR 20230023136A
Authority
KR
South Korea
Prior art keywords
attack
data
attack path
topology
generating
Prior art date
Application number
KR1020210104942A
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 KR1020210104942A priority Critical patent/KR20230023136A/ko
Priority to US17/882,090 priority patent/US20230047450A1/en
Publication of KR20230023136A publication Critical patent/KR20230023136A/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/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/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/09Supervised learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

주의 기반 사이버 공격 경로 추론 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 지능형 공격 그래프 생성에 필요한 시험 데이터를 생성하는 단계 및 지능형 공격 경로 예측 모델 기반 공격 그래프 생성 단계를 수행한다.

Description

주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법{Apparatus for Inferring Cyber Attack Route based on Attention, Apparatus and Method for Learning Intelligent Attack Route Prediction Model}
기재된 실시예는 컴퓨터 네트워크 시스템의 사이버 공격 노출점(Cyber attack surface)을 분석하는 기술에 관한 것이다.
공격 그래프는 조직의 자산정보 및 CVE(Common Vulnerabilities and Exposures) 데이터베이스를 이용해 공격자가 공격 목표 시스템에 다다르기 위해 이용할 수 있는 모든 공격 경로들을 찾아 시각적으로 표현한다.
최근에 해커들은 타겟에 대한 면밀한 조사와 체계적인 전략을 수립해 공격을 행한다. 반면, 대부분의 조직들은 급증하는 IT 기기에 대한 관리의 어려움으로 인해 이미 알려진 취약점에 대해서조차 적절한 조치를 취하지 않거나 부주의한 네트워크 및 보안 설정을 파악하지 못하는 등 체계적인 공격 대응 전략 수립에 어려움을 겪고 있다.
조직의 보안성 점검을 위해 사용되는 방법 중 하나인 취약점 스캐닝 도구는 네트워크를 기반으로 개별 호스트의 취약점 유무를 판단하고 발견된 취약점 리스트를 단편적으로 제공하는데 그친다. 하지만, 관리해야 할 호스트나 취약점이 많은 경우, 종래의 이러한 단순한 점검만으로는 보안 담당자들이 효과적인 대응 방법을 판단하기 어렵다.
반면, 공격 그래프는 공격 경로 상의 취약한 호스트나 위협적인 취약점을 식별할 수 있을 뿐 아니라 토폴로지에 기반한 위상 분석을 통해 공격 경로의 중심이 되는 요소들을 가시적으로 쉽게 확인할 수 있어 효율적이고 최적화된 대응 전략을 수립할 수 있도록 한다.
공격 그래프에 대한 대표적인 연구는 Sushil Jajodia와 Steven Noel에 의한 것으로 Exploit 및 Security Condition(취약점 등 공격자가 사용할 수 있는 정보)을 하나의 노드(Vertex)로 모델링하고, 각 노드에 대한 선조건(precondition)과 후조건(postcondition)을 기반으로 노드 간의 의존성(dependency)을 선(Edge)으로 연결한 공격 그래프를 생성하여 이들을 보안 조건(Security condition)의 나열로 표현함으로써 공격 경로를 도출했다. 또한, 공격자가 취약점이 있는 시스템에 접근해 또 다른 시스템을 거쳐 최종 목적지까지 도달하는데 있어 각 단계에 대한 상대적인 공격 난이도를 나타내는 확률적인 값을 계산하는데 Bayesian Network이나 Markov modeling등을 이용하기도 한다.
전술한 바와 같이 공격 그래프 자체로는 네트워크 호스트에 존재하는 취약점 및 위상 분석을 기반으로 공격자가 목적지까지 도달할 수 있는 확률을 제시함으로써 해당 조직의 보안 노출점을 파악하는데 유용하지만 적은 수의 호스트로 구성된 네트워크 상에서도 공격 가능 경로의 수가 무수히 많으며, 대규모의 공격 그래프가 생성되게 된다. 이로 인해 가시화된 그래프에서 얻을 수 있는 직관적인 정보 이외에 보다 효과적인 대응을 위한 상세 정보를 획득하는 것이 어려워진다는 문제점이 있다.
취약점 정보를 이용한 공격 그래프 생성은 정확하고 다양한 공격 경로를 분석할 수 있으나, 취약점 DB를 생성하고 유지하는데 비용과 노력, 시간이 많이 소요되는 문제점이 있다.
기재된 실시예는 머신러닝 기법을 활용하여 네트워크 시스템의 사이버 공격 노출점을 저비용으로 신속히 예측하도록 하는데 그 목적이 있다.
기재된 실시예는 취약점 DB를 생성하고 유지하는데 소요되는 비용, 인력 및 시간을 방지하는데 그 목적이 있다.
실시예에 따른 지능형 공격 경로 예측 모델 학습 장치는, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 호스트 자산정보를 생성 및 수집하는 단계, 수집된 네트워크 토폴로지 및 호스트 자산정보 데이터로부터 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 추출하는 단계 및 추출된 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 학습 데이터로 하여 네트워크 시스템의 공격 취약점을 예측하는 신경망 모델을 학습시키는 단계를 수행한다.
이때, 생성 및 수집하는 단계는, 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계, 공격 그래프 생성을 위한 호스트간 에지를 생성하고, 각 호스트의 취약점 점수를 계산하여 공격 그래프 데이터베이스에 저장하는 단계, 네트워크 토폴로지에서 호스트들간의 연결 상태를 표현하기 위한 연결 행렬을 생성하는 단계, 취약점을 이용한 공격가능 경로를 생성하는 기능을 이용하여 두 호스트 간의 모든 네트워크 도달 가능 경로를 입력으로 하여 공격 가능한 취약점 및 컴포넌트를 식별한 결과를 기반으로 공격 경로를 생성하는 단계 및 공격 취약점 추론 신경망 모델 학습을 위한 지능형 공격그래프 학습 데이터베이스룰 구축하는 단계를 포함한다.
이때, 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계는, 사전 생성 시점을 구별하기 위한 타임스탬프(timestamp) 필드, 네트워크 호스트의 시스템 상태 정보를 저장하기 위한 시스템 상태(system_states) 필드 및 네트워크 시스템의 위상 정보를 저장하기 위한 토폴로지(topology) 필드를 포함하는 네트워크 자산 사전(network assets dictionary)을 생성하는 단계, 그래프 도구를 이용한 모의 토폴로지 생성을 위한 그래프 객체를 생성하는 단계, 사전에 정의된 최대, 최소 서브넷 개수 범위 내에서 랜덤하게 서브넷 개수를 선택하고, 그래프(Graph(G))에 라우터 노드를 할당하는 단계, 네트워크 자산사전에 라우터 정보를 업데이트하는 단계, 네트워크 자산사전에 서브넷 정보를 업데이트하는 단계, 라우터간 링크 및 호스트와 라우터간 링크 정보를 네트워크 자산사전에 업데이트하는 단계 및 선별된 OS 및 Service의 취약점 정보를 담고 있는 CVE 파일을 읽어들여, 토폴로지에 있는 각 호스트에 OS 및 Service가 선택되어 할당하는 단계 중 적어도 하나를 수행할 수 있다.
이때, 추출하는 단계는, SW 컴포넌트의 취약 정도를 반영하여 생성된 CSV 파일을 독출하여, 지능형 공격 그래프 학습 데이터를 인코딩하기 위한 자산 사전을 생성하는 단계, 기 구축된 지능형 공격그래프 학습 데이터로부터 모델 학습에 필요한 특징 데이터를 추출하는 단계, 각 토폴로지별로 모델 학습에 사용될 전역 특징(global feature) 데이터를 생성하는 단계 및 지능형 공격 경로 예측 모델이 학습할 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계를 포함할 수 있다.
이때, 특징 데이터를 추출하는 단계는, 지능형 공격그래프 학습 데이터베이스의 토폴로지 테이블, 서비스 테이블 및 공격 경로 테이블을 참조하여, 네트워크 토폴로지별 네트워크에 포함된 호스트 IP 주소, 호스트 연결 정보, 호스트 보유 자산 정보, 정답 공격 경로 등을 추출할 수 있다.
이때, 공격 경로 데이터는, 전역 특징(global features), 토폴로지 상삼각행렬(upper topology matrix), 특정 특징(specific feature) 및 특정 특징 상삼각행렬(upper specific matrix) 데이터로 구성될 수 있다.
이때, 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계는, 토폴로지 상삼각행렬(upper topology matrix)에서 원소 값이 '1'이고, 특정 행렬(specific matirx)의 동일한 위치 원소 값이 '0'인 가짜 공격 경로에 해당하는 호스트쌍의 인덱스를 구해, 가짜 공격 경로 리스트를 구성할 수 있다.
이때, 학습시키는 단계는, 학습 데이터를 전처리하는 단계를 포함하되, 전처리하는 단계는, 생성된 공격 경로 데이터 파일로부터 소정 개수의 진짜 공격 경로 데이터 및 가짜 공격 경로 데이터를 독출하는 단계, 진짜 공격 경로 및 가짜 공격 경로를 상이하게 레이블링하는 단계, 전체 공격 경로를 훈련 데이터 및 검증 데이터로 분할하는 단계, 공격 경로 데이터의 전역 특징 데이터를 표준화하는 단계 및 공격 경로 데이터에서 공격 경로를 호스트 인덱스로 표현한 특정 특징값을 토폴로지 내에서 해당 호스트의 전역 특징 값으로 치환하는 단계를 포함할 수 있다.
이때, 신경망 모델은, 공격 경로 데이터 중 전역 특징 데이터, 토폴로지 상삼각행렬 데이터, 특정 특징 데이터, 특정 상삼각행렬 데이터를 각각 처리할 수 있도록 512 차원을 갖는 4개의 완전연결(fully connected, Dense) 계층으로 구성된 입력층, 1024차원 완전연결 계층으로 구성된 은닉층 및 2차원 완전연결 계층으로 구성되는 출력층을 포함할 수 있다.
실시예에 따른 주의 기반 사이버 공격 경로 추론 장치, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 지능형 공격 그래프 생성에 필요한 시험 데이터를 생성하는 단계 및 지능형 공격 경로 예측 모델 기반 공격 그래프 생성 단계를 포함할 수 있다.
이때, 시험 데이터를 생성하는 단계는, 네트워크 시뮬레이터를 통해 신규 토폴로지를 생성하는 단계, 네트워크 토폴로지 및 자산정보를 추출해서 데이터베이스 저장하는 단계, 신규 토폴로지를 예측 기반 공격 그래프 생성 모델에 적용해서 공격 그래프를 생성하고, 데이터베이스(pagDB)에 저장하는 단계를 포함할 수 있다.
이때, 지능형 공격 경로 예측 모델 기반 공격 그래프 생성 단계는, 시험 데이터로부터 전역 특징을 추출하는 단계 및 호스트간 연결 수만큼의 시험 공격 경로 데이터를 생성하는 단계를 포함할 수 있다.
실시예에 따른 지능형 공격 경로 예측 모델 학습 방법은, 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 호스트 자산정보를 생성 및 수집하는 단계, 수집된 네트워크 토폴로지 및 호스트 자산정보 데이터로부터 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 추출하는 단계 및 추출된 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 학습 데이터로 하여 네트워크 시스템의 공격 취약점을 예측하는 신경망 모델을 학습시키는 단계를 포함할 수 있다.
이때, 생성 및 수집하는 단계는, 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계, 공격 그래프 생성을 위한 호스트간 에지를 생성하고, 각 호스트의 취약점 점수를 계산하여 공격 그래프 데이터베이스에 저장하는 단계, 네트워크 토폴로지에서 호스트들간의 연결 상태를 표현하기 위한 연결 행렬을 생성하는 단계, 취약점을 이용한 공격가능 경로를 생성하는 기능을 이용하여 두 호스트 간의 모든 네트워크 도달 가능 경로를 입력으로 하여 공격 가능한 취약점 및 컴포넌트를 식별한 결과를 기반으로 공격 경로를 생성하는 단계 및 공격 취약점 추론 신경망 모델 학습을 위한 지능형 공격그래프 학습 데이터베이스룰 구축하는 단계를 포함할 수 있다.
이때, 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계는, 사전 생성 시점을 구별하기 위한 타임스탬프(timestamp) 필드, 네트워크 호스트의 시스템 상태 정보를 저장하기 위한 시스템 상태(system_states) 필드 및 네트워크 시스템의 위상 정보를 저장하기 위한 토폴로지(topology) 필드를 포함하는 네트워크 자산 사전(network assets dictionary)을 생성하는 단계, 그래프 도구를 이용한 모의 토폴로지 생성을 위한 그래프 객체를 생성하는 단계, 사전에 정의된 최대, 최소 서브넷 개수 범위 내에서 랜덤하게 서브넷 개수를 선택하고, 그래프(Graph(G))에 라우터 노드를 할당하는 단계, 네트워크 자산사전에 라우터 정보를 업데이트하는 단계, 네트워크 자산사전에 서브넷 정보를 업데이트하는 단계, 라우터간 링크 및 호스트와 라우터간 링크 정보를 네트워크 자산사전에 업데이트하는 단계 및 선별된 OS 및 Service의 취약점 정보를 담고 있는 CVE 파일을 읽어들여, 토폴로지에 있는 각 호스트에 OS 및 Service가 선택되어 할당하는 단계 중 적어도 하나를 수행할 수 있다.
이때, 추출하는 단계는, SW 컴포넌트의 취약 정도를 반영하여 생성된 CSV 파일을 독출하여, 지능형 공격 그래프 학습 데이터를 인코딩하기 위한 자산 사전을 생성하는 단계, 기 구축된 지능형 공격그래프 학습 데이터로부터 모델 학습에 필요한 특징 데이터를 추출하는 단계, 각 토폴로지별로 모델 학습에 사용될 전역 특징(global feature) 데이터를 생성하는 단계 및 지능형 공격 경로 예측 모델이 학습할 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계를 포함할 수 있다.
이때, 공격 경로 데이터는, 전역 특징(global features), 토폴로지 상삼각행렬(upper topology matrix), 특정 특징(specific feature) 및 특정 특징 상삼각행렬(upper specific matrix) 데이터로 구성될 수 있다.
이때, 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계는, 토폴로지 상삼각행렬(upper topology matrix)에서 원소 값이 '1'이고, 특정 행렬(specific matirx)의 동일한 위치 원소 값이 '0'인 가짜 공격 경로에 해당하는 호스트쌍의 인덱스를 구해, 가짜 공격 경로 리스트를 구성할 수 있다.
이때, 학습시키는 단계는, 학습 데이터를 전처리하는 단계를 포함하되, 전처리하는 단계는, 생성된 공격 경로 데이터 파일로부터 소정 개수의 진짜 공격 경로 데이터 및 가짜 공격 경로 데이터를 독출하는 단계, 진짜 공격 경로 및 가짜 공격 경로를 상이하게 레이블링하는 단계, 전체 공격 경로를 훈련 데이터 및 검증 데이터로 분할하는 단계, 공격 경로 데이터의 전역 특징 데이터를 표준화하는 단계 및 공격 경로 데이터에서 공격 경로를 호스트 인덱스로 표현한 특정 특징값을 토폴로지 내에서 해당 호스트의 전역 특징 값으로 치환하는 단계를 포함할 수 있다.
이때, 신경망 모델은, 공격 경로 데이터 중 전역 특징 데이터, 토폴로지 상삼각행렬 데이터, 특정 특징 데이터, 특정 상삼각행렬 데이터를 각각 처리할 수 있도록 512 차원을 갖는 4개의 완전연결(fully connected, Dense) 계층으로 구성된 입력층, 1024차원 완전연결 계층으로 구성된 은닉층 및 2차원 완전연결 계층으로 구성되는 출력층을 포함할 수 있다.
실시예에 따라, 취약점 DB를 추가로 구축하지 않고 머신러닝(machine learning) 기법을 활용하여 네트워크 시스템의 사이버 공격 노출점을 예측할 수 있다.
도 1은 실시예에 따른 주의 기반 사이버 공격 경로 추론 장치의 동작을 설명하기 위한 도면이다.
도 2는 실시예에 따른 학습 처리부의 개략적인 블록 구성도이다.
도 3은 실시예에 따른 학습 데이터를 생성 및 수집하는 단계(S110)를 상세히 설명하기 위한 순서도이다.
도 4는 실시예에 따른 연결 행렬(Connectivity Matrix)의 예시도이다.
도 5는 실시예에 따른 지능형 공격 그래프의 예시도이다.
도 6은 실시예에 따른 학습 데이터의 예시도이다.
도 7은 실시예에 따른 학습 데이터 특징 추출 단계(S120)를 상세히 설명하기 위한 도면이다.
도 8은 실시예에 따른 토폴로지 테이블의 예시도이다.
도 9는 실시예에 따른 토폴로지 테이블에서 추출되는 호스트 IP 주소의 예시도이다.
도 10은 실시예에 따른 토폴로지 테이블에서 추출되는 연결 행렬 정보의 예시도이다.
도 11은 실시예에 따른 최종적으로 생성되는 토폴로지 행렬의 예시도이다.
도 12는 실시예에 따른 서비스 테이블의 예시도이다.
도 13은 실시예에 따른 서비스 테이블로부터 SW 컴포넌트 인코딩 예시도이다.
도 14는 실시예에 따른 공격 테이블의 예시도이다.
도 15는 실시예에 따른 3차원 OS 벡터와 호스트 N채널로 구성된 전역 특징 데이터 구성 예시도이다.
도 16은 실시예에 따른 OS, Service, Port, Product 벡터, 채널 구성 및 서비스 리스트 값 할당 예시도이다.
도 17은 실시예에 따른 토폴로지별 모든 호스트의 SW 컴포넌트 특징을 담고 있는 텐서 구성 예시도이다.
도 18은 실시예에 따른 전역 특징 데이터 구성 과정의 예시도이다.
도 19는 전역 특징 데이터의 예시도이다.
도 20은 실시예에 따른 토폴로지 상삼각행렬 데이터의 예시도이다.
도 21은 실시예에 따른 특정 행렬(specific matrix)의 공격 경로 할당의 예시도이다.
도 22는 실시 예에 따른 특정 행렬에 모든 공격 경로를 할당한 예시도이다.
도 23은 실시예에 따른 토폴로지 상삼각형의 예시도이다.
도 24는 실시예에 따른 특정 행렬의 예시도이다.
도 25는 실시예에 따른 가짜 공격 경로 리스트의 예시도이다.
도 26은 실시예에 따른 현재 토폴로지 내 호스트들의 물리적인 연결 상태 매트릭스의 예시도이다.
도 27은 실시예에 따른 가짜 공격 경로에 대한 매트릭스 상의 위치 표시 예시도이다.
도 28은 실시예에 따른 진짜 공격 경로 리스트의 예시도이다.
도 29는 실시예에 따른 현재 토폴로지 내 호스트들의 물리적인 연결 상태 매트릭스의 예시도이다.
도 30은 실시예에 따른 가짜 공격 경로에 대한 매트릭스 상의 위치 표시 예시도이다.
도 31은 실시예에 지능형 공격 경로 예측 모델 학습부의 동작을 설명하기 위한 도면이다.
도 32는 실시예에 따른 공격 경로 데이터 레이블링 및 훈련/검증 데이터 분할 단계의 예시도이다.
도 33은 실시예에 따른 전역 특징 데이터 표준화 단계의 예시도이다.
도 34는 실시예에 따른 특정 특징 필드값 치환 단계의 예시도이다.
도 35는 실시예에 따른 지능형 공격 경로 예측 모델 구조 및 하이퍼 파라메터 설정 예시도이다.
도 36은 실시예에 따른 모델 성능 측정 결과인 손실의 예시 그래프이다.
도 37은 실시예에 따른 모델 성능 측정 결과인 정확도의 예시 그래프이다.
도 38은 실시예에 따른 지능형 공격 경로 예측부의 동작을 설명하기 위한 도면이다.
도 39는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는, 도 1 내지 도 39를 참조하여 실시예에 따른 주의 기반 사이버 공격 경로 추론 장치 및 방법이 상세히 설명된다.
도 1은 실시예에 따른 주의 기반 사이버 공격 경로 추론 장치의 개략적인 블록 구성도이다.
도 1을 참조하면, 실시예에 따른 주의 기반 사이버 공격 경로 추론 장치는, 크게 학습 처리부(100) 및 지능형 공격 경로 예측부(200)를 포함할 수 있다.
학습 처리부(100)는, 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 호스트 자산정보를 수집하여 네트워크 시스템의 공격 취약점을 예측하는 신경망 모델인 지능형 공격 경로 예측 모델을 학습시킨다. 이러한 학습 처리부(100)에 대한 상세한 설명은 도 2 내지 도 37을 참조하여 후술하기로 한다.
지능형 공격 경로 예측부(200)는, 사이버 공격 취약점을 예측하고자 하는 대상(target) 컴퓨터 네트워크 시스템의 실제 네트워크 토폴로지 및 자산정보 데이터를 입력으로 학습 완료된 지능형 공격 경로 예측 모델을 이용하여 대상 네트워크 시스템의 사이버 공격 취약점을 예측한다. 이러한 지능형 공격 경로 예측부(200)에 대한 상세한 설명은 도 38을 참조하여 후술하기로 한다.
사용자 인터페이스부(10)는, 학습 처리부(100) 및 지능형 공격 경로 예측부(200)와 연동하여 사이버 공격 취약점 예측 방법에 의해 생성된 지능형 공격 경로를 가시화하여 출력한다.
도 2는 실시예에 따른 학습 처리부의 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 실시예에 따른 학습 처리부(100)는, 가상의 네트워크 토폴로지 및 호스트 자산 정보 중 적어도 하나를 포함하는 학습 데이터를 생성 및 수집한다(S110). 즉, 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 호스트 자산정보를 생성하고 수집한다. 학습 데이터를 생성 및 수집하는 단계(S110)에 대한 상세한 설명은 도 3 내지 도 6을 참조하여 후술하기로 한다.
그런 후, 실시예에 따른 학습 처리부(100)는, 네트워크 토폴로지(Topology) 및 호스트 자산정보(Asset information)로 구성된 학습 데이터에서 전역 특징(Global feature) 데이터와 특정 특징(Specific feature) 데이터를 추출한다 (S120).
이때, 특징 데이터 추출은 토폴로지 단위로 수행될 수 있다. 즉, 도 2에 도시된 바와 같이, 전역 특징 데이터는 전체 네트워크 토폴로지 정보(G2)와 모든 호스트에 설치된 자산 정보(G1)로 구성되고, 특정 특징 데이터는 특정 호스트간 경로(path) 정보(S2)와 특정 호스트의 자산 정보(S1)로 구성될 수 있다.
또한, 특징 데이터를 추출하는 단계(S120)는, 신경망 모델이 다룰 수 있도록 텍스트를 숫자로 인코딩하고, 네트워크 연결성을 표현할 수 있는 데이터로 변형하는 단계를 더 포함할 수 있다. 이로써, 추출된 특징 데이터가 지능형 공격 경로 예측 모델의 입력 데이터로 사용될 수 있다. 특징 데이터를 추출하는 단계(S120)에 대한 상세한 설명은 도 7 내지 도 30을 참조하여 후술하기로 한다.
다음으로, 실시예에 따른 학습 처리부(100)는, 추출된 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 학습 데이터로 하여 네트워크 시스템의 공격 취약점을 예측하는 신경망 모델을 학습시킨다(S130). 신경망 모델을 학습시키는 단계(S120)에 대한 상세한 설명은 도 31 내지 도 37을 참조하여 후술하기로 한다.
도 3은 실시예에 따른 학습 데이터를 생성 및 수집하는 단계(S110)를 상세히 설명하기 위한 순서도이다.
도 3을 참조하면, 학습 처리부(100)는 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 자산정보를 생성 및 수집한다(S111).
S111는 상세하게는, 네트워크 자산 사전(network assets dictionary) 생성 단계, 모의 그래프(Graph(G)) 생성 단계, 라우터 설정 및 사전 업데이트 단계, 서브넷 업데이트 단계, 링크 업데이트 단계 및 호스트 업데이트 단계 중 적어도 하나를 수행할 수 있다.
우선, 네트워크 자산 사전 생성 단계에서, 시스템 상태 정보와 토폴로지 정보를 생성하기 위한 네트워크 자산 사전 스키마(schema)를 정의한다.
이러한 네트워크 자산 사전의 일 예는 다음의 <표 1>과 같을 수 있다.
Figure pat00001
Figure pat00002
Figure pat00003
<표 1>을 참조하면, 네트워크 자산 사전은, 사전 생성 시점을 구별하기 위한 타임스탬프(timestamp) 필드, 네트워크 호스트의 시스템 상태 정보를 저장하기 위한 시스템 상태(system_states) 필드 및 네트워크 시스템의 위상(位相) 정보를 저장하기 위한 토폴로지(topology) 필드를 포함할 수 있다.
타임스탬프(timestamp) 필드 값은 네트워크 자산 사전 생성 시점의 시스템 시간으로 설정한다.
시스템 상태(system_state) 필드는 네트워크에 속한 모든 호스트들의 시스템 상태를 표현한다. 각 호스트의 시스템 상태는 "system_name", "process", "operating_system", "system_id", "services", "networks"필드로 표현된다.
토폴로지(topology) 필드는 네트워크 시스템 구성 및 구성 요소간의 연결을 표현하기 위한 "subnets", "links"및"routers"로 구성된다. 여기서, 서브넷(subnets) 필드는 네트워크 시스템에서 동일한 기본 게이트웨이(default gateway)를 갖는 노드(=호스트)들로 구성되는데, "defaultgw", "node", "netmask", "id", "netid"로 구성될 수 있다. 링크(links) 필드는 네트워크 시스템의 구성 요소들(호스트)간의 물리적 연결성을 표현하기 위하여 "dstnode", "srcnode", "dstif", "id", "srcif"로 구성될 수 있다. 라우터(routers) 필드는 네트워크 시스템에서 라우터를 표현하기 위하여 "defaultgw", "interfaces", "type", "name"로 구성된다.
한편, 모의 그래프 생성 단계에서는, networkX와 같은 그래프 도구/라이브러리(소프트웨어 응용프로그램, 라이브러리)를 이용한 모의 토폴로지가 생성된다. networkX 기반의 토폴로지 생성을 위한 그래프 객체(Graph(G))를 생성한다.
라우터 설정 단계에서는, 사전에 정의된 최대, 최소 서브넷 개수 범위 내에서 랜덤하게 서브넷 개수를 선택되고, 그래프(Graph(G))에 라우터 노드가 할당된다. 또한, 라우터의 기본 게이트웨이(defaultgw)가 설정되고, 라우터의 서브넷 개수가 할당되고, 라우터의 인터페이스가 설정되고, 서브넷당 호스트 개수가 결정되고, 서브넷 당 스위치 및 호스트가 할당되고, 라우터 정보(타입, 이름)이 할당되고, 그래프에서 라우터들이 상호간에 연결된다.
라우터 업데이트 단계에서, 네트워크 자산사전에 라우터 정보(defaultgw, interfaces, type, name)가 업데이트된다.
서브넷 업데이트 단계에서, 네트워크 자산사전에 서브넷 정보(defaultgw, node, netmask, id, netid)가 업데이트된다.
링크 업데이트 단계에서, 라우터간 링크 및 호스트와 라우터간 링크 정보가 네트워크 자산사전에 업데이트된다. 이때, 링크 정보는 destnode, srcnode, dstif, id, srcif로 구성된다.
호스트 업데이트 단계에서, 선별된 OS 및 Service의 취약점 정보를 담고 있는 CVE 파일(CVE_OS_WEIGHT.csv, CVE_SERVICE_WEIGHT.csv)를 읽어 들여, 토폴로지에 있는 각 호스트에 OS 및 Service가 선택되어 할당된다.
이때, 취약점 OS/Service 파일(CVE_OS_WEIGHT.csv, CVE_SERVICE_WEIGHT.csv)은 NVD(National Vulnerability Database)에서 관리되는 SW 컴포넌트에 알려진 취약점 정보를 기반으로, SW 컴포넌트가 가지고 있는 취약점(CVE) 보유 개수와 해당 취약점의 위험도를 나타내는 CVSS 점수를 고려하여, 선별된 OS와 Service를 저장 및 관리된다.
<표 2>는 CVE_OS_WEIGHT.csv 파일의 예시이고, <표 3>은 CVE_SERVICE_WEIGHT.csv 파일의 예시이다.
Figure pat00004
Figure pat00005
OS는 기본적으로 랜덤하게 1개가 선택되고, Service는 미리 설정된 최대, 최소값 범위내에서 랜덤하게 n개가 선택된다. 선택된 값들은 네트워크 자산사전 업데이트에 활용된다. 서비스 정보는 service_id, protocol, port 등이 업데이트되고, 프로세스 정보는 product, version, vendor, cpe2.3 등이 업데이트된다. 또한, system_name, processes, operating_system, system_id, services, subnet_mask, default_router, ip_address, mac_address 등이 업데이트 된다.
전술한 바와 같은 토폴로지 및 자산사전 생성 단계(S111)를 통해, networkX 기반의 그래프를 생성할 수 있는 노드와 링크 정보가 모두 준비가 되어, 노드와 링크로 표현되는 네트워크 토폴로지가 생성될 수 있다.
다시 도 3을 참조하면, 학습 처리부(100)는 공격 그래프 생성을 위한 호스트간 에지(edge)를 생성하고, 각 호스트의 취약점 점수를 계산하여 공격 그래프 데이터베이스(AG-DB)(20)에 저장한다(S112). 이때, 각 호스트의 취약점 점수는 호스트에 설치된 OS, Service를 기반으로 계산된다.
그런 후, 학습 처리부(100)는 네트워크 토폴로지에서 호스트들간의 연결 상태를 표현하기 위한 연결 행렬(Connectivity Matrix)을 생성한다(S113).
도 4는 실시예에 따른 연결 행렬(Connectivity Matrix)의 예시도이다.
도 4를 참조하면, 연결 행렬(Connectivity Matrix)은 그래프 이론에서 노드(40) 간 연결(41)을 표현하는 인접 행렬(adjacency matrix)을 활용한다. 연결 행렬에서 네트워크 토폴로지에서 각 호스트들의 연결 상태는 '0' 또는 '1'로 표현된다.
즉, 도 4에 도시된 바와 같이, 호스트 목록에 있는 호스트의 순서대로 행과 열의 인덱스로 지정하고, 두 호스트가 연결되어 있으면 '1'로, 연결되어 있지 않으면 '0'으로 표현한다.
다시 도 3을 참조하면, 학습 처리부(100)는 예측 기반(Predictive) 공격 경로를 생성한다(S114).
이때, 선행 발명(10-2018-0113508)에 명시된 취약점을 이용한 공격가능 경로를 생성하는 기능을 이용하여 두 호스트 간의 모든 네트워크 도달 가능 경로를 입력으로 받아 어떤 취약점 및 컴포넌트를 이용해서 공격이 가능한지를 식별하고 이를 이용한 공격 경로를 생성하는 기능이 수행될 수 있다
이와 같이 생생된 공격 경로는 공격 그래프 데이터베이스(PAG-DB)(20)에 저장된다.
여기서, 예측기반 공격 그래프(Predictive Attack Graph)란 특정 타겟에 공격 가능한 모든 공격 경로(attack path)를 추출해 데이터베이스에 기록해 놓은 후, 모든 경로에 대해 점수를 계산하지 않고, 포트 오픈 등 두 자산 간에 어느 정도 접속이 발생할 가능성이 있는 경우에만 에지를 그리는 공격 그래프 방식이다.
이때, 예측 기반 공격 그래프(Predictive attack graph)는 최초 지정된 시작 위치에서 공격자가 손상시킬 수 있는 모든 호스트를 결정하는데, 이때 취약점 제거 효과를 정확하게 예측하여 방화벽 등에 의해 취약점이 제거되는 경우, 그래프에서 관련 에지를 제거한다. 이를 통해 시작 위치에서 도달할 수 없는 노드를 알아내어 그래프 생성 비용을 절감할 수 있다.
실시예에서는 포트, 서비스 등 두 자산 간에 정책적으로 연결된 통로가 없다면 공격 경로가 될 가능성이 매우 낮다고 간주하여, 에지를 그리지 않는 방식을 선택한다. 타겟은 관리자가 지정한 호스트이고, 소스(Source)는 관리자가 지정한 호스트 또는 임의의 호스트이다.
한편, 다시 도 3을 참조하면, 학습 처리부(100)는 사이버 공격 취약점 추론 신경망 모델 학습을 위한 지능형 공격그래프 학습 데이터베이스(DB)(20)를 구축한다(S115).
전술한 바와 같은 S111 내지 S115를 통한 학습 데이터 수집 단계(S110)는 소정 횟수 N번 만큼 반복(S116)될 수 있다. N번(예: 10만번)의 학습 데이터 수집 과정을 통해, 네트워크 토폴로지, 네트워크 호스트에 설치된 자산상태정보 및 공격경로(레이블)로 구성된 학습 데이터가 생성된다.
도 5는 실시예에 따른 지능형 공격 그래프의 예시도이다.
도 5를 참조하면, 지능형 공격그래프 학습 DB는 토폴로지 테이블(Topology tb), 서비스 테이블(Service_tb) 및 공격 경로 테이블(Attack_path_tb)로 구성될 수 있다.
다음의 <표 4>는 토폴로지 테이블의 예시이다.
Figure pat00006
<표 4>를 참조하면, 토폴로지 테이블은 토폴로지 아이디(Topology_ID), 호스트 개수(Num_hosts), OS 유형 개수(Num_type_OS), 서비스 유형 개수(Num_type_service), 호스트 리스트(List_hosts) 및 연결 행렬(Connectivity_matrix)로 구성될 수 있다.
여기서, 토폴로지 아이디는 토폴로지 구별을 위한 식별자이고, 호스트 개수는 해당 토폴로지에 구성되어 있는 호스트의 총 개수이고, OS 유형 개수는 호스트에 설치된 OS 유형의 총 개수이고, 서비스 유형 개수는 호스트에 설치된 서비스 유형의 총 개수이고, 호스트 리스트는 토폴로지를 구성하는 모든 호스트를 나열하고, 각 호스트는 IP 주소로 표현된다. 연결 행렬은 토폴로지에서 호스트들간의 연결성을 표현하고, 인접한 호스트간에는 1로 표현되고, 인접하지 않으면 0으로 표현한다.
다음의 <표 5>는 서비스 테이블의 예시이다.
Figure pat00007
<표 5>를 참조하면, 서비스 테이블은 토폴로지 아이디(Topology_ID), 호스트의 MAC 주소(MACaddr), 호스트의 IP 주소(IPaddr), 호스트의 OS(OS), 호스트의 서비스(Service), 서비스의 전송프로토콜(Protocol), 서비스 포트(Port), 호스트의 제품명(Product)으로 구성된다.
여기서, 토폴로지 아이디는 토폴로지 구별을 위한 식별자로, 토폴로지 테이블의 토폴로지 아이디와 서비스 테이블의 토폴로지 아이디가 같다면 동일한 토폴로지이다. MACaddr는 호스트의 MAC(Medium Access Control) 주소이다. IPaddr는 호스트의 IP(Internet Protocol) 주소이다. OS는 호스트에 설치된 OS를 나타낸다. Service는 호스트에 설치된 Service를 나타낸다. Protocol과 Port는 Service가 실행되는 프로토콜 및 포트번호를 나타낸다. Product는 해당 Service가 탑재된 제품명이다.
다음의 <표 6>는 공격 경로 테이블의 예시이다.
Figure pat00008
<표 6>을 참조하면, 공격 경로 테이블은 토폴로지 아이디(Topology_ID), 시작 노드(Start_node), 끝 노드(End_node), 경로(Path) 및 점수(Score)로 구성된다.
여기서, 토폴로지 아이디는 토폴로지 구별을 위한 식별자다. 토폴로지 테이블의 토폴로지 아이디와 서비스 테이블의 토폴로지 아이디가 같다면 동일한 토폴로지이다. Start_node는 'Path'에 있는 공격 경로의 시작 노드를 나타낸다. End_node는 공격 경로의 끝 노드를 나타낸다. 'Path'는 공격 경로를 나타내고, 처음과 끝은 Start_node와 End_node로 구성되고, 중간 노드는 있으면 표현하고, 없으면 생략 가능하다. Score는 해당 공격 경로의 위험도 점수를 나타낸다.
PAG-DB(20)는 토폴로지내의 모든 공격 경로 및 각 경로의 위험도 점수를 포함하고 있다.
따라서, 지능형 공격 그래프 학습 데이터 생성 단계(S115)에서 PAG-DB(20)를 참조하여 모든 경로 중에서, 경로의 위험도 점수(Score)가 높은 순으로 상위 M개(예: 10개)의 공격 경로를 선택하여 공격 경로 테이블에 저장한다.
도 6은 실시예에 따른 학습 데이터의 예시도이다.
도 6을 참조하면, 지능형 공격 그래프 학습 데이터는 N개(예: 10만개)의 토폴로지 데이터로 구성되고, 각 토폴로지 마다 K개의 호스트 자산상태정보로 구성된다.
이때, 변수 K는 전술한 토폴로지 및 자산정보 생성 단계(S11)에서 랜덤하게 생성된 호스트 개수 및 설치된 자산(예: OS, Service) 개수에 따라 그 값이 달라질 수 있다. 즉, K값은 토폴로지마다 상이하게 설정될 수 있다.
또한, 각 토폴로지마다 레이블(정답)로 사용될 M개의 공격경로로 구성된다.
이때, 상수 M(예: 10)은 네트워크 토폴로지 내에서 위험도가 높은 상위 M개의 공격경로에 해당한다. 전술한 토폴로지 및 자산정보 생성 단계(S111)에서 M 값을 임의 값(예: 10)으로 할당하고, 전체 토폴로지에 대해 동일한 값을 적용한 후, 학습 데이터를 생성한다.
일 예로, 모델 학습을 위한 데이터 생성은 다음과 같이 진행될 수 있다.
즉, 네트워크 시뮬레이션 도구(NetworkX)를 이용하여 랜덤 네트워크 토폴로지가 생성되고, NVD CVE 취약점 데이터베이스에 등록된 자산정보(OS, Service, Protocol, Product 등)로부터 3개 이하의 자산정보 튜플이 랜덤하게 선택되어 네트워크 상의 호스트에 할당된다. 네트워크 구성시 라우터(1~3개), 서브넷(3~5개)/라우터, 호스트(3~6개)/서브넷를 고려하여 총 노드 수는 23개로 고정된다. 총 10만개의 토폴로지를 생성하고, 토폴로지 당 Top10 공격 경로를 생성해서, 총 100만개의 공격 경로가 레이블 데이터로 생성된다.
도 7은 실시예에 따른 학습 데이터 특징 추출 단계(S120)를 상세히 설명하기 위한 도면이다.
도 7을 참조하면, 학습 처리부(100)는 SW 컴포넌트의 취약 정도를 반영하여 생성된 CSV 파일(CVE_OS_WEIGHT.csv, CVE_SERVICE_WEIGHT.csv)을 읽어들여, 지능형 공격 그래프 학습 데이터를 인코딩하기 위한 자산 사전을 생성한다(S121).
이때, OS, Service, Port, Product에 대한 사전이 생성된다. 운영체제(OS)의 취약점 정보를 포함하고 있는 CSV 파일(CVE_OS_WEIGHT.csv)에서 모든 OS 종류에 정수 인덱스가 부여되어 OS 사전(os_dict.pkl)이 생성된다.
유사한 방식으로 SW 컴포넌트의 취약점 정보를 포함하고 있는 CSV 파일(CVE_SERVICE_WEIGHT.csv)로부터 Service, Port, Product 각각에 대해 종류별 정수 인덱스가 부여되어 Service(service_dict.pkl), Port(port_dict.pkl), Product (product_dict.pkl) 사전이 생성된다.
그런 후, 학습 처리부(100)는 전술한 지능형 공격그래프 학습 데이터 생성 단계(S115)를 통해 구축된 지능형 공격그래프 학습 데이터로부터 모델 학습에 필요한 특징 데이터를 추출한다(S122).
이때, 지능형 공격그래프 학습 데이터베이스(iagDB)의 토폴로지 테이블, 서비스 테이블 및 공격 경로 테이블을 참조하여, 네트워크 토폴로지별(예: t_00000, t_00001, 등)로 네트워크에 포함된 호스트 IP 주소, 호스트 연결 정보, 호스트 보유 자산 정보, 정답 공격 경로 등을 추출한다.
도 8은 실시예에 따른 토폴로지 테이블의 예시도이고, 도 9는 실시예에 따른 토폴로지 테이블에서 추출되는 호스트 IP 주소의 예시도이고, 도 10은 실시예에 따른 토폴로지 테이블에서 추출되는 연결 행렬 정보의 예시도이고, 도 11은 실시예에 따른 최종적으로 생성되는 토폴로지 행렬의 예시도이다.
즉, 도 8에 도시된 토폴로지 테이블에서 List_hosts 항목의 네트워크에 포함된 호스트가 IP 주소 형태로 도 9에 도시된 바와 같이 추출된다.
또한, 도 8에 도시된 토폴로지 테이블에서 호스트간 연결 상태를 표현하는 연결 행렬(Connectivity_matrix)이 도 10에 도시된 바와 같이 추출된다.
그리고, 도 11에 도시된 바와 같이, iagDB의 토폴로지 테이블에 저장되어 있는 모든 토폴로지에 대해 토폴로지 'Topology_ID'의 정수 부분(예: '00000')을 색인(index)으로 하고 호스트 IP 리스트와 연결 행렬로 쌍을 구성해 파일(topology_matrix.pkl)로 저장된다.
도 12는 실시예에 따른 서비스 테이블의 예시도이고, 도 13은 실시예에 따른 서비스 테이블로부터 SW 컴포넌트 인코딩 예시도이다.
도 12에 도시된 서비스 테이블에서는 토폴로지 별로 호스트 IP 주소, OS, Service, Port, Product 정보가 추출된다. 토폴로지 별로 토폴로지에 포함되어 있는 모든 호스트 IP 주소가 추출된다. 또한, 호스트 별로 설치되어 있는 SW 컴포넌트(OS, Service, Port, Product) 정보가 추출된다. 호스트에 설치되는 SW 컴포넌트의 수는 사용 시스템마다 달라질 수 있으나, 실시예에서는 최대 3개까지 설치되는 것을 예로 들어 설명한다. 그런 후, 자산 사전(os_dict, service_dict, port_dict, product_dict)을 참조하여 호스트에 설치되어 있는 SW 컴포넌트 정보(OS, Service, Port, Product)가 인코딩된다. os, service, port, product이 한 조(tuple)를 이루고, 하나의 호스트엔 최대 3개 조(tuple)까지 구성될 수 있다. 모든 토폴로지에 대해 수행한 후 파일(service_list.pkl)로 저장된다.
도 14는 실시예에 따른 공격 테이블의 예시도이다.
도 14를 참조하면, 공격 경로 테이블에서는 학습 모델의 정답 데이터로 사용할 공격 경로가 추출된다. 호스트 IP 주소로 구성된 공격 경로('Path') 데이터를 토폴로지 별로 리스트로 구성되어, 파일(attack_graph.pkl)로 저장된다.
다시 도 7을 참조하면, 학습 처리부(100)는 각 토폴로지별로 모델 학습에 사용될 전역 특징(global feature) 데이터를 생성한다(S123).
이때, 자산 사전 데이터(os_dict.pkl, service_dict.pkl, port_dict.pkl, product_dict.pkl)와 특징 데이터(topology_matrix.pkl, service_list.pkl, attack_graph.pkl)를 입력으로 수행된다. 특징 데이터 파일 중에서 서비스 리스트 파일(service_list.pkl)은 토폴로지별로 호스트 IP 주소와 각 호스트에 설치된 SW 컴포넌트(os, service, port, product)에 대한 인코딩 정보를 포함하고 있다.
각 토폴로지에는 N개의 호스트와 라우터가 설치될 수 있는데, 실시예에서는최대 23개로 설정될 수 있다. 또한, 실시예에서는 각 호스트에 최대 3개의 SW 컴포넌트가 설치된다.
도 15는 실시예에 따른 3차원 OS 벡터와 호스트 N채널로 구성된 전역 특징 데이터 구성 예시도이고, 도 16은 실시예에 따른 OS, Service, Port, Product 벡터, 채널 구성 및 서비스 리스트 값 할당 예시도이고, 도 17은 실시예에 따른 토폴로지별 모든 호스트의 SW 컴포넌트 특징을 담고 있는 텐서 구성 예시도이다.
도 15를 참조하면, SW 컴포넌트 중 OS를 예로 들면, os 벡터(os[0:2])를 3차원으로 구성하고, 호스트 개수만큼 N(=23) 채널로 구성된다. os 벡터의 각 차원에는 서비스 리스트에서 호스트에 설치된 SW 컴포넌트의 os에 해당하는 값이 순서대로 할당된다.
도 16을 참조하면, 유사한 과정을 통해, 3차원 service 벡터, port 벡터 및 product 벡터가 구성되고, 호스트N(=23) 채널이 구성된 후, 서비스 리스트에서 SW 컴포넌트의 service, port 및 product에 해당하는 값이 각 벡터의 차원에 할당된다.
이후, 도 17에 도시된 바와 같이, 각 벡터를 os, service, product, port 순으로 연결(concatenation)시켜 호스트별로 3x4 행렬로 구성되고, N(=23)채널 호스트 데이터가 연결되어 3x4x23 텐서가 구성된다. 이러한 과정이 토폴로지별로 진행되어 토폴로지별로 생성된 텐서를 하나의 리스트로 구성한 전역 특징 데이터가 생성되고, 파일(global_feat.pkl)로 저장된다.
다시 도 7을 참조하면, 학습 처리부(100)는 지능형 공격 경로 예측 모델이 학습할 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성한다(S124).
우선, 이전 과정에서 생성된 모든 파일(attack_graph.pkl, service_list.pkl, topology_matrix.pkl, os_dict.pkl, product_dict.pkl, service_dict.pkl, port_dict.pkl, global_feat.pkl)이 독출된다.
또한, 처리되는 연결행렬, 공격경로, 호스트 IP 리스트 등은 동일한 토폴로지에 대해서 다뤄지고, 하나의 토폴로지에 대한 작업이 끝난 후, 다음 토폴로지에 대해 동일한 작업이 반복된다.
다음의 <표 7>은 공격 경로 데이터의 예시도이다.
Figure pat00009
<표 7>을 참조하면, 공격 경로 데이터는 전역 특징(global features), 토폴로지 상삼각행렬(upper topology matrix), 특정 특징(specific feature) 및 특정 특징 상삼각행렬(upper specific matrix) 데이터로 구성될 수 있다.
이때, 전역 특징은 276차원, 토폴로지 상삼각행렬은 253차원, 특정 특징은 3차원, 특정 상삼각행렬은 253차원으로 총 785차원의 공격 경로 데이터가 구성될 수 있다. 또한, 모델이 학습할 가짜 공격 경로를 200만 샘플, 진짜 공격 경로를 100만 샘플 생성한다.
도 18은 실시예에 따른 전역 특징 데이터 구성 과정의 예시도이고, 도 19는 전역 특징 데이터의 예시도이다.
도 18을 참조하면, 전역 특징(global features)은 전술한 S123에서 생성된 토폴로지별 모든 호스트에 설치된 SW 컴포넌트(os, service, port, product)의 특징 값을 갖는 3차원 텐서(3x4x23)를 276차원 벡터로 재구성한 데이터이다. 이때, 전역 특징 차원 수는 다음의 <수학식 1>과 같이 산출될 수 있다.
<수학식 1>
전역 특징 차원 수 = (호스트당 최대 SW 컴포넌트 수) x (SW 컴포넌트 특징 수) x (토폴로지당 최대 채널 수) = 3 x 4 x 23 = 276
도 20은 실시예에 따른 토폴로지 상삼각행렬 데이터의 예시도이다.
도 20을 참조하면, 토폴로지별 호스트 IP 주소와 연결행렬 데이터를 가지고 있는 topology_matrix.pkl 파일로부터 연결행렬(Connectivity_matrix)을 읽는다. 연결행렬은 네트워크 토폴로지에서 호스트간 물리적 연결 상태를 표현하는데, 대칭행렬(symmetric matrix)로 구성되는 특징이 있다. 중복되는 데이터를 줄이고 학습 모델의 입력 차원을 줄이는 측면에서, 연결행렬의 상삼각 부분만 취해 토폴로지 상삼각행렬(upper topology matrix) 학습 데이터를 구성한다. 토폴로지 상삼각행렬에서 1은 두개의 호스트간에 물리적으로 연결되어 있는 것을 표현하고, 0은 연결되어 있지 않음을 표현한다.
도 21은 실시예에 따른 특정 행렬(specific matrix)의 공격 경로 할당의 예시도이다.
도 21을 참조하면, attack_graph.pkl 파일로부터 토폴로지별로 호스트 IP 주소로 구성된 공격 경로 데이터를 읽는다. 본 발명에서는 일 실시예로, 공격 경로의 최대 길이를 3으로 설정했지만, 예측 기반 공격 경로 생성 단계(S114)의 설정에 따라, 공격 경로의 최대 길이는 가변적일 수 있다.
특정 행렬(specific matrix)은 호스트 IP 리스트에 포함된 호스트들을 순서대로 행과 열에 배치한 후, 공격 경로인 호스트 쌍을 행렬 상에 '1' 또는 '0'으로 표현될 수 있다. 특정 행렬의 크기는 토폴로지별 호스트 IP 리스트의 크기에 의해 결정될 수 있다.
예컨대, 호스트 IP 리스트에 포함되어 있는 호스트 개수가 m(=22)개라면, 특정 행렬은 mxm 정방행렬로 구성되고, 각 원소는 '0'으로 초기화된다. 공격 경로의 첫번째 호스트 IP 주소는 특정 행렬(specific matrix)의 행(row)에 해당하고, 두번째 IP 주소는 열(column)에 해당한다. 호스트 IP 리스트는 토폴로지에 있는 모든 호스트 IP 주소를 포함하고 있는데, 순서대로 0에서부터 리스트의 크기만큼 인덱싱한다.
즉, 도 21에 도시된 바와 같이, 공격 경로의 첫 행에서 첫번째 호스트 IP('192.168.60.2')는 호스트 IP 리스트의 인덱스 15에 해당하고, 두번째 호스트 IP ('192.168.60.6')는 호스트 IP 리스트의 인덱스 19에 해당하므로, 특정 행렬의 행 15, 열 19에 해당하는 원소 SM(15,19)를 1로 설정한다. 즉, 이 호스트 쌍이 네트워크 토폴로지 상에서 공격 경로에 해당된다는 것을 의미한다.
전술한 과정을 나머지 공격 경로에 대해서 반복 수행하면 다음의 도 22와 같이 표현될 수 있다. 도 22는 실시 예에 따른 특정 행렬에 모든 공격 경로를 할당한 예시도이다.
이후, 토폴로지 상삼각행렬과 형태를 맞추기 위해 특정 행렬의 상삼각 부분만 선택되어, 특정 상삼각행렬(upper specific matrix)이 생성된다.
특정 특징(specific feature)은 공격 경로(attack path)의 특정 행렬(specific matrix)상 위치를 호스트 IP 리스트의 인덱스로 표현한다. 즉, 다음과 같이 할당한다.
specific_feature[0] = idx0_x
specific_feature[1] = idx0_y
specific_feature[2] = 22
한편, 가짜 공격 경로(negative attack path) 생성은 다음과 같다.
가짜 공격 경로는 네트워크 토폴로지 상에서는 연결되어 있지만, 정답 공격 경로 리스트에는 없는 공격 경로를 의미한다.
도 23은 실시예에 따른 토폴로지 상삼각행렬의 예시도이고, 도 24는 실시예에 따른 특정 행렬의 예시도이다.
도 23을 참조하면, 토폴로지 상삼각행렬(upper topology matrix)에서 원소 값 1은 호스트간 물리적 연결이 존재한다는 것을 의미한다. 실시예에서는 호스트간 물리적 연결만을 고려했지만, 방화벽 장비나 호스트 방화벽 등의 서비스 연결 정책을 고려한 호스트간 서비스의 논리적 연결도 고려할 수 있다.
도 24를 참조하면, 공격 경로를 표현한 특정 행렬(specific matrix)을 같이 살펴보면, 모든 호스트간 연결이 공격 경로인 것은 아니다. 즉, 토폴로지 상삼각행렬의 원소 값이 '1'일 때, 특정 행렬의 동일한 위치(호스트간 연결) 값이 '1'(진짜 공격 경로)일 수도, '0'(가짜 공격 경로)일 수도 있다.
이렇듯, 가짜 공격 경로(negative attack path)(51)는 토폴로지 상삼각행렬의 원소 값이 '1'이지만, 특정 행렬의 동일한 위치 원소 값이 '0'인 것을 의미한다. 반면, 진짜 공격 경로(positive attack path)(53)는 토폴로지 상삼각행렬의 원소 값이 '1'이지만, 특정 행렬의 같은 위치 원소 값이 '1'이다.
토폴로지 상삼각행렬(upper topology matrix)에서 원소 값이 '1'이고, 특정 행렬(specific matirx)의 동일한 위치 원소 값이 '0'인 가짜 공격 경로에 해당하는 호스트쌍의 인덱스(토폴로지 상삼각행렬 원소의 행과 열)를 구해, 가짜 공격 경로 리스트를 구성한다. 이 중에서 생성하고자 하는 가짜 공격 경로의 수만큼 선택하면 된다.
도 25는 실시예에 따른 가짜 공격 경로 리스트의 예시도이다.
도 25를 참조하면, 토폴로지당 20개의 가짜 공격 경로를 생성한 리스트가 도시되어 있다.
가짜 공격 경로 리스트를 생성한 후에, 특정 행렬(specific matrix)를 0으로 초기화 한다. 가짜 공격 경로 리스트에서 하나의 호스트쌍을 선택한다. 일예로, 선택된 호스트쌍의 인덱스가 (idx0_x, idx0_y) = (10, 21)이라면, 특정 행렬(specific matrix)의 해당 위치(10행 21열) 원소 값을 1로 설정한다. 호스트쌍의 인덱스는 특정 특징(specific feature)에 할당한다. 그리고, 특정 행렬의 상삼각 부분만 선택하여, 가짜 공격 경로를 포함한 특정 상삼각행렬을 만든다.
이 과정을 토폴로지당 임의 샘플(일예로 20개)만큼 반복 수행하여, 전체 토폴로지에 적용하여 200만 개의 가짜 공격 경로 데이터를 생성한다.
도 26은 실시예에 따른 현재 토폴로지 내 호스트들의 물리적인 연결 상태 매트릭스의 예시도이고, 도 27은 실시예에 따른 가짜 공격 경로에 대한 매트릭스 상의 위치 표시 예시도이다.
도 26을 참조하면, 부호 54, 55와 같은 동그라미 표시된 위치는 연결 물리적인 연결이 있는 위치로 진짜 공격 경로가 될 수 있는데, 도 27을 참조하면, 부호 56은 도 26의 부호 55와 일치하는 위치로 물리적인 연결은 있지만 가짜 공격 경로임을 알 수 있다.
진짜 공격 경로(positive attack path)의 생성 과정은 다음과 같다.
도 28은 실시예에 따른 진짜 공격 경로 리스트의 예시도이고, 도 29는 실시예에 따른 현재 토폴로지 내 호스트들의 물리적인 연결 상태 매트릭스의 예시도이고, 도 30은 실시예에 따른 가짜 공격 경로에 대한 매트릭스 상의 위치 표시 예시도이다.
도 28을 참조하면, 진짜 공격 경로 리스트는 attack_graph.pkl 파일로부터 토폴로지별로 제공된다. 각 공격 경로에 해당하는 호스트쌍을 호스트 IP 리스트를 참고해서 인덱싱한다.
일예로, 도 29에 도시된 바와 같이, 선택된 호스트쌍의 인덱스가 (idx0_x, idx0_y) = (15, 19)이라면, 특정 행렬(specific matrix)의 해당 위치(15행 19열) 원소 값을 1로 설정한다. 호스트쌍의 인덱스는 특정 특징(specific feature)에 할당한다. 그리고, 특정 행렬의 상삼각 부분만 선택하여, 진짜 공격 경로를 포함한 특정 상삼각행렬을 만든다.
이 과정을 토폴로지당 10개 샘플만큼 반복 수행하여, 전체 토폴로지에 적용하여 100만 개의 진짜 공격 경로 데이터를 생성한다.
공격 경로 데이터를 구성할 때, 토폴로지 상삼각행렬은 평탄화(flatten)를 해서 253차원 벡터로 구성한 후 전역 특징 데이터에 붙인다. 평탄화는 행 별로 각 행의 끝 원소에 다음 행의 첫 번째 원소를 붙이는 방식으로 한다. 특정 상삼각 행렬도 평탄화를 해서 253 차원 벡터로 구성한 후 특정 특징(specific feature) 데이터에 붙인다.
이 과정을 통해 생성된 100만개의 진짜 공격 경로 데이터와 200만개의 가짜 공격 경로 데이터를 파일(data_final_positive_v2.npy, data_final_negative_v2.npy)로 저장한다.
<표 8>은 공격 경로 데이터의 예시도이다.
Figure pat00010
도 31은 실시예에 지능형 공격 경로 예측 모델 학습부의 상세 블록도이다.
도 31을 참조하면, 학습 처리부(100)는 신경망 모델에 입력할 공격 경로 데이터 전처리 단계(S131)와, 지능형 공격 경로 예측 모델을 훈련하고 성능을 검증하기 위한 공격 그래프 모델 학습 단계(S132)를 수행할 수 있다.
데이터 전처리 단계(S131)는 공격 경로 데이터 읽기 단계, 레이블 단계, 훈련 및 검증 데이터 분할 단계, 데이터 표준화(standardization) 단계, 특정 특징(specific feature) 데이터 할당 단계를 거친다.
이때, 공격 경로 데이터 읽기 단계에서는 전술한 공격 데이터 생성 단계(S124)에서 생성된 공격 경로 데이터(data_final_positive_ v2.npy, data_final_negative_v2.npy) 파일로부터 진짜 공격 경로 데이터(data_pos) 100만개와 가짜 공격 경로 데이터(data_neg) 200만개를 읽는다. 이 단계에서 공격 경로 데이터들은 토폴로지 순으로 정렬되어 있어서, 토폴로지간 의존성 제거를 위해 샘플 단위(데이터의 행(raw))로 랜덤하게 섞는다.
도 32는 실시예에 따른 공격 경로 데이터 레이블링 및 훈련/검증 데이터 분할 단계의 예시도이다.
도 32를 참조하면, 레이블 단계에서는 진짜 공격 경로에 레이블 1을 가짜 공격 경로에 레이블 0을 붙인다.
훈련 및 검증 데이터 분할 단계에서는 전체 공격 경로 중 90%를 훈련(train) 데이터로, 나머지 10%를 검증(validation) 데이터로 분할한다. 실시예로, 가짜 공격 경로 데이터 중 상위 180만개(data_neg[0:1,800,000])를 훈련 데이터(data_train)로 나머지 중 10만개(data_neg [1,800,000:1,900,000])를 검증 데이터(data_valid)로 사용한다. 또한 진짜 공격 경로 데이터 중 상위 90만개(data_pos[0:900,000])를 훈련 데이터로 나머지 10만개(data_pos[900,000: 1,000,000]를 검증 데이터로 사용한다. 이후, 공격 경로 레이블이 샘플별로 섞일 수 있도록, 분할된 각 데이터의 샘플을 다시 한번 랜덤하게 섞는다.
데이터 표준화(standardization) 단계는 공격 경로 데이터의 전역 특징 데이터를 표준화 한다. 전역 특징 데이터는 토폴로지의 모든 호스트에 설치된 SW 컴포넌트(os, service, product, port)의 인코딩 결과를 포함하고 있다. 이 값들을 직접 신경망 모델에 입력할 경우, 학습 속도가 느리고 지역 최적값(local minimum)에 빠질 수 있으므로, 이를 방지하기 위해 표준화를 수행한다.
도 33은 실시예에 따른 전역 특징 데이터 표준화 단계의 예시도이다.
도 33을 참조하면, 호스트별로 최대 3개의 SW 컴포넌트가 설치되고, SW 컴포넌트당 4차원의 특징 데이터(os, service, product, port)가 있으므로, 1개의 호스트에 총 12차원의 특징 데이터가 있다. 이런 12차원의 특징 데이터가 토폴로지의 모든 호스트에 있다. 훈련 데이터의 전체 토폴로지에 있는 호스트들의 12차원 특징 데이터를 선택해, 각 차원 별로 평균과 표준편차를 구하고, 이후 전체 훈련 데이터의 전역 특징 데이터에서 호스트별 SW 컴포넌트의 12차원 특징 값에서 평균을 빼고, 그 결과를 표준편차로 나눠, 전역 특징 데이터를 표준화한다.
특정 특징(specific feature) 데이터 할당 단계는 공격 경로 데이터에서 공격 경로를 호스트 인덱스로 표현한 특정 특징값을 토폴로지 내에서 해당 호스트의 전역 특징 값으로 치환하기 위한 과정이다.
도 34는 실시예에 따른 특정 특징 필드값 치환 단계의 예시도이다.
도 34를 참조하면, 훈련 데이터의 하나의 샘플에서 공격 경로의 호스트 인덱스 값이 (idx0, idx1, idx2) = (0, 2, 22)라면, 전역 특징 데이터의 0, 2, 22 번째 호스트 SW 컴포넌트 특징에 해당하는 값(12개)을 가져와 순서대로 36차원을 구성한 후 기존의 특정 특징 필드를 대체한다. 이 과정을 전체 훈련 및 검증 데이터에 반복 수행한다. 이 결과 데이터가 최종적으로 신경망의 입력 데이터로 사용된다.
다시 도 31을 참조하면, 공격 그래프 모델 학습 단계(S32)에서 훈련 및 검증 데이터를 입력으로 지능형 공격 경로 예측 모델을 훈련하고 성능을 검증한다. 모델 학습이 끝난 후에는 모델의 가중치 파라미터를 파일로 저장하여, 나중에 새로운 네트워크 토폴로지 및 호스트 자산 정보가 주어졌을 때 모델에서 가중치 파라미터를 로딩해서 공격 경로를 예측하는데 사용할 수 있도록 한다.
이때, 지능형 공격 경로 예측 모델은 실시예에서 텐서플로우(Tensorflow v2.0)를 기반으로 전역 입력(global input)과 타겟별입력(target-specific input)을 별도로 사용하는 다중 경로 심층 학습 모델(multi-path deep learning model)이다.
도 35는 실시예에 따른 지능형 공격 경로 예측 모델 구조 및 하이퍼 파라메터 설정 예시도이다.
도 35를 참조하면, 모델은 전체 토폴로지에 대한 입력과, 특정 호스트간 경로에 대한 입력을 받으면, 입력된 특정 호스트간 경로가 진짜 공격 경로(attack path)인지 가짜 공격 경로인지를 판단한다.
또한, 지능형 공격 경로 예측 모델은 입력층, 3개의 은닉층, 출력층으로 구성될 수 있다.
이때, 입력층은 공격 경로 데이터 중 전역 특징 데이터, 토폴로지 상삼각행렬 데이터, 특정 특징 데이터, 특정 상삼각행렬 데이터를 각각 처리할 수 있도록 512 차원을 갖는 4개의 완전연결(fully connected, Dense) 계층으로 구성한다. 입력층 활성화 함수는 Leaky ReLu를 사용하고, alpha=0.01로 설정한다. 3개의 은닉층은 1024차원 완전연결 계층으로 구성하고, 활성화 함수로 입력층과 동일한 Leaky ReLu를 사용한다. 출력층은 2차원 완전연결 계층으로 구성하고, 활성화 함수는 SoftMax를 사용한다.
모델의 가중치 초기화는 He_uniform을 사용하고, 커널 규제(regularizer) 함수는 L2(L=0.00001) 모델을 사용한다. 손실함수는 SparseCategoricalCrossEntropy 함수를 사용한다. 최적화기(optimizer)는 momentum = 0.9를 적용한 SGD 모델을 사용한다. 학습률은 경계값(boundaries) 내에서는 0.005, 이후에는 0.001로 설정한다.
모델 훈련은 2,700,000 샘플의 훈련 데이터(data_train)를 배치(batch) 크기 100으로 해서 모델에 입력하고, 5 에포크(epoch) 동안 학습을 진행한다. 훈련 데이터 학습을 100번 반복할 때마다 200,000 샘플의 검증 데이터(data_valid)를 이용해 모델 성능을 측정한다. 성능 측정 메트릭(metric)은 손실(loss) 측정을 위해 Mean Squared Error 방식을 사용하고, 예측 정확도(accuracy) 측정을 위해 SparseCategoricalCrossEntropy 함수를 이용한다.
도 36은 실시예에 따른 모델 성능 측정 결과인 손실의 예시 그래프이고, 도 37은 실시예에 따른 모델 성능 측정 결과인 정확도의 예시 그래프이다.
도 36과 같이 손실이 최소값으로 수렴되는 학습 완료 후, 도 37에 도시된 바와 같이 모델의 최종 성능은 공격 경로 예측 정확도 87% 수준에 이른다.
도 38은 실시예에 따른 지능형 공격 경로 예측부의 동작을 설명하기 위한 도면이다.
도 38을 참조하면, 지능형 공격 경로 예측부(200)는 시험 데이터 생성 단계(S210) 및 지능형 공격 경로 예측(IAG) 모델 기반 공격 그래프 생성 단계(S220)를 수행할 수 있다.
시험 데이터 생성 단계(S210)에서는 지능형 공격 그래프 생성에 필요한 시험 데이터를 생성한다.
즉, 네트워크 시뮬레이터를 통해 신규 토폴로지를 생성(S211)하고, 이로부터 네트워크 토폴로지 및 자산정보를 추출(S212)해서 데이터베이스(iagDB)에 저장한다(S213). 한편, 지능형 공격 그래프의 예측 결과를 검증하기 위해, 신규 토폴로지를 예측 기반 공격 그래프 생성 모델에 적용해서 공격 그래프를 생성하고, 데이터베이스(pagDB)에 저장한다(S214).
지능형 공격 경로 예측 모델 기반 공격 그래프 생성 단계(S220)에서는 시험 데이터로부터 전역 특징을 추출한다(S221). 호스트간 연결 수만큼의 시험 공격 경로 데이터를 생성한다(S222). 이후, 시험 데이터를 전처리(표준화)해서 미리 학습된 모델에 입력한다(S223). 그러면 IAG 모델은 공격 경로 데이터만큼의 공격 경로를 예측하고, 공격 경로 데이터의 인덱스를 디코딩해서 호스트 IP 주소로 표현되는 공격 경로를 생성한다(S224).
사용자 입출력부(500)는 지능형 공격 경로 예측 방법에 의해 생성된 지능형 공격 경로 예측 결과를 가시화해서 보여주는 기능을 수행한다.
도 39는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
실시예에 따른 주의 기반 사이버 공격 경로 추론 장치, 학습 처리부 및 지능형 공격 경로 예측부 각각은 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다.
컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.
이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 적어도 하나의 프로그램이 기록된 메모리; 및
    프로그램을 실행하는 프로세서를 포함하며,
    프로그램은,
    컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 호스트 자산정보를 생성 및 수집하는 단계;
    수집된 네트워크 토폴로지 및 호스트 자산정보 데이터로부터 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 추출하는 단계; 및
    추출된 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 학습 데이터로 하여 네트워크 시스템의 공격 취약점을 예측하는 신경망 모델을 학습시키는 단계를 수행하는, 지능형 공격 경로 예측 모델 학습 장치.
  2. 제1 항에 있어서, 생성 및 수집하는 단계는,
    컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계;
    공격 그래프 생성을 위한 호스트간 에지를 생성하고, 각 호스트의 취약점 점수를 계산하여 공격 그래프 데이터베이스에 저장하는 단계;
    네트워크 토폴로지에서 호스트들간의 연결 상태를 표현하기 위한 연결 행렬을 생성하는 단계;
    취약점을 이용한 공격가능 경로를 생성하는 기능을 이용하여 두 호스트 간의 모든 네트워크 도달 가능 경로를 입력으로 하여 공격 가능한 취약점 및 컴포넌트를 식별한 결과를 기반으로 공격 경로를 생성하는 단계; 및
    공격 취약점 추론 신경망 모델 학습을 위한 지능형 공격그래프 학습 데이터베이스룰 구축하는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 장치.
  3. 제2 항에 있어서, 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계는,
    사전 생성 시점을 구별하기 위한 타임스탬프(timestamp) 필드, 네트워크 호스트의 시스템 상태 정보를 저장하기 위한 시스템 상태(system_states) 필드 및 네트워크 시스템의 위상 정보를 저장하기 위한 토폴로지(topology) 필드를 포함하는 네트워크 자산 사전(network assets dictionary)을 생성하는 단계;
    그래프 도구를 이용한 모의 토폴로지 생성을 위한 그래프 객체를 생성하는 단계;
    사전에 정의된 최대, 최소 서브넷 개수 범위 내에서 랜덤하게 서브넷 개수를 선택하고, 그래프(Graph(G))에 라우터 노드를 할당하는 단계;
    네트워크 자산사전에 라우터 정보를 업데이트하는 단계
    네트워크 자산사전에 서브넷 정보를 업데이트하는 단계;
    라우터간 링크 및 호스트와 라우터간 링크 정보를 네트워크 자산사전에 업데이트하는 단계; 및
    선별된 OS 및 Service의 취약점 정보를 담고 있는 CVE 파일을 독출하여, 토폴로지에 있는 각 호스트에 OS 및 Service가 선택되어 할당하는 단계 중 적어도 하나를 수행하는, 지능형 공격 경로 예측 모델 학습 방법.
  4. 제1 항에 있어서, 추출하는 단계는,
    SW 컴포넌트의 취약 정도를 반영하여 생성된 CSV 파일을 독출하여, 지능형 공격 그래프 학습 데이터를 인코딩하기 위한 자산 사전을 생성하는 단계;
    기 구축된 지능형 공격그래프 학습 데이터로부터 모델 학습에 필요한 특징 데이터를 추출하는 단계;
    각 토폴로지별로 모델 학습에 사용될 전역 특징(global feature) 데이터를 생성하는 단계; 및
    지능형 공격 경로 예측 모델이 학습할 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 장치.
  5. 제4 항에 있어서, 특징 데이터를 추출하는 단계는,
    지능형 공격그래프 학습 데이터베이스의 토폴로지 테이블, 서비스 테이블 및 공격 경로 테이블을 참조하여, 네트워크 토폴로지별 네트워크에 포함된 호스트 IP 주소, 호스트 연결 정보, 호스트 보유 자산 정보, 정답 공격 경로 등을 추출하는, 지능형 공격 경로 예측 모델 학습 장치.
  6. 제4 항에 있어서, 공격 경로 데이터는,
    전역 특징(global features), 토폴로지 상삼각행렬(upper topology matrix), 특정 특징(specific feature) 및 특정 특징 상삼각행렬(upper specific matrix) 데이터로 구성되는, 지능형 공격 경로 예측 모델 학습 장치.
  7. 제6 항에 있어서, 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계는,
    토폴로지 상삼각행렬(upper topology matrix)에서 원소 값이 '1'이고, 특정 행렬(specific matirx)의 동일한 위치 원소 값이 '0'인 가짜 공격 경로에 해당하는 호스트쌍의 인덱스를 구해, 가짜 공격 경로 리스트를 구성하는, 지능형 공격 경로 예측 모델 학습 장치.
  8. 제1 항에 있어서, 학습시키는 단계는,
    학습 데이터를 전처리하는 단계를 포함하되,
    전처리하는 단계는,
    생성된 공격 경로 데이터 파일로부터 소정 개수의 진짜 공격 경로 데이터 및 가짜 공격 경로 데이터를 독출하는 단계;
    진짜 공격 경로 및 가짜 공격 경로를 상이하게 레이블링하는 단계;
    전체 공격 경로를 훈련 데이터 및 검증 데이터로 분할하는 단계;
    공격 경로 데이터의 전역 특징 데이터를 표준화하는 단계; 및
    공격 경로 데이터에서 공격 경로를 호스트 인덱스로 표현한 특정 특징값을 토폴로지 내에서 해당 호스트의 전역 특징 값으로 치환하는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 장치.
  9. 제8 항에 있어서, 신경망 모델은,
    공격 경로 데이터 중 전역 특징 데이터, 토폴로지 상삼각행렬 데이터, 특정 특징 데이터, 특정 상삼각행렬 데이터를 각각 처리할 수 있도록 512 차원을 갖는 4개의 완전연결(fully connected, Dense) 계층으로 구성된 입력층;
    1024차원 완전연결 계층으로 구성된 은닉층; 및
    2차원 완전연결 계층으로 구성되는 출력층을 포함하는, 지능형 공격 경로 예측 모델 학습 장치.
  10. 적어도 하나의 프로그램이 기록된 메모리; 및
    프로그램을 실행하는 프로세서를 포함하며,
    프로그램은,
    지능형 공격 그래프 생성에 필요한 시험 데이터를 생성하는 단계; 및
    지능형 공격 경로 예측 모델 기반 공격 그래프 생성 단계를 포함하는, 주의 기반 사이버 공격 경로 추론 장치.
  11. 제10 항에 있어서, 시험 데이터를 생성하는 단계는,
    네트워크 시뮬레이터를 통해 신규 토폴로지를 생성하는 단계;
    네트워크 토폴로지 및 자산정보를 추출해서 데이터베이스 저장하는 단계;
    신규 토폴로지를 예측 기반 공격 그래프 생성 모델에 적용해서 공격 그래프를 생성하고, 데이터베이스(pagDB)에 저장하는 단계를 포함하는, 주의 기반 사이버 공격 경로 추론 장치.
  12. 제10 항에 있어서, 지능형 공격 경로 예측 모델 기반 공격 그래프 생성 단계는,
    시험 데이터로부터 전역 특징을 추출하는 단계; 및
    호스트간 연결 수만큼의 시험 공격 경로 데이터를 생성하는 단계를 포함하는, 주의 기반 사이버 공격 경로 추론 장치.
  13. 컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 호스트 자산정보를 생성 및 수집하는 단계;
    수집된 네트워크 토폴로지 및 호스트 자산정보 데이터로부터 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 추출하는 단계; 및
    추출된 전역 특징 데이터 및 특정 특징 데이터 중 적어도 하나를 학습 데이터로 하여 네트워크 시스템의 공격 취약점을 예측하는 신경망 모델을 학습시키는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 방법.
  14. 제13 항에 있어서, 생성 및 수집하는 단계는,
    컴퓨터 네트워크 시스템의 사이버 공격 취약점 예측에 필요한 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계;
    공격 그래프 생성을 위한 호스트간 에지를 생성하고, 각 호스트의 취약점 점수를 계산하여 공격 그래프 데이터베이스에 저장하는 단계;
    네트워크 토폴로지에서 호스트들간의 연결 상태를 표현하기 위한 연결 행렬을 생성하는 단계;
    취약점을 이용한 공격가능 경로를 생성하는 기능을 이용하여 두 호스트 간의 모든 네트워크 도달 가능 경로를 입력으로 하여 공격 가능한 취약점 및 컴포넌트를 식별한 결과를 기반으로 공격 경로를 생성하는 단계; 및
    공격 취약점 추론 신경망 모델 학습을 위한 지능형 공격그래프 학습 데이터베이스룰 구축하는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 방법.
  15. 제14 항에 있어서, 가상의 네트워크 토폴로지 및 자산정보를 생성하는 단계는,
    사전 생성 시점을 구별하기 위한 타임스탬프(timestamp) 필드, 네트워크 호스트의 시스템 상태 정보를 저장하기 위한 시스템 상태(system_states) 필드 및 네트워크 시스템의 위상 정보를 저장하기 위한 토폴로지(topology) 필드를 포함하는 네트워크 자산 사전(network assets dictionary)을 생성하는 단계;
    그래프 도구를 이용한 모의 토폴로지 생성을 위한 그래프 객체를 생성하는 단계;
    사전에 정의된 최대, 최소 서브넷 개수 범위 내에서 랜덤하게 서브넷 개수를 선택하고, 그래프(Graph(G))에 라우터 노드를 할당하는 단계;
    네트워크 자산사전에 라우터 정보를 업데이트하는 단계
    네트워크 자산사전에 서브넷 정보를 업데이트하는 단계;
    라우터간 링크 및 호스트와 라우터간 링크 정보를 네트워크 자산사전에 업데이트하는 단계; 및
    선별된 OS 및 Service의 취약점 정보를 담고 있는 CVE 파일을 독출하여, 토폴로지에 있는 각 호스트에 OS 및 Service가 선택되어 할당하는 단계 중 적어도 하나를 수행하는, 지능형 공격 경로 예측 모델 학습 방법.
  16. 제13 항에 있어서, 추출하는 단계는,
    SW 컴포넌트의 취약 정도를 반영하여 생성된 CSV 파일을 독출하여, 지능형 공격 그래프 학습 데이터를 인코딩하기 위한 자산 사전을 생성하는 단계;
    기 구축된 지능형 공격그래프 학습 데이터로부터 모델 학습에 필요한 특징 데이터를 추출하는 단계;
    각 토폴로지별로 모델 학습에 사용될 전역 특징(global feature) 데이터를 생성하는 단계; 및
    지능형 공격 경로 예측 모델이 학습할 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 방법.
  17. 제12 항에 있어서, 공격 경로 데이터는,
    전역 특징(global features), 토폴로지 상삼각행렬(upper topology matrix), 특정 특징(specific feature) 및 특정 특징 상삼각행렬(upper specific matrix) 데이터로 구성되는, 지능형 공격 경로 예측 모델 학습 방법.
  18. 제17 항에 있어서, 진짜 공격 경로 데이터와 가짜 공격 경로 데이터를 생성하는 단계는,
    토폴로지 상삼각행렬(upper topology matrix)에서 원소 값이 '1'이고, 특정 행렬(specific matirx)의 동일한 위치 원소 값이 '0'인 가짜 공격 경로에 해당하는 호스트쌍의 인덱스를 구해, 가짜 공격 경로 리스트를 구성하는, 지능형 공격 경로 예측 모델 학습 장치.
  19. 제13 항에 있어서, 학습시키는 단계는,
    학습 데이터를 전처리하는 단계를 포함하되,
    전처리하는 단계는,
    생성된 공격 경로 데이터 파일로부터 소정 개수의 진짜 공격 경로 데이터 및 가짜 공격 경로 데이터를 독출하는 단계;
    진짜 공격 경로 및 가짜 공격 경로를 상이하게 레이블링하는 단계;
    전체 공격 경로를 훈련 데이터 및 검증 데이터로 분할하는 단계;
    공격 경로 데이터의 전역 특징 데이터를 표준화하는 단계; 및
    공격 경로 데이터에서 공격 경로를 호스트 인덱스로 표현한 특정 특징값을 토폴로지 내에서 해당 호스트의 전역 특징 값으로 치환하는 단계를 포함하는, 지능형 공격 경로 예측 모델 학습 방법.
  20. 제19 항에 있어서, 신경망 모델은,
    공격 경로 데이터 중 전역 특징 데이터, 토폴로지 상삼각행렬 데이터, 특정 특징 데이터, 특정 상삼각행렬 데이터를 각각 처리할 수 있도록 512 차원을 갖는 4개의 완전연결(fully connected, Dense) 계층으로 구성된 입력층;
    1024차원 완전연결 계층으로 구성된 은닉층; 및
    2차원 완전연결 계층으로 구성되는 출력층을 포함하는, 지능형 공격 경로 예측 모델 학습 방법.
KR1020210104942A 2021-08-10 2021-08-10 주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법 KR20230023136A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210104942A KR20230023136A (ko) 2021-08-10 2021-08-10 주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법
US17/882,090 US20230047450A1 (en) 2021-08-10 2022-08-05 Apparatus for inferring cyberattack path based on attention, and apparatus and method for training intelligent attack path prediction model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210104942A KR20230023136A (ko) 2021-08-10 2021-08-10 주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230023136A true KR20230023136A (ko) 2023-02-17

Family

ID=85177209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210104942A KR20230023136A (ko) 2021-08-10 2021-08-10 주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법

Country Status (2)

Country Link
US (1) US20230047450A1 (ko)
KR (1) KR20230023136A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389279B (zh) * 2023-04-20 2023-12-22 博智安全科技股份有限公司 工控网络的自动化渗透测试三维分析方法、装置、系统
CN116822804B (zh) * 2023-08-29 2024-04-26 合肥天帷信息安全技术有限公司 一种数字化资产管理分析方法、装置及介质
CN117892252A (zh) * 2024-03-18 2024-04-16 浙江威星电子系统软件股份有限公司 基于大数据的智慧园区运营管理平台
CN118174958A (zh) * 2024-05-10 2024-06-11 中移(苏州)软件技术有限公司 流量分类方法、装置、电子设备、存储介质和程序产品

Also Published As

Publication number Publication date
US20230047450A1 (en) 2023-02-16

Similar Documents

Publication Publication Date Title
KR20230023136A (ko) 주의 기반 사이버 공격 경로 추론 장치, 지능형 공격 경로 예측 모델 학습 장치 및 방법
Lippmann et al. Validating and restoring defense in depth using attack graphs
KR102650732B1 (ko) 컴퓨터 네트워크의 공격 취약점 예측 방법 및 장치
CN109218304B (zh) 一种基于攻击图和协同进化的网络风险阻断方法
Baiardi et al. Automating the assessment of ICT risk
CN108491714A (zh) 验证码的人机识别方法
CN113992349B (zh) 恶意流量识别方法、装置、设备和存储介质
CN108683564B (zh) 一种基于多维决策属性的网络仿真系统可信度评估方法
CN115277102B (zh) 网络攻击检测方法、装置、电子设备及存储介质
CN113660273B (zh) 超融合架构下基于深度学习的入侵检测方法及装置
CN112202718B (zh) 一种基于XGBoost算法的操作系统识别方法、存储介质及设备
CN108600270A (zh) 一种基于网络日志的异常用户检测方法及系统
Shmaryahu et al. Constructing plan trees for simulated penetration testing
CN115462055A (zh) 从网络业务推断防火墙规则
Liu et al. P2P traffic identification and optimization using fuzzy c-means clustering
CN111935185A (zh) 基于云计算构建大规模诱捕场景的方法及系统
Pope et al. Automated design of network security metrics
CN113794732B (zh) 一种部署仿真网络环境的方法、装置、设备及存储介质
CN110209558A (zh) 基于软件定义存储的智能运维方法和装置
CN114915446A (zh) 一种融合先验知识的智能网络安全检测方法
Kayacik et al. Using self-organizing maps to build an attack map for forensic analysis
Erfan DDoS attack detection scheme using hybrid ensemble learning and ga algorithm for Internet of Things
CN112491801A (zh) 一种基于关联矩阵的面向对象网络攻击建模方法及装置
Wang et al. A multi-agent genetic algorithm for improving the robustness of communities in complex networks against attacks
Speicher et al. Towards Automated Network Mitigation Analysis (extended)

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal