KR20240040554A - Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템 - Google Patents

Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템 Download PDF

Info

Publication number
KR20240040554A
KR20240040554A KR1020220119643A KR20220119643A KR20240040554A KR 20240040554 A KR20240040554 A KR 20240040554A KR 1020220119643 A KR1020220119643 A KR 1020220119643A KR 20220119643 A KR20220119643 A KR 20220119643A KR 20240040554 A KR20240040554 A KR 20240040554A
Authority
KR
South Korea
Prior art keywords
log data
graph
packets
analyzed
network
Prior art date
Application number
KR1020220119643A
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 KR1020220119643A priority Critical patent/KR20240040554A/ko
Publication of KR20240040554A publication Critical patent/KR20240040554A/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

개시된 발명의 일 실시예에 따른 CAN 방식을 통해 제어되는 CAN 네트워크의 공격 탐지 시스템은, 상기 CAN 네트워크에서 생성된 복수의 CAN 패킷들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터들로 나누어 분류하도록 구성되는 로그 데이터 생성부; 상기 분석 대상 로그 데이터에 포함된 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 로그 데이터 그래프를 생성하도록 구성되는 로그 데이터 그래프 생성부; 상기 로그 데이터 그래프를 분석하여 각각의 상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 연산하도록 구성되는 그래프 특성 연산부; 및 상기 그래프 특성값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는 공격 여부 판단부를 포함할 수 있다.

Description

CAN 패킷을 기초로 생성된 그래프를 이용하는 CAN 네트워크의 공격 탐지 시스템{ATTACK DETECTION SYSTEM OF CAN NETWORK USING GRAPH GENERATED BASED ON CAN PACKET}
본 발명은 CAN 네트워크에 대한 공격을 탐지하는 시스템 및 방법에 관한 발명으로, 상세하게는 미리 정해진 수의 CAN 패킷들로 구성된 복수의 CAN 패킷 데이터 중에서 CAN 네트워크에 대한 공격에 이용된 패킷이 포함된 CAN 패킷 데이터 시퀀스를 탐지할 수 있는 공격 탐지 시스템 및 공격 탐지 방법에 관한 것이다.
일반적으로, 차량 내 전자 장치들의 제어기(ECU; Electronic Control Unit)들은 CAN(Controller Area Network)를 이용하여 서로 통신한다. 즉, 차량의 전자 장치들은 CAN 버스를 통해서 서로 간에 데이터를 주고받음으로써 다양한 기능을 수행한다.
CAN은 데이터 프레임 내에 데이터에 대한 암호화 적용 부재와 송신하는 대상에 대한 인증 필드 부재로 인해 패킷 삽입 공격에 취약하다. 이러한 공격에 대응하기 위해 많은 침입 탐지 시스템(Intrusion Detection System; IDS)이 개발되고 있다. 현재까지 개발된 침입 탐지 시스템은 패킷 기반 IDS와 윈도우 기반 IDS로 나뉘어진다.
패킷 기반 IDS는 하나의 패킷 단위로 공격을 탐지하기 때문에 context를 활용하기 곤란해서 패킷 기반 IDS로는 공격 유형을 분류하기 어렵다는 문제가 있다. 또한, 최근 머신러닝, 딥러닝을 활용한 윈도우 기반 IDS들이 연구되고 있으나, 윈도우 기반 IDS는 학습되지 않은 새로운 유형의 공격을 탐지하기 못하는 등 robustness를 제공하지 못한다는 문제가 있다.
따라서, CAN 방식을 통해 제어되는 CAN 네트워크에 대한 공격을 보다 더 정확하게 탐지할 수 있는 기술이 필요하다.
본 발명은 CAN 네트워크의 CAN 패킷들을 기초로 그래프를 생성하고, 해당 그래프로부터 추출되는 특징을 기초로 CAN 패킷 데이터 시퀀스에 대한 공격이 있는지 여부를 알아낼 수 있어서 안전한 차량의 운행을 가능하게 하는 CAN 네트워크의 공격 탐지 시스템 및 CAN 네트워크의 공격 탐지 방법을 제공하기 위한 것이다.
또한, 본 발명은 특히 CAN 네트워크에 CAN 메시지를 생성해 주입하는 공격을 탐지할 수 있어서 해킹 공격의 탐지에 기여할 수 있는 CAN 네트워크의 공격 탐지 시스템 및 CAN 네트워크의 공격 탐지 방법을 제공하기 위한 것이다.
개시된 발명의 일 측면에 따른 CAN 방식을 통해 제어되는 CAN 네트워크의 공격 탐지 시스템은, 상기 CAN 네트워크에서 생성된 복수의 CAN 패킷들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터들로 나누어 분류하도록 구성되는 로그 데이터 생성부; 상기 분석 대상 로그 데이터에 포함된 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 로그 데이터 그래프를 생성하도록 구성되는 로그 데이터 그래프 생성부; 상기 로그 데이터 그래프를 분석하여 각각의 상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 연산하도록 구성되는 그래프 특성 연산부; 및 상기 그래프 특성값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는 공격 여부 판단부를 포함할 수 있다.
또한, 상기 로그 데이터 그래프 생성부는, 상기 분석 대상 로그 데이터에서 서로 인접한 2개의 CAN 패킷 중 먼저 생성된 CAN 패킷 및 나중에 생성된 CAN 패킷간 생성 순서를 나타내는 엣지가 상기 노드들 사이의 연결 관계를 나타내게 상기 로그 데이터 그래프를 생성하도록 구성될 수 있다.
또한, 상기 그래프 특성 연산부는, 상기 엣지가 나타내는 상기 분석 대상 로그 데이터에서 서로 인접한 2개 CAN 패킷의 조합들 중에서 가장 많은 CAN 패킷의 조합들 개수를 해당 분석 대상 로그 데이터의 최대 빈도 엣지 개수로 결정하도록 구성되고, 상기 공격 여부 판단부는, 상기 최대 빈도 엣지 개수를 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성될 수 있다.
또한, 상기 그래프 특성 연산부는, 상기 복수의 노드들 중에서 가장 많은 엣지가 연결된 노드에 연결되어 있는 상기 엣지의 개수를 해당 분석 대상 로그 데이터의 최대 이웃 개수로 결정하도록 구성되고, 상기 공격 여부 판단부는, 상기 최대 이웃 개수를 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성될 수 있다.
또한, 상기 그래프 특성 연산부는, 상기 분석 대상 로그 데이터에서 가장 먼저 생성된 CAN 패킷의 생성 시간 및 상기 분석 대상 로그 데이터에서 가장 나중에 생성된 CAN 패킷의 생성 시간을 기초로 해당 분석 대상 로그 데이터의 그래프 시간을 결정하도록 구성되고, 상기 공격 여부 판단부는, 상기 그래프 시간을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성될 수 있다.
또한, 상기 그래프 특성 연산부는, 상기 로그 데이터 그래프에 포함된 엣지의 개수를 기초로 로그 데이터 엣지 개수를 결정하도록 구성되고, 상기 공격 여부 판단부는, 상기 로그 데이터 엣지 개수를 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성될 수 있다.
또한, 상기 그래프 특성 연산부는, 서로 인접한 2개 CAN 패킷 간의 생성 시간 차이가 미리 설정된 기준 시간 미만이고 연속적으로 서로 인접한 CAN 패킷의 조합들 중에서, 가장 많은 CAN 패킷들을 포함하는 CAN 패킷의 조합에 포함된 CAN 패킷의 개수를 상기 분석 대상 로그 데이터의 연속 CAN 패킷 개수 최대값으로 결정하고, 상기 공격 여부 판단부는, 상기 연속 CAN 패킷 개수 최대값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성될 수 있다.
또한, 상기 로그 데이터 생성부는, 복수개의 정상 CAN 패킷들을 생성 순서를 기준으로 복수개의 정상 로그 데이터들로 나누어 분류하도록 구성되고, 상기 로그 데이터 그래프 생성부는, 상기 정상 로그 데이터에 포함된 정상 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 정상 로그 데이터 그래프를 생성하도록 구성되고, 상기 그래프 특성 연산부는, 복수의 상기 정상 로그 데이터 그래프를 분석하여 각각의 상기 정상 로그 데이터마다 대응되는 정상 그래프 특성값들 중 가장 값이 큰 최대 정상 그래프 특성값 및 가장 값이 작은 최소 정상 그래프 특성값을 결정하고, 상기 공격 여부 판단부는: 상기 그래프 특성값이 상기 최대 정상 그래프 특성값을 초과하거나 상기 최소 정상 그래프 특성값 미만이면 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격이 있다고 판단하고; 그리고 상기 그래프 특성값이 상기 최대 정상 그래프 특성값 이하이고 상기 최소 정상 그래프 특성값 이상이면 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격이 없다고 판단하도록 구성될 수 있다.
또한, 상기 공격 여부 판단부는, 상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 기초로, 기계학습 모델을 통해 상기 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성될 수 있다.
또한, 상기 기계학습 모델을 생성하도록 구성되는 기계학습부;를 더 포함하고, 상기 로그 데이터 생성부는, 복수개의 학습용 CAN 패킷들을 생성 순서를 기준으로 복수개의 학습용 로그 데이터들로 나누어 분류하도록 구성되고, 상기 로그 데이터 그래프 생성부는, 상기 학습용 로그 데이터에 포함된 학습용 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 학습용 로그 데이터 그래프를 생성하도록 구성되고, 상기 그래프 특성 연산부는, 상기 학습용 로그 데이터 그래프를 분석하여 각각의 상기 학습용 로그 데이터에 대응되는 학습용 그래프 특성값을 연산하도록 구성되고, 상기 기계학습부는, 상기 학습용 그래프 특성값을 입력 변수로 하고, 상기 학습용 CAN 패킷들의 정상 여부 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성하도록 구성될 수 있다.
또한, 기계학습부는, 학습용 그래프 특성값을 입력 변수로 하고, 학습용 CAN 패킷들의 공격 유형 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성하고, 공격 유형 정보는, 학습용 CAN 패킷들 중에서 학습용 공격 패킷의 공격 유형에 관한 정보이고, 공격 여부 판단부는, 분석 대상 로그 데이터에 대응되는 그래프 특성값을 기초로, 기계학습 모델을 통해 분석 대상 로그 데이터 단위의 공격 유형을 분류할 수 있다.
개시된 발명의 일 측면에 따른 프로세서에 의해 CAN 방식을 통해 제어되는 CAN 네트워크에 대한 공격 여부를 판단하는 공격 탐지 방법은, 상기 CAN 네트워크에서 생성된 복수의 CAN 패킷들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터들로 나누어 분류하는 단계; 상기 분석 대상 로그 데이터에 포함된 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 로그 데이터 그래프를 생성하는 단계; 상기 로그 데이터 그래프를 분석하여 각각의 상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 연산하는 단계; 및 상기 그래프 특성값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하는 단계;를 포함할 수 있다.
개시된 발명의 일 측면에 따른 컴퓨터 프로그램은, 상기 프로세서에 의해 CAN 방식을 통해 제어되는 CAN 네트워크에 대한 공격 여부를 판단하는 CAN 네트워크의 공격 탐지 방법을 실행시키도록 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
개시된 발명의 일 측면에 따르면, CAN 네트워크의 CAN 패킷들을 기초로 그래프를 생성하고, 해당 그래프로부터 추출되는 특징을 기초로 CAN 패킷 데이터에 대한 공격이 있는지 여부를 알아낼 수 있어서 안전한 차량의 운행을 가능하게 할 수 있다.
또한, 본 발명의 실시예에 의하면, 특히 CAN 네트워크에 CAN 메시지를 생성해 주입하는 공격을 탐지할 수 있어서 해킹 공격의 탐지에 기여할 수 있다.
도 1은 일 실시예에 따른 공격 탐지 시스템의 구성도이다.
도 2는 일 실시예에 따른 CAN 패킷 및 분석 대상 로그 데이터를 도시한 도면이다.
도 3은 일 실시예에 따른 로그 데이터 그래프가 생성되는 과정을 도시한 도면이다.
도 4는 일 실시예에 따른 로그 데이터 그래프를 도시한 도면이다.
도 5는 일 실시예에 따른 로그 데이터 그래프의 노드 및 엣지를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 연속 CAN 패킷 개수 최대값을 결정하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 정상 그래프 특성값을 이용한 공격 탐지 방법의 순서도이다.
도 8은 일 실시예에 따른 기계 학습을 이용한 공격 여부 판단 및 공격 유형 분류 방법의 순서도이다.
도 9는 일 실시예에 따른 공격 탐지 방법의 성능을 설명하기 위한 표이다.
도 10은 일 실시예에 따른 기계 학습을 이용한 공격 탐지 방법의 성능을 설명하기 위한 표이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '~부'라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '~부'가 하나의 구성요소로 구현되거나, 하나의 '~부'가 복수의 구성요소들을 포함하는 것도 가능하다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 하드웨어 구성요소를 의미할 수 있다. '~부'에서 제공하는 기능은 복수의 구성요소에 의해 분리되어 수행되거나, 다른 추가적인 구성요소와 통합될 수도 있다. 본 명세서의 '~부'는 반드시 소프트웨어 또는 하드웨어에 한정되지 않으며, 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 개시된 발명의 작용 원리 및 실시예들에 대해 설명한다.
도 1은 일 실시예에 따른 공격 탐지 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 CAN(Controller Area Network) 방식을 통해 제어되는 CAN 네트워크의 공격 탐지 시스템(100)은 로그 데이터 생성부(110), 로그 데이터 그래프 생성부(120), 그래프 특성 연산부(130), 공격 여부 판단부(140), 기계학습부(150) 및 메모리(160)를 포함할 수 있다.
CAN은 차량의 도어, 창문, 조명, 악셀, 브레이크 등등의 각종 디바이스들을 전자적으로 제어하기 위한 차량용 네트워크이며, 자율주행차량이나 커넥티드 카에서도 채용되고 있다. CAN은 통상적으로 차량의 각 디바이스 제어를 위한 전자제어유닛(ECU, Electronic Control Unit)들이 CAN 버스를 통해 연결된 구조를 가진다. CAN 버스에는 일반적으로 사용자 조작에 의해 차량에 마련된 입력부를 통하여 사용자 명령이 입력되어 CAN의 데이터로서 전달된다.
공격 탐지 시스템(100)은 획득한 CAN 패킷(200)을 기초로 CAN 네트워크에 대한 공격 여부를 판단할 수 있다.
로그 데이터 생성부(110)는 CAN 네트워크에서 생성된 CAN 패킷(200)을 전달받을 수 있다. 로그 데이터 생성부(110)는 수신된 복수의 CAN 패킷(200)들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터(400)들로 나누어 분류할 수 있다. 예를 들어, 로그 데이터 생성부(110)는 수신된 복수의 CAN 패킷(200)들을 200개씩 나누어 복수개의 분석 대상 로그 데이터(400)들로 분류할 수 있다. 이때, 로그 데이터 생성부(110)는 수신된 CAN 패킷(200)의 개수가 2000개이면 200개의 CAN 패킷(200)들이 포함되어 있는 10개의 분석 대상 로그 데이터(400)들을 생성할 수 있다.
로그 데이터 그래프 생성부(120)는 생성된 분석 대상 로그 데이터(400)들을 로그 데이터 생성부(110)로부터 전달받을 수 있다. 로그 데이터 그래프 생성부(120)는 분석 대상 로그 데이터(400)를 기초로 로그 데이터 그래프(300)를 생성할 수 있다. 이때, 로그 데이터 그래프 생성부(120)는 각 분석 대상 로그 데이터(400)마다 하나씩 대응되는 복수개의 로그 데이터 그래프(300)들을 생성할 수 있다.
로그 데이터 그래프(300)는 복수의 노드(node)(301)들 및 복수의 노드(301)들 사이의 연결 관계를 나타내는 복수의 엣지(edge)(302)들로 구성되는 그래프일 수 있다. 각각의 노드(301)들은 분석 대상 로그 데이터(400)에 포함된 CAN 패킷(200)들의 CAN ID마다 하나씩 대응되는 노드(301)일 수 있다. 각각의 엣지(302)들은 CAN 패킷(200)들의 생성 순서를 기준으로 서로 인접한 CAN 패킷(200)인지 여부에 따라 복수의 노드(301)들 사이의 연결 관계를 나타내는 엣지(302)일 수 있다.
그래프 특성 연산부(130)는 생성된 로그 데이터 그래프(300)들을 로그 데이터 그래프 생성부(120)로부터 전달받을 수 있다. 그래프 특성 연산부(130)는 각각의 로그 데이터 그래프(300)를 분석하여 각각의 분석 대상 로그 데이터(400)에 대응되는 그래프 특성값을 연산할 수 있다.
공격 여부 판단부(140)는 연산된 그래프 특성값을 그래프 특성 연산부(130)로부터 전달받을 수 있다. 공격 여부 판단부(140)는 그래프 특성값을 기초로, CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다. 공격 탐지 시스템(100)은 분석 대상 로그 데이터 단위의 공격 여부에 대한 판단 결과를 출력할 수 있다.
도 2는 일 실시예에 따른 CAN 패킷 및 분석 대상 로그 데이터를 도시한 도면이다.
도 2를 참조하면, 일반적인 CAN 패킷(200)의 구조 및 일 실시예에 따른 분석 대상 로그 데이터(400)의 구조를 확인할 수 있다. 분석 대상 로그 데이터(400)는 복수개의 CAN 패킷(200)들을 포함할 수 있다. 각각의 분석 대상 로그 데이터(400)에 포함되는 CAN 패킷(200)의 개수는 사용자가 미리 설정할 수 있으며 반드시 어느 값으로 정해져 있는 것은 아닐 수 있다. 예를 들어, 각각의 분석 대상 로그 데이터(400)에 포함되는 CAN 패킷(200)의 개수는 200개일 수 있으나 개수가 이에 한정되는 것은 않는다.
분석 대상 로그 데이터(400)에 포함된 CAN 패킷(200)들은 각각 타임스탬프(Timestamp), CAN ID(Arbitration_ID), 데이터 페이로드의 크기(DLC; date length code) 및 CAN 메시지의 데이터(Data) 등으로 구성될 수 있다.
도 3은 일 실시예에 따른 로그 데이터 그래프가 생성되는 과정을 도시한 도면이다.
도 3을 참조하면, 복수개의 분석 대상 로그 데이터(400)를 기초로 로그 데이터 그래프(300)가 생성될 수 있다. 이때, 로그 데이터 그래프 생성부(120)는 각 분석 대상 로그 데이터(400)로부터 생성 시간을 기준으로 배열된 CAN ID들을 추출할 수 있다. 로그 데이터 그래프 생성부(120)는 추출된 CAN ID들의 생성된 시간을 기준으로 한 배열 순서를 기초로 각각의 분석 대상 로그 데이터(400)에 대응되는 복수개의 로그 데이터 그래프(300)들을 생성할 수 있다. 즉, 로그 데이터 그래프 생성부(120)는 CAN ID들의 생성 순서를 기준으로 한 연결관계가 드러나는 로그 데이터 그래프(300)를 생성할 수 있다.
이때, 로그 데이터 그래프 생성부(120)는, 분석 대상 로그 데이터(400)에서 서로 인접한 2개의 CAN 패킷(200) 중 먼저 생성된 CAN 패킷(200) 및 나중에 생성된 CAN 패킷(200)간 생성 순서를 나타내는 엣지(302)가 노드(301)들 사이의 연결 관계를 나타내게 로그 데이터 그래프(300)를 생성할 수 있다.
도 4는 일 실시예에 따른 로그 데이터 그래프를 도시한 도면이다.
도 4를 참조하면, 일 실시예에 따른 로그 데이터 그래프(300)는 꼭짓점과 모서리로 구성된 비선형 데이터 구조임을 확인할 수 있다. 로그 데이터 그래프(300)는 각 꼭지점, 즉 두 노드(301) 사이의 관계를 표현할 수 있다.
구체적으로, 분석 대상 로그 데이터(400)의 CAN 메시지 내 CAN ID들은 로그 데이터 그래프(300)의 각 노드(301)로 나타내질 수 있다. 예를 들어, CAN 메시지 내 CAN ID 가 'A', 'B', 'C', 'D', 'E' 및 'F'면 이를 각각 나타내는 노드(301)가 하나씩 로그 데이터 그래프(300)에 포함될 수 있다.
또한, 분석 대상 로그 데이터(400)의 CAN 메시지 내 CAN ID들 중에서 생성 시간을 기준으로 연속되는 CAN ID의 관계는 로그 데이터 그래프(300)의 각 엣지(302)로 나타내질 수 있다. 예를 들어, 'C'의 CAN ID 다음으로 생성되는 CAN ID가 'D'이면, 'C'로부터 'D'를 향하는 화살표로 하나의 엣지(302)가 표현될 수 있다. 또한, 'D'의 CAN ID 다음으로 생성되는 CAN ID가 'A', 'E' 또는 'F'이면, 'D'로부터 'A', 'E' 또는 'F'를 향하는 화살표로 세 개의 엣지(302)가 표현될 수 있다.
도 5는 일 실시예에 따른 로그 데이터 그래프의 노드 및 엣지를 설명하기 위한 도면이다.
도 5를 참조하면, 포함된 CAN 패킷(200)이 11개인 어느 한 분석 대상 로그 데이터(400)에 대응되는 로그 데이터 그래프(300)를 확인할 수 있다. 도시된 예시의 분석 대상 로그 데이터(400)를 참조하면 생성되는 CAN ID는 순서대로 '130', '140', '260', '329', '251', '2B0', '368', '251', '260', '130' 및 '2B0'임을 확인할 수 있다. 이때, 도시된 분석 대상 로그 데이터(400)에 대응되도록 생성되는 로그 데이터 그래프(300)는 CAN ID'130'와 그 다음으로 생성되는 CAN ID'140'간의 관계가 하나의 화살표로 표현되는 하나의 엣지(302)를 포함할 수 있다.
마찬가지로, 로그 데이터 그래프(300)는 CAN ID'140'와 그 다음으로 생성되는 CAN ID'260'간의 관계, CAN ID'260'와 그 다음으로 생성되는 CAN ID'329'간의 관계, CAN ID'329'와 그 다음으로 생성되는 CAN ID'251'간의 관계, CAN ID'251'와 그 다음으로 생성되는 CAN ID'2B0'간의 관계, CAN ID'2B0'와 그 다음으로 생성되는 CAN ID'368'간의 관계, CAN ID'368'와 그 다음으로 생성되는 CAN ID'251'간의 관계, CAN ID'251'와 그 다음으로 생성되는 CAN ID'260'간의 관계, CAN ID'260'와 그 다음으로 생성되는 CAN ID'130'간의 관계 및 CAN ID'130'와 그 다음으로 생성되는 CAN ID'2B0'간의 관계 각각이 하나의 화살표로 표현되는 복수개의 엣지(302)를 포함할 수 있다.
그래프 특성 연산부(130)는 로그 데이터 그래프(300)에 포함된 노드(301)와 엣지(302)의 개수 및 연결관계 등을 분석하여 각각의 분석 대상 로그 데이터(400) 및 각각의 로그 데이터 그래프(300)에 대응되는 그래프 특성값을 연산할 수 있다.
그래프 특성값은 각각의 로그 데이터 그래프(300)마다 대응되는 특정 수치로서 해당 로그 데이터 그래프(300)에 대응되는 분석 대상 로그 데이터(400)에 대한 특징을 나타내는 수치일 수 있다. 이때, 어느 한 로그 데이터 그래프(300)의 그래프 특성값은 여러 종류가 존재할 수 있다. 예를 들어, 그래프 특성값은 로그 데이터 그래프(300)를 기초로 연산되는 분석 대상 로그 데이터(400)의 최대 빈도 엣지 개수, 최대 이웃 개수, 그래프 시간, 로그 데이터 엣지 개수 및 연속 CAN 패킷 개수 최대값 중 적어도 하나일 수 있다. 그래프 특성 연산부(130)는 어느 한 로그 데이터 그래프(300)에 대해서 각 종류의 그래프 특성값을 하나씩 연산할 수 있다.
그래프 특성 연산부(130)는 엣지(302)가 나타내는 분석 대상 로그 데이터(400)에서 서로 인접한 2개 CAN 패킷(200)의 조합들 중에서 가장 많은 CAN 패킷(200)의 조합들 개수를 해당 분석 대상 로그 데이터(400)의 최대 빈도 엣지 개수로 결정할 수 있다.
예를 들어, 도 4의 로그 데이터 그래프(300)를 참조하면, 각각의 엣지(302)는 분석 대상 로그 데이터(400)에 포함된 적어도 하나 이상의'서로 인접한 2개의 CAN 패킷의 조합'을 나타낼 수 있다. 만약 분석 대상 로그 데이터(400)에서 'B'의 CAN ID 다음으로 생성되는 CAN ID가 'A'인 조합의 개수가 1이면, 'B'와 'A'를 연결하는 엣지(302)가 표현하는 '서로 인접한 2개의 CAN 패킷의 조합'의 개수는 1일 수 있다. 또한, 만약 분석 대상 로그 데이터(400)에서 'A'의 CAN ID 다음으로 생성되는 CAN ID가 'C'인 조합의 개수가 15이면, 'B'와 'A'를 연결하는 엣지(302)가 표현하는 '서로 인접한 2개의 CAN 패킷의 조합'의 개수는 15일 수 있다.
즉, 각각의 엣지(302)마다 대응되는 '서로 인접한 2개의 CAN 패킷의 조합'의 개수는 서로 다를 수 있다. 만약, 분석 대상 로그 데이터(400)에서 'A'의 CAN ID 다음으로 생성되는 CAN ID가 'C'인 조합의 개수가 15로서 '서로 인접한 2개의 CAN 패킷의 조합'의 개수 중 가장 크다면, 그래프 특성 연산부(130)는 15를 해당 분석 대상 로그 데이터(400)의 최대 빈도 엣지 개수로 결정할 수 있다.
CAN 패킷(200)들에 대한 패킷 삽입 공격이 존재하는 경우 노드(301)의 개수 및 엣지(302)마다 대응되는 '서로 인접한 2개의 CAN 패킷의 조합'의 개수 또한 달라지기 때문에 최대 빈도 엣지 개수를 기초로 공격 여부가 판단될 수 있다. 즉, 공격 여부 판단부(140)는 최대 빈도 엣지 개수를 기초로, CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다.
그래프 특성 연산부(130)는 복수의 노드(301)들 중에서 가장 많은 엣지(302)가 연결된 노드(301)에 연결되어 있는 엣지(302)의 개수를 해당 분석 대상 로그 데이터(400)의 최대 이웃 개수로 결정할 수 있다.
예를 들어, 도 5의 로그 데이터 그래프(300)를 참조하면, 노드(301) 중에서 CAN ID'260' 및 CAN ID'251'는 연결된 엣지(302)가 4개일 수 있다. 이는 노드(301)들 중에서 가장 많은 엣지(302)가 연결된 것일 수 있다. 이때, 해당 로그 데이터 그래프(300)에 대응되는 분석 대상 로그 데이터(400)의 최대 이웃 개수는 4일 수 있다.
CAN 패킷(200)들에 대한 패킷 삽입 공격이 존재하는 경우 각 노드(301)끼리 연결되는 엣지(302)의 개수 또한 달라지기 때문에 최대 이웃 개수를 기초로 공격 여부가 판단될 수 있다. 즉, 공격 여부 판단부(140)는 최대 이웃 개수를 기초로, CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다.
그래프 특성 연산부(130)는 분석 대상 로그 데이터(400)에서 가장 먼저 생성된 CAN 패킷(200)의 생성 시간 및 분석 대상 로그 데이터(400)에서 가장 나중에 생성된 CAN 패킷(200)의 생성 시간을 기초로 해당 분석 대상 로그 데이터(400)의 그래프 시간을 결정할 수 있다. 이때, 그래프 특성 연산부(130)는 분석 대상 로그 데이터(400)에서 가장 먼저 생성된 CAN 패킷(200)의 생성 시간 및 분석 대상 로그 데이터(400)에서 가장 나중에 생성된 CAN 패킷(200)의 생성 시간의 차이를 해당 분석 대상 로그 데이터(400)의 그래프 시간으로 결정할 수 있다. 예를 들어, 도 2의 분석 대상 로그 데이터(400)에서 가장 먼저 생성된 CAN 패킷(200)의 생성 시간은 '1597707827.05259'이고 가장 나중에 생성된 CAN 패킷(200)의 생성 시간은 '1597707827.05980'이면, 생성 시간의 차이인 '0.00721'이 해당 분석 대상 로그 데이터(400)의 그래프 시간일 수 있다.
인젝션 공격(injection)이 발생하면 메시지의 수가 늘어나서 그래프 시간이 감소하기 때문에 그래프 시간을 기초로 공격 여부가 판단될 수 있다. 즉, 공격 여부 판단부(140)는 그래프 시간을 기초로, CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다.
그래프 특성 연산부(130)는 로그 데이터 그래프(300)에 포함된 엣지(302)의 개수를 기초로 로그 데이터 엣지 개수를 결정할 수 있다. 예를 들어, 도 5의 로그 데이터 그래프(300)를 참조하면, 해당 로그 데이터의 엣지(302)의 개수는 포함되어 있는 엣지(302)의 총 개수인 10일 수 있다.
CAN 패킷(200)들에 대한 패킷 삽입 공격이 존재하는 경우 엣지(302)의 개수가 증가하거나 감소할 수 있기 때문에 엣지(302)의 개수를 기초로 공격 여부가 판단될 수 있다. 즉, 공격 여부 판단부(140)는 로그 데이터 엣지 개수를 기초로 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다.
한편, 하나의 ECU에서 나온 메시지 시퀀스는 반복될 가능성이 높을 수 있다. 예를 들어, 대기 중이었던 메시지가 bus Idle 상태가 되자마자 전송되는 경우 또는 특정 기능이 실행될 때, 메시지 시퀀스가 반복될 가능성이 높을 수 있다. 일 실시예에 따른 공격 탐지 시스템(100)은 이러한 특성을 이용하여 로그 데이터 단위의 공격 여부를 판단할 수 있다.
도 6은 일 실시예에 따른 연속 CAN 패킷 개수 최대값을 결정하는 방법을 설명하기 위한 도면이다.
그래프 특성 연산부(130)는 서로 인접한 2개 CAN 패킷(200) 간의 생성 시간 차이가 미리 설정된 기준 시간 미만이고 연속적으로 서로 인접한 CAN 패킷(200)의 조합들 중에서, 가장 많은 CAN 패킷(200)들을 포함하는 CAN 패킷(200)의 조합에 포함된 CAN 패킷(200)의 개수를 분석 대상 로그 데이터(400)의 연속 CAN 패킷 개수 최대값으로 결정할 수 있다.
도 6의 로그 데이터 그래프(300)를 참조하면, 분석 대상 로그 데이터(400)에 포함된 CAN 패킷(200)은 '0x220', '0x130', '0x140', '0x381', '0x356' 및 '0x140'의 CAN ID 순서로 생성될 수 있다. 이때, 미리 설정된 기준 시간이 3 bit time, 즉 6(μs)이고, '0x130'와 '0x140'의 생성 시간 차이, '0x140'와 '0x381'의 생성 시간 차이 및 '0x381'와 '0x356'의 생성 시간 차이가 3 bit time 미만이면, 해당 CAN 패킷(200)들의 조합의 연속 CAN 패킷 개수는 3일 수 있다. 이때, 3이 이러한 CAN 패킷(200)들의 조합의 연속 CAN 패킷 개수 중에서 최대값이면, 3이 해당 분석 대상 로그 데이터(400)의 연속 CAN 패킷 개수 최대값일 수 있다.
CAN 패킷(200)들에 대한 공격이 존재하는 경우 기준 시간 미만으로 연속적으로 생성되는 CAN 패킷(200)의 개수 또한 달라지기 때문에 CAN 패킷 개수 최대값을 기초로 공격 여부가 판단될 수 있다. 즉, 공격 여부 판단부(140)는 연속 CAN 패킷 개수 최대값을 기초로, CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다.
공격 여부 판단부(140)가 전술한 방식으로 연산된 최대 빈도 엣지 개수, 최대 이웃 개수, 그래프 시간, 로그 데이터 엣지 개수 및 연속 CAN 패킷 개수 최대값과 같은 그래프 특성값을 기초로 분석 대상 로그 데이터 단위의 공격이 있는지 여부를 판단하기 위해서는, 정상적인 CAN 패킷(200)들로만 구성된 분석 대상 로그 데이터(400)를 기초로 생성되는 그래프 특성값이 기준으로서 필요할 수 있다. 정상 CAN 패킷(201)들을 기초로 로그 데이터를 생성하고, 로그 데이터 그래프(300)를 생성하고, 그래프 특성값을 연산하는 것은 검사 대상 CAN 패킷(200)들을 기초로 그래프 특성값을 연산하는 것과 과정이 동일할 수 있다.
도 1을 참조하면, 로그 데이터 생성부(110)는 공격이 전혀 없다고 검증된 정상 CAN 패킷(201)을 전달받을 수 있다. 로그 데이터 생성부(110)는 복수개의 정상 CAN 패킷(201)들을 생성 순서를 기준으로 복수개의 정상 로그 데이터들로 나누어 분류할 수 있다. 로그 데이터 그래프 생성부(120)는 정상 로그 데이터에 포함된 정상 CAN 패킷(201)들의 CAN ID마다 하나씩 대응되는 복수의 노드(301)들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷(200)인지 여부에 따라 복수의 노드(301)들 사이의 연결 관계를 나타내는 복수의 엣지(302)들로 구성되는 정상 로그 데이터 그래프를 생성할 수 있다.
그래프 특성 연산부(130)는 복수의 정상 로그 데이터 그래프를 분석하여 각각의 정상 로그 데이터마다 대응되는 정상 그래프 특성값들 중 가장 값이 큰 최대 정상 그래프 특성값 및 가장 값이 작은 최소 정상 그래프 특성값을 결정할 수 있다.
예를 들어, 공격 여부 판단에 이용되는 그래프 특성값이 최대 빈도 엣지 개수일 경우, 복수의 정상 로그 데이터 그래프를 분석한 결과 각각의 정상 로그 데이터마다 대응되는 최대 빈도 엣지 개수 중 가장 큰 값이 15이고 가장 작은 값이 2일 수 있다. 이때, 그래프 특성 연산부(130)는 15를 최대 정상 그래프 특성값으로 결정하고, 2를 최소 정상 그래프 특성값으로 결정할 수 있다.
공격 여부 판단부(140)는 그래프 특성값이 최대 정상 그래프 특성값을 초과하거나 최소 정상 그래프 특성값 미만이면 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격이 있다고 판단할 수 있다. 또한, 공격 여부 판단부(140)는 그래프 특성값이 최대 정상 그래프 특성값 이하이고 최소 정상 그래프 특성값 이상이면 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격이 없다고 판단할 수 있다. 예를 들어, 최대 정상 그래프 특성값이 15이고 최소 정상 그래프 특성값이 2일 경우, 공격 여부 판단부(140)는 분석 대상 로그 데이터(400)의 그래프 특성값이 15를 초과하거나 2 미만이면 해당 분석 대상 로그 데이터(400)에 대한 공격이 있다고 판단할 수 있다. 또한, 공격 여부 판단부(140)는 분석 대상 로그 데이터(400)의 그래프 특성값이 2 이상 15 이하이면 해당 분석 대상 로그 데이터(400)에 대한 공격이 없다고 판단할 수 있다.
일 실시예에 따른 CAN 네트워크의 공격 탐지 시스템(100)은 전술한 바와 같이 정상 데이터를 기초로 결정된 정상 그래프 특성값을 기준으로 공격 여부를 판단할 수도 있으나, 기계학습 방식으로 미리 생성된 기계학습 모델(161)을 통해 공격 여부를 판단할 수도 있다. 또한, CAN 네트워크의 공격 탐지 시스템(100)은 기계학습 모델(161)을 통해 공격 여부뿐 아니라 공격 유형을 분류할 수 있다.
다시 도 1을 참조하면, 공격 여부 판단부(140)는 분석 대상 로그 데이터(400)에 대응되는 그래프 특성값을 기초로, 기계학습 모델(161)을 통해 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다. 일 실시예에 따른 기계학습부(150)는 기계학습 모델(161)을 생성하도록 구성될 수 있다. 즉, 기계학습부(150)는 학습용 CAN 패킷(202)을 기초로 기계 학습 방식을 통해 기계학습 모델(161)을 생성할 수 있다. 한편, 기계 학습 모델(161)은 메모리(160)에 저장될 수 있다.
기계 학습이란 다수의 파라미터로 구성된 모델을 이용하며, 주어진 데이터로 파라미터를 최적화하는 것을 의미할 수 있다. 기계 학습은 학습 문제의 형태에 따라 지도 학습(supervised learning), 비지도 학습(unsupervised learning) 및 강화 학습(reinforcement learning)을 포함할 수 있다. 지도 학습(supervised learning)은 입력과 출력 사이의 매핑을 학습하는 것이며, 입력과 출력 쌍이 데이터로 주어지는 경우에 적용할 수 있다. 비지도 학습(unsupervised learning)은 입력만 있고 출력은 없는 경우에 적용하며, 입력 사이의 규칙성 등을 찾아낼 수 있다. CAN 네트워크의 공격 탐지 시스템(100)은 기계 학습 방식뿐만 아니라 딥 러닝 방식을 통해서도 차량 네트워크에 대한 공격을 탐지할 수 있으며, 다양한 방식으로 CAN 네트워크에 대한 공격을 탐지할 수 있다.
로그 데이터 생성부(110)는 CAN 네트워크에서 생성되었던 학습용 CAN 패킷(202)들을 전달받을 수 있다. 로그 데이터 생성부(110)는 복수개의 학습용 CAN 패킷(202)들을 생성 순서를 기준으로 복수개의 학습용 로그 데이터들로 나누어 분류할 수 있다. 예를 들어, 로그 데이터 생성부(110)는 수신된 복수의 학습용 CAN 패킷(202)들을 200개씩 나누어 복수개의 학습용 로그 데이터들로 분류할 수 있다. 이때, 로그 데이터 생성부(110)는 수신된 학습용 CAN 패킷(202)의 개수가 2000개이면 200개의 학습용 CAN 패킷(202)들이 포함되어 있는 10개의 학습용 로그 데이터들을 생성할 수 있다.
로그 데이터 그래프 생성부(120)는 생성된 학습용 로그 데이터들을 로그 데이터 생성부(110)로부터 전달받을 수 있다. 로그 데이터 그래프 생성부(120)는 학습용 로그 데이터를 기초로 학습용 로그 데이터 그래프를 생성할 수 있다. 이때, 로그 데이터 그래프 생성부(120)는 각 학습용 로그 데이터마다 하나씩 대응되는 복수개의 학습용 로그 데이터 그래프들을 생성할 수 있다.
학습용 로그 데이터 그래프는 학습용 로그 데이터에 포함된 학습용 CAN 패킷(202)들의 CAN ID마다 하나씩 대응되는 복수의 노드(301)들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷(200)인지 여부에 따라 복수의 노드(301)들 사이의 연결 관계를 나타내는 복수의 엣지(302)들로 구성되는 로그 데이터 그래프(300)일 수 있다.
그래프 특성 연산부(130)는 생성된 학습용 로그 데이터 그래프들을 로그 데이터 그래프 생성부(120)로부터 전달받을 수 있다. 그래프 특성 연산부(130)는 각각의 학습용 로그 데이터 그래프를 분석하여 각각 학습용 로그 데이터에 대응되는 학습용 그래프 특성값을 연산할 수 있다.
학습용 그래프 특성값은 각각의 학습용 로그 데이터 그래프마다 대응되는 특정 수치로서 해당 학습용 로그 데이터 그래프에 대응되는 학습용 로그 데이터에 대한 특징을 나타내는 수치일 수 있다. 이때, 어느 한 학습용 로그 데이터 그래프의 학습용 그래프 특성값은 여러 종류가 존재할 수 있다. 예를 들어, 학습용 그래프 특성값은 학습용 로그 데이터 그래프를 기초로 연산되는 학습용 로그 데이터의 최대 빈도 엣지 개수, 최대 이웃 개수, 그래프 시간, 로그 데이터 엣지 개수 및 연속 CAN 패킷 개수 최대값 중 적어도 하나일 수 있다. 그래프 특성 연산부(130)는 어느 한 학습용 로그 데이터 그래프에 대해서 각 종류의 학습용 그래프 특성값을 하나씩 연산할 수 있다.
기계학습부(150)는 학습용 그래프 특성값을 그래프 특성 연산부(130)로부터 전달받을 수 있다. 기계학습부(150)는 학습용 그래프 특성값을 입력 변수로 하고, 학습용 CAN 패킷(202)들의 정상 여부 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성할 수 있다.
또한, 기계학습부(150)는 학습용 그래프 특성값을 입력 변수로 하고, 학습용 CAN 패킷(202)들의 공격 유형 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성할 수 있다. 공격 유형 정보는 학습용 CAN 패킷(202)들 중에서 학습용 공격 패킷의 공격 유형에 관한 정보일 수 있다. 이때, 공격 여부 판단부(140)는 분석 대상 로그 데이터(400)에 대응되는 그래프 특성값을 기초로, 기계학습 모델(161)을 통해 분석 대상 로그 데이터 단위의 공격 여부 뿐 아니라 공격이 있었을 때 해당 공격이 어떠한 유형의 공격인지를 판단할 수 있다.
이상에서 설명된 구성요소들의 성능에 대응하여 적어도 하나의 구성요소가 추가되거나 삭제될 수 있다. 또한, 구성요소들의 상호 위치는 시스템의 성능 또는 구조에 대응하여 변경될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
도 7은 일 실시예에 따른 CAN 네트워크의 공격 탐지 방법의 순서도이다. 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있음은 물론이다.
도 7을 참조하면, 공격 탐지 시스템(100)은 수신한 정상 CAN 패킷(201)들을 기초로 정상 로그 데이터 그래프를 생성할 수 있다(1001). 이때, 로그 데이터 생성부(110)는 복수개의 정상 CAN 패킷(201)들을 생성 순서를 기준으로 복수개의 정상 로그 데이터들로 나누어 분류할 수 있으며, 로그 데이터 그래프 생성부(120)는 정상 로그 데이터 그래프를 생성할 수 있다.
그래프 특성 연산부(130)는 복수의 정상 로그 데이터 그래프를 분석하여 각각의 정상 로그 데이터마다 대응되는 정상 그래프 특성값들 중 가장 값이 큰 최대 정상 그래프 특성값 및 가장 값이 작은 최소 정상 그래프 특성값을 결정할 수 있다(1002).
로그 데이터 생성부(110)는 CAN 네트워크에서 생성된 복수의 CAN 패킷(200)들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터(400)들로 나누어 분류할 수 있다(1003).
로그 데이터 그래프 생성부(120)는 복수의 노드(301)들 및 복수의 노드(301)들 사이의 연결 관계를 나타내는 복수의 엣지(302)들로 구성되는 로그 데이터 그래프(300)를 생성할 수 있다(1004).
그래프 특성 연산부(130)는 로그 데이터 그래프(300)를 분석하여 각각의 분석 대상 로그 데이터(400)에 대응되는 그래프 특성값을 연산할 수 있다(1005).
공격 여부 판단부(140)는 그래프 특성값을 기초로, CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다(1006).
도 8은 일 실시예에 따른 기계 학습을 이용한 공격 여부 판단 및 공격 유형 분류 방법의 순서도이다.
도 8을 참조하면, 로그 데이터 생성부(110)는 복수개의 학습용 CAN 패킷(202)들을 생성 순서를 기준으로 복수개의 학습용 로그 데이터들로 나누어 분류할 수 있다(2001).
로그 데이터 그래프 생성부(120)는 복수의 노드(301)들 및 복수의 엣지(302)들로 구성되는 학습용 로그 데이터 그래프를 생성할 수 있다(2002).
그래프 특성 연산부(130)는 학습용 로그 데이터 그래프를 분석하여 각각의 학습용 로그 데이터에 대응되는 학습용 그래프 특성값을 연산할 수 있다(2003).
기계학습부(150)는 학습용 그래프 특성값을 입력 변수로 하고, 학습용 CAN 패킷(202)들의 정상 여부 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성할 수 있다(2004).
공격 탐지 시스템(100)은 수신한 검사대상 CAN 패킷(200)들을 기초로 로그 데이터 그래프(300)를 생성하고, 로그 데이터 그래프(300)의 그래프 특성값을 연산할 수 있다(2005).
공격 여부 판단부(140)는 분석 대상 로그 데이터(400)에 대응되는 그래프 특성값을 기초로, 기계학습 모델(161)을 통해 분석 대상 로그 데이터 단위의 공격 여부를 판단할 수 있다(2006). 이때, 공격 여부 판단부(140)는 분석 대상 로그 데이터(400)에 대응되는 그래프 특성값을 기초로, 기계학습 모델(161)을 통해 분석 대상 로그 데이터 단위의 공격이 어떠한 유형의 공격이었는지를 판단하고 분류할 수도 있다.
로그 데이터 생성부(110), 로그 데이터 그래프 생성부(120), 그래프 특성 연산부(130), 공격 여부 판단부(140) 및 기계학습부(150)는 공격 탐지 시스템(100)에 포함된 복수개의 프로세서 중 어느 하나의 프로세서를 포함할 수 있다. 또한, 지금까지 설명된 본 발명의 실시예 및 앞으로 설명할 실시예에 따른 공격 탐지 방법은, 프로세서에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다.
여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 부호 수정을 위한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 전술한 정보 표시 방법을 구현하기 위한 프로그램은, 프로세서에 의해 판독 가능한 기록매체에 기록될 수 있다. 이때, 기록매체는 메모리(160)일 수 있다.
메모리(160)는 전술한 동작 및 후술하는 동작을 수행하는 프로그램을 저장할 수 있으며, 메모리(160)는 저장된 프로그램을 실행시킬 수 있다. 프로세서와 메모리(160)가 복수인 경우에, 이들이 하나의 칩에 집적되는 것도 가능하고, 물리적으로 분리된 위치에 마련되는 것도 가능하다. 메모리(160)는 데이터를 일시적으로 기억하기 위한 S램(Static Random Access Memory, S-RAM), D랩(Dynamic Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다. 또한, 메모리(160)는 제어 프로그램 및 제어 데이터를 장기간 저장하기 위한 롬(Read Only Memory), 이피롬(Erasable Programmable Read Only Memory: EPROM), 이이피롬(Electrically Erasable Programmable Read Only Memory: EEPROM) 등의 비휘발성 메모리를 포함할 수 있다.
프로세서는 각종 논리 회로와 연산 회로를 포함할 수 있으며, 메모리(160)로부터 제공된 프로그램에 따라 데이터를 처리하고, 처리 결과에 따라 제어 신호를 생성할 수 있다.
공격 탐지 시스템(100)의 프로세서는 차량의 CAN 네트워크에 대한 공격의 신속한 탐지를 위하여 차량 내부에 마련될 수 있다. 구체적으로, 프로세서는 하나의 ECU일 수 있고, CAN 방식을 통해 제어되는 차량 네트워크에서 게이트웨이 내부에 설치될 수도 있으며, 독립된 개체로 버스에 연결되어 게이트웨이와 통신할 수도 있다.
전술한 바와 같이 프로세서 및 메모리(160)는 차량에 마련될 수 있으나, 반드시 프로세서 및 메모리(160)가 차량에 마련되어야 하는 것은 아니며, CAN 방식을 통해 제어되는 차량의 CAN 네트워크에 대한 공격을 탐지할 수 있다면, 프로세서 및 메모리(160)가 어떠한 방식으로 구현되더라도 상관없다.
예를 들어, 프로세서 및 메모리(160)는 서버에 마련되어, 메모리(160)에 저장된 기계 학습 모델(161) 및 차량의 통신부로부터 수신한 CAN 패킷(200)에 기초하여 차량의 CAN 네트워크에 대한 공격을 탐지할 수도 있다.
본 발명의 실시예에 따른 CAN 네트워크의 공격 탐지 방법의 성능을 검증하기 위하여, CAN 패킷 공격 탐지 실험을 진행하였다.
도 9는 일 실시예에 따른 공격 탐지 방법의 성능을 설명하기 위한 표이고, 도 10은 일 실시예에 따른 기계 학습을 이용한 공격 탐지 방법의 성능을 설명하기 위한 표이다.
도 9를 참조하면, 정상 그래프 특성값을 기준으로 공격 여부를 판단한 공격 탐지 방법의 성능을 확인할 수 있다. 이때, 우선순위가 높은 패킷을 지속적으로 보내는 공격인 N/Dos(Denial of service)의 경우, 기어를 조작하는 CAN 메시지의 ID인 척 공격하는 N/Gear spoofing의 경우, RPM을 조작하는 CAN 메시지의 ID인 척 공격하는 N/Gear spoofing의 경우 및 ID 필드와 데이터 필드를 랜덤하게 보내는 N/Fuzzy의 경우 등 공격 방식에 상관없이 일 실시예에 따른 공격 탐지 방법은 높은 수치의 탐지 정확도를 나타냄을 확인할 수 있다.
도 10을 참조하면, 일 실시예에 따른 공격 탐지 방법(Graph theory-based IDS)은 Flooding, Spoofing, Replay 및 Fuzzing의 공격 방식에 상관없이 종래의 공격 탐지 방법(Histogram-based IDS; H-IDS)에 비해 높은 수치의 탐지 정확도를 나타냄을 확인할 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
100: 공격 탐지 시스템
110: 로그 데이터 생성부
120: 로그 데이터 그래프 생성부
130: 그래프 특성 연산부
140: 공격 여부 판단부
150: 기계학습부
160: 메모리
161: 기계학습 모델
200: CAN 패킷
201: 정상 CAN 패킷
202: 학습용 CAN 패킷
300: 로그 데이터 그래프
301: 노드
302: 엣지
400: 분석 대상 로그 데이터

Claims (12)

  1. CAN 방식을 통해 제어되는 CAN 네트워크의 공격 탐지 시스템에 있어서,
    상기 CAN 네트워크에서 생성된 복수의 CAN 패킷들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터들로 나누어 분류하도록 구성되는 로그 데이터 생성부;
    상기 분석 대상 로그 데이터에 포함된 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 로그 데이터 그래프를 생성하도록 구성되는 로그 데이터 그래프 생성부;
    상기 로그 데이터 그래프를 분석하여 각각의 상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 연산하도록 구성되는 그래프 특성 연산부; 및
    상기 그래프 특성값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는 공격 여부 판단부를 포함하는 CAN 네트워크의 공격 탐지 시스템.
  2. 제1항에 있어서,
    상기 로그 데이터 그래프 생성부는,
    상기 분석 대상 로그 데이터에서 서로 인접한 2개의 CAN 패킷 중 먼저 생성된 CAN 패킷 및 나중에 생성된 CAN 패킷간 생성 순서를 나타내는 엣지가 상기 노드들 사이의 연결 관계를 나타내게 상기 로그 데이터 그래프를 생성하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  3. 제2항에 있어서,
    상기 그래프 특성 연산부는,
    상기 엣지가 나타내는 상기 분석 대상 로그 데이터에서 서로 인접한 2개 CAN 패킷의 조합들 중에서 가장 많은 CAN 패킷의 조합들 개수를 해당 분석 대상 로그 데이터의 최대 빈도 엣지 개수로 결정하도록 구성되고,
    상기 공격 여부 판단부는,
    상기 최대 빈도 엣지 개수를 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  4. 제1항에 있어서,
    상기 그래프 특성 연산부는,
    상기 복수의 노드들 중에서 가장 많은 엣지가 연결된 노드에 연결되어 있는 상기 엣지의 개수를 해당 분석 대상 로그 데이터의 최대 이웃 개수로 결정하도록 구성되고,
    상기 공격 여부 판단부는,
    상기 최대 이웃 개수를 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  5. 제1항에 있어서,
    상기 그래프 특성 연산부는,
    상기 분석 대상 로그 데이터에서 가장 먼저 생성된 CAN 패킷의 생성 시간 및 상기 분석 대상 로그 데이터에서 가장 나중에 생성된 CAN 패킷의 생성 시간을 기초로 해당 분석 대상 로그 데이터의 그래프 시간을 결정하도록 구성되고,
    상기 공격 여부 판단부는,
    상기 그래프 시간을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  6. 제1항에 있어서,
    상기 그래프 특성 연산부는,
    상기 로그 데이터 그래프에 포함된 엣지의 개수를 기초로 로그 데이터 엣지 개수를 결정하도록 구성되고,
    상기 공격 여부 판단부는,
    상기 로그 데이터 엣지 개수를 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  7. 제1항에 있어서,
    상기 그래프 특성 연산부는,
    서로 인접한 2개 CAN 패킷 간의 생성 시간 차이가 미리 설정된 기준 시간 미만이고 연속적으로 서로 인접한 CAN 패킷의 조합들 중에서, 가장 많은 CAN 패킷들을 포함하는 CAN 패킷의 조합에 포함된 CAN 패킷의 개수를 상기 분석 대상 로그 데이터의 연속 CAN 패킷 개수 최대값으로 결정하고,
    상기 공격 여부 판단부는,
    상기 연속 CAN 패킷 개수 최대값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  8. 제1항에 있어서,
    상기 로그 데이터 생성부는,
    복수개의 정상 CAN 패킷들을 생성 순서를 기준으로 복수개의 정상 로그 데이터들로 나누어 분류하도록 구성되고,
    상기 로그 데이터 그래프 생성부는,
    상기 정상 로그 데이터에 포함된 정상 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 정상 로그 데이터 그래프를 생성하도록 구성되고,
    상기 그래프 특성 연산부는,
    복수의 상기 정상 로그 데이터 그래프를 분석하여 각각의 상기 정상 로그 데이터마다 대응되는 정상 그래프 특성값들 중 가장 값이 큰 최대 정상 그래프 특성값 및 가장 값이 작은 최소 정상 그래프 특성값을 결정하고,
    상기 공격 여부 판단부는:
    상기 그래프 특성값이 상기 최대 정상 그래프 특성값을 초과하거나 상기 최소 정상 그래프 특성값 미만이면 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격이 있다고 판단하고; 그리고
    상기 그래프 특성값이 상기 최대 정상 그래프 특성값 이하이고 상기 최소 정상 그래프 특성값 이상이면 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격이 없다고 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  9. 제1항에 있어서,
    상기 공격 여부 판단부는,
    상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 기초로, 기계학습 모델을 통해 상기 분석 대상 로그 데이터 단위의 공격 여부를 판단하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  10. 제9항에 있어서,
    상기 기계학습 모델을 생성하도록 구성되는 기계학습부;를 더 포함하고,
    상기 로그 데이터 생성부는,
    복수개의 학습용 CAN 패킷들을 생성 순서를 기준으로 복수개의 학습용 로그 데이터들로 나누어 분류하도록 구성되고,
    상기 로그 데이터 그래프 생성부는,
    상기 학습용 로그 데이터에 포함된 학습용 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 학습용 로그 데이터 그래프를 생성하도록 구성되고,
    상기 그래프 특성 연산부는,
    상기 학습용 로그 데이터 그래프를 분석하여 각각의 상기 학습용 로그 데이터에 대응되는 학습용 그래프 특성값을 연산하도록 구성되고,
    상기 기계학습부는,
    상기 학습용 그래프 특성값을 입력 변수로 하고, 상기 학습용 CAN 패킷들의 정상 여부 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성하도록 구성되는, CAN 네트워크의 공격 탐지 시스템.
  11. 프로세서에 의해 CAN 방식을 통해 제어되는 CAN 네트워크에 대한 공격 여부를 판단하는 CAN 네트워크의 공격 탐지 방법으로서,
    상기 CAN 네트워크에서 생성된 복수의 CAN 패킷들을 생성 순서를 기준으로 복수개의 분석 대상 로그 데이터들로 나누어 분류하는 단계;
    상기 분석 대상 로그 데이터에 포함된 CAN 패킷들의 CAN ID마다 하나씩 대응되는 복수의 노드들 및 생성 순서를 기준으로 서로 인접한 CAN 패킷인지 여부에 따라 상기 복수의 노드들 사이의 연결 관계를 나타내는 복수의 엣지들로 구성되는 로그 데이터 그래프를 생성하는 단계;
    상기 로그 데이터 그래프를 분석하여 각각의 상기 분석 대상 로그 데이터에 대응되는 그래프 특성값을 연산하는 단계; 및
    상기 그래프 특성값을 기초로, 상기 CAN 네트워크에 대한 분석 대상 로그 데이터 단위의 공격 여부를 판단하는 단계;를 포함하는 CAN 네트워크의 공격 탐지 방법.
  12. 제11항의 CAN 네트워크의 공격 탐지 방법을 실행시키도록 컴퓨터로 판독 가능한 비일시적 기록매체에 저장된 컴퓨터 프로그램.
KR1020220119643A 2022-09-21 2022-09-21 Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템 KR20240040554A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220119643A KR20240040554A (ko) 2022-09-21 2022-09-21 Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220119643A KR20240040554A (ko) 2022-09-21 2022-09-21 Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템

Publications (1)

Publication Number Publication Date
KR20240040554A true KR20240040554A (ko) 2024-03-28

Family

ID=90482849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220119643A KR20240040554A (ko) 2022-09-21 2022-09-21 Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템

Country Status (1)

Country Link
KR (1) KR20240040554A (ko)

Similar Documents

Publication Publication Date Title
CN109478216B (zh) 知识推断和统计相关系统的并行化和n层级化
Tomlinson et al. Towards viable intrusion detection methods for the automotive controller area network
CN111274583A (zh) 一种大数据计算机网络安全防护装置及其控制方法
US10868823B2 (en) Systems and methods for discriminating between human and non-human interactions with computing devices on a computer network
CN110602135B (zh) 网络攻击处理方法、装置以及电子设备
CN111970229B (zh) 一种针对多种攻击方式的can总线数据异常检测方法
CN113904811B (zh) 异常检测方法、装置、计算机设备和存储介质
CN113497797B (zh) 一种icmp隧道传输数据的异常检测方法及装置
CN112261052B (zh) 基于流规则分析的sdn数据平面异常行为检测方法及系统
US10931706B2 (en) System and method for detecting and identifying a cyber-attack on a network
US20190182272A1 (en) Probing and Responding to Computer Network Security Breaches
Chockalingam et al. Detecting attacks on the CAN protocol with machine learning
Francia et al. Applied machine learning to vehicle security
WO2017019103A1 (en) Network traffic pattern based machine readable instruction identification
CN115706671A (zh) 网络安全防御方法、装置以及存储介质
KR20240040554A (ko) Can 패킷을 기초로 생성된 그래프를 이용하는 can 네트워크의 공격 탐지 시스템
KR101989579B1 (ko) 시스템 감시 장치 및 방법
KR102469399B1 (ko) Can 네트워크의 공격 탐지 시스템, can 네트워크의 공격 탐지 방법 및 can 네트워크의 공격 탐지 방법을 실행시키도록 기록매체에 저장된 컴퓨터 프로그램
Çiloğlu et al. A new anomaly-based intrusion detection system for MIL-STD-1553
KR20230032591A (ko) 전자 장치의 사이버 공격 탐지 방법
KR102526877B1 (ko) Can 방식을 통해 제어되는 차량 네트워크의 공격 탐지 시스템, 공격 탐지 방법 및 공격 탐지 방법을 실행시키도록 기록매체에 저장된 컴퓨터 프로그램
KR100464598B1 (ko) 오용행위와 비정상행위의 통합 판정 기능을 갖는 호스트기반의 통합침입탐지시스템 및 방법
JP4371981B2 (ja) 異常データ検出装置、異常データ検出方法及び異常データ検出プログラム
CN114244572B (zh) 一种基于零拷贝报文收集系统的物联网安全网关方法
KR102617150B1 (ko) 룰 필터링을 이용한 인공지능 기반의 오탐 방지 장치, 방법 및 프로그램

Legal Events

Date Code Title Description
E902 Notification of reason for refusal