KR20230081562A - Method and apparatus for detecting attacking ecu using can traffic monitoring - Google Patents

Method and apparatus for detecting attacking ecu using can traffic monitoring Download PDF

Info

Publication number
KR20230081562A
KR20230081562A KR1020220032961A KR20220032961A KR20230081562A KR 20230081562 A KR20230081562 A KR 20230081562A KR 1020220032961 A KR1020220032961 A KR 1020220032961A KR 20220032961 A KR20220032961 A KR 20220032961A KR 20230081562 A KR20230081562 A KR 20230081562A
Authority
KR
South Korea
Prior art keywords
ecu
attack
identifier
error
packet including
Prior art date
Application number
KR1020220032961A
Other languages
Korean (ko)
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 PCT/KR2022/012797 priority Critical patent/WO2023101148A1/en
Publication of KR20230081562A publication Critical patent/KR20230081562A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • 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
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40104Security; Encryption; Content protection
    • 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
    • H04L12/40143Bus networks involving priority mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus
    • 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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 개시의 일 실시예에 따른, 적어도 하나의 프로세서에 의해 수행되는 CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법은, 프로세서와 연관된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송되는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계, 공격 ECU의 에러 패시브 상태가 유지되는 동안, 복수의 ECU 중 임의의 ECU에 할당된 적어도 하나의 식별자 중 우선 순위가 가장 높은 최우선 식별자를 포함하는 패킷에 대하여 복수의 충돌을 발생시키는 단계 및 복수의 충돌에 의해 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 임의의 ECU가 에러 패시브 상태로 전환된 공격 ECU인 것으로 결정하는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, a method for detecting an attack ECU using CAN traffic monitoring performed by at least one processor includes a packet including an attack identifier transmitted to a CAN bus by an attack ECU among a plurality of ECUs associated with a processor. Converting the attack ECU into an error passive state by generating at least one collision with respect to the ECU, wherein the priority is the highest among at least one identifier assigned to any ECU among the plurality of ECUs while the attack ECU maintains the error passive state. Generating a plurality of collisions for a packet including a high priority identifier and a packet including an identifier having a lower priority than the highest priority identifier between each of a plurality of error frames transmitted to the CAN bus by the plurality of collisions. case, determining that any ECU is an attack ECU switched to an error passive state.

Description

CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법 및 장치{METHOD AND APPARATUS FOR DETECTING ATTACKING ECU USING CAN TRAFFIC MONITORING}Attack ECU detection method and apparatus using CAN traffic monitoring

본 개시는 CAN(Controller Area Network) 트래픽 모니터링 방법에 관한 것으로, 보다 상세하게는 CAN의 오류 처리 메커니즘을 활용하여 공격 ECU(Electronic Control Unit)를 탐지하기 위한 CAN 트래픽 모니터링 방법, 시스템 및 장치에 관한 것이다.The present disclosure relates to a CAN (Controller Area Network) traffic monitoring method, and more particularly, to a CAN traffic monitoring method, system, and device for detecting an attack ECU (Electronic Control Unit) by utilizing a CAN error handling mechanism. .

CAN(Controller Area Network) 은 대표적인 차량용 네트워크이며, 버스 형태 네트워크 토폴로지로 구성된 프로토콜이다. CAN은 배선 비용이 적고 무게가 가볍다는 등의 장점으로 인해, 1993년에 ISO에서 국제 표준 규격(ISO 11898)으로 제정되었다. CAN (Controller Area Network) is a representative vehicle network and is a protocol composed of a bus-type network topology. CAN was established as an international standard (ISO 11898) by ISO in 1993 due to advantages such as low wiring cost and light weight.

CAN은 브로드 캐스트 통신 방식을 사용하는데 보안 기법이 적용되지 않아 패킷 삽입 공격에 취약하다는 단점이 존재한다. 최근 차량에서 제공하는 기술과 외부와의 통신이 증가함에 따라 차량 내부 네트워크에 대한 공격 사례가 많이 발생하고 있다. 최근 차량에서 제공하는 기술과 외부와의 통신이 증가하게 되어 차량 내부 네트워크에 대한 보안 위협이 증가하였다. 이에 따라 차량 공격에 대처하기 위해 많은 보안 솔루션들이 제안되고 있다. CAN uses a broadcast communication method, but there is a disadvantage that it is vulnerable to packet injection attacks because security techniques are not applied. Recently, as the technology provided by the vehicle and the communication with the outside increase, many cases of attack on the internal network of the vehicle are occurring. Recently, as technology provided by vehicles and communication with the outside have increased, security threats to the internal network of vehicles have increased. Accordingly, many security solutions have been proposed to cope with vehicle attacks.

상술한 바와 같은 과제를 해결하기 위해 본 개시에서는 CAN의 오류 처리 메커니즘을 활용하여 공격 ECU를 탐지하기 위한 CAN 트래픽 모니터링 방법, 시스템 및 장치가 제공된다.In order to solve the above problems, the present disclosure provides a CAN traffic monitoring method, system, and apparatus for detecting an attack ECU by utilizing a CAN error handling mechanism.

본 개시의 일 실시예에 따른, 적어도 하나의 프로세서에 의해 수행되는 CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법은, 프로세서와 연관된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송되는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계, 공격 ECU의 에러 패시브 상태가 유지되는 동안, 복수의 ECU 중 임의의 ECU에 할당된 적어도 하나의 식별자 중 우선 순위가 가장 높은 최우선 식별자를 포함하는 패킷에 대하여 복수의 충돌을 발생시키는 단계 및 복수의 충돌에 의해 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 임의의 ECU가 에러 패시브 상태로 전환된 공격 ECU인 것으로 결정하는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, a method for detecting an attack ECU using CAN traffic monitoring performed by at least one processor includes a packet including an attack identifier transmitted to a CAN bus by an attack ECU among a plurality of ECUs associated with a processor. Converting the attack ECU into an error passive state by generating at least one collision with respect to the ECU, wherein the priority is the highest among at least one identifier assigned to any ECU among the plurality of ECUs while the attack ECU maintains the error passive state. Generating a plurality of collisions for a packet including a high priority identifier and a packet including an identifier having a lower priority than the highest priority identifier between each of a plurality of error frames transmitted to the CAN bus by the plurality of collisions. case, determining that any ECU is an attack ECU switched to an error passive state.

일 실시예에 따르면, 우선 순위가 낮은 식별자를 포함하는 패킷은 복수의 ECU 중 임의의 ECU가 아닌 다른 ECU에 의하여 CAN 버스로 전송된 패킷을 포함할 수 있다.According to an embodiment, a packet including an identifier having a low priority may include a packet transmitted to the CAN bus by an ECU other than any ECU among a plurality of ECUs.

일 실시예에 따르면, 우선 순위가 낮은 식별자를 포함하는 패킷은 백그라운드 트래픽을 포함할 수 있다.According to an embodiment, a packet including an identifier having a low priority may include background traffic.

일 실시예에 따르면, 복수의 충돌에 의해 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 임의의 ECU가 공격 ECU인 것으로 결정하는 단계는, 복수의 에러 프레임 각각의 사이에 존재하는 우선 순위가 낮은 식별자를 포함하는 패킷을 탐지하는 단계, 탐지한 결과를 기초로 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재할 확률을 산출하는 단계 및 산출된 확률을 기초로, 임의의 ECU가 공격 ECU인 것으로 결정하는 단계를 포함할 수 있다.According to one embodiment, when a packet including an identifier having a lower priority than the highest priority identifier exists between each of a plurality of error frames transmitted to the CAN bus due to a plurality of collisions, it is determined that an arbitrary ECU is an attacking ECU. The step of detecting a packet including an identifier having a low priority existing between each of a plurality of error frames, and determining a probability that a packet including an identifier having a priority lower than the highest priority identifier exists based on the detected result. Calculating and based on the calculated probability, determining that any ECU is an attacking ECU.

일 실시예에 따르면, 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송된 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계는, 프로세서와 연결된 복수의 ECU에 할당된 복수의 식별자와 연관된 데이터를 획득하는 단계, 획득된 데이터를 기초로 공격 식별자를 식별하는 단계 및 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계를 포함할 수 있다. According to one embodiment, the step of converting the attack ECU into an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to the CAN bus by an attack ECU among a plurality of ECUs connected to the processor, Obtaining data associated with a plurality of identifiers assigned to a plurality of ECUs connected to, identifying an attack identifier based on the obtained data, and generating at least one collision for packets including the attack identifier to attack the ECU It may include converting to an error passive state.

일 실시예에 따르면, 할당된 복수의 식별자 사이의 우선 순위는 사전 결정될 수 있다.According to one embodiment, a priority order among a plurality of assigned identifiers may be predetermined.

일 실시예에 따르면, 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송된 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계는, 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시키는 단계, 충돌에 의해 공격 식별자를 포함하는 패킷의 전송이 실패할 때 마다 공격 ECU에 포함된 레지스터의 카운트 값을 변환하는 단계 및 변환된 카운트 값과 기준 카운트 값을 비교한 결과를 기초로 공격 ECU를 에러 패시브 상태로 전환시키는 단계를 포함할 수 있다. According to one embodiment, the step of converting the attacking ECU into an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to the CAN bus by the attacking ECU among a plurality of ECUs connected to the processor, Generating at least one collision with respect to the packet including the identifier, converting the count value of the register included in the attack ECU whenever transmission of the packet including the attack identifier fails due to collision, and converted count value and converting the attack ECU into an error passive state based on a result of comparing the count value with the reference count value.

일 실시예에 따르면, 에러 패시브 상태로 전환된 공격 ECU가 연속적으로 임의의 제1 패킷 및 제2 패킷을 전송하는 경우, 제1 패킷을 전송한 공격 ECU는 일정 시간동안 패킷의 전송을 중단한 후 제2 패킷을 전송하도록 구성될 수 있다.According to one embodiment, when the attack ECU that has been switched to the error passive state continuously transmits random first packets and second packets, the attack ECU that has transmitted the first packet stops transmitting packets for a certain period of time and then It may be configured to transmit the second packet.

일 실시예에 따르면, 우선 순위가 낮은 식별자를 포함하는 패킷은 공격 ECU가 패킷의 전송을 중단하는 일정 시간 내에 CAN 버스로 전송될 패킷으로 결정될 수 있다.According to an embodiment, a packet including an identifier having a low priority may be determined as a packet to be transmitted to the CAN bus within a predetermined time when the attacking ECU stops transmission of the packet.

본 개시의 다른 실시예에 따르면, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법을 실행시키도록 컴퓨터로 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램이 제공될 수 있다.According to another embodiment of the present disclosure, a computer program recorded on a computer-readable recording medium may be provided to execute an attack ECU detection method using CAN traffic monitoring.

본 개시의 또 다른 실시예에 따르면, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 장치는, 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송되는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번 이상의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키고, 공격 ECU의 에러 패시브 상태가 유지되는 동안, 복수의 ECU 중 임의의 ECU에 할당된 적어도 하나의 식별자 중 우선 순위가 가장 높은 최우선 식별자를 포함하는 패킷에 대하여 복수의 충돌을 발생시키고, 복수의 충돌에 의해 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 임의의 ECU가 에러 패시브 상태로 전환된 공격 ECU인 것으로 결정하기 위한 명령어들을 실행시키도록 구성될 수 있다.According to another embodiment of the present disclosure, an attack ECU detection apparatus using CAN traffic monitoring includes at least one processor, and at least one processor is transmitted to a CAN bus by an attack ECU among a plurality of ECUs connected to the processor. At least one identifier allocated to any ECU among the plurality of ECUs while the attack ECU is converted to an error passive state by generating at least one collision with respect to a packet including the attack identifier, and the attack ECU is in an error passive state. A plurality of collisions are generated for a packet including the highest priority identifier among the plurality of collisions, and an identifier having a lower priority than the highest priority identifier is generated between each of a plurality of error frames transmitted to the CAN bus by the plurality of collisions. If the packet is present, it may be configured to execute instructions to determine that any ECU is an attacking ECU that has transitioned to an error passive state.

본 개시의 일부 실시예에 따르면, CAN의 오류 처리 메커니즘을 활용하여 공격 ECU를 쉽게 탐지할 수 있다.According to some embodiments of the present disclosure, it is possible to easily detect an attacking ECU by utilizing an error handling mechanism of CAN.

본 개시의 일부 실시예에 따르면, CAN의 오류 처리 메커니즘을 활용하여 공격 ECU를 탐지함으로써 보안 기법이 적용되지 않아 패킷 삽입 공격에 취약하다는 CAN의 단점을 보완할 수 있다.According to some embodiments of the present disclosure, by detecting an attacking ECU using an error processing mechanism of CAN, it is possible to compensate for the disadvantage of CAN that is vulnerable to packet injection attacks because no security technique is applied.

본 개시의 일부 실시예에 따르면, 최근 차량에서 제공하는 기술과 외부와의 통신이 증가함에 따라 빈번하게 발생하는 차량 내부 네트워크에 대한 공격을 탐지함으로써, CAN의 보안성을 향상시킬 수 있다.According to some embodiments of the present disclosure, it is possible to improve the security of CAN by detecting an attack on a vehicle's internal network that frequently occurs as communication with the outside and technology provided by a vehicle has recently increased.

도 1은 본 개시의 일 실시예에 따른 CAN(Controller Area Network) 시스템의 예시를 나타낸다.
도 2는 본 개시의 일 실시예에 따른 CAN의 버스 점유 방식을 설명하기 위한 예시이다.
도 3은 본 개시의 일 실시예에 따른 CAN의 오류 처리 메커니즘을 나타내는 예시이다.
도 4는 본 개시의 일 실시예에 따른 공격 ECU를 탐지하기 위한 CAN 시스템의 예시를 나타낸다.
도 5는 본 개시의 일 실시예에 따른 복수의 노드가 전송하는 데이터에 각각 5회의 연속적인 충돌을 발생시킨 예시를 나타낸다.
도 6은 본 개시의 일 실시예에 따라 실험실 환경에서 에러 패시브 상태의 ECU에 (n*30)회 발생시킨 경우 우선 순위 감소 현상의 발생 확률을 측정한 예시를 나타낸다.
도 7은 본 개시의 일 실시예에 따라 실제 차량 환경 실험에서 에러 패시브 상태의 ECU에 (n*30)회 발생시킨 경우 우선 순위 감소 현상의 발생 확률을 측정한 예시를 나타낸다.
도 8은 본 개시의 일 실시예에 따른 CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법의 예시를 나타낸다.
1 shows an example of a Controller Area Network (CAN) system according to an embodiment of the present disclosure.
2 is an example for explaining a CAN bus occupation method according to an embodiment of the present disclosure.
3 is an example illustrating an error handling mechanism of CAN according to an embodiment of the present disclosure.
4 shows an example of a CAN system for detecting an attack ECU according to an embodiment of the present disclosure.
FIG. 5 shows an example in which 5 consecutive collisions occur in data transmitted by a plurality of nodes, respectively, according to an embodiment of the present disclosure.
FIG. 6 shows an example of measuring the probability of occurrence of a priority reduction phenomenon when an error occurs (n*30) times in an ECU in a passive state in a laboratory environment according to an embodiment of the present disclosure.
FIG. 7 illustrates an example of measuring the probability of occurrence of a priority reduction phenomenon when an error occurs in an ECU in a passive state (n*30) times in an actual vehicle environment experiment according to an embodiment of the present disclosure.
8 shows an example of an attack ECU detection method using CAN traffic monitoring according to an embodiment of the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for the implementation of the present disclosure will be described in detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the gist of the present disclosure, detailed descriptions of well-known functions or configurations will be omitted.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding elements are given the same reference numerals. In addition, in the description of the following embodiments, overlapping descriptions of the same or corresponding components may be omitted. However, omission of a description of a component does not intend that such a component is not included in an embodiment.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the following embodiments in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms, only the present embodiments make the present disclosure complete, and the present disclosure fully covers the scope of the invention to those skilled in the art. It is provided only to inform you.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification have been selected from general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but they may vary according to the intention of a person skilled in the related field, a precedent, or the emergence of new technology. In addition, in a specific case, there is also a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the invention. Therefore, terms used in the present disclosure should be defined based on the meaning of the term and the general content of the present disclosure, not simply the name of the term.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. Expressions in the singular number in this specification include plural expressions unless the context clearly dictates that they are singular. Also, plural expressions include singular expressions unless the context clearly specifies that they are plural. When it is said that a certain part 'includes' a certain element in the entire specification, it means that other elements may be further included without excluding other elements unless otherwise stated.

또한, 명세서에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한다. 그렇지만 '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.Also, the term 'module' or 'unit' used in the specification means a software or hardware component, and the 'module' or 'unit' performs certain roles. However, 'module' or 'unit' is not meant to be limited to software or hardware. A 'module' or 'unit' may be configured to reside in an addressable storage medium and may be configured to reproduce one or more processors. Thus, as an example, 'module' or 'unit' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, It may include at least one of procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, or variables. Functions provided within components and 'modules' or 'units' may be combined into a smaller number of components and 'modules' or 'units', or further components and 'modules' or 'units'. can be further separated.

본 개시의 일 실시예에 따르면 '모듈' 또는 '부'는 프로세서 및 메모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, '프로세서'는 주문형 반도체(ASIC), 프로그램 가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.According to an embodiment of the present disclosure, a 'module' or 'unit' may be implemented as a processor and a memory. 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like. In some circumstances, 'processor' may refer to an application specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), or the like. 'Processor' refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in conjunction with a DSP core, or a combination of any other such configurations. You may. Also, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information. 'Memory' includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), It may also refer to various types of processor-readable media, such as electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. A memory is said to be in electronic communication with the processor if the processor can read information from and/or write information to the memory. Memory integrated with the processor is in electronic communication with the processor.

도 1은 본 개시의 일 실시예에 따른 CAN(Controller Area Network) 시스템(100)의 예시를 나타낸다. 여기서, CAN 시스템(100)은 차량 내에서 호스트 컴퓨팅 장치 없이 마이크로 컨트롤러 및/또는 장치들(즉, ECU(Electronic Control Unit))이 서로 통신하기 위해 설계된 네트워크 시스템을 지칭할 수 있다. 또한, CAN 시스템(100)은 배선 비용이 적고 무게가 가볍다는 등의 장점으로 인해 국제 표준 규격(ISO 11898)으로 제정된, 버스(Bus) 형태의 네트워크 토폴로지로 구성된 프로토콜을 지칭할 수 있다. 도시된 바와 같이, CAN 시스템(100)은 CAN 버스(110) 및 복수의 ECU(120 내지 170)를 포함할 수 있다. 한편, CAN 시스템(100)은 프로그램 및/또는 명령어(들)로 구현되어 적어도 하나의 프로세서에 의해 수행될 수 있다.1 shows an example of a controller area network (CAN) system 100 according to an embodiment of the present disclosure. Here, the CAN system 100 may refer to a network system designed to allow microcontrollers and/or devices (ie, Electronic Control Units (ECUs)) to communicate with each other in a vehicle without a host computing device. In addition, the CAN system 100 may refer to a protocol composed of a network topology in the form of a bus established as an international standard (ISO 11898) due to advantages such as low wiring cost and light weight. As shown, the CAN system 100 may include a CAN bus 110 and a plurality of ECUs 120 to 170. Meanwhile, the CAN system 100 may be implemented as a program and/or instruction(s) and performed by at least one processor.

일 실시예에 따르면, CAN 버스(110)는 복수의 ECU(120 내지 170) 각각에 연결될 수 있다. 구체적으로, CAN 버스(110)는 복수의 ECU(120 내지 170) 각각에 연결되어, 복수의 ECU(120 내지 170) 사이의 통신 경로를 제공할 수 있다. 예를 들어, CAN 버스(110)는 제1 ECU(120)로부터 데이터(또는, 패킷)를 수신할 수 있다. 이에 따라, 수신된 데이터는 CAN 버스(110)를 점유할 수 있다. 그리고 나서, CAN 버스(110)는 CAN 버스(110)를 점유중인 데이터를 도착지로 전송할 수 있다.According to one embodiment, the CAN bus 110 may be connected to each of the plurality of ECUs 120 to 170. Specifically, the CAN bus 110 may be connected to each of the plurality of ECUs 120 to 170 to provide a communication path between the plurality of ECUs 120 to 170 . For example, the CAN bus 110 may receive data (or packets) from the first ECU 120 . Accordingly, the received data may occupy the CAN bus 110. Then, the CAN bus 110 may transmit data occupying the CAN bus 110 to the destination.

일 실시예에 따르면, 복수의 ECU(120 내지 170) 각각에는 적어도 하나의 식별자가 할당될 수 있다. 이 경우, 할당된 식별자는 복수의 ECU(120 내지 170) 각각이 전송하는 데이터(또는, 패킷)의 일부에 표시될 수 있다. 한편, 공격 CAN 시스템(100)은 복수의 ECU(120 내지 170) 각각에 할당된 식별자들(또는, 식별자 집합)에 대한 데이터를 획득/추론할 수 있다. 이에 따라, 공격 CAN 시스템(100)은 획득/추론된 식별자들에 대한 데이터를 이용하여 복수의 ECU(120 내지 170)에 사전 할당되지 않은 공격 식별자(즉, 공격 ECU가 이용하는 식별자)를 식별할 수 있다. 이를 위해, CAN 시스템(100)은 CAN-bus mapper를 이용할 수 있으나, 이에 한정되지 않고 공격 식별자를 식별하기 위한 모든 종래 기술이 이용될 수 있다.According to one embodiment, at least one identifier may be assigned to each of the plurality of ECUs 120 to 170 . In this case, the assigned identifier may be displayed on a part of data (or packet) transmitted by each of the plurality of ECUs 120 to 170 . On the other hand, the attack CAN system 100 may obtain / infer data about identifiers (or identifier sets) assigned to each of the plurality of ECUs 120 to 170 . Accordingly, the attack CAN system 100 can identify an attack identifier that is not pre-assigned to the plurality of ECUs 120 to 170 (ie, an identifier used by the attack ECU) using data on the obtained/inferred identifiers. there is. To this end, the CAN system 100 may use a CAN-bus mapper, but is not limited thereto, and all conventional techniques for identifying an attack identifier may be used.

일 실시예에 따르면, CAN 시스템(100)은 복수의 ECU(120 내지 170) 중 공격 ECU에 의해 전송된 데이터(또는, 패킷)을 탐지할 수 있다. 이를 위해, CAN 시스템(100)은 ECU의 Clock skew 및/또는 CAN packet 주기 등의 특성을 기초로 공격 ECU를 탐지하는 기술인 IDS(Intrusion Detection System)을 이용할 수 있으나, 이에 한정되지 않고 공격 ECU에 의해 전송된 데이터를 탐지하는 종래의 모든 기술이 이용될 수 있다.According to one embodiment, the CAN system 100 may detect data (or packets) transmitted by an attacking ECU among a plurality of ECUs 120 to 170 . To this end, the CAN system 100 may use IDS (Intrusion Detection System), which is a technology for detecting an attacking ECU based on characteristics such as the ECU's clock skew and/or CAN packet cycle, but is not limited thereto. Any conventional technique for detecting transmitted data may be used.

일 실시예에 따르면, 복수의 ECU(120 내지 170) 각각은 주기적으로 CAN 버스(110)에 데이터(또는, 패킷)를 전송할 수 있다. 예를 들어, 제1 ECU(120)는 제1 데이터를 제1 시간 간격마다 CAN 버스(110)에 전송할 수 있다. 다른 예를 들어, 제2 ECU(130)는 제2 데이터를 제2 시간 간격마다 CAN 버스(110)에 전송할 수 있다. 추가적으로, 복수의 ECU(120 내지 170) 각각은 연속적으로 CAN 버스(110)에 데이터(또는, 패킷)를 전송할 수 있다. 예를 들어, 제1 ECU(120)는 사전에 결정된 순서에 따라 CAN 버스(110)에 제1-1 데이터, 제1-2 데이터 및 제1-3 데이터를 연이어 전송할 수 있다. According to one embodiment, each of the plurality of ECUs 120 to 170 may periodically transmit data (or packets) to the CAN bus 110 . For example, the first ECU 120 may transmit the first data to the CAN bus 110 at every first time interval. For another example, the second ECU 130 may transmit the second data to the CAN bus 110 at every second time interval. Additionally, each of the plurality of ECUs 120 to 170 may continuously transmit data (or packets) to the CAN bus 110 . For example, the first ECU 120 may successively transmit 1-1 data, 1-2 data, and 1-3 data to the CAN bus 110 according to a predetermined order.

일 실시예에 따르면, 복수의 ECU(120 내지 170)는 병렬적으로 데이터를 CAN 버스(110)에 전송할 수 있다. 예를 들어, 제1 ECU(120) 및 제2 ECU(130)는 각각 데이터를 CAN 버스(110)에 전송할 수 있다. 즉, 복수의 ECU(120 내지 170) 각각은 동일/유사한 시점에 CAN 버스(110)에 데이터를 전송하는 것을 시도할 수 있다. 이 경우, CAN 시스템(100)은 복수의 ECU(120 내지 170) 각각에 할당된 하나 이상의 식별자(ID; Identification)의 사전 결정된 우선 순위를 기초로 CAN 버스(110)를 우선 점유할 데이터를 결정할 수 있다.According to one embodiment, the plurality of ECUs 120 to 170 may transmit data to the CAN bus 110 in parallel. For example, the first ECU 120 and the second ECU 130 may transmit data to the CAN bus 110, respectively. That is, each of the plurality of ECUs 120 to 170 may attempt to transmit data to the CAN bus 110 at the same/similar time point. In this case, the CAN system 100 may determine data to occupy the CAN bus 110 first based on a predetermined priority of one or more identifiers (IDs) assigned to each of the plurality of ECUs 120 to 170. there is.

상술한 바와 같이 동시에 여러 ECU에서 CAN 버스(110)에 데이터를 전송하더라도, 우선 순위를 결정하는 시스템(100) 내부의 알고리즘에 따라 우선 순위가 높은 식별자를 갖는 데이터부터 CAN 버스(110)를 점유하게 된다. 다만, 시스템(100)에 적용되는 데이터 전송 오류를 처리하는 알고리즘에 의해, 우선 순위가 낮은 식별자를 갖는 데이터가 우선 순위가 높은 식별자를 갖는 데이터보다 먼저 CAN 버스(110)를 점유하는 우선 순위 감소 현상이 발생할 수 있다. 본 개시에서는 이러한 오류 처리 알고리즘을 이용하여 모니터링 ECU(170)를 통해 공격 ECU(120)를 추적하는 방법을 제안하며, 도 2 내지 8에서 이 방법에 대한 설명이 상세히 후술된다.As described above, even if data is transmitted to the CAN bus 110 from several ECUs at the same time, the CAN bus 110 is occupied from the data having the identifier with the highest priority according to the algorithm inside the system 100 for determining the priority. do. However, by an algorithm for processing data transmission errors applied to the system 100, a priority reduction phenomenon in which data having a lower priority identifier occupies the CAN bus 110 before data having a higher priority identifier. this can happen The present disclosure proposes a method of tracking the attack ECU 120 through the monitoring ECU 170 using such an error handling algorithm, and a description of this method will be described later in detail in FIGS. 2 to 8 .

도 2는 본 개시의 일 실시예에 따른 CAN의 버스 점유 방식을 설명하기 위한 예시이다. CAN의 버스 점유 방식은 ECU(예: ECU(120 내지 170))가 전송하는 데이터(또는, 패킷)(200)의 중재 영역(Arbitration Field)(210)을 통해 이루어질 수 있다. 예를 들어, 데이터(또는, 패킷)(200)의 중재 영역(210)의 비트(bit)와 다른 데이터(미도시)의 중재 영역의 비트에 대하여 Bitwise Arbitration 연산을 수행함으로써, 데이터(또는, 패킷)(200)의 우선 순위(즉, 해당 데이터의 식별자의 우선 순위)가 결정될 수 있다.2 is an example for explaining a CAN bus occupation method according to an embodiment of the present disclosure. The CAN bus occupation method may be performed through an arbitration field 210 of data (or packets) 200 transmitted by an ECU (eg, ECUs 120 to 170). For example, by performing a bitwise arbitration operation on the bits of the arbitration area 210 of the data (or packet) 200 and the bits of the arbitration area of other data (not shown), data (or packets) ) 200 (that is, the priority of the identifier of the corresponding data) may be determined.

도 3은 본 개시의 일 실시예에 따른 CAN의 오류 처리 메커니즘(300)을 나타내는 예시이다. 일 실시예에 따르면, ECU(예: ECU(120 내지 170)) 각각은 레지스터를 포함할 수 있다. 예를 들어, ECU는 해당 ECU의 데이터(또는, 패킷) 전송 실패를 카운트하기 위한 TEC(Transmission Error Counter) 레지스터 및/또는 해당 ECU의 데이터 수신 실패를 카운트하기 위한 REC(Receive Error Counter) 레지스터를 포함할 수 있다. 3 is an example illustrating an error handling mechanism 300 of CAN according to an embodiment of the present disclosure. According to one embodiment, each ECU (eg, the ECUs 120 to 170) may include a register. For example, the ECU includes a TEC (Transmission Error Counter) register for counting data (or packet) transmission failures of the corresponding ECU and/or a REC (Receive Error Counter) register for counting data reception failures of the corresponding ECU. can do.

일 실시예에 따르면, ECU가 데이터 전송에 실패한 경우, 데이터 전송 실패를 나타내는 에러 프레임(Error Frame)을 전송할 수 있다. 예를 들어, ECU가 전송하는 데이터에 충돌(collision)이 발생하면, 해당 ECU는 데이터 전송 실패를 나타내는 에러 프레임을 CAN 버스(예: CAN 버스(110))에 전송할 수 있다. 이와 동시에, 해당 ECU의 TEC 레지스터의 값은 8만큼 증가하고, 해당 ECU로부터 데이터를 수신하려던 ECU의 REC 레지스터의 값은 1만큼 증가할 수 있다. 다른 실시예에 따르면, ECU가 데이터 전송에 성공한 경우, 해당 ECU의 TEC 레지스터 및 해당 ECU로부터 데이터를 수신한 ECU의 REC 레지스터의 값은 1만큼 감소할 수 있다. 이와 같이, ECU의 데이터 전송 또는 실패에 따라 변경되는 TEC 레지스터 및/또는 REC 레지스터의 값을 기초로, 해당 ECU의 에러 상태는 에러 액티브(Error Active) 상태(310), 에러 패시브(Error Passive)상태(320) 또는 버스 오프(Bus Off) 상태(330)로 결정될 수 있다. 일반적으로, ECU의 에러 상태는 에러 액티브 상태(310)로 유지될 수 있다. ECU의 에러 상태가 에러 액티브 상태(310)인 때, 해당 ECU는 별도의 대기 시간(Suspend Transmission) 없이 주기적/연속적으로 데이터를 전송할 수 있다. 반면, ECU의 에러 상태가 에러 패시브 상태(320)인 경우, ECU는 연속적으로 데이터를 전송할 때마다 대기 시간을 갖도록 구성되고, 버스 오프 상태(330)인 경우, 데이터를 전송을 중단하고 의무적인 대기 시간을 갖거나 ECU 하드웨어의 재설정을 통해 에러 액티브 상태(310)로 돌아갈 수 있다.According to one embodiment, when the ECU fails to transmit data, it may transmit an error frame indicating data transmission failure. For example, when a collision occurs in data transmitted by the ECU, the corresponding ECU may transmit an error frame indicating data transmission failure to the CAN bus (eg, the CAN bus 110). At the same time, the value of the TEC register of the corresponding ECU may increase by 8, and the value of the REC register of the ECU to receive data from the corresponding ECU may increase by 1. According to another embodiment, when the ECU successfully transmits data, values of the TEC register of the corresponding ECU and the REC register of the ECU receiving data from the corresponding ECU may be decreased by 1. In this way, based on the values of the TEC register and/or the REC register that change according to data transmission or failure of the ECU, the error state of the corresponding ECU is an error active state 310 and an error passive state. 320 or a bus off state 330 may be determined. In general, the error state of the ECU can remain in the error active state 310 . When the error state of the ECU is the error active state 310, the corresponding ECU can transmit data periodically/continuously without a separate suspend transmission. On the other hand, when the error state of the ECU is the error passive state (320), the ECU is configured to have a waiting time whenever it continuously transmits data, and when the ECU is in the bus off state (330), the data transmission is stopped and mandatory standby is performed. It may return to the error active state 310 with time or through a reset of the ECU hardware.

도 4는 본 개시의 일 실시예에 따른 공격 ECU를 탐지하기 위한 CAN 시스템(400)의 예시를 나타낸다. 도시된 바와 같이 CAN 시스템(400)은 CAN 버스(410), 복수의 ECU(420 내지 460) 및 모니터링 ECU(470)를 포함할 수 있다. 또한, 모니터링 ECU(470)는 에러 모듈(472) 및 모니터링 모듈(474)을 포함할 수 있다. 이와 같은 CAN 시스템(400)은 공격 데이터(즉, 공격 ECU(430)에 의해 전송되는 데이터)가 탐지되었을 때, 공격 ECU(430)를 식별하기 위하여 구동될 수 있다. 여기서, 공격 데이터는 도 1에서 상술한 바와 같이 복수의 ECU(420 내지 460)에 할당되지 않은 식별자를 갖는 데이터를 지칭할 수 있다. 한편, CAN 시스템(400)은 프로그램 및/또는 명령어(들)로 구현되어 적어도 하나의 프로세서에 의해 수행될 수 있다.4 shows an example of a CAN system 400 for detecting an attack ECU according to an embodiment of the present disclosure. As shown, the CAN system 400 may include a CAN bus 410, a plurality of ECUs 420 to 460, and a monitoring ECU 470. Also, the monitoring ECU 470 may include an error module 472 and a monitoring module 474 . Such a CAN system 400 may be driven to identify the attack ECU 430 when attack data (ie, data transmitted by the attack ECU 430) is detected. Here, the attack data may refer to data having identifiers not assigned to the plurality of ECUs 420 to 460 as described above with reference to FIG. 1 . Meanwhile, the CAN system 400 may be implemented as a program and/or instruction(s) and performed by at least one processor.

일 실시예에 따르면, CAN 시스템(400)은 공격 데이터(또는, 공격 패킷)이 탐지되었을 때, 공격 데이터에 대하여 적어도 한번의 충돌을 발생시켜 해당 공격 데이터의 전송을 의도적으로 실패시킬 수 있다. 이에 따라, 공격 ECU(430)는 오류 처리 메커니즘(예: 오류 처리 메커니즘(300))에 따라 특정 시점에서 에러 패시브 상태로 전환될 수 있다.According to an embodiment, when attack data (or attack packets) is detected, the CAN system 400 may intentionally fail transmission of the attack data by generating at least one collision with respect to the attack data. Accordingly, the attack ECU 430 may switch to an error passive state at a specific point in time according to an error handling mechanism (eg, the error handling mechanism 300).

일 실시예에 따르면, 모니터링 ECU(470)는 공격 ECU(430)의 에러 패시브 상태가 유지되는 동안, 복수의 ECU(420 내지 460) 각각에 할당된 식별자(들) 중 우선 순위가 가장 높은 식별자를 선택할 수 있다. 그리고 나서, 에러 모듈(472)은 복수의 ECU(420 내지 460) 각각의 우선 순위가 가장 높은 최우선 식별자를 갖는 데이터에 n(여기서, n은 2 이상의 자연수)번의 연속적인 충돌을 발생시킬 수 있다. 예를 들어, 에러 모듈(472)은 제1 ECU(420), 제2 ECU(440), 제3 ECU(450) 및 제4 ECU(460) 각각에 할당된 최우선 식별자를 갖는 데이터에 각각 n번의 연속적인 충돌을 발생시키고, 공격 ECU(430)의 최우선 식별자를 갖는 데이터에 n번의 연속적인 충돌을 발생시킬 수 있다. 이에 따라, 복수의 ECU(420 내지 460) 각각에서는 n번의 연속적인 충돌에 의한 (최대) n번의 데이터 전송 실패가 발생하고, 이에 따라 복수의 ECU(420 내지 460) 각각은 최대 n개의 연속적인 에러 프레임을 CAN 버스(410)에 전송할 수 있다.According to one embodiment, the monitoring ECU 470 receives an identifier having the highest priority among identifier(s) assigned to each of the plurality of ECUs 420 to 460 while the attacking ECU 430 maintains an error passive state. You can choose. Then, the error module 472 may generate n (where n is a natural number of 2 or more) consecutive collisions to the data having the highest priority identifier of each of the plurality of ECUs 420 to 460 . For example, the error module 472 sends n times to the data having the highest identifier assigned to each of the first ECU 420, the second ECU 440, the third ECU 450, and the fourth ECU 460. It is possible to generate continuous collisions, and generate n consecutive collisions to data having the highest priority identifier of the attacking ECU 430 . Accordingly, in each of the plurality of ECUs 420 to 460, (maximum) n times of data transmission failures due to n consecutive collisions occur, and accordingly, each of the plurality of ECUs 420 to 460 has up to n consecutive errors. The frame may be transmitted to the CAN bus 410.

일 실시예에 따르면, 모니터링 모듈(474)은 n번의 연속적인 충돌에 따라 발생한 연속적인 에러 프레임을 모니터링할 수 있다. 이 과정에서, 도 2에서 상술한 ECU의 에러 상태가 고려될 수 있다. 구체적으로, ECU의 에러 상태가 에러 액티브 상태인 때, ECU는 별도의 대기 시간(Suspend Transmission) 없이 주기적/연속적으로 데이터를 전송하고, ECU의 에러 상태가 에러 패시브 상태인 때, ECU는 연속적으로 데이터를 전송할 때마다 대기 시간을 갖도록 구성되는 점이 고려될 수 있다.According to an embodiment, the monitoring module 474 may monitor consecutive error frames generated according to n consecutive collisions. In this process, the error state of the ECU described above in FIG. 2 may be considered. Specifically, when the error state of the ECU is in the error active state, the ECU transmits data periodically/continuously without a separate Suspend Transmission, and when the error state of the ECU is in the error passive state, the ECU continuously transmits data It can be considered that it is configured to have a waiting time whenever transmitting.

도 5는 본 개시의 일 실시예에 따른 복수의 노드(510 내지 560)가 전송하는 데이터에 각각 5회(즉, n=5)의 연속적인 충돌을 발생시킨 예시를 나타낸다. 도 5에서 각 노드(510 내지 560)에는 시간의 경과에 따라 연속적으로 관측되는 데이터들(IDHP, IDLP 또는 Error Frame)이 표시되어 있다. 여기서, 도 5의 (a)는 에러 액티브 상태인 제1 타겟 노드(Target Node)(510)에서 모니터링 ECU(미도시)에 의한 5회의 연속적 충돌을 발생된 예시이다. 한편, 본 개시에서 사용되는 '노드(node)'는 I/O 디바이스, CAN 인터페이스, 임베디드 컴퓨터 등과 같이 네트워크를 구성하는 '모듈'로 해석될 수 있다. 따라서, 본 개시의 '노드'는 'ECU'로 대체되어 동일하게 해석될 수 있다.FIG. 5 shows an example in which each of the plurality of nodes 510 to 560 generates 5 consecutive collisions (ie, n=5) in data transmitted according to an embodiment of the present disclosure. In FIG. 5, data (ID HP , ID LP , or Error Frame) continuously observed over time is displayed on each node 510 to 560. Here, (a) of FIG. 5 is an example of five consecutive collisions generated by a monitoring ECU (not shown) in the first target node 510 in an error active state. Meanwhile, a 'node' used in the present disclosure may be interpreted as a 'module' constituting a network such as an I/O device, a CAN interface, an embedded computer, and the like. Therefore, 'node' in the present disclosure may be replaced with 'ECU' and interpreted the same.

일 실시예에 따르면, 에러 액티브 상태인 제1 타겟 노드(510)는 최우선 식별자를 갖는 제1 데이터(IDHP)의 제1 전송(512)을 개시할 수 있다. 이 경우, 모니터링 ECU(미도시)의 제1 데이터(IDHP)에 대한 첫번째 충돌로 인해, 제1 데이터(IDHP)의 제1 전송(512)은 실패하게 된다. 그리고 나서, 제1 타겟 노드(510)는 CAN 버스(530)에 제1 데이터(IDHP)의 제1 전송(512) 실패에 따른 에러 프레임(Error Frame)의 제1 전송(532)을 수행할 수 있다.According to an embodiment, the first target node 510 in an error active state may initiate the first transmission 512 of the first data ID HP having the highest identifier. In this case, the first transmission 512 of the first data (ID HP ) fails due to the first collision with the first data (ID HP ) of the monitoring ECU (not shown). Then, the first target node 510 performs the first transmission 532 of the error frame according to the failure of the first transmission 512 of the first data ID HP to the CAN bus 530. can

일 실시예에 따르면, 제1 데이터(IDHP)의 제1 전송(512)에 실패한 에러 액티브 상태의 제1 타겟 노드(510)는 일정한 시간(즉, 주기)가 경과한 후 제1 데이터(IDHP)의 제2 전송(514)을 개시할 수 있다. 이 경우에도, 모니터링 ECU의 제1 데이터(IDHP)에 대한 두번째 충돌로 인해, 제1 데이터(IDHP)의 제2 전송(514)은 실패하게 된다. 그리고 나서, 제1 타겟 노드(510)는 다시 일정한 시간이 경과한 후 제1 데이터(IDHP)의 제3 전송(516)을 개시할 수 있다. 이 때, 다른 노드(520)는 제1 데이터(IDHP)의 최우선 식별자보다 우선 순위가 낮은 제2 데이터(IDLP)의 제4 전송(522)을 개시할 수 있다. 즉, 제1 데이터(IDHP)의 제3 전송(516)과 제2 데이터(IDLP)의 제4 전송(522)이 동일/유사한 시점에 개시될 수 있다.According to an embodiment, the first target node 510 in an error active state having failed in the first transmission 512 of the first data ID HP will receive the first data ID HP after a predetermined time (ie, period) has elapsed. HP ) may initiate a second transmission 514 . Even in this case, the second transmission 514 of the first data (ID HP ) fails due to the second collision with respect to the first data (ID HP ) of the monitoring ECU. Then, the first target node 510 may start the third transmission 516 of the first data (ID HP ) again after a predetermined time has elapsed. At this time, the other node 520 may initiate fourth transmission 522 of the second data (ID LP ) having a lower priority than the highest identifier of the first data (ID HP ). That is, the third transmission 516 of the first data ID HP and the fourth transmission 522 of the second data ID LP may be started at the same/similar time point.

한편, 도 1에서 상술한 바와 같이, 시스템(예: CAN 시스템(100), CAN 시스템(400))은 동일/유사한 시점에 병렬적으로 발생하는 복수의 데이터의 전송을 해당 복수의 데이터 각각의 식별자들 사이의 우선 순위를 기초로 처리할 수 있다. 이에 따라, 시스템은 동일/유사한 시점에 발생한 제1 데이터(IDHP)의 제3 전송(516)과 제2 데이터(IDLP)의 제4 전송(522) 중 우선 순위가 높은 식별자를 갖는 데이터의 전송인 제3 전송(516)을 우선적으로 처리할 수 있다. 그러나, 모니터링 ECU의 세번째 충돌로 인해 제1 데이터(IDHP)의 제3 전송(516) 또한 실패하고, 에러 액티브 상태인 제1 타겟 노드(510)는 CAN 버스(530)에 제1 데이터(IDHP)의 제3 전송(516) 실패에 따른 에러 프레임(Error Frame)의 제3 전송(534)을 수행하게 된다.On the other hand, as described above in FIG. 1, the system (eg, CAN system 100, CAN system 400) transmits a plurality of data occurring in parallel at the same / similar time point, the identifier of each of the plurality of data It can be processed based on priority among them. Accordingly, the system selects data having a higher priority among the third transmission 516 of the first data (ID HP ) and the fourth transmission 522 of the second data (ID LP ) occurring at the same/similar time point. The third transport 516, which is a transport, may be processed with priority. However, the third transmission 516 of the first data (ID HP ) also fails due to the third collision of the monitoring ECU, and the first target node 510 in the error active state sends the first data (ID HP ) to the CAN bus 530. When the third transmission 516 of HP fails, the third transmission 534 of the error frame is performed.

상술한 과정을 거쳐 5회의 제1 데이터(IDHP)의 전송과 5회의 충돌이 종료되면, 도시된 바와 같이 CAN 버스(530)는 5회의 제1 데이터(IDHP) 전송 실패로 인한 5개의 에러 프레임을 수신할 수 있다. 그리고 나서, 시스템은 아직 전송되지 않은 제2 데이터(IDLP)의 제4 전송(522)을 처리함으로써, 제2 데이터(IDLP)의 수신(562)을 완료할 수 있다. 한편, 제2 데이터(IDLP)는 제1 데이터(IDHP)를 전송하는 제1 타겟 노드(510)와 상이한 다른 노드(Other Nodes)(520)가 전송하는 데이터를 지칭할 수 있다. 또한, 제2 데이터(IDLP)는 시스템(예: CAN 시스템(100), CAN 시스템(400)) 내에 존재하는 백그라운드 트래픽(background traffic)을 지칭할 수 있다.After the transmission of the first data (ID HP ) 5 times and the collision 5 times are completed through the above process, as shown, the CAN bus 530 generates 5 errors due to the 5 times of transmission failure of the 1st data (ID HP ). frame can be received. Then, the system may complete reception 562 of the second data ID LP by processing the fourth transmission 522 of the second data ID LP that has not yet been transmitted. Meanwhile, the second data (ID LP ) may refer to data transmitted by other nodes 520 different from the first target node 510 transmitting the first data (ID HP ). Also, the second data ID LP may refer to background traffic existing in a system (eg, the CAN system 100 or the CAN system 400).

도 5의 (b)는 에러 패시브 상태의 제2 타겟 노드(Target Node)(540)에서 모니터링 ECU(미도시)에 의한 5회의 연속적 충돌이 발생된 예시이다.5(b) is an example in which five consecutive collisions occurred by the monitoring ECU (not shown) in the second target node 540 in the error passive state.

일 실시예에 따르면, 에러 패시브 상태의 제2 타겟 노드(540)는 최우선 식별자를 갖는 제3 데이터(IDHP)의 전송을 개시할 수 있다. 그러나, 5 회의 제3 데이터(IDHP) 전송은 모니터링 ECU의 5회의 충돌로 인해 실패하게 된다. 다만, 제2 타겟 노드(540)는 에러 패시브 상태이므로, 제3 데이터(IDHP) 및 에러 프레임을 전송한 후, 대기 시간(542 내지 548)을 가진 후 제3 데이터(IDHP) 및 에러 프레임의 재전송을 수행하게 된다. 따라서, 다른 노드(550)가 제3 데이터(IDHP)의 식별자보다 우선 순위가 낮은 식별자를 갖는 제4 데이터(IDLP)의 전송(552)을 에러 패시브 상태의 ECU의 두번째 대기 시간(544) 내에 개시하는 경우, 시스템이 제4 데이터(IDLP)의 전송(552)을 처리하게 됨으로써 결과적으로 CAN 버스(560)의 제4 데이터(IDLP) 수신(562)이 수행될 수 있다. 즉, 우선 순위가 높은 제3 데이터(IDHP)의 전송이 완료되지 않은 상황에서, 우선 순위가 낮은 제4 데이터(IDLP)의 전송(552)이 완료되는 우선 순위 감소 현상이 발생할 수 있다.According to an embodiment, the second target node 540 in an error passive state may initiate transmission of third data (ID HP ) having a top priority identifier. However, transmission of the third data (ID HP ) 5 times fails due to 5 collisions of the monitoring ECU. However, since the second target node 540 is in an error-passive state, after transmitting the third data (ID HP ) and the error frame and having a waiting time (542 to 548), the third data (ID HP ) and the error frame will perform retransmission of . Therefore, another node 550 transmits 552 the fourth data (ID LP ) having a lower priority than the identifier of the third data (ID HP ) by reducing the second waiting time 544 of the ECU in the error passive state. If it starts within, the system processes the transmission 552 of the fourth data ID LP , and as a result, the reception 562 of the fourth data ID LP of the CAN bus 560 may be performed. That is, in a situation in which transmission of the third data (ID HP ) having a high priority is not completed, a priority reduction phenomenon in which transmission 552 of the fourth data (ID LP ) having a low priority is completed may occur.

일 실시예에 따르면, 시스템은 모니터링 모듈(예: 모니터링 모듈(474))을 통해 우선 순위 감소 현상을 탐지함으로써, 에러 모듈(예: 에러 모듈(472))의 충돌 대상인 에러 패시브 상태의 노드가 공격 노드(예: 공격 ECU(130), 공격 ECU(430))인 것으로 결정할 수 있다. 한편, 제4 데이터(IDLP)는 제2 데이터(IDLP)와 같이, 제3 데이터(IDHP)를 전송하는 제2 타겟 노드(540)와 상이한 다른 노드(Other Nodes)(550)가 전송하는 데이터를 지칭할 수 있다. 또한, 제4 데이터(IDLP)는 시스템(예: CAN 시스템(100), CAN 시스템(400)) 내에 존재하는 백그라운드 트래픽(background traffic)을 지칭할 수 있다According to an embodiment, the system detects a priority reduction phenomenon through a monitoring module (eg, the monitoring module 474), so that a node in an error passive state, which is a collision target of the error module (eg, the error module 472), attacks. It can be determined that it is a node (eg, the attack ECU 130 or the attack ECU 430). Meanwhile, the fourth data (ID LP ), like the second data (ID LP ), is transmitted by other nodes (550) different from the second target node 540 transmitting the third data (ID HP ). It can refer to data that In addition, the fourth data (ID LP ) may refer to background traffic existing in a system (eg, the CAN system 100 or the CAN system 400).

도 6은 본 개시의 일 실시예에 따라 실험실 환경에서 에러 패시브 상태의 ECU에 (n*30)회 발생시킨 경우 우선 순위 감소 현상의 발생 확률을 측정한 예시를 나타낸다. 도시된 바와 같이, Bus Load 50%, 75%, 100%에서 약 60%, 80%, 100%의 확률로 우선 순위 감소 현상이 발생되는 것을 확인할 수 있다. 즉, 이 실험을 통해 연속 충돌 횟수와 버스 로드(Bus Load)에 비례하여 우선 순위 감소현상의 발생 확률이 증가하는 것을 확인할 수 있다.FIG. 6 shows an example of measuring the probability of occurrence of a priority reduction phenomenon when an error occurs (n*30) times in an ECU in a passive state in a laboratory environment according to an embodiment of the present disclosure. As shown, it can be confirmed that the priority reduction phenomenon occurs with a probability of about 60%, 80%, and 100% at a bus load of 50%, 75%, and 100%. That is, through this experiment, it can be confirmed that the probability of occurrence of the priority reduction phenomenon increases in proportion to the number of consecutive collisions and the bus load.

도 7은 본 개시의 일 실시예에 따른 실제 차량 환경 실험에서 에러 패시브 상태의 ECU에 (n*30)회 발생시킨 경우 우선 순위 감소 현상의 발생 확률을 측정한 예시를 나타낸다. 도시된 바와 같이, Vehicle A의 Bus Load 45.4%에서 연속 충돌 횟수가 각 4, 5, 6일 때, 약 30%, 40%, 50%의 확률로 우선 순위 감소 현상이 발생하였다. 이 실험을 통해 본 개시의 방법에 따른 우선 순위 감소 현상이 실제 차량에서도 발생하는 것을 확인할 수 있다. 또한, 실험 장비를 통해 버스 로드(Bus Load)를 증가시킬 경우 도 7의 실험실 환경에서의 결과와 마찬가지로 높은 확률로 우선 순위 감소 현상을 얻을 수 있음을 예상할 수 있다.FIG. 7 shows an example of measuring the probability of occurrence of a priority reduction phenomenon when an error occurs in an ECU in a passive state (n*30) times in an actual vehicle environment experiment according to an embodiment of the present disclosure. As shown, when the number of consecutive collisions was 4, 5, and 6 at a bus load of 45.4% of Vehicle A, a priority reduction phenomenon occurred with a probability of about 30%, 40%, and 50%. Through this experiment, it can be confirmed that the priority reduction phenomenon according to the method of the present disclosure also occurs in an actual vehicle. In addition, it can be expected that when the bus load is increased through the experimental equipment, the priority reduction phenomenon can be obtained with high probability, similar to the result in the laboratory environment of FIG. 7 .

도 8은 본 개시의 일 실시예에 따른 CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법(800)의 예시를 나타낸다. 방법(800)은 공격 ECU 탐지 시스템(예: 시스템(100), 시스템(400)을 구성하는 프로그램 및/또는 명령어(들)를 실행하는 적어도 하나의 프로세서에 의해 수행될 수 있다. 도시된 바와 같이, 방법(800)은 적어도 하나의 프로세서와 연관된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송되는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계(S810)로 개시될 수 있다. 예를 들어, 프로세서는 프로세서와 연결된 복수의 ECU에 할당된 복수의 식별자와 연관된 데이터를 획득하고, 획득된 데이터를 기초로 공격 식별자를 식별할 수 있다. 그리고 나서, 프로세서는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시킬 수 있다.8 shows an example of an attack ECU detection method 800 using CAN traffic monitoring according to an embodiment of the present disclosure. Method 800 may be performed by at least one processor executing a program and/or instruction(s) constituting an attack ECU detection system (eg, system 100, system 400). In the method 800, converting the attack ECU into an error passive state by generating at least one collision for a packet including an attack identifier transmitted to a CAN bus by an attack ECU among a plurality of ECUs associated with at least one processor. (S810) For example, the processor may acquire data associated with a plurality of identifiers assigned to a plurality of ECUs connected to the processor, and identify an attack identifier based on the obtained data. , the processor may generate at least one collision with respect to the packet including the attack identifier to convert the attack ECU into an error passive state.

일 실시예에 따르면, 프로세서는 공격 ECU의 에러 패시브 상태가 유지되는 동안, 복수의 ECU 중 임의의 ECU에 할당된 적어도 하나의 식별자 중 우선순위가 가장 높은 최우선 식별자를 포함하는 패킷에 대하여 복수의 충돌을 발생시킬 수 있다(S820). 예를 들어, 프로세서는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시키고, 충돌에 의해 공격 식별자를 포함하는 패킷의 전송이 실패할 때 마다 공격 ECU에 포함된 레지스터의 카운트 값을 변환할 수 있다. 그리고 나서, 프로세서는 변환된 카운트 값과 기준 카운트 값을 비교한 결과를 기초로 공격 ECU를 에러 패시브 상태로 전환시킬 수 있다. 이 경우, 할당된 복수의 식별자 사이의 우선 순위는 사전 결정될 수 있다.According to an embodiment, while the error passive state of the attacking ECU is maintained, the processor generates a plurality of collisions for a packet including a highest priority identifier among at least one identifier assigned to any ECU among a plurality of ECUs. may be generated (S820). For example, the processor generates at least one collision with respect to the packet including the attack identifier, and converts the count value of the register included in the attack ECU whenever transmission of the packet including the attack identifier fails due to the collision. can Then, the processor may convert the attack ECU into an error passive state based on a result of comparing the converted count value with the reference count value. In this case, priorities among the plurality of assigned identifiers may be predetermined.

일 실시예에 따르면, 프로세서는 복수의 충돌에 의해 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 최우선 식별자보다 우선순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 임의의 ECU가 에러 패시브 상태로 전환된 공격 ECU인 것으로 결정할 수 있다. 이 경우, 우선순위가 낮은 식별자를 포함하는 패킷은 복수의 ECU 중 임의의 ECU가 아닌 다른 ECU에 의하여 CAN 버스로 전송된 패킷 및/또는 백그라운드 트래픽을 포함할 수 있다.According to one embodiment, the processor is in an error passive state when a packet including an identifier having a lower priority than the highest priority identifier exists among a plurality of error frames transmitted to the CAN bus due to a plurality of collisions. It can be determined that it is an attack ECU converted to . In this case, a packet including an identifier having a low priority may include packets and/or background traffic transmitted to the CAN bus by an ECU other than any ECU among the plurality of ECUs.

일 실시예에 따르면, 프로세서는 복수의 에러 프레임 각각의 사이에 존재하는 우선순위가 낮은 식별자를 포함하는 패킷을 탐지할 수 있다. 그리고 나서, 프로세서는 탐지한 결과를 기초로 최우선 식별자보다 우선순위가 낮은 식별자를 포함하는 패킷이 존재할 확률을 산출하고, 산출된 확률을 기초로 임의의 ECU가 공격 ECU인 것으로 결정할 수 있다.According to an embodiment, the processor may detect a packet including an identifier having a low priority existing between each of a plurality of error frames. Then, based on the detected result, the processor may calculate a probability that a packet including an identifier having a lower priority than the highest priority identifier exists, and determine that an arbitrary ECU is an attack ECU based on the calculated probability.

일 실시예에 따르면, 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송된 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 공격 ECU를 에러 패시브 상태로 전환시키는 단계는, According to one embodiment, the step of converting the attack ECU into an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to the CAN bus by an attack ECU among a plurality of ECUs connected to the processor,

일 실시예에 따르면, 에러 패시브 상태로 전환된 공격 ECU가 연속적으로 임의의 제1 패킷 및 제2 패킷을 전송하는 경우, 제1 패킷을 전송한 공격 ECU는 일정 시간동안 패킷의 전송을 중단한 후 제2 패킷을 전송하도록 구성될 수 있다. 추가적으로, 우선순위가 낮은 식별자를 포함하는 패킷은 공격 ECU가 패킷의 전송을 중단하는 일정 시간 내에 CAN 버스로 전송될 패킷으로 결정될 수 있다.According to one embodiment, when the attack ECU that has been switched to the error passive state continuously transmits random first packets and second packets, the attack ECU that has transmitted the first packet stops transmitting packets for a certain period of time and then It may be configured to transmit the second packet. Additionally, a packet including an identifier having a low priority may be determined as a packet to be transmitted to the CAN bus within a certain time period when the attacking ECU stops transmission of packets.

본 개시의 앞선 설명은 통상의 기술자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 통상의 기술자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들에 제한되도록 의도된 것이 아니고, 본원에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.The preceding description of the present disclosure is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications of this disclosure will be readily apparent to those skilled in the art, and the general principles defined herein may be applied in various modifications without departing from the spirit or scope of this disclosure. Thus, the present disclosure is not intended to be limited to the examples set forth herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

비록 예시적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다.Although example implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more standalone computer systems, the subject matter is not so limited, but rather in conjunction with any computing environment, such as a network or distributed computing environment. may be implemented. Further, aspects of the presently-disclosed subject matter may be implemented in or across a plurality of processing chips or devices, and storage may be similarly affected across a plurality of devices. Such devices may include PCs, network servers, and handheld devices.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에서 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in relation to some embodiments in this specification, it should be noted that various modifications and changes can be made without departing from the scope of the present disclosure that can be understood by those skilled in the art. something to do. Moreover, such modifications and variations are intended to fall within the scope of the claims appended hereto.

100: 공격 ECU 탐지 시스템
110: CAN 버스
120 내지 160: 복수의 ECU
170: 모니터링 ECU
100: attack ECU detection system
110: CAN bus
120 to 160: a plurality of ECUs
170: monitoring ECU

Claims (11)

적어도 하나의 프로세서에 의해 수행되는 CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법으로서,
상기 프로세서와 연관된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송되는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 상기 공격 ECU를 에러 패시브 상태로 전환시키는 단계;
상기 공격 ECU의 에러 패시브 상태가 유지되는 동안, 상기 복수의 ECU 중 임의의 ECU에 할당된 적어도 하나의 식별자 중 우선 순위가 가장 높은 최우선 식별자를 포함하는 패킷에 대하여 복수의 충돌을 발생시키는 단계; 및
상기 복수의 충돌에 의해 상기 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 상기 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 상기 임의의 ECU가 에러 패시브 상태로 전환된 상기 공격 ECU인 것으로 결정하는 단계
를 포함하는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
An attack ECU detection method using CAN traffic monitoring performed by at least one processor,
converting the attack ECU into an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to a CAN bus by an attack ECU among a plurality of ECUs associated with the processor;
Generating a plurality of collisions with respect to packets including a highest priority identifier among at least one identifier assigned to a random ECU among the plurality of ECUs while the attack ECU maintains an error passive state; and
When a packet including an identifier having a lower priority than the highest priority identifier exists between each of a plurality of error frames transmitted to the CAN bus due to the plurality of collisions, the arbitrary ECU is switched to the error passive state. Steps to determine what is an attacking ECU
Including, attack ECU detection method using CAN traffic monitoring.
제1항에 있어서,
상기 우선 순위가 낮은 식별자를 포함하는 패킷은 상기 복수의 ECU 중 상기 임의의 ECU가 아닌 다른 ECU에 의하여 상기 CAN 버스로 전송된 패킷을 포함하는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 1,
The packet including the identifier with the lower priority includes a packet transmitted to the CAN bus by an ECU other than the arbitrary ECU among the plurality of ECUs, attack ECU detection method using CAN traffic monitoring.
제1항에 있어서,
상기 우선 순위가 낮은 식별자를 포함하는 패킷은 백그라운드 트래픽을 포함하는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 1,
The attack ECU detection method using CAN traffic monitoring, wherein the packet including the identifier with the lower priority includes background traffic.
제1항에 있어서,
상기 복수의 충돌에 의해 상기 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 상기 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 상기 임의의 ECU가 상기 공격 ECU인 것으로 결정하는 단계는,
상기 복수의 에러 프레임 각각의 사이에 존재하는 상기 우선 순위가 낮은 식별자를 포함하는 패킷을 탐지하는 단계;
상기 탐지한 결과를 기초로 상기 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재할 확률을 산출하는 단계; 및
상기 산출된 확률을 기초로, 상기 임의의 ECU가 상기 공격 ECU인 것으로 결정하는 단계
를 포함하는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 1,
Determining that the arbitrary ECU is the attack ECU when a packet including an identifier having a lower priority than the first identifier exists between each of a plurality of error frames transmitted to the CAN bus by the plurality of collisions step is,
detecting a packet including the identifier with the low priority present between each of the plurality of error frames;
calculating a probability that a packet including an identifier having a lower priority than the first priority identifier exists based on the detection result; and
Based on the calculated probability, determining that the random ECU is the attack ECU.
Including, attack ECU detection method using CAN traffic monitoring.
제1항에 있어서,
상기 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송된 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 상기 공격 ECU를 에러 패시브 상태로 전환시키는 단계는,
상기 프로세서와 연결된 복수의 ECU에 할당된 복수의 식별자와 연관된 데이터를 획득하는 단계;
상기 획득된 데이터를 기초로 상기 공격 식별자를 식별하는 단계; 및
상기 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 상기 공격 ECU를 에러 패시브 상태로 전환시키는 단계
를 포함하는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 1,
Converting the attack ECU to an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to the CAN bus by an attack ECU among a plurality of ECUs connected to the processor,
obtaining data associated with a plurality of identifiers assigned to a plurality of ECUs connected to the processor;
identifying the attack identifier based on the obtained data; and
Converting the attack ECU to an error passive state by generating at least one collision with respect to a packet including the attack identifier.
Including, attack ECU detection method using CAN traffic monitoring.
제5항에 있어서,
상기 할당된 복수의 식별자 사이의 우선 순위는 사전 결정된, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 5,
The priority among the plurality of assigned identifiers is predetermined, an attack ECU detection method using CAN traffic monitoring.
제1항에 있어서,
상기 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송된 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시켜 상기 공격 ECU를 에러 패시브 상태로 전환시키는 단계는,
상기 공격 식별자를 포함하는 패킷에 대하여 적어도 한번의 충돌을 발생시키는 단계;
상기 충돌에 의해 상기 공격 식별자를 포함하는 패킷의 전송이 실패할 때 마다 상기 공격 ECU에 포함된 레지스터의 카운트 값을 변환하는 단계; 및
변환된 상기 카운트 값과 기준 카운트 값을 비교한 결과를 기초로 상기 공격 ECU를 에러 패시브 상태로 전환시키는 단계
를 포함하는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 1,
Converting the attack ECU to an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to the CAN bus by an attack ECU among a plurality of ECUs connected to the processor,
generating at least one collision with respect to a packet including the attack identifier;
converting a count value of a register included in the attack ECU whenever transmission of a packet including the attack identifier fails due to the collision; and
Converting the attack ECU to an error passive state based on a result of comparing the converted count value with a reference count value
Including, attack ECU detection method using CAN traffic monitoring.
제1항에 있어서,
에러 패시브 상태로 전환된 상기 공격 ECU가 연속적으로 임의의 제1 패킷 및 제2 패킷을 전송하는 경우, 상기 제1 패킷을 전송한 상기 공격 ECU는 일정 시간동안 패킷의 전송을 중단한 후 상기 제2 패킷을 전송하도록 구성되는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 1,
When the attack ECU, which has been switched to the error passive state, continuously transmits arbitrary first and second packets, the attack ECU that has transmitted the first packet stops transmission of packets for a certain period of time, and then transmits the second packet. An attack ECU detection method using CAN traffic monitoring configured to transmit packets.
제8항에 있어서,
상기 우선 순위가 낮은 식별자를 포함하는 패킷은 상기 공격 ECU가 패킷의 전송을 중단하는 상기 일정 시간 내에 상기 CAN 버스로 전송될 패킷으로 결정되는, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법.
According to claim 8,
The attack ECU detection method using CAN traffic monitoring, wherein the packet including the identifier with the lower priority is determined as a packet to be transmitted to the CAN bus within the predetermined time when the attack ECU stops transmitting packets.
제1항 내지 9항 중 어느 한 항에 기재된 CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 방법을 실행시키도록 컴퓨터로 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램.
A computer program recorded on a computer-readable recording medium to execute the attack ECU detection method using CAN traffic monitoring according to any one of claims 1 to 9.
CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 장치로서,
적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는
상기 프로세서와 연결된 복수의 ECU 중 공격 ECU에 의해 CAN 버스로 전송되는 공격 식별자를 포함하는 패킷에 대하여 적어도 한번 이상의 충돌을 발생시켜 상기 공격 ECU를 에러 패시브 상태로 전환시키고,
상기 공격 ECU의 에러 패시브 상태가 유지되는 동안, 상기 복수의 ECU 중 임의의 ECU에 할당된 적어도 하나의 식별자 중 우선 순위가 가장 높은 최우선 식별자를 포함하는 패킷에 대하여 복수의 충돌을 발생시키고,
상기 복수의 충돌에 의해 상기 CAN 버스로 전송된 복수의 에러 프레임 각각의 사이에 상기 최우선 식별자보다 우선 순위가 낮은 식별자를 포함하는 패킷이 존재하는 경우, 상기 임의의 ECU가 에러 패시브 상태로 전환된 상기 공격 ECU인 것으로 결정하기 위한 명령어들을 실행시키도록 구성된, CAN 트래픽 모니터링을 이용한 공격 ECU 탐지 장치.
As an attack ECU detection device using CAN traffic monitoring,
includes at least one processor;
the at least one processor
Converting the attack ECU to an error passive state by generating at least one collision with respect to a packet including an attack identifier transmitted to a CAN bus by an attack ECU among a plurality of ECUs connected to the processor;
While the error passive state of the attacking ECU is maintained, a plurality of collisions are generated for a packet including a highest priority identifier among at least one identifier assigned to any ECU among the plurality of ECUs,
When a packet including an identifier having a lower priority than the highest priority identifier exists between each of a plurality of error frames transmitted to the CAN bus due to the plurality of collisions, the arbitrary ECU is switched to the error passive state. An attack ECU detection device using CAN traffic monitoring, configured to execute commands to determine that it is an attack ECU.
KR1020220032961A 2021-11-30 2022-03-16 Method and apparatus for detecting attacking ecu using can traffic monitoring KR20230081562A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/012797 WO2023101148A1 (en) 2021-11-30 2022-08-26 Attack ecu detection method and device using can traffic monitoring

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210169123 2021-11-30
KR20210169123 2021-11-30

Publications (1)

Publication Number Publication Date
KR20230081562A true KR20230081562A (en) 2023-06-07

Family

ID=86761370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220032961A KR20230081562A (en) 2021-11-30 2022-03-16 Method and apparatus for detecting attacking ecu using can traffic monitoring

Country Status (1)

Country Link
KR (1) KR20230081562A (en)

Similar Documents

Publication Publication Date Title
US10902109B2 (en) Misuse detection method, misuse detection electronic control unit, and misuse detection system
JP5919205B2 (en) Network device and data transmission / reception system
JP6891810B2 (en) Communication devices, communication methods, programs, and communication systems
US20190173912A1 (en) Frame transmission prevention apparatus, frame transmission prevention method, and in-vehicle network system
US20190052654A1 (en) Systems And Methods For Neutralizing Masquerading Attacks In Vehicle Control Systems
US7602779B2 (en) Microprocessor, network system and communication method
JP2017112590A (en) Communication device, communication method and communication program
JP6525825B2 (en) Communication device
JP5811140B2 (en) Communications system
CN111147437B (en) Attributing bus disconnect attacks based on erroneous frames
JP2006191338A (en) Gateway apparatus for diagnosing fault of device in bus
JP2010521858A (en) Node of distributed communication system, node coupled to distributed communication system, and monitoring apparatus
KR101972457B1 (en) Method and System for detecting hacking attack based on the CAN protocol
CN111226417A (en) Vehicle-mounted communication device, vehicle-mounted communication system, and vehicle-mounted communication method
JP6828632B2 (en) Detection device, detection method and detection program
JP5578207B2 (en) Communication load judgment device
US9596131B2 (en) Method for transiting operation mode of routing processor
KR20230081562A (en) Method and apparatus for detecting attacking ecu using can traffic monitoring
US20200177412A1 (en) Monitoring device, monitoring system, and computer readable storage medium
WO2023101148A1 (en) Attack ecu detection method and device using can traffic monitoring
EP3706026B1 (en) Fraudulent transmission data detection device, fraudulent transmission data detection method, and storage medium
JP2011023983A (en) Network node
US20240031404A1 (en) Counterattack method against hacked node in can bus physical layer, physical layer security method with can bus node id auto-setting, and recording medium and system for performing the method
JP6528239B2 (en) Communication device and program
CN102195746A (en) Loop detection method and network device applying same