KR20240048200A - Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템 - Google Patents

Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템 Download PDF

Info

Publication number
KR20240048200A
KR20240048200A KR1020220127696A KR20220127696A KR20240048200A KR 20240048200 A KR20240048200 A KR 20240048200A KR 1020220127696 A KR1020220127696 A KR 1020220127696A KR 20220127696 A KR20220127696 A KR 20220127696A KR 20240048200 A KR20240048200 A KR 20240048200A
Authority
KR
South Korea
Prior art keywords
diagnostic
message
ecu
bus
attack
Prior art date
Application number
KR1020220127696A
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 KR1020220127696A priority Critical patent/KR20240048200A/ko
Publication of KR20240048200A publication Critical patent/KR20240048200A/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/1416Event detection, e.g. attack signature detection
    • 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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템에 관한 것이다.
본 발명에서는 침입이 탐지될 경우 침입 탐지를 일으킨 공격 CAN ID 메시지에 대해서 N번의 에러를 발생시키고, 임의로 선택된 진단 요청 ID 메시지를 전송하고 이에 대응되는 진단 응답 ID 메시지가 모니터링될 경우 해당 진단 응답 ID 메시지에 대해서 M번의 에러를 발생시키는 동작을 통해 위변조 ECU가 Bus off로 천이되는지 여부 판별을 통해 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템이 개시된다.
본 발명에서 제안하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템에 의하면 진단 ID pair 식별을 통한 위변조 ECU 식별을 가능하게 되었다. 따라서 차량 내부 네트워크 공격 탐지 IDS 기술과 무선 펌 웨어 업데이트 기능인 FOTA(Firmware Over The Air) 기술을 연결하는 핵심 기술로 향후 적용할 수 있게 되었으며 위변조 ECU에 대한 식별을 통해 차량 내부 네트워크의 보안성을 향상시킬 수 있게 되었다.

Description

CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템{METHOD FOR IDENTIFYING DIAGNOSTIC ID PAIRS OF OF COMPROMISED ECU ON CAN AND SYSTEM PERFORMING THE SAME}
본 발명은 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템에 관한 것으로서, 보다 구체적으로는 진단 요청 메시지를 이용하여 IDS 공격을 당하고 있는 ECU의 진단 요청 CAN ID 및 진단 응답 CAN ID를 파악하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템에 관한 것이다.
차량 및 운전자의 안전성 및 편의성을 위해 차량 내에는 여러 ECU(EIectronic ControI Unit)들이 탑재되고 있다. 대표적인 차량 내부 네트워크인 CAN(Controller Area Network)은 Bus 형태의 통신 프로토콜로 CAN Bus에 연결된 모든 ECU들은 브로드캐스트(Broadcast) 방식으로 서로 메시지를 교환하며 통신한다. 도 1은 일반적으로 ECU간 통신에 사용되는 CAN 메시지(데이터 프레임)의 구조를 보여준다. 특히, CAN 메시지내 ID Field는 해당 메시지의 CAN lD를 나타내는 11 bits 값이다. 특정 CAN ID 메시지는 특정 ECU에서만 보내도록 설계되어 있다.
초기 CAN 통신은 보안에 대한 고려없이 설계되었기 때문에 CAN 네트워크에 전송되는 CAN 메시지에 대해 어떤 ECU가 전송하였는지에 대한 인증 기능을 제공하지 않는다. 따라서 공격자가 CAN 네트워크에 유선으로 접근하거나 임의의 ECU를 위변조한 경우, 악의적인 CAN 메시지를 전송함으로써 차량의 오동작을 유발할 수 있다. 따라서, CAN 네트워크 상 공격 CAN 메시지를 탐지하기 위하여 수 많은 침입 탐지 시스템(Instrusion Detection System, IDS)이 제시되고 있다. 그러나 공격 탐지 외에도 해당 공격 메시지를 전송한 ECU에 대한 펌웨어 업데이트를 위해서는 위변조 ECU를 식별할 필요성이 대두되고 있다.
한국공개특허 제10-2014-0047984호 (2014.04.23 공개)
본 발명은 상기와 같은 필요성을 해소하고자 하는 것으로서, 침입 탐지 시스템(IDS)에 의해 공격을 당한 ECU의 특정이 가능한 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템을 제공하는 것을 목적으로 한다.
본 발명에서는 CAN 네트워크에서 침입 탐지 시스템에 의한 공격이 탐지된 경우, 해당 공격 CAN 메시지를 전송한 위변조 ECU의 진단 ID pair 식별을 통하여 위변조 ECU를 식별하는 방법 내지는 장치를 제공하는 것을 목적으로 한다.
본 발명의 상기 목적은 CAN 버스 상에서 침입 공격을 받은 ECU를 특정하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법에 있어서, 침입 탐지가 발생할 경우 CAN 버스 상에서 침입 탐지를 발생시킨 메시지의 CAN ID(이하, '공격 CAN ID'라 함)를 파악하는 제1단계와, 상기 공격 CAN ID를 갖는 메시지(이하, '공격 CAN ID 메시지'라 함)가 CAN 버스 상에서 모니터링되는 경우 에러를 발생시키는 제2단계와, 상기 제2단계를 N번 반복 수행하는 제3단계와, 선택된 진단 요청 ID 메시지를 CAN 버스 상에 전송하는 제4단계와, 상기 진단 요청 ID 메시지에 대응되는 진단 응답 ID 메시지가 모니터링되는 경우 에러를 발생시키는 제5단계와, 상기 제5단계를 M번 반복 수행하는 제6단계와, - N과 M은 합이 32 이상인 자연수로 구성함 - 상기 제3단계 및 상기 제6단계가 완료된 이후 CAN 버스 상에 공격 CAN ID 메시지 또는 상기 진단 응답 ID 메시지가 모니터링되지 않는 경우 상기 진단 요청 ID 및 상기 진단 응답 ID를 진단 ID Pair로 특정하는 제7단계를 더 구비하는 것을 특징으로 하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법에 의해서 달성 가능하다.
바람직하게는 제2단계 및 제3단계는 제4단계 내지 제6단계와는 무관하게 독립적으로 순차 수행되는 것을 특징으로 하고, 제3단계 및 제6단계가 완료된 이후에도 CAN 버스 상에 공격 CAN ID 메시지 또는 진단 응답 ID 메시지가 모니터링되는 경우에는 진단 요청 ID 메시지와는 상이한 진단 요청 ID 메시지를 선택하여 제4단계 내지 상기 제6단계를 수행하는 제8단계를 더 구비되도록 하는 것이 바람직하다.
또한, 제8단계는 CAN 버스에 연결된 모든 ECU에 할당된 진단 요청 ID에 대해서 적어도 한 번씩은 수행되도록 하여 모든 ECU에 할당된 진단 요청이 발송되도록 하는 것이 좋다.
본 발명의 또 다른 목적은 CAN 버스 통신에서 침입 공격을 받은 위변조 ECU를 특정하는 시스템으로서, CAN 버스를 모니터링하는 CAN Bus 모니터링부와, 침입 여부를 탐지하는 침입 탐지 감지부와, CAN 버스에 연결된 각 ECU별로 할당된 진단 요청 ID 및 진단 응답 ID로 이루어지는 진단 Pair ID를 저장하는 진단 Pair ID 저장부와, 침입 탐지 감지부에서 침입이 감지될 경우 침입 탐지에 사용된 공격 메시지의 CAN ID를 저장하는 공격 CAN ID 저장부와, CAN 버스 상에 상기 공격 CAN ID를 갖는 메시지가 모니터링 되는 경우 에러 생성 신호를 발생시키는 공격 CAN ID 제어부와, 진단 Pair ID 저장부에 저장된 하나의 진단 요청 ID를 선택하고, 상기 선택된 진단 요청 ID에 대한 메시지를 생성하여 전송하는 진단 요청 메시지 생성부와, CAN 버스 상에 상기 진단 요청 ID 메시지에 대응되는 진단 응답 ID 메시지가 모니터링 되는 경우 에러 생성 신호를 발생시키는 진단 응답 제어부 및 공격 CAN ID 제어부에서 N번의 에러를 발생시키고, 진단 응답 제어부에서 M번의 에러를 발생시킨 경우에도 CAN 버스에 상기 공격 CANI 메시지 또는 상기 진단 응답 ID 메시지가 모니터링되지 않을 경우 선택된 진단 요청 ID 및 진단 응답 ID를 진단 Pair ID로 특정하는 Pair ID 특정부를 - N과 M은 합이 32 이상인 자연수들로 구성함 -포함하는 것을 특징으로 하는 위변조 ECU를 특정하는 시스템에 의해서 달성 가능하다.
대표적인 차량 내부 네트워크인 CAN 상에 공격 메시지가 전송된 경우, 해당 공격 메시지를 전송한 위변조 ECU의 정상적인 펌웨어 업데이트 등에 대응하기 위해서는 위변조 ECU에 대한 식별이 필수적이다.
본 발명에서 제안하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법 및 이를 수행하는 시스템에 의하면 진단 ID pair 식별을 통한 위변조 ECU 식별을 가능하게 되었다. 따라서 차량 내부 네트워크 공격 탐지 IDS 기술과 무선 펌 웨어 업데이트 기능인 FOTA(Firmware Over The Air) 기술을 연결하는 핵심 기술로 향후 적용할 수 있게 되었으며 위변조 ECU에 대한 식별을 통해 차량 내부 네트워크의 보안성을 향상시킬 수 있게 되었다.
도 1은 일반적으로 ECU간 통신에 사용되는 CAN 메시지(데이터 프레임)의 구조도.
도 2는 CAN 통신을 수행하는 ECU의 TEC 및 REC 값에 따른 ECU의 에러 상태 천이도.
도 3은 CAN 데이터 프레임을 활용한 UDS 서비스 메시지 구조도.
도 4는 진단기기를 이용하여 CAN Bus에 연결된 하나의 ECU를 진단하는 서비스를 수행하는 흐름도.
도 5는 본 발명에 따른 일 실시예로서, IDS 공격 대상인 위변조 ECU의 진단 Pair ID를 파악하는 흐름도.
도 6은 본 발명에서 제시하는 위변조 ECU 식별장치가 CAN Bus 상에 구현된 예시도.
도 7은 본 발명에 따른 일 실시예의 위변조 ECU 식별장치(500)의 논리적 구성도.
본 발명에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에서, "~ 상에 또는 ~ 상부에" 라 함은 대상 부분의 위 또는 아래에 위치함을 의미하는 것이며, 반드시 중력 방향을 기준으로 상 측에 위치하는 것을 의미하는 것은 아니다. 또한, 영역, 판 등의 부분이 다른 부분 "상에 또는 상부에" 있다고 할 때, 이는 다른 부분 "바로 상에 또는 상부에" 접촉하여 있거나 간격을 두고 있는 경우뿐 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
도 2는 CAN 통신을 수행하는 ECU의 TEC 및 REC 값에 따른 ECU의 에러 상태 천이도이다. CAN 네트워크는 ECU간 통신 중 발생한 에러를 처리하기 위해 Error Handling과 Fault confinement 메커니즘이 정의되어 있다. CAN 통신 중 에러를 인지한 ECU는 즉시 데이터 프레임 전송을 중지하고 Error 프레임을 CAN Bus에 전송한다. Error 프레임 전송 이후에는 이전에 전송 실패한 데이터 프레임에 대해 재전송을 시도한다. 또한, ECU에는 에러 발생과 인지에 대한 처리를 위해 Fault confinement 메커니즘이 정의되어 있다. 도 2에 제시된 바와 같이 ECU는 TEC(Transmit Error Counter)와 REC(Receive Error Counter)를 이용하여 세 가지 상태(state)로 정의된다. ECU가 CAN 메시지 전송 중에 Error를 탐지한 경우 TEC가 8 증가시키고, ECU가 CAN 메시지를 수신 중일 때 Error를 인지하면 REC가 1 증가한다.
CAN 통신을 수행하는 ECU는 초기에는 TEC(Transmit Error Counter)와 REC(Receive Error Counter)가 모두 0 인 Error Active 상태에 놓여진다. 이후, TEC 또는 REC가 128 이상인 상태가 되면 Error Passive 상태로 천이된다. Error Passive 상태에서 TEC 또는 REC가 128 이상인 경우에는 계속 해당 상태에 머물고, 두 개의 카운터가 모두 127 이하로 감소하면 Error Active 상태로 돌아간다. Error Passive 상태에서 TEC가 256 이상이 되면 Bus Off 상태로 천이되고 메시지 전송이 중단된다. Bus Off 상태에서 Time-out되거나 특정 복구 메커니즘(Recovery mechanism)에 따라 다시 Error Active 상태로 천이된다. CAN 표준에서는 이러한 복구 메커니즘으로 Bus Off 이후 128번의 연속된 11개의 recessive bit '1'이 모니터링 되는 경우 자동적으로 복구된다고 나타나 있다.
진단 서비스(Unified Diagnostic Services, UDS)는 차량 진단을 위해 정의된 프로토콜로서 차량 및 특정 ECU의 진단을 위해 IS0 14229로 표준화 되어 있다. UDS에는 다양한 진단 서비스가 정의되어 있으며 각 제조사는 ECU에 정의된 진단 서비스 이외에도 고유의 진단 서비스를 구현할 수 있다. 제조사에 의해 인증된 진단기기는 UDS를 통해 ECU 진단 외에도 ECU의 펨 웨어 업데이트나 초기화 등 다양한 서비스를 이용할 수 있다. 진단 서비스를 위한 메시지는 CAN 메시지와 동일한 형태이다. 다만 사용되는 CAN ID는 진단 요청 및 응답을 위한 CAN ID로 대체되며, 데이터 필드는 요청한 서비스를 위한 Service ID(SID)와 관련 파라미터(Sub-function, Prameter 등)가 포함된다.
UDS 통신은 차량 외부 진단기기가 서버(server) 역할을 수행하고 차량 내 ECU가 클라이언트(client) 역할을 수행한다. 진단기기는 차량 내 OBD-Ⅱ 포트를 통해 CAN Bus와 연결되어 특정 ECU들과 진단 서비스를 수행한다. 각 ECU마다 진단을 위한 진단 요청 CAN ID와 진단 응답 CAN ID가 정의되어 있으며 통상적으로 이를 통칭하여 진단 ID Pair라고 부른다. 진단기기가 특정 진단 요청 CAN ID로 이루어진 CAN 데이터 프레임(CAN 메시지)을 CAN Bus에 전송하는 경우, 이와 매칭되는 ECU는 진단 응답 CAN ID로 이루어진 CAN 메시지로 응답 메시지를 전송한다.
도 3은 CAN 데이터 프레임을 활용한 UDS 서비스 메시지 구조를 도시하며, 도 4는 진단기기를 이용하여 CAN Bus에 연결된 하나의 ECU를 진단하는 서비스를 수행하는 흐름도이다. 진단기기에는 해당 차량에 구비되는 복수 개 ECU에 대한 진단 ID Pair가 저장 구비된다. CAN Bus에 연결된 각 ECU에는 진단 요청 및 응답 CAN ID가 할당되며, 도 4에 제시된 ECU에는 0x7E0와 0x7E8이 할당된 예이다. 도 4에서 진단기기는 CAN ID 7E0에 해당하는 진단 요청 CAN 메시지를 전송하면 특정 ECU는 이를 수신하고 자신에 할당된 진단 요청 ID인지 확인한다. 자신에게 할당된 진단 요청 CAN ID인 경우 매칭되는 진단 응답 CAN ID 7E8로 이루어진 진단 응답 CAN 메시지를 전송한다. 진단기기는 CAN ID 7E8를 갖는 진단 응답 메시지를 이용하여 해당 ECU의 상태를 진단할 수 있는 것이다.
침입 탐지 시스템(Instrusion Detection System, IDS)을 통해 ECU가 공격을 받고 있는지 여부를 탐지하는 기술은 전술한 바와 같이 많은 연구가 진행되었다. 또한, IDS는 본 발명의 관심 대상이 아니므로 상세한 설명을 생략하는 것으로 하며, 인터넷 사전인 '나무위키'에서 제시된 범위에서 간략히 소개하기로 한다.
IDS는 ECU의 회로적 특성을 이용한 방법이 주목받고 있다. 첫 번째 방법은 CAN 프레임의 전위차를 이용하는 것이다. Bit를 CAN bus에 송신하기 위해서는 두 전선에 전위차를 발생시키는 회로가 필요하다. 하지만, 같은 Dominant bit라 하더라도, 개별 ECU마다 사용된 회로와 소자가 다르며, 같은 소자여도 품질에 따른 오차가 존재하기 때문에 실제로는 정확히 5V의 전위차를 낼 수 없다. 이 오차는 회로적 특성에 기인하므로, 오차와 CAN 데이터 프레임간의 상관관계를 도출할 수 있다. 만약 어떠한 CAN Frame이 CAN ID에 해당하는 오차를 내지 않으면서 Frame을 전송한다면, 공격으로 간주하는 방식이다. 두 번째 방법은 데이터 프레임의 전송주기 오차를 이용하는 것이다. 많은 데이터 프레임은 주기적으로 전송된다. 이 때 '주기'는 ECU가 클럭으로 계산해내는데, 클럭은 크리스털에 의존하므로, 크리스털의 소자적 특성으로 ECU를 구분할 수 있다. IDS는 두 가지 태생적인 한계를 지닌다: (1) 공격을 탐지할 뿐 방어할 수 없고 (2) 탐지오차(i.e., false negative and false positive)가 존재한다.
도 5는 본 발명에 따른 일 실시예로서, IDS 공격 대상인 위변조 ECU의 진단 Pair ID를 파악하는 흐름도이다.
CAN bus에 연결된 IDS에 의한 공격 CAN 메시지가 탐지되는 경우, 해당 공격 CAN ID (IDA)를 저장한다(ST510). 프로그램을 운영하기 위한 임시 변수(i, j)들을 초기화한다(ST520). 예로서, 초기화에 의해서 해당 변수는 '1'로 세팅된다. 해당 차량에 구비된 복수 개 진단 요청 CAN ID (
Figure pat00001
)를 선택하고 진단 요청 메시지를 전송한다(ST530).
CAN bus 모니터링을 하면서(ST540), 공격 CAN ID (IDA) 메시지 또는 진단 요청 CAN ID (
Figure pat00002
) 메시지에 대한 진단 응답 CAN ID (
Figure pat00003
) 메시지가 있는지 여부를 판별하고(ST550), ST550 단계의 판별 결과가 참인 경우 해당 메시지가 공격 CAN ID (IDA) 메시지인지 여부를 판별한다(ST560). ST550 단계의 판별 결과가 거짓인 경우에는 ST540 단계의 CAN bus 모니터링을 다시 수행한다.
ST560 단계의 판별 결과, 공격 CAN ID (IDA) 메시지라고 판별되면 공격 CAN ID (IDA)에 대한 에러를 발생시킨다(ST571). 임시 변수 i가 N 값에 도달하였는지 판별하고(ST573), ST573 단계의 판별 결과가 거짓인 경우에는 임시 변수 i를 '1'만큼 증가시킨 후(ST575) ST540 단계의 CAN bus 모니터링을 수행하도록 한다. ST571 단계에 의해서 공격 CAN ID (IDA) 메시지를 전송한 ECU는 메시지 전송 중에 에러를 인지하게 되므로 메시지 전송을 중지하고 에러 프레임을 전송한다. 공격 CAN ID (IDA) 메시지를 전송한 ECU는 에러 프레임 이후에 즉시 전송 실패한 CAN ID (IDA) 메시지를 재전송하게 된다. ST540 단계부터 ST573 단계를 N번 반복 완료하면, 공격 CAN ID (IDA) 메시지를 전송한 ECU의 TEC는 수학식 1과 같은 값을 가지게 된다.
Figure pat00004
ST560 단계의 판별 결과, 공격 CAN ID (IDA) 메시지가 아니라고 판별되면 진단 응답 CAN ID (
Figure pat00005
) 메시지이므로 진단 응답 CAN ID (
Figure pat00006
) 메시지에 대한 에러를 발생시킨다(ST581). 임시 변수 j가 M 값에 도달하였는지 판별하고(ST583), ST583 단계의 판별 결과가 거짓인 경우에는 임시 변수 j를 '1'만큼 증가시킨 후(ST575) ST540 단계의 CAN bus 모니터링을 수행하도록 한다. ST581 단계에 의해서 진단 응답 CAN ID (
Figure pat00007
) 메시지를 전송한 ECU는 메시지 전송 중에 에러를 인지하게 되므로 메시지 전송을 중지하고 에러 프레임을 전송한다. 진단 응답 CAN ID (
Figure pat00008
) 메시지를 전송한 ECU는 에러 프레임 이후에 즉시 전송 실패한 진단 응답 CAN ID (
Figure pat00009
) 메시지를 재전송하게 된다. ST540 단계부터 ST583 단계를 M번 반복 완료하면, 진단 응답 CAN ID (
Figure pat00010
) 메시지를 전송한 ECU의 TEC는 수학식 2과 같은 값을 가지게 된다.
Figure pat00011
여기서, N 및 M은 자연수이며, 수학식 3을 만족하는 수로 설정한다.
Figure pat00012
임시 변수 i가 N값에 도달하고 또한 임시 변수 j가 M값에 도달하였는지 여부를 판별한다(ST593). 달리 표현하면, 공격 CAN ID (IDA) 메시지에 대해 N번의 에러를 발생시키고 진단 응답 CAN ID (
Figure pat00013
) 메시지에 대해 M번의 에러를 발생시켰는지 여부를 판별한다. 어느 한 쪽의 임시 변수가 해당 횟수에 도달하지 않았다면 두 개의 임시 변수가 각각 셋팅된 횟수(N, M)만큼 수행을 완료할 때까지 기다린다(ST594).
ST593 단계의 판별 결과가 참인 경우, 공격 CAN ID (IDA) 메시지를 송신한 ECU와 진단 응답 CAN ID (
Figure pat00014
) 메시지를 송신한 ECU가 동일하다면 해당 ECU는 Bus off 단계로 천이되어야 한다. 그 이유는 "8*(N+M) >= 256"이므로 해당 ECU의 TEC 레지스터는 256 이상의 값이 인가되기 때문입니다.
ST593 단계의 판별 결과가 참인 상태에서 공격 CAN ID (IDA) 메시지 또는 진단 응답 CAN ID (
Figure pat00015
) 메시지가 여전히 모니터링되는지 여부를 판별한다(ST595). ST595 단계의 판별 결과가 참인 경우에는 공격 CAN ID (IDA) 메시지를 송신한 ECU와 진단 응답 CAN ID (
Figure pat00016
) 메시지를 송신한 ECU는 서로 다른 ECU로 판정할 수 있다. 따라서 다른 진단 요청 CAN ID로 교체한 후(ST597) ST520 단계부터 다시 수행하게 된다. ST520 단계부터 ST583 단계를 반복 수행할 때 ST530단계에서는 ST597 단계에서 교체한 진단 요청 CAN ID를 선택하여 진단 요청 메시지를 전송하는 것으로 이해되어져야 한다.
ST595 단계가 거짓인 경우에는 진단 응답 CAN ID (
Figure pat00017
) 메시지를 송신한 ECU와 공격 CAN ID (IDA) 메시지를 송신한 ECU가 동일한 ECU라고 판별하고, 진단 요청 CAN ID (
Figure pat00018
) 및 진단 응답 CAN ID (
Figure pat00019
)를 인식(진단 Pair ID 인식)로부터 위변조된 ECU를 특정하고(ST599) 종료한다.
도 6은 본 발명에서 제시하는 위변조 ECU 식별장치가 CAN Bus 상에 구현된 예시도이며, 도 7은 본 발명에 따른 일 실시예의 위변조 ECU 식별장치(500)의 논리적 구성도이다.
도 6에 도시된 바와 같이 CAN bus에는 복수 개 ECU(제1 ECU, 제2 ECU, 제3 ECU 및 제N ECU)와 위변조 ECU 식별 장치(500)가 구비된다. 도 6에 도시된 바와 같이 각각의 ECU는 자신에게 할당된 진단 요청 CAN ID 및 진단 응답 CAN ID가 저장 구비됨을 알 수 있다.
도 7에 도시된 바와 같이, 위변조 ECU 식별장치(500)는 CAN bus를 모니터링하는 CAN Bus 모니터링부(510), 외부 침입 여부를 탐지하는 침입 탐지 감지부(520), 각 ECU별로 할당된 진단 Pair ID를 저장하는 진단 Pair ID 저장부(530), 위변조 CAN ID 메시지 또는 진단 응답 메시지가 모니터링 될 경우 제어부(550)의 지시에 따라 에러를 발생시키는 에러 발생부(540), 침입 탐지에 사용된 공격 메시지의 CAN ID를 저장하는 공격 CAN ID 저장부(550), 진단 Pair ID 저장부에 저장된 하나의 진단 요청 ID를 선택하고, 상기 선택된 진단 요청 ID에 대한 메시지를 생성하여 전송하는 진단 요청 메시지 생성부(580), CAN 버스 상에 공격 CAN ID를 갖는 메시지가 모니터링 되는 경우 에러 생성 신호를 발생시키는 공격 CAN ID 제어부(573), CAN 버스 상에 진단 요청 ID 메시지에 대응되는 진단 응답 ID 메시지가 모니터링 되는 경우 에러 생성 신호를 발생시키는 진단 응답 제어부(575) 및 공격 CAN ID 제어부에서 N번의 에러를 발생시키고, 진단 응답 제어부에서 M번의 에러를 발생시킨 경우에도 CAN 버스에 상기 공격 CANI 메시지 또는 상기 진단 응답 ID 메시지가 모니터링되지 않을 경우 선택된 진단 요청 ID 및 진단 응답 ID를 진단 Pair ID로 특정하는 Pair ID 특정부(56)로 구성된다. 제어부(570)는 공격 CAN ID가 모니터링될 경우 매번 에러 발생을 N번 반복 지시하는 공격 CAN ID 제어부(573) 및 진단 응답 CAN ID가 모니터링될 경우 매번 에러 발생을 M번 반복 지시하는 진단 응답 제어부(575)로 구성된다.
상기에서 본 발명의 바람직한 실시예가 특정 용어들을 사용하여 설명 및 도시되었지만 그러한 용어는 오로지 본 발명을 명확히 설명하기 위한 것일 뿐이며, 본 발명의 실시예 및 기술된 용어는 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안되며, 본 발명의 청구범위 안에 속한다고 해야 할 것이다.
500: 위변조 ECU 식별 장치
510: CAN 버스 모니터링부
520: 침입 탐지 감지부
530: 진단 Pair ID 저장부
540: 에러 발생부
550: CAN ID 저장부
560: Pair ID 특정부
570: 제어부
573: 공격 CAN ID 제어부
575: 진단 응답 제어부
580: 진단 요청 메시지 생성부

Claims (5)

  1. CAN 버스 상에서 침입 공격을 받은 ECU를 특정하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법에 있어서,
    침입 탐지가 발생할 경우 CAN 버스 상에서 침입 탐지를 발생시킨 메시지의 CAN ID(이하, '공격 CAN ID'라 함)를 파악하는 제1단계와,
    상기 공격 CAN ID를 갖는 메시지(이하, '공격 CAN ID 메시지'라 함)가 CAN 버스 상에서 모니터링되는 경우 에러를 발생시키는 제2단계와,
    상기 제2단계를 N번 반복 수행하는 제3단계와,
    선택된 진단 요청 ID 메시지를 CAN 버스 상에 전송하는 제4단계와,
    상기 진단 요청 ID 메시지에 대응되는 진단 응답 ID 메시지가 모니터링되는 경우 에러를 발생시키는 제5단계와,
    상기 제5단계를 M번 반복 수행하는 제6단계와,
    - N과 M은 합이 32 이상인 자연수들로 구성함 -
    상기 제3단계 및 상기 제6단계가 완료된 이후 CAN 버스 상에 공격 CAN ID 메시지 또는 상기 진단 응답 ID 메시지가 모니터링되지 않는 경우 상기 진단 요청 ID 및 상기 진단 응답 ID를 진단 ID Pair로 특정하는 제7단계를 더 구비하는 것을 특징으로 하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법.
  2. 제1항에 있어서,
    상기 제2단계 및 상기 제3단계는 상기 제4단계 내지 상기 제6단계와는 무관하게 독립적으로 순차 수행되는 것을 특징으로 하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법.
  3. 제1항에 있어서,
    상기 제3단계 및 상기 제6단계가 완료된 이후에도 CAN 버스 상에 상기 공격 CAN ID 메시지 또는 상기 진단 응답 ID 메시지가 모니터링되는 경우에는 상기 진단 요청 ID 메시지와는 상이한 진단 요청 ID 메시지를 선택하여 상기 제4단계 내지 상기 제6단계를 수행하는 제8단계를 더 구비하는 것을 특징으로 하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법.
  4. 제3항에 있어서,
    상기 제8단계는 CAN 버스에 연결된 모든 ECU에 할당된 진단 요청 ID에 대해서 적어도 한 번씩은 수행하는 것을 특징으로 하는 CAN 버스 통신에서 위변조 ECU의 진단 ID 식별 방법.
  5. CAN 버스 통신에서 침입 공격을 받은 위변조 ECU를 특정하는 시스템으로서,
    CAN 버스를 모니터링하는 CAN Bus 모니터링부와,
    침입 여부를 탐지하는 침입 탐지 감지부와,
    CAN 버스에 연결된 각 ECU별로 할당된 진단 요청 ID 및 진단 응답 ID로 이루어지는 진단 Pair ID를 저장하는 진단 Pair ID 저장부와,
    상기 침입 탐지 감지부에서 침입이 감지될 경우 침입 탐지에 사용된 공격 메시지의 CAN ID를 저장하는 공격 CAN ID 저장부와,
    CAN 버스 상에 상기 공격 CAN ID를 갖는 메시지가 모니터링 되는 경우 에러 생성 신호를 발생시키는 공격 CAN ID 제어부와,
    상기 진단 Pair ID 저장부에 저장된 하나의 진단 요청 ID를 선택하고, 상기 선택된 진단 요청 ID에 대한 메시지를 생성하여 전송하는 진단 요청 메시지 생성부와,
    CAN 버스 상에 상기 진단 요청 ID 메시지에 대응되는 진단 응답 ID 메시지가 모니터링 되는 경우 에러 생성 신호를 발생시키는 진단 응답 제어부 및
    공격 CAN ID 제어부에서 N번의 에러를 발생시키고, 진단 응답 제어부에서 M번의 에러를 발생시킨 경우에도 CAN 버스에 상기 공격 CANI 메시지 또는 상기 진단 응답 ID 메시지가 모니터링되지 않을 경우 선택된 진단 요청 ID 및 진단 응답 ID를 진단 Pair ID로 특정하는 Pair ID 특정부를
    - N과 M은 합이 32 이상인 자연수들로 구성함 -
    포함하는 것을 특징으로 하는 위변조 ECU를 특정하는 시스템.
KR1020220127696A 2022-10-06 2022-10-06 Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템 KR20240048200A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220127696A KR20240048200A (ko) 2022-10-06 2022-10-06 Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220127696A KR20240048200A (ko) 2022-10-06 2022-10-06 Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템

Publications (1)

Publication Number Publication Date
KR20240048200A true KR20240048200A (ko) 2024-04-15

Family

ID=90715719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220127696A KR20240048200A (ko) 2022-10-06 2022-10-06 Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템

Country Status (1)

Country Link
KR (1) KR20240048200A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140047984A (ko) 2012-10-15 2014-04-23 현대모비스 주식회사 메세지를 이용한 캔 버스 오프 감지 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140047984A (ko) 2012-10-15 2014-04-23 현대모비스 주식회사 메세지를 이용한 캔 버스 오프 감지 방법

Similar Documents

Publication Publication Date Title
US10484401B2 (en) In-vehicle network attack detection method and apparatus
CN103782566B (zh) 用于交换信息的系统和方法
JP2017123639A (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
US11838303B2 (en) Log generation method, log generation device, and recording medium
CN109104352B (zh) 车辆网络操作协议和方法
JP7280082B2 (ja) 不正検知方法、不正検知装置及びプログラム
US20190217869A1 (en) Control apparatus, control method, and program
JP2014236248A (ja) 電子制御装置、電子制御システム
US11218501B2 (en) Detector, detection method, and detection program
WO2015140942A1 (ja) 情報処理システム、サーバ装置、情報処理方法およびプログラム
KR20240048200A (ko) Can 버스 통신에서 위변조 ecu의 진단 id 식별 방법 및 이를 수행하는 시스템
JP6527647B1 (ja) 不正検知方法、不正検知装置及びプログラム
JP6468133B2 (ja) 車載ネットワークシステム
CN113169966A (zh) 用于监控数据传输系统的方法、数据传输系统和机动车
CN108632242B (zh) 通信装置及接收装置
RU2630585C2 (ru) Способ безопасной передачи данных и система связи для его осуществления
KR102592201B1 (ko) 차량 내 통신 보안 제공 방법 및 장치
JP5402304B2 (ja) 診断プログラム、診断装置、診断方法
CN113273144B (zh) 车载通信系统、车载通信控制装置、车载通信装置、通信控制方法及通信方法
KR102610234B1 (ko) 버스 오프 감지 방법 및 이를 수행하는 전자제어장치
JP7328419B2 (ja) 車載通信システム、車載通信装置、コンピュータプログラム及び通信方法
KR20240044036A (ko) 차량 진단 서비스 기반 가장 공격 탐지 방법 및 이를 탐지하는 장치
CN114338777B (zh) 一种逃生控制方法及装置
KR20240043982A (ko) 차량 네트워크의 Bus-off 공격 기반 가장 공격 탐지 방법 및 이를 탐지하는 장치
JP2024041392A (ja) 電子制御装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal