KR101981138B1 - Can 트레이스의 필드 경계 구분 장치 및 방법 - Google Patents
Can 트레이스의 필드 경계 구분 장치 및 방법 Download PDFInfo
- Publication number
- KR101981138B1 KR101981138B1 KR1020180033525A KR20180033525A KR101981138B1 KR 101981138 B1 KR101981138 B1 KR 101981138B1 KR 1020180033525 A KR1020180033525 A KR 1020180033525A KR 20180033525 A KR20180033525 A KR 20180033525A KR 101981138 B1 KR101981138 B1 KR 101981138B1
- Authority
- KR
- South Korea
- Prior art keywords
- field
- boundary
- frame
- division
- classification
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40071—Packet processing; Packet format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/48—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
CAN 트레이스의 필드 경계 구분 장치 및 방법에 관한 것으로, 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 방법은, CAN 버스의 CAN 트레이스를 수집하는 단계, 상기 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 구분하는 단계, 상기 복수의 블록 각각에 대하여 제1정적 필드 구분을 수행하는 단계 및 상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분하는 단계를 포함할 수 있다.
Description
본원은 CAN 트레이스의 필드 경계 구분 장치 및 방법에 관한 것이다.
차량 내부에는 여러 ECU(Electronic Control Unit)가 존재하며 각 ECU는 버스 형태의 차량 내부 네트워크를 통해 센서 정보, 제어 정보 등의 메시지를 서로 주고받는다. 현재 대부분의 차량 내부 통신은 1986년 Bosch社가 개발한 CAN(Controller Area Network)을 통신 규격으로 사용한다. 그러나 CAN은 프로토콜 설계 당시 보안 기능이 전혀 고려되지 않아 최근의 다양한 차량 대상 공격사례의 근본적인 원인이 되고 있다. 이러한 문제점을 극복하기 위해서는 CAN-FD, FlexRay, MOST, ethernet 등으로 CAN을 대체해야 할 필요가 있다. 하지만 현재까지 개발된 CAN 기반기술을 단번에 다른 기술로 전환하거나 이미 도로 상에 존재하는 이전 모델의 차량들을 단 시간 내에 모두 폐기하기는 힘들다. 따라서 CAN 기반 차량내부통신환경 하에서의 보안에 대한 연구 또한 병행되어야 할 필요가 있다.
또한, CAN 기반 차량내부통신 보안에 있어서, CAN 자체는 데이터 링크 계층 프로토콜로서 명세가 모두 알려져 있으나, CAN 프레임 내 데이터 필드 영역은 상위 계층으로서 차량 제조사 및 모델 별로 메시지 형식이 서로 상이하다. 각 제조사 및 차량 모델 별 메시지 형식은 쉽게 공개되지 않으므로 해당 정보 없이는 CAN 기반의 새로운 보안 기술을 연구하는 것이 어려운 실정이다. 즉, 이상 탐지(anomaly detection)를 통해 정상적인 패킷이 아닌 외부로부터의 공격을 탐지하거나 퍼징(fuzzing) 테스트를 통해 특정 차량의 내부통신이 가진 외부 공격에 대한 보안 수준을 객관적으로 평가하고 취약점을 탐지하는 등의 차량 보안 연구는 명확한 한계를 가지게 되는 문제점이 존재한다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-1095583호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, CAN 트레이스의 데이터 필드 영역의 경계를 추론하는 CAN 트레이스의 필드 경계 구분 장치 및 방법을 제공하는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, CAN 프로토콜의 메시지 형식이 공개되지 않은 CAN 프레임에 적용할 수 있는 CAN 트레이스의 필드 경계 구분 장치 및 방법을 제공하는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들도 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실싱예에 따른 CAN 트레이스의 필드 경계 구분 방법은, CAN 버스의 CAN 트레이스를 수집하는 단계, 상기 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 구분하는 단계, 상기 복수의 블록 각각에 대하여 제1정적 필드 구분을 수행하는 단계 및 상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분하는 단계를 포함할 수 있다..
본원의 일 실시예에 따르면, 상기 제1정적 필드 구분을 수행하는 단계는, 상기 복수의 블록 각각에 대하여, 블록에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성하는 단계를 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 CAN 트레이스의 최종 필드 경계를 구분하는 단계는, 상기 동일한 아이디 값에 대한 제1필드 구분 프레임에 대해 제2 정적 필드 구분을 수행하는 단계 및 상기 제2정적 필드 구분 수행의 결과에 기초하여 미리 설정된 민감도 별 제2필드 구분 프레임을 생성하는 단계를 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 제2필드 구분 프레임을 생성하는 단계는, 상기 민감도에 기초하여 상기 제2필드 구분 프레임의 필드 경계를 구분하는 단계를 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 복수의 블록 각각은, 상기 CAN 트레이스 중 미리 설정된 수의 복수의 연속된 프레임을 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 제1정적 필드 구분은, 상기 블록에 포함된 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분할 수 있다.
본원의 일 실시예에 따르면, 상기 제2정적 필드 구분을 수행하는 단계는, 상기 제1 필드 구분 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분할 수 있다.
본원의 일 실시예에 따르면, 상기 필드 경계를 구분하는 단계는, 상기 제2필드 구분 프레임의 최하위 비트열부터 순차적으로 제2필드 구분 프레임의 필드 경계의 여부를 결정하되, 상기 동일 아이디 값에 대한 제1필드 구분 프레임의 비트열에서 변수 필드가 존재하는 블록의 수와 상기 블록의 수의 비율이 미리 설정된 임계값을 초과하면, 상기 변수 필드가 존재하는 비트열을 상기 필드 경계로 결정할 수 있다.
본원의 일 실시예에 따르면, 상기 제2필드 구분 프레임을 생성하는 단계는, 상기 필드 경계로 결정된 비트열 이전의 상수 필드의 길이가 미리 설정된 길이(Tm) 이하이면, 상기 필드 경계로 결정된 비트열 및 상기 상수 필드의 비트열을 병합할 수 있다.
본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치는, CAN 버스의 CAN 트레이스를 수집하고, 상기 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 구분하는 블록부, 상기 복수의 블록 각각에 대하여, 블록에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성하는 필드 구분 프레임 생성부 및 상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분하는 경계 결정부를 포함할 수 있다.
본원의 일 실시예에 따르면, 상기 경계 결정부는, 상기 동일한 아이디 값에 대한 제1필드 구분 프레임에 대해 제2 정적 필드 구분을 수행하고, 상기 제2정적 필드 구분 수행의 결과에 기초하여 미리 설정된 민감도 별 제2필드 구분 프레임을 생성하고, 상기 민감도에 기초하여 상기 제2필드 구분 프레임의 필드 경계를 구분할 수 있다.
본원의 일 실시예에 따르면, 상기 제1정적 필드 구분은, 상기 블록에 포함된 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분할 수 있다.
본원의 일 실시예에 따르면, 상기 경계 결정부는, 상기 제2필드 구분 프레임의 최하위 비트열부터 순차적으로 제2필드 구분 프레임의 필드 경계의 여부를 결정하되, 상기 동일 아이디 값에 대한 제1필드 구분 프레임의 비트열에서 변수 필드가 존재하는 블록의 수(u)와 상기 블록의 수(k)의 비율이 미리 설정된 임계값을 초과하면, 상기 변수 필드가 존재하는 비트열을 상기 필드 경계로 결정할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, CAN 트레이스의 데이터 필드 영역의 경계를 추론하는 CAN 트레이스의 필드 경계 구분 장치 및 방법을 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, CAN 프로토콜의 메시지 형식이 공개되지 않은 CAN 프레임에 적용할 수 있는 CAN 트레이스의 필드 경계 구분 장치 및 방법을 제공할 수 있다.
도 1은 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 구성을 도시한 도면이다.
도 2는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 수집된 CAN 트레이스를 도시한 도면이다.
도 3은 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 제1정적 필드 구분의 예를 도시한 도면이다.
도 4는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 세부 필드 구분의 예를 도시한 도면이다.
도 5는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 민감도 별 필드 경계가 구분된 예를 도시한 도면이다.
도 6은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 알고리즘의 아이디 별 필드 구분 거리를 도시한 도면이다.
도 7은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 알고리즘별 평균 필드 분류 거리를 도시한 도면이다.
도 8은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 분석 대상 메시지의 수에 따른 각 알고리즘별 수행 시간을 도시한 도면이다.
도 9는 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 방법의 흐름을 도시한 도면이다.
도 2는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 수집된 CAN 트레이스를 도시한 도면이다.
도 3은 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 제1정적 필드 구분의 예를 도시한 도면이다.
도 4는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 세부 필드 구분의 예를 도시한 도면이다.
도 5는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 민감도 별 필드 경계가 구분된 예를 도시한 도면이다.
도 6은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 알고리즘의 아이디 별 필드 구분 거리를 도시한 도면이다.
도 7은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 알고리즘별 평균 필드 분류 거리를 도시한 도면이다.
도 8은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 분석 대상 메시지의 수에 따른 각 알고리즘별 수행 시간을 도시한 도면이다.
도 9는 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 방법의 흐름을 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
구체적인 설명에 앞서, CAN(Controller Area Network) 프로토콜은 현재 자동차 산업 분야에서 널리 사용되고 있는 버스 기반 네트워크 표준 통신 방식을 의미한다. CAN 프로토콜은 CAN 버스 네트워크상에서 노드 간 데이터 전달 방법을 명시하는데, CAN 네트워크에서 노드는ECU(Electronic Control Unit)를 의미한다. ECU란 센서와 엑츄에이터가 부착된 임베디드 장비를 지칭한다. ECU는 자신의 주변 환경에 대한 정보를 센서를 이용해 읽어 들이고, 엑츄에이터를 통해 이에 따른 적절한 행동을 수행한다. 차량 내부에는 이러한 수많은 ECU들이 버스 네트워크에 연결되어 통신 환경을 구성한다. CAN 버스의 데이터 라인은CAN_H와 CAN_L로 구성되는 트위스트 페어 선을 사용하며, 네트워크상의 모든 노드들이 두 선에 연결되어 있어 버스 상에서 전송되는 모든 메시지들을 수신할 수 있다. CAN 버스에서 각각의 노드들은 프레임을 단위로 통신을 수행할 수 있다.
CAN 프로토콜은 그 특성 상 보안에 대한 고려없이 설계되었기 때문에, 현재까지 CAN 프로토콜을 대상으로 하는 수많은 공격 사례들이 보고되고 있다. 자동차의 CAN 네트워크로 접속할 수 있는 가장 대표적인 방법은 OBD-II 포트를 이용하여 물리적으로 접근하는 것이다. 이를 통해 공격자는 CAN 네트워크상의 패킷들을 수집하고 역공학을 통해 패킷들의 기능을 분석할 수 있다. 또한 자신이 임의로 만든 CAN 패킷을 버스로 주입하여 차량의 오동작을 발생시킬 수도 있다. 이러한 과정을 통해 공격자가 CAN 버스에 침입하여 차량 계기판과 같은 특정 ECU에서 출력되는 정보 값을 변조하거나, 브레이크의 동작을 멈추게 하고, 특정 ECU의 메모리로부터 값을 읽어오거나 값을 쓰는 것이 가능한 결과를 도출하였다.
이와 같이, 차량을 대상으로 하는 주요 공격 사례는 대부분 임의의 차량을 제어하거나 일부 기능 정지 및 오동작을 야기하기 위해 차량 내부 CAN 네트워크로 이상 데이터를 주입하려는 시도를 한다. 차량 관련 기술이 발전하면서 차량과 외부와의 통신 인터페이스가 늘어나고 차량 내 전자기기 및 소프트웨어 탑재가 늘어나는 것은 불가피한 반면 이에 대한 사이버 공격을 완전히 막아내는 것은 매우 어려운 실정이다.
이에 본원에서는 CAN 버스 네트워크만을 위한 프로토콜 역공학을 통해 CAN 프레임 내 데이터 필드에 대한 필드를 구분하는 CAN 트레이스의 필드 경계 구분 장치를 제시하고자 한다. 프로토콜 역공학은 표준이 공개되지 않은 사유 프로토콜에 대해서 표준 문서, 명세서 등 해당 프로토콜의 정보가 없는 상태에서 해당 프로토콜의 형식이나 문법을 추론하는 것을 의미한다. 프로토콜 역공학은 특정 프로토콜이 구현된 소프트웨어의 안전성을 테스트하는 것에 활용되며, 역공학을 통해 추론된 프로토콜 모델을 바탕으로 유의미한 테스트 케이스를 생성하여 블랙박스(black-box) 테스트 대비 더 효과적인 테스트를 가능하게 한다. 또한, 악성 소프트웨어의 통신 방식을 분석하거나 사유 프로토콜을 시뮬레이션하기 위해서 활용될 수 있다.
종래의 프로토콜 역공학 방식으로는 차량 내부 네트워크 환경에 그대로 적용하기에는 어려움이 존재한다. 왜냐하면, 종래의 프로토콜 역공학 방식은 주로 클라이언트-서버 모델에서 대상들 간에 주고받는 메시지를 기반으로 프로토콜의 문법이나 FSM(Finite State Machine)등을 추론한다. 반면 CAN 프로토콜의 경우 수많은 ECU가 하나의 버스 네트워크상에서 서로 메시지를 주고받으며, 각 메시지에는 송신자 및 수신자 주소 대신 해당 메시지의 우선순위 및 메시지 별 구분을 위한 식별자 정보만 존재하기 때문에 각 메시지의 송·수신 ECU를 명확히 식별하는 것이 어렵다. 또한 차량 내부 통신의 메시지는 특별한 경우를 제외하면 대부분 바이너리 정보만을 담기 때문에 텍스트 기반 메시지에 쓰이는 역공학 기술의 효과를 기대하기 힘든 실정이다. 따라서, 본원은 CAN 버스를 위한 이상 탐지 기술의 일부로서 CAN 트레이스의 필드 경계 구분 장치를 통해 CAN 프레임 내 데이터 필드에 대한 필드 구분을 제시한다.
도 1은 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 구성을 도시한 도면이다.
도 1을 참조하면 CAN 트레이스의 필드 경계 구분 장치(100)는 블록부(110), 필드 구분 프레임 생성부(120) 및 경계 결정부(130)를 포함할 수 있다. 블록부(110)는 CAN 버스의 CAN 트레이스를 수집할 수 있다. 예시적으로, 블록부(110)는 차량 내 위치한 OBD-II(On-Board Diagnostics) 포트를 통해 CAN 버스의 트레이스를 수집할 수 있다.
도 2는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 수집된 CAN 트레이스를 도시한 도면이다.
일반적인 인터넷 환경에서 Wireshark 등의 도구를 통해 수집된 네트워크 트레이스(network trace)처럼, CAN 버스의 트레이스에는 각 프레임 별 주요 필드 값 정보가 도 2에 도시된 바와 같이 수집될 수 있다. 각 CAN 프레임에는 해당 프레임이 수집된 시간, 중재 필드(arbitration field), DLC(Data Length Code), 데이터 필드의 값을 포함할 수 있다. 상기 중재 필드는 아이디 필드로도 불리며 아이디 값은 각 차량 제조사 또는 차량 모델 별로 ECU 간에 주고받는 각 메시지에 할당하는 우선순위의 의미를 가진다. 상기 수집된 CAN 트레이스에서 같은 아이디 값을 가지는 CAN 프레임은 모두 같은 값의 DLC 및 같은 길이의 데이터 필드를 가진다.
수집된 CAN 트레이스에는 차량 별로 약 22~25개의 서로 다른 ECU 아이디가 존재하며 절반 이상의 아이디가 약 10ms의 주기로 전송되어, 전체 네트워크에서 초당약 1,500~2,000개의 프레임이 기록될 수 있다. 수집된 CAN 트레이스의 형태는 동일한 차종이라고 하더라도 어떠한 환경 하에서 데이터를 취득하였는지에 따라 달라질 수 있다. 예시적으로, 차량이 시동만 켜지고 제자리에 정지된 상태에서 수집된 트레이스와 가속 및 감속뿐만 아니라 와이퍼, 도어락, 기어변속 등 다양한 동작을 수행하면서 수집된 트레이스가 있을 때, 둘 모두 같은 시간 동안 수집되었다고 하더라도 기록된 데이터의 종류에는 차이가 발생할 수 있다. 따라서, 보다 정확한 필드 구분을 수행하기 위해 자동차 내에 갖춰진 여러 기능을 최대한 동작시키면서 다양한 종류의 데이터가 기록된 트레이스를 대상으로 한다. 이하에서 설명하는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치 및 방법은 CAN 버스의 트레이스에는 각 프레임의 중재 필드 및 데이터 필드를 활용하여 수행될 수 있다.
블록부(110)는 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 CAN 트레이스를 구분할 수 있다. 블록부(110)는 전체 t개의 CAN 프레임 정보를 포함한 트레이스에서 각각 n개의 연속된 프레임을 포함하는 k개의 블록 B0, B1.. Bk-1를 선정할 수 있다. 즉, 복수의 블록 각각은 CAN 트레이스 중 미리 설정된 수, 즉 n개의 연속된 프레임을 포함할 수 있다. n은 사용자에 의하여 지정될 수 있다.
필드 구분 프레임 생성부(120)는 복수의 블록 각각에 대하여 제1정적 필드 구분을 수행할 수 있다. 제1정적 필드 구분은 해당 블록 내에서 고정된 값을 가지는 필드와 그렇지 않은 필드를 비트 단위로 구분하는 것을 의미한다. 필드 구분 프레임 생성부(120)는 상기 복수의 블록 각각에 대하여, 블록에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성할 수 있다. 필드 구분 프레임 생성부(120)는 상기 고정된 값을 가지는 필드를 상수(constant) 필드로 표현하고, 변하는 값을 가지는 필드는 변수(variable) 필드로 표현하여 제1 필드 구분 프레임을 생성할 수 있다. 예시적으로, 필드 구분 프레임 생성부(120)에 의해 수행되는 제1정적 필드 구분은 각 필드가 최대한의 크기를 가지도록 하여 상수 필드와 변수 필드 각각이 서로 같은 종류의 필드와 인접하지 않도록 수행될 수 있다.
도 3은 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 제1정적 필드 구분의 예를 도시한 도면이다.
비트열로 구성된 데이터 필드에 정적 필드 구분을 수행하는 방법은 다양하다. 예시적으로, 필드 구분 프레임 생성부(120)는 도 3에 도시된 바와 같이, XOR(배타적 논리합)과 OR(논리합)연산을 이용하여 상수 필드와 변수 필드를 구분할 수 있다. 한 블록 내에서 동일한 아이디 값을 가진 프레임이 m개이고, 해당 프레임이 l비트 크기의 데이터 필드 값(비트열)을 가질 때, 하나의 비트열은 d0, d1 ... dm-1로 표현될 수 있다. 예시적으로 상기 l비트는 64비트일 수 있다. 필드 구분 프레임 생성부(120)는 m개의 프레임 중 첫번째 프레임(d0에 해당하는 프레임)과 모든 비트가 0인 l비트 크기의 비트열 S간의 제1 정적 필드 구분을 수행할 수 있다. 제1정적 필드 구분은 상기 블록에 포함된 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것을 의미한다.
필드 구분 프레임 생성부(120)는 상기 첫번째 프레임과 비트열 S를 OR 연산할 수 있다. 또한, 연산된 결과를 두번째 프레임(d1에 해당하는 프레임)과 XOR 연산할 수 있다. 이후,동일한 아이디 값을 가진 m개의 프레임에 대해 순차적으로 XOR 연산을 수행할 수 있으며, 상기 m개의 프레임에 대해 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성할 수 있다. 필드 구분 프레임 생성부(120)는 복수의 블록 각각에 대해 상기와 동일한 아이디 값을 가진 프레임에 대해 제1정적 필드 구분을 수행할 수 있다. 즉, 필드 구분 프레임 생성부(120)는 하나의 아이디 값에 대해 모든 블록 별로 제1정적 필드 구분을 수행할 수 있다. 또한, 블록에 포함된 프레임의 아이디 값 별로 제1정적 필드 구분을 수행할 수 있으며, 각 아이디 값에 대한 블록별 제1정적 필드 구분을 수행할 수 있다.
제1필드 구분 프레임은 제1정적 필드 구분이 수행된 두 프레임의 XOR 연산결과, 상수 필드는 0의 값을 갖고, 변수 필드는 1의 값을 갖는 비트열로 생성될 수 있다. 해당 비트열에서 연속적인 0, 1의 값을 하나의 그룹으로 해석하면 각 그룹의 범위가 상수 또는 변수 필드의 범위를 표현하게 된다. 또한, 상기 제1정적 필드 구분 과정을 아이디 값 별로 수행하면, 하기의 수학식 1과 같이 표현될 수 있다.
[수학식 1]
Ri={field0, field1....}, (0 ≤ i < k)
여기서 Ri는 i번째 블록의 제1필드 구분 프레임이고, k는 블록의 수를 나타낸다. 제1필드 구분 프레임은 블록별로 아이디별로 생성될 수 있다. 따라서 제1필드 구분 프레임은 블록수 곱하기 아이디 수 만큼 생성될 수 있다.
경계 결정부(130)는 상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분할 수 있다. CAN 트레이스의 필드 경계를 도출하기 위해 CAN 통신의 특성을 고려할 수 있다. 구체적으로, CAN 프레임 내 데이터 필드에는 각 ECU에서 측정된 각종 센서 값 및 제어를 위한 설정 값 등이 포함될 수 있다. 상기 센서 값은 일정한 범위를 가질 수 있으며, 각 아이디 값 별 CAN 프레임의 DLC는 고정되어 있으므로, ECU 간 프로토콜 정의 시 일반적인 인터넷 프로토콜과 같이 데이터 내에 따로 세부 필드들의 길이를 명시하는 필드가 사용되지 않는다. 즉 ECU 간 프로토콜에는 일반적으로 여러 센서 값을 최대 64비트 크기의 데이터 필드에 담기 위한 비트단위의 위치와 범위를 미리 할당한다. 특정 센서 값이 최대 l개의 정보를 표현해야 한다면 해당 센서 값을 담기 위해 데이터 필드 내에 최소 log2l비트가 고정적으로 할당될 필요가 있으며 대부분의 네트워크 프로토콜에서는 빅엔디언(big-endian) 방식을 따르므로, 이 범위 내에서 특정 시점에 작은 값이 들어가면 왼쪽의 상위 비트들의 값은 0의 값을 가지게 된다. 이러한 특성으로 인해, 프레임을 블록으로 구분하는 과정에서 하나의 블록에 포함되는 프레임의 수(n)를 적절히 조절하면 센서 값들이 변하는 폭이 일정 범위 이내로 한정됨을 파악할 수 있다.
상기와 같은 CAN통신의 특성을 이용함에 기초하여, 제1 정적 필드 구분의 수행에 의해 도출된 제1필드 구분 프레임을 통해 CAN 트레이스의 최종 필드 경계를 구분할 수 있다. 경계 결정부(130)는 동일한 아이디 값에 대한 제1필드 구분 프레임에 대해 제2정적 필드 구분을 수행할 수 있다. 상기 동일한 아이디 값에 대한 제1필드 구분 프레임은 전술한 바와 같이, 하나의 아이디 값에 대한 블록 별 제1정적 필드 구분을 수행하여 생성된 제1필드 구분 프레임을 의미한다. 다시 말해, 경계 결정부(130)는 블록 B0, B1.. Bk-1에서 특정 아이디 값에 해당하는 모든 프레임의 데이터 필드 값에 대해 제2정적 필드 구분을 수행하여, 전체 블록에 걸쳐 변하는 부분과 변하지 않는 부분인 상수 필드 및 변수 필드를 도출할 수 있다. 즉, 제2 정적 필드 구분은 제1필드 구분 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 동일한 비트열간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것을 의미한다. 경계 결정부(130)는 상기 제2정적 필드 구분 수행의 결과에 기초하여 미리 설정된 민감도 별 제2필드 구분 프레임을 생성할 수 있다. 상기 민감도는 후술하기로 한다. 제2 정적 필드 구분의 수행 방식은 상술한 제1정적 필드 구분의 수행 방식과 동일하게 수행될 수 있다.
도 4는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 세부 필드 구분의 예를 도시한 도면이다. 경계 결정부(130)는 도 3에 도시된 바와 같이 각 변수 필드에 대한 경계를 결정할 수 있다. 경계 결정부(130)는 제2필드 구분 프레임의 최하위 비트열부터 순차적으로 제2필드 구분 프레임의 필드 경계의 여부를 결정할 수 있다. 상기 경계는 제2필드 구분 프레임의 비트열에 대한 변수 필드의 경계를 의미한다. 경계 설정부(130)는 제2필드 구분 프레임의 범위인 (pos_l~pos_r) 내에서 가장 왼쪽인 최하위 비트의 1비트 크기의 후보 필드 (pos_l~pos_r)부터 오른쪽으로 1비트씩 크기를 늘려가며 해당 후보 필드를 최종 경계로 확정할 것인지 여부를 판단할 수 있다.
예시적으로, 경계 결정부(130)는 상기 동일 아이디 값에 대한 제1필드 구분 프레임의 비트열에서 변수 필드가 존재하는 블록의 수와 전체 블록의 수의 비율이 미리 설정된 임계값을 초과하면, 상기 변수 필드가 존재하는 비트열을 상기 필드 경계로 결정할 수 있다. 경계 결정부(130)는 동일한 아이디 값에 대한 제1필드 구분 프레임 R0...Rk-1에 대해 제2정적 필드 구분을 수행하여 해당 후보 필드의 오른쪽 경계와 같은 오른쪽 경계를 가진 변수 필드가 존재하는 블록의 개수를 u라고 할 때, 해당 후보 필드의 u/k가 미리 설정된 임계값(1-sen)을 초과하면, 해당 후보 필드의 비트열을 최종 필드 경계로 결정할 수 있다. 즉, 경계 결정부(130)는 민감도에 기초하여 상기 제2필드 구분 프레임의 필드 경계를 구분할 수 있다.여기서 sen은 민감도를 나타내며, 민감도는 0 내지 1사이의 값을 가질 수 있다. 예시적으로, 민감도가 클수록 필드 경계가 세밀하게 구분될 수 있다.
도 5는 본원의 일 실시예에 따른 CAN 트레이스의 필드 경계 구분 장치의 민감도 별 필드 경계가 구분된 예를 도시한 도면이다.
도 5는 동일한 하나의 아이디 값에 대한 블록별 제1 필드 구분 프레임(10)과, 민감도별 제2필드 구분 프레임(20)을 도시한다. 도 5는 기아 쏘렌토R의CAN 아이디 0x220에 대한 블록 별 제1필드 구분 프레임(10) 및 민감도 별 제2필드 구분 프레임(20)의 결과를 나타낸다. 도 5를 참조하면, 경계 결정부(130)는 동일 아이디 값에 대한 블록별 제1필드 구분 프레임(10)에 제2정적 필드 구분을 수행하여, 동일한 비트열 간 XOR 연산을 수행하여 제2필드 구분 프레임(20)이 산출될 수 있다. 또한, 산출된 제2필드 구분 프레임은 각 민감도에 따라 민감도 별 제2필드 구분 프레임(20)으로 생성될 수 있다. 도 5에는 민감도가 0. 0.2, 0.4, 0.6, 0.8, 1인 경우에 따라 제2 필드 구분 프레임(20)이 산출된 결과를 도시한다. 민감도가 0인 제2필드 구분 프레임과, 민감도가 1인 제2필드 구분 프레임(20)을 살펴보면, 민감도가 1인 경우에 민감도가 0인 경우보다 필드 경계가 세밀하게 구분된 것을 확인할 수 있다.
도 5를 참조하면, 8~22번째 비트 범위를 제외한 나머지 영역은 전술한 바와 같이 빅엔디언의 특성에 따라 각 블록에서 변화된 영역의 오른쪽 경계 위치가 일정한 것을 알 수 있다. 23~39번째 비트 범위의 결과(제1필드 구분 프레임)는 민감도에 따라 제2필드 구분 프레임에서 필드 경계가 다르게 도출되나, 해당 범위에서는 변수 필드의 범위가 서로 겹치는 부분이 없기 때문에 높은 확률로 31번째 비트와 32번째 비트 사이가 경계임을 추측할 수 있다. 반면 8~22번째 비트 범위에서는 민감도에 따라 제2필드 구분 프레임이 다르게 도출될 뿐만 아니라 상수 필드의 범위가 서로 겹치는 부분이 존재한다. 0번째 블록의 16번째 비트가 1비트 크기의 상수 필드로 구분됨으로 인해, 민감도가 1일 경우 0번째 블록의 13~15번째 비트 범위의 변수 필드에 의해 15번째비트와 16번째 비트 사이가 필드 경계로 도출되는 것을 확인할 수 있다.
경계 결정부(130)는 필드 경계로 결정된 비트열 이전의 상수 필드의 길이가 미리 설정된 길이(Tm) 이하이면, 상기 필드 경계로 결정된 비트열 및 상기 상수 필드의 비트열을 병합할 수 있다. 도 5를 참조하면, 블록별 제1 필드 구분 프레임(10)에서 어느 블록의 제1필드 구분 프레임의 필드 경계로 결정된 가변 필드(파란색 비트)이전의 상수 필드(회색 비트)의 길이가 미리 설정된 길이(Tm)이하이면, 도 5의 민감도별 제2 필드 구분 프레임(20)에 도시된 바와 같이 상기 가변 필드와 이전의 상수 필드를 하나의 필드로 병합할 수 있다. 이러한 필드의 병합에 의해 실제 CAN 트레이스에서 필드 구분의 정확도가 보다 향상될 수 있다. 예시적으로, 특정 아이디 값의 64비트 크기의 데이터 필드 내 세부 필드가 적절히 병합되어 모두 8비트 크기이고, 각 필드에 작은 값만 포함된 트레이스를 분석한다면, 위와 같은 병합 과정에 의해 실제 필드의 구분 결과와 가까운 최적의 결과를 도출할 수 있다.
이하에서는, 전술한 필드 경계의 구분을 실제 CAN 트레이스 및 시뮬레이션으로 생성된 트레이스를 대상으로 적용한 실험 결과에 대해 설명한다. 상기 실험은 Python 구현을 통해 이루어지며, Intel(R) Core(TM) I5-4278U 2.60GHz 프로세서, 16GB 메모리 사양의 노트북 및 Windows 10 Home 64비트 운영체제 환경에서 수행되는 것으로 한다. 도 5의 제1필드 구분 프레임 및 제2필드 구분 프레임 또한 위와 같은 조건에서 산출되었다.
실제 파량에서 쓰이는 CAN 상위 프로토콜의 명세는 알려져 있지 않으므로 실제 CAN 트레이스를 대상으로 수행한 실험 결과의 정확도를 판단하기 어려운 점이 있다. 따라서, CAN 트레이스의 필드 경계 구분 장치(100)를 통해 시뮬레이션 모델에 따른 가상의 CAN 트레이스를 생성하여 필드 구분 결과의 정확도를 검증하고자 한다. CAN 프레임 내 세부 필드는 상수(const.), 다중 값(multi-value), 카운터(counter), 센서(sensor) 4 가지로 분류하여 생성될 수 있다. 즉 가상의 CAN 트레이스에는 임의로 생성된 각 ECU 아이디 별 프레임의 데이터 필드마다 위 4가지 필드가 임의의 크기와 순서로 할당될 수 있다.
이하의 실험에서는 총 10개의 아이디를 가진 CAN 버스의 네트워크 트레이스를 생성한 것으로 한다. 하기의 표 1은 시뮬레이션을 통해 생성된 CAN 메시지에서 임의로 생성된 서브 필드의 유형과 길이를 나타낸다. 괄호의 숫자는 서브 필드의 길이를 나타낸다.
[표 1]
하기의 표 2는 시뮬레이션을 통해 생성된 아이디 1의 메시지 형식에 따른 속성을 나타낸다. 센서 필드의 노이즈 파라미터는 랜덤 노이즈의 최대값을 의미한다.
[표 2]
실험에 의해 생성된 데이터 필드는 모두 64비트 크기이며 각 아이디 별 데이터 필드 내 세부 필드의 크기와 종류는 모두 임의로 생성된다. 세부 필드가 너무 크거나 너무 작을 경우 실제 CAN 메시지와는 동떨어진 형식이 생성될 수 있으므로 각 필드는 최소 4비트에서 최대16비트의 크기로 제한한다. 각 ECU는 평균 10ms마다 한 프레임을 전송하며, 전체 300초의 시뮬레이션 시간 동안 총 약 30만개의 트레이스를 생성하였다.
필드 구분의 성능을 평가하기 위한 기준은 필드 분류 거리(field classification distance)와 동일하게 적용한다. 필드 분류 거리는 실제 필드 구분과 추론된 필드 구분 간의 거리를 두 가지 기준으로 측정한다. 첫 번째 기준은 CAN 프레임 내 데이터 필드의 0에서 63번째까지 각 비트 중에서 실제 필드와 추론된 필드 간 분류가 서로 다른 비트의 개수이다. 두 번째 기준은 실제와 다르게 추론된 필드 경계의 개수이다. 실제 필드 경계가 아님에도 불구하고 추론된 경계에 존재하는 경계 또는 실제 필드 경계임에도 불구하고 추론된 경계에는 존재하지 않는 경계가 개수에 포함된다. 이 두 거리의 합산을 S라고 할 때, S의 최대값은 127이며, 최종 필드 분류거리는 S/127로 표현한다. 필드 분류 거리는 값이 작을수록 더욱 정확한 추론 결과임을 의미한다.
실험에서는 총 세 가지 알고리즘을 수행한 결과를 비교한다. 첫 번째는 제1 정적 필드 구분 및 제2정적 필드 구분이고, 두번째는 그리디 알고리즘이며, 세번째는 제1정적 필드 구분, 제2정적 필드 구분 및 그리디 알고리즘을 혼합하는 방식이다. 첫번째인 제1 정적 필드 구분 및 제2정적 필드 구분을 통해 도출된 필드 구분 결과는 상수 필드와 변수 필드 두 종류이므로, 본 실험에서는 정확한 필드 분류 거리 측정을 위해 추가적인 필드타입 분류과정을 수행하여 이전 연구와 동일하게 네 가지 타입의 필드를 도출한다. 이를 위해 각 변수 필드는 해당 범위 내유일한 값의 개수에 따라 그리디 알고리즘과 동일한 기준을 적용하여, 다시 다중 값, 카운터/센서 중 하나의 타입으로 분류된다. 세 번째 방식은 첫 번째 방식을 먼저 적용하여 필드 구분 결과를 도출하고 해당 결과에서 각 변수 필드만을 대상으로 독립적으로 그리디 알고리즘을 부분 적용하여 다시 세부 필드를 구분한다.
도 6은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 알고리즘의 아이디 별 필드 구분 거리를 도시한 도면이다.
도 6은 전체 트레이스에서 5000개의 프레임을 대상으로 각각 세 가지 버전의 알고리즘을 적용하여 도출된 아이디 별 필드 구분 거리를 나타낸다. 도 6을 참조하면 아이디 3과 4를 제외한 모든 결과에서 정적 필드 구분과 혼합 방식이 단순 그리디 알고리즘보다 좋은 성능을 나타냄을 확인할 수 있다. 특히 혼합 방식은 절반 이상의 아이디에 대해 가장 좋은 결과를 나타낸다.
도 7은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 알고리즘별 평균 필드 분류 거리를 도시한 도면이다.
도 7을 참조하면, 세 알고리즘 모두 분석되는 메시지의 수가 늘어남에 따라 더 낮은 필드 분류 거리를 나타낸다. 정적 필드 구분의 경우 분석되는 메시지의 수가500개를 넘으면 12~13% 수준의 필드 구분 거리값을 유지하는 반면 그리디 알고리즘과 혼합 방식은 메시지의 수가 늘어남에 따라 더 낮은 필드 구분 거리 결과를 보인다. 특히 혼합 방식은 5000개 이상의 메시지에 대해 나머지 두 방식보다 더 좋은 결과를 보인다. 그리디 알고리즘, 정적 분석 방법, 혼합 방식은 60000개 메시지에 대해 각각 11.42%,11.97%, 6.61%의 필드 분류 거리 결과를 보인다.
도 8은 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 장치를 이용한 실험의 분석 대상 메시지의 수에 따른 각 알고리즘별 수행 시간을 도시한 도면이다.
도 8을 참조하면, 그리디 알고리즘과 혼합 방식의 경우 메시지의 수가 늘어남에 따라 수행시간이 늘어나는 반면 정적 분석의 경우 메시지의 수에 큰 영향을 받지 않는다. 정적 필드 구분은 XOR 및 OR 비트 연산만을 수행하므로 매우 빠른 결과 도출이 가능하다. 그리디 알고리즘의 경우 상수 필드 도출까지는 정적 분석과 결과가 동일하나 같은 결과를 도출하기까지 불필요한 계산 및 메모리 사용이 존재한다. 이는 혼합 방식의 수행 시간이 그리디 알고리즘 방식보다 짧음을 통해 확인할 수 있다. 혼합 방식은 상수 필드를 도출하기까지 정적 필드 구분과 동일한 방식이 적용되므로 해당 계산비용만큼의 오버헤드를 줄이는 효과를 볼 수 있다. 실험 결과에서 총 6만개의 메시지에 대해 그리디 알고리즘은 438초, 정적 분석방식은 5.1초, 혼합 방식은 349초가 소요되었음을 확인할 수 있다.
전술한 바와 같이, 차량 제조사 및 차량 모델 별로 다른 CAN 상위 프로토콜, 즉 데이터 필드 내 세부 필드의 경계와 각 필드의 타입을 추론을 용이하게 할 수 있도록 하는 CAN트레이스 필드 경계 구분 장치(100)를 제시하였다. CAN트레이스 필드 경계 구분 장치(100)는 제1정적 필드 구분을 통해 제1필드 구분 프레임을 생성하였다. 또한, 제2정적 필드 구분을 수행하고, 데이터 필드 값의 특성을 이용하여 민감도 별로 경계가 구분된 제2 필드 구분 프레임을 생성할 수 있다. 이는 기존의 그리디 알고리즘에 비해 더 낮은 계산 비용을 보이고, 기존 방식과 제1정적 필드 구분 및 제2정적 필드 구분을 혼합한 방식을 통해 기존 방식에 비해 필드 분류 거리(field classification distance)를 기준으로 약 42% 향상된 필드구조 추론 결과를 보인다. CAN 프레임 내 데이터 필드의 세부 형식에 대한 더 정확한 필드 추론 결과는 다양한 기술에 활용될 수 있다. CAN 트레이스 분석을 통해 도출된 필드구조 모델을 이용하여 이상 패킷을 탐지하는 기술의 경우 더 정확한 필드 추론 결과를 통해 이상 탐지의 오탐율을 낮출 수 있는 효과를 발휘할 수 있으며, 차량의 내부통신 안전성을 평가하기 위한 방법으로 퍼징을 활용할 경우 제조사에서 공개하지 않는 데이터 필드에 대해 생성 기반 퍼징(generation-based fuzzing)에 가까운 방식으로 테스트를 가능하게 하여 전체 테스트 케이스의 수 및 테스트 시간을 줄이는 효과를 발휘할 수 있다. 또한, CAN트레이스 필드 경계 구분 장치(100)에 의하면, 기존 방식과 동일하게 4가지 종류의 필드만을 정의하며, 실제 CAN 데이터에 비해 단순화된 형태의 시뮬레이션을 통해 전술한 바와 같이 그 효과를 검증하였다. 향후에는 보다 다양한 형태의 CAN 데이터 모델이 필요할 것으로 사료되며, 필드 구분 방법에서도 데이터마이닝 또는 기존 프로토콜 역공학 기법 중 일부 기술을 추가로 적용할 경우 더 높은 정확도를 보일 수 있을 것으로 기대된다
도 9는 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 방법의 흐름을 도시한 도면이다.
도 9에 도시된 본원의 일 실시예에 따른 CAN트레이스 필드 경계 구분 방법은 앞선 도 1 내지 도 8을 통해 설명된 CAN트레이스 필드 경계 구분 장치에 의하여 수행될 수 있다. 따라서 이하 생략된 내용이라고 하더라도 도 1 내지 도 8을 통해 CAN트레이스 필드 경계 구분 장치에 대하여 설명된 내용은 도 9에도 동일하게 적용될 수 있다
도 8을 참조하면, 단계 S910에서 블록부(110)는 CAN 버스의 CAN 트레이스를 수집할 수 있다. 예시적으로, 블록부(110)는 CAN 버스의 트레이스를 수집하기 위해 차량 내 위치한 OBD-II(On-Board Diagnostics) 포트를 이용할 수 있다.
단계 S920에서 블록부(110)는 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 구분할 수 있다. 이때, 상기 복수의 블록 각각은 CAN 트레이스 중 미리 설정된 수의 연속된 프레임을 포함할 수 있다.
단계 S930에서 필드 구분 프레임 생성부(120)는 복수의 블록 각각에 대하여 제1정적 필드 구분을 수행할 수 있다. 필드 구분 프레임 생성부(120)는 상기 복수의 블록 각각에 대하여, 블록에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성할 수 있다. 상기 제1정적 필드 구분은 상기 블록에 포함된 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것을 의미한다
단계 S940에서 경계 결정부(130)는 상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분할 수 있다. 경계 결정부(130)는 동일한 아이디 값에 대한 제1필드 구분 프레임에 대해 제2정적 필드 구분을 수행할 수 있다. 또한, 경계 결정부(130)는 상기 제2정적 필드 구분 수행의 결과에 기초하여 미리 설정된 민감도 별 제2필드 구분 프레임을 생성할 수 있다. 제2 정적 필드 구분은 제1필드 구분 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 동일한 비트열간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것을 의미한다.
또한, 경계 결정부(130)는 민감도에 기초하여 상기 제2필드 구분 프레임의 필드 경계를 구분할 수 있다. 구체적으로, 경계 결정부(130)는 제2필드 구분 프레임의 최하위 비트열부터 순차적으로 제2필드 구분 프레임의 필드 경계의 여부를 결정할 수 있다. 예시적으로, 경계 결정부(130)는 상기 동일 아이디 값에 대한 제1필드 구분 프레임의 비트열에서 변수 필드가 존재하는 블록의 수와 전체 블록의 수의 비율이 미리 설정된 임계값을 초과하면, 상기 변수 필드가 존재하는 비트열을 상기 필드 경계로 결정할 수 있다.
또한, 경계 결정부(130)는 필드 경계로 결정된 비트열 이전의 상수 필드의 길이가 미리 설정된 길이(Tm) 이하이면, 상기 필드 경계로 결정된 비트열 및 상기 상수 필드의 비트열을 병합할 수 있다.
본원의 일 실시 예에 따른, HEVC 화면 내 예측의 속도 향상 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
100: CAN 트레이스의 필드 경계 구분 장치
110: 블록부
120: 필드 구분 프레임 생성부
130: 경계 설정부
110: 블록부
120: 필드 구분 프레임 생성부
130: 경계 설정부
Claims (13)
- CAN 트레이스의 필드 경계 구분 방법에 있어서,
CAN 버스의 CAN 트레이스를 수집하는 단계;
상기 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 구분하는 단계;
상기 복수의 블록 각각에 대하여 제1정적 필드 구분을 수행하는 단계; 및
상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분하는 단계,
를 포함하되,
상기 CAN 트레이스의 최종 필드 경계를 구분하는 단계는,
복수의 블록 각각에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 생성된 제1정적 필드 구분 프레임에 대해 제2정적 필드 구분을 수행하고
상기 제2정적 필드 구분 수행의 결과에 기초하여 미리 설정된 민감도 별 제2필드 구분 프레임을 생성하고,
필드 경계의 구분의 세밀한 정도와 연계되는 상기 민감도에 기초하여 상기 제2필드 구분 프레임의 필드 경계를 구분하되,
CAN 프레임 내 데이터 필드 값의 범위가 고정적으로 할당되는 CAN통신의 특성을 고려하여, 상기 제2필드 구분 프레임의 최하위 비트열부터 순차적으로 상기 제2필드 구분 프레임의 필드 경계의 여부를 결정하되, 최하위 비트열부터 비트의 크기를 늘려가며 해당 후보 필드를 최종 경계로 확정할 것인지 여부를 판단하는 것인, CAN 트레이스의 필드 경계 구분 방법. - 제1항에 있어서,
상기 제1정적 필드 구분을 수행하는 단계는,
상기 복수의 블록 각각에 대하여, 블록에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성하는 단계를 포함하는 것인, CAN 트레이스의 필드 경계 구분 방법. - 삭제
- 삭제
- 제1항에 있어서,
상기 복수의 블록 각각은, 상기 CAN 트레이스 중 미리 설정된 수의 복수의 연속된 프레임을 포함하는 것인, CAN 트레이스의 필드 경계 구분 방법. - 제1항에 있어서,
상기 제1정적 필드 구분은,
상기 블록에 포함된 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것인, CAN 트레이스의 필드 경계 구분 방법. - 제1항에 있어서,
상기 제2정적 필드 구분을 수행하는 단계는,
상기 제1정적 필드 구분 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것인, CAN 트레이스의 필드 경계 구분 방법. - 제7항에 있어서,
상기 필드 경계를 구분하는 단계는,
상기 동일한 아이디 값에 대한 제1필드 구분 프레임의 비트열에서 변수 필드가 존재하는 블록의 수와 상기 블록의 수의 비율이 미리 설정된 임계값을 초과하면, 상기 변수 필드가 존재하는 비트열을 상기 필드 경계로 결정하는 것인, CAN 트레이스의 필드 경계 구분 방법. - 제8항에 있어서,
상기 제2필드 구분 프레임을 생성하는 단계는,
상기 필드 경계로 결정된 비트열 이전의 상수 필드의 길이가 미리 설정된 길이(Tm) 이하이면, 상기 필드 경계로 결정된 비트열 및 상기 상수 필드의 비트열을 병합하는 것인, CAN 트레이스의 필드 경계 구분 방법. - CAN 트레이스의 필드 경계 구분 장치에 있어서,
CAN 버스의 CAN 트레이스를 수집하고, 상기 CAN 트레이스의 복수의 프레임을 포함하는 복수의 블록으로 구분하는 블록부;
상기 복수의 블록 각각에 대하여, 블록에 포함된 프레임 중 동일한 아이디 값을 갖는 프레임 별로 제1정적 필드 구분을 수행하여 제1필드 구분 프레임을 생성하는 필드 구분 프레임 생성부; 및
상기 제1정적 필드 구분 수행의 결과에 기초하여 제2 정적 필드 구분을 수행하여 상기 CAN 트레이스의 최종 필드 경계를 구분하는 경계 결정부를 포함하되,
상기 경계 결정부는,
상기 동일한 아이디 값에 대한 제1정적 필드 구분 프레임에 대해 제2정적 필드 구분을 수행하고,
상기 제2정적 필드 구분 수행의 결과에 기초하여 미리 설정된 민감도 별 제2필드 구분 프레임을 생성하고,
필드 경계의 구분의 세밀한 정도와 연계되는 상기 민감도에 기초하여 상기 제2필드 구분 프레임의 필드 경계를 구분하되,
CAN 프레임 내 데이터 필드 값의 범위가 고정적으로 할당되는 CAN통신의 특성을 고려하여, 상기 제2필드 구분 프레임의 최하위 비트열부터 순차적으로 상기 제2필드 구분 프레임의 필드 경계의 여부를 결정하되, 최하위 비트열부터 비트의 크기를 늘려가며 해당 후보 필드를 최종 경계로 확정할 것인지 여부를 판단하는 것인, CAN 트레이스의 필드 경계 구분 장치. - 삭제
- 제10항에 있어서,
상기 제1정적 필드 구분은,
상기 블록에 포함된 프레임 각각의 동일한 비트열에 대해 동일한 고정된 값을 갖는 상수 필드 및 상기 동일한 비트열 간 적어도 하나의 상이한 값을 갖는 변수 필드로 구분하는 것인, CAN 트레이스의 필드 경계 구분 장치. - 제10항에 있어서
상기 경계 결정부는,
상기 동일한 아이디 값에 대한 제1필드 구분 프레임의 비트열에서 변수 필드가 존재하는 블록의 수(u)와 상기 블록의 수(k)의 비율이 미리 설정된 임계값을 초과하면, 상기 변수 필드가 존재하는 비트열을 상기 필드 경계로 결정하는 것인, CAN 트레이스의 필드 경계 구분 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180033525A KR101981138B1 (ko) | 2018-03-22 | 2018-03-22 | Can 트레이스의 필드 경계 구분 장치 및 방법 |
US16/100,366 US11368329B2 (en) | 2018-03-22 | 2018-08-10 | Device and method for dividing field boundary of can trace |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180033525A KR101981138B1 (ko) | 2018-03-22 | 2018-03-22 | Can 트레이스의 필드 경계 구분 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101981138B1 true KR101981138B1 (ko) | 2019-08-30 |
Family
ID=67776394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180033525A KR101981138B1 (ko) | 2018-03-22 | 2018-03-22 | Can 트레이스의 필드 경계 구분 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11368329B2 (ko) |
KR (1) | KR101981138B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102168775B1 (ko) * | 2019-12-27 | 2020-10-23 | 주식회사에어플러그 | 네트워크를 경유하는 서비스 기반의 정보 조회를 신속하게 처리하기 위한 방법과 그 방법을 위한 기기 |
CN113872839A (zh) * | 2021-08-27 | 2021-12-31 | 惠州市德赛西威汽车电子股份有限公司 | 一种基于can信号自动发送的实车测试方法及存储介质 |
KR20230100059A (ko) * | 2021-12-28 | 2023-07-05 | 한성대학교 산학협력단 | 차량 속도와 관련된 can 데이터 필드를 검출하는 방법 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112889246B (zh) * | 2019-02-08 | 2023-09-22 | 松下电器(美国)知识产权公司 | 异常判定方法、异常判定装置以及程序 |
KR20200131639A (ko) * | 2019-05-14 | 2020-11-24 | 현대자동차주식회사 | 게이트웨이 장치 및 그 제어방법 |
JP2021114656A (ja) * | 2020-01-16 | 2021-08-05 | 富士通株式会社 | 判定方法および情報処理装置 |
JP7413172B2 (ja) * | 2020-07-15 | 2024-01-15 | 株式会社東芝 | 通信解析装置およびプログラム |
KR102580364B1 (ko) * | 2020-11-24 | 2023-09-20 | 한국전자통신연구원 | 스마트 네트워크 퍼징의 자동화를 위한 퍼징 전처리 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090180479A1 (en) * | 2004-01-14 | 2009-07-16 | Adc Dsl Systems, Inc. | Auto-adaptation to packet size on a physical medium |
KR20140080838A (ko) * | 2012-12-20 | 2014-07-01 | 현대오트론 주식회사 | 이기종 네트워크에서 can 통신 기반 ecu의 상태를 조회하기 위한 장치 및 그 방법 |
US20150161098A1 (en) * | 2013-12-10 | 2015-06-11 | International Business Machines Corporation | Opaque Message Parsing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101095583B1 (ko) | 2009-10-28 | 2011-12-19 | 동의대학교 산학협력단 | 차량내 네트워크에서의 통합 게이트웨이 모니터링 시스템 및 방법 |
IL313120A (en) * | 2018-01-08 | 2024-07-01 | Paperclip Inc | Information security methods |
-
2018
- 2018-03-22 KR KR1020180033525A patent/KR101981138B1/ko active
- 2018-08-10 US US16/100,366 patent/US11368329B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090180479A1 (en) * | 2004-01-14 | 2009-07-16 | Adc Dsl Systems, Inc. | Auto-adaptation to packet size on a physical medium |
KR20140080838A (ko) * | 2012-12-20 | 2014-07-01 | 현대오트론 주식회사 | 이기종 네트워크에서 can 통신 기반 ecu의 상태를 조회하기 위한 장치 및 그 방법 |
US20150161098A1 (en) * | 2013-12-10 | 2015-06-11 | International Business Machines Corporation | Opaque Message Parsing |
Non-Patent Citations (1)
Title |
---|
Moti Markovitz, Avishai Wool, "Field classification, modeling and anomaly detection in unknown CAN bus networks", ScienceDirect, Vehicular Communications, Volume 9, 2017* * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102168775B1 (ko) * | 2019-12-27 | 2020-10-23 | 주식회사에어플러그 | 네트워크를 경유하는 서비스 기반의 정보 조회를 신속하게 처리하기 위한 방법과 그 방법을 위한 기기 |
CN113872839A (zh) * | 2021-08-27 | 2021-12-31 | 惠州市德赛西威汽车电子股份有限公司 | 一种基于can信号自动发送的实车测试方法及存储介质 |
CN113872839B (zh) * | 2021-08-27 | 2023-02-14 | 惠州市德赛西威汽车电子股份有限公司 | 一种基于can信号自动发送的实车测试方法及存储介质 |
KR20230100059A (ko) * | 2021-12-28 | 2023-07-05 | 한성대학교 산학협력단 | 차량 속도와 관련된 can 데이터 필드를 검출하는 방법 |
KR102670693B1 (ko) | 2021-12-28 | 2024-05-31 | 한성대학교 산학협력단 | 차량 속도와 관련된 can 데이터 필드를 검출하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
US11368329B2 (en) | 2022-06-21 |
US20190296935A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101981138B1 (ko) | Can 트레이스의 필드 경계 구분 장치 및 방법 | |
Choi et al. | VoltageIDS: Low-level communication characteristics for automotive intrusion detection system | |
Marchetti et al. | Evaluation of anomaly detection for in-vehicle networks through information-theoretic algorithms | |
Young et al. | Survey of automotive controller area network intrusion detection systems | |
Stabili et al. | Detecting attacks to internal vehicle networks through Hamming distance | |
CN108028784B (zh) | 不正常检测方法、监视电子控制单元以及车载网络*** | |
Tomlinson et al. | Detection of automotive CAN cyber-attacks by identifying packet timing anomalies in time windows | |
Young et al. | Automotive intrusion detection based on constant can message frequencies across vehicle driving modes | |
Waszecki et al. | Automotive electrical and electronic architecture security via distributed in-vehicle traffic monitoring | |
Taylor et al. | Probing the limits of anomaly detectors for automobiles with a cyberattack framework | |
Han et al. | Event-triggered interval-based anomaly detection and attack identification methods for an in-vehicle network | |
De Araujo-Filho et al. | An efficient intrusion prevention system for CAN: Hindering cyber-attacks with a low-cost platform | |
CN106953856B (zh) | 一种结合车辆行驶状态分析车载网can总线协议中数据有效性的方法 | |
Casillo et al. | Embedded intrusion detection system for detecting attacks over CAN-BUS | |
JP6939898B2 (ja) | ビットアサイン推定装置、ビットアサイン推定方法、プログラム | |
Buscemi et al. | A survey on controller area network reverse engineering | |
Zhou et al. | Clock-based sender identification and attack detection for automotive CAN network | |
Francia et al. | Applied machine learning to vehicle security | |
Dupont et al. | Evaluation framework for network intrusion detection systems for in-vehicle can | |
Mukherjee et al. | A precedence graph-based approach to detect message injection attacks in J1939 based networks | |
KR101791786B1 (ko) | 자동차 보안 시스템 및 그 동작 방법 | |
Rumez et al. | Anomaly detection for automotive diagnostic applications based on N-grams | |
Kneib et al. | On the fingerprinting of electronic control units using physical characteristics in controller area networks | |
WO2019207764A1 (ja) | 抽出装置、抽出方法および記録媒体、並びに、検知装置 | |
CN114237995B (zh) | 总线异常检测方法、装置、设备及可读存储介质 |