반응형
더보기
목차
- 자동차 전장 시스템 이해
- 자동차 내부 네트워크 I
- 자동차 내부 네트워크 II
- HLT over CAN
- OBD2 & UDS 프로토콜
- 자동차 내부 네트워크 해킹
- 자동차 CAN IDS
- CAN 리버싱
자동차 전장 시스템 이해
자동차 전장 시스템 개요
- 자동차 전장 시스템이란?
- 전자 제어를 기반으로 자동차의 성능, 안전성, 편의성을 향상시키는 시스템
- 전장(E/E : Electronical&Electronic) : 자동차에 들어가는 모든 전기 및 전자 장치 등을 포함
- 현재 자동차 개발 비용의 40% 이상을 차지, 지속적으로 증가하는 추세
- 전자 제어를 기반으로 자동차의 성능, 안전성, 편의성을 향상시키는 시스템
- 자동차 전장 시스템의 역할
- 환경 (ECO)
- 연료 효율 개선 및 배출가스 감소
- 안전 (Safety)
- 센서 및 전장 시스템으로 차량 상태와 주변 상황 실시간 모니터링
- 사고 발생 시 대처 능력 향상
- 엔터테인먼트 (Entertainment)
- 이동 수단 이상의 경쟁력 제공 (음악 감상, 스포츠 모드, 실시간 영상 시청 등)
- 환경 (ECO)
- 예시
- 스티어링 시스템
- (과거) 기계식 조향장치
- 조향 휠과 바퀴가 기계적인 연결로 구성
- (현재) Electric Power Steering (EPS)
- 조향 휠과 바퀴 사이에 전자제어장치 (ECU) 와 모터가 추가된 구조
- 사용자의 운전의 용이해지고, 안전해짐
- (과거) 기계식 조향장치
- 스티어링 시스템
- 전자제어장치 (ECU, Electronic Control Unit)
- 여러 센서에서 데이터를 받아 연산을 처리한 뒤 다양한 엑추에이터를 제어하는 전자장치
- ECUs
- 엔진제어모듈 (ECM)
- 파워트레인 제어모듈(PCM)
- 변속기 제어모듈(TCM)
- ...
자동차 네트워크 개요
- 자동차 네트워크 종류
- 자동차 외부 네트워크 - Wireless External Network
- 정의
- 자동차와 외부 사이의 정보를 주고 받기 위한 네트워크
- 무선 외부 네트워크
- 유선 외부 네트워크
- 자동차와 외부 사이의 정보를 주고 받기 위한 네트워크
- V2X
- V2V, V2I, V2H, V2N, ..
- 정의
- 자동차 외부 네트워크 - Wired External Network
- 자동차와 진단 장치 (CAN 통신), 전기자동차 충전 (PLC 통신)
- 자동차 내부 네트워크 (IVN, In-Vehicle Network)
- ECU 사용의 증가로 인해 필요해짐
- 자동차 내에서 정보를 주고 받기 위한 네트워크
- CAN
- CAN-FD
- FlexRay
- LlN
- MOST
- Ethernet
- 자동차 외부 네트워크 - Wireless External Network
자동차 전장 주요 도메인
- Automotive Domains
- 자동차는 다양한 전자제어시스템으로 구성되어 있음, 각 시스템은 특정 기능과 역할에 따라 도메인으로 구분 가능
- Powertrain
- 실시간 제어가 중요해짐으로서 요구됨
- 차량을 움직이는 데 필요한 에너지를 생성하고 이를 차량으로 전달하는 모든 구성 요소
- Chassis
- 실시간성 요구가 높으며, 정확한 타이밍 제어가 중요해짐으로서 요구됨
- 파워트레인을 지지
- 자동차의 기본적인 구조를 제공하는 프레임 (framework)
- 주요 구성 요소 : Steering, Brake, Suspension 등
- Body (and Comfor)
- 간단한 데이터 전송이 주이기에 상대적으로 낮은 대역폭 (Low Bandwidth) 을 요구
- 자동차의 동적 제어와 직접 관련이 없는 기능을 포함하는 도메인
- 운전자와 승객의 편의성을 향상하는 시스템
- 일반적으로 수 ms (밀리세턴드) 수준의 지연 시간을 허용 (high latency)
- ADAS (Advanced Driver Assistance System)
- 센서 데이터를 처리하기 위해 높은 계산 성능과 대역폭 (high bandwidth) 을 요구
- 자율 주행과 관련된 도메인
- 일반적으로 수백 마이크로초 수준의 지연 시간을 허용하지만, 충돌 방지와 같은 critical 한 기능은 더 짧은 응답 시간이 요구됨
- HMI (Human-Machine Interface)
- 사람과 기계 간에 어떻게 상호작용을 하는지 인간 공학적인 관점에서 더 편리하고 쉽게 명령을 입력할 수 있는 인터페이스
- 높은 대역폭을 요구하나, 대체로 수 ms 수준의 지연 시간을 허용
최신 자동차 전장 시스템 동향
- 소프트웨어 정의 자동차 (SDV, Software-Defined Vehicle)
- 자동차의 주요 기능이 소프트웨어를 통해 구동되는 자동차
- 과거에는 하드웨어 중심의 디자인이였으면, 최신에는 소프트웨어 중심의 디자인으로 변화함
- 자동차의 주요 기능이 소프트웨어를 통해 구동되는 자동차
- 차세대 전기, 전자 아키텍쳐
- 현재 ECU 들이 분산되어 제어하는 분산형 아키텍처
- 기능 중심으로 통합 제어하는 도메인 기반 아키텍처
- 물리적 근접성을 중심으로 통합 제어하는 영역 기반 (Zonal Architecture)
- ECU 에 적용되는 온디바이스 AI
- 온 디바이스 AI 는 디바이스 자체에서 AI 를 구현하는 기술
자동차 내부 네트워크 I
자동차 내부 네트워크 (IVN) 개요
- ECU 간의 효율적인 데이터 송, 수신을 위한 자동차 내부 네트워크 통신 방법이 필요
- 예시 : Bus 방식의 네트워크
- 배선 복잡도 간결, 배선 조립 관련 작업량 감소, 배선 조립 가격 및 시간 감소 . . .
- 자동차 신뢰도 상승 및 자동차 연비 증가
- 다양한 종류의 자동차 내부 네트워크가 개발
- 대표적인 자동차 내부 네트워크 프로토콜 CAN
- 40년 가까이 실제 자동차에 적용되어 왔고, 앞으로도 적용될 예정
- 대표적인 자동차 내부 네트워크 프로토콜 CAN
- Multiple CAN Buses
- 단일 CAN 버스만 사용하지 않음
- 특정 CAN 버스만으로는 모든 데이터를 수집할 수 없음
- 필요한 데이터를 수집하려면 여러 CAN 버스를 병렬로 연결
CAN 통신 프로토콜 개요
- What is CAN (Controller Area Network) ?
- 주요 Design 목적
- 전자기적인 노이즈 등과 같은 열악한 환경 또는 불안전한 환경에서도 정상적인 기능을 수ㅐㅎㅇ
- 자동 충돌 감지 및 재전송을 하드웨어적으로 자동 처리 (오류 검출 및 자동 재전송)
- 표준 CAN (버전 2.0A) : 11 bits 1D 사용
- 확장 CAN (버전 2.0B) : 29 bits ID 사용
- 차량, 항공기, 산업용 제어기 등 다양한 곳에서 사용
- 주요 Design 목적
- CAN 통신 프로토콜의 장점
- Reliability
- Cost-effectiveness
- Scalability
- Availability
- 데이터 링크와 물리 계층에서 묘사됨
- 데이터 링크 계층 : ISO 11898-1
- 물리 계층 : ISO 11898-2
- CAN Bus
- Multi-master & Message Broadcasting Network
- 2개의 통신 선을 사용 (Twisted wire pair)
- 구성
- CAN High (CAN-H)
- CAN Low (CAN-L)
- 노이즈를 줄이기 위해 꼬아서 사용
- 두 개의 구리 선 사이에 voltage 차이를 통해 통신
- 구성
- 전자제어장치
- Microcontroller
- ECU 의 brain 역할
- CAN 메시지를 해석하고 송, 수신할 메시지를 결정
- CAN controller
- CAN 프로토콜에 따라 메시지 인코딩
- 오류 감지, 중재 등을 처리
- MCU 의 복잡도를 줄이기 위해 대부분 MCU 에 통합됨
- CAN Transceiver
- CAN controller 와 물리적 CNA 배선을 연결
- Controller 데이터를 신호차이로 변환하거나 역변환 제공
- Microcontroller
- Bit Encoding / Decoding
- 2개의 logical 레벨
- 하나의 논리적인 zero (0) 는 dominant 로 보내지고, 하나의 논리적인 zero (0)는 recessive 로 보내짐
- CAN controller 가 0 을 보내고 싶으면 tranceiver 가 받아서 High 에는 3.5V 를 주고 Low 에는 1.5 V 를 주고 2V 차이가 발생
- 1을 보내고 싶으면 모두에게 2.5 V 를 줌
- 0 을 dominant bit 로 표현함
- 0 과 1을 동시에 보내면 차이가 큰게 우세
- 오실로스코프로 측정 가능
- Bit Stuffing
- 정의
- 시간 동기화된 통신을 위해 도입된 방법
- 원리
- 동일한 비트가 5번 반복되면 동기화를 유지하기 위헤 sender 가 반대값의 비트를 보낸다.
- 이는 CAN transceiver 가 자체적으로 처리한다.
- 정의
CAN Frames
- CAN 프로토콜에서 4가지의 유형의 프레임이 정의됨
- 데이터 프레임
- 실제로 내가 전송하고자하는 메시지가 실려가는 프레임
- remote 프레임
- 원격에 메시지를 요청할 때 사용되는 프레임
- 데이터가 실리지 않음
- 해당 프레임을 보내도 사실 상 reponse 가 거의 없음 (경험적으로)
- 에러 프레임
- 에러가 발생될 때 사용되는 프레임
- 연구자가 강제로 에러를 발생시키지 않는 이상 잘 발견되지 않음
- 오버로드 프레임
- 메시지를 주고받을 때 수신해서 처리하는 장치가 Buffer 에 찰 때 flow control 하는 프레임
- 데이터 프레임
- 데이터 프레임
- 2가지 메시지 포맷이 있음
- 표준 CAN data frame : 11 identifier 비트 (CAN 2.0A) // Arbitration field
- 경험상 85 % 이상이 표준 프레임
- 확장 CAN data frame : 29 identifier 비트 (CAN 2.0B)
- 표준 CAN data frame : 11 identifier 비트 (CAN 2.0A) // Arbitration field
- 하나의 CAN ID 는 하나의 ECU 에 정의되어 있음
- 하나의 ECU 는 여러 가지 ID 를 보낼 수 있음
- 아무것도 보내지 않는 상태가 1 V 이다.
- 이때, 어떤 ECU 도 보낼 수 있다.
- 0 V 가 발생했다는 것은 특정 ECU 가 메시지를 보내려고 한다.
- 나머지는 Receiver 상태가 됨.
- 동시에 2개의 ECU 가 메시지를 보낸다고 할 때, 메시지의 우선순위를 나눈다. 이를 결정해주는 필드는 arbitration field 이다.
- 2가지 메시지 포맷이 있음
- Arbitration
- 두 개 이상의 ECU 가 동시에 Bus 상으로 메시지 전송 시 발생
- Bus 에 전송되는 메시지를 판단하는 과정
- 더 낮은 ID 값을 가지는 ECU 가 Bus 를 점유 -> 우선순위가 더 높음 (high priority)
- 5 번 bit 에서 arbitration 발생
- node 2 는 1bit 이므로 전송이 중단, Bus 상에 Node 1 과 3의 0 비트를 전송
- 2 번 bit 에서 다시 arbitration 발생
- 최종적으로 Node 3 의 메시지가 Bus 에 전송
- 1을 보냈는데 Bus 에 0이 모니터링되면 우선순위가 낮은 것으로 판단하고 전송을 중단.
- lost arbitration
- 0을 보냈는데 Bus 에 1이 모니터링되면 에러가 발생한 것임!
- CAN ID 가 작을 수록 우선순위가 높다.
- 0x000 이 제일 높다.
- 5 번 bit 에서 arbitration 발생
- remote 프레임
- 데이터 프레임과 달리 RTR 비트가 recessive (1) 이다.
- Q) 데이터 프레임과 remote 프레임이 동시에 전송되면?
- 데이터 프레임이 우선적으로 전송됨 (RTR 비트가 데이터 프레임이 0이기 때문이다)
- 에러 프레임
- Error Flag
- active error flag
- 6개의 연속된 0 으로 구성
- dominant 인 것
- 다른 노드는 bit stuffing error 로 인지 -> 에러 프레임을 보낸다.
- CAN bus 의 error flag 가 증가됨 12개의 연속된 0으로 구성됨 (최대 12bit)
- Secondary error flag 가 됨
- passive error flag
- 6개의 연속된 1 로 구성
- bit stuffing 규칙을 받지 않음
- active error flag
- Error Delimiter (구분자)
- Error Flag
- 오버로드 프레임
- Overload Flag
- 6개의 연속된 0
- Overload Delimiter
- 8개의 연속된 1
- Overload Flag
- Inter-Frame Space (IFS)
- 프레임 사이의 분리된 기간
- 3개의 연속적인 1비트
- 3 bit 를 쉬고 보낸다고 이해하면 됨
- 두 개 이상의 ECU 가 동시에 Bus 상으로 메시지 전송 시 발생
자동차 내부 네트워크 II
CAN Error Types
- CAN Bus error 는 여러 가지 이유로 발생 가능
- 케이블 오류
- 노이즈
- 잘못된 termination
- Malfunctioning CAN 노드
- ...
- Error 를 식별, 분류 및 해결하는 것은 전체 CAN 시스템의 지속적인 성능을 보장하는 데 중요
- Error 처리는 CAN 의 견고성에 매우 중요
- 5가지 유형
- Bit Level 에서 탐지되는 에러
- Bit Error
- CAN 에서 전송한 Bit 와 모니터링된 Bit 가 다른 경우
- Sender (Transmitter) 가 탐지
- Bit Stuffing Error
- Bit Stuffing 룰이 위배되는 경우
- Receiver 가 탐지
- Bit Error
- Message Level 에서 탐지되는 에러
- Form Error
- 프레임 포맷이 어긋나는 경우
- ACK Error
- ACK slot 이 0으로 표현되지 않는 경우
- Sender 가 탐지
- CRC Error
- 수신한 CRC 와 계산된 CRC 가 다른 경우
- Receiver 가 탐지
- Form Error
- Bit Level 에서 탐지되는 에러
CAN Error Handling
- CAN Node States
- Error Active
- default 상태
- Active Error Flag 를 전송 (0bit 가 6개로 이루어짐)
- Error Passive
- Passive Error Flag 를 전송 (1bit 가 6개로 이루어짐)
- 기존 3bit IFS 외에 추가적으로 8 recessive bits (1bit가 8개) 를 대기 // aka Suspend Transmission Time)
- Bus Off
- 논리적으로 CAN 버스에서 CAN 노드가 분리됨
- 데이터 전송 및 에러 플래그 발생 불가
- Bus 를 모니터링만 하고 있는 상태
- 128번의 연속된 11bit 를 모니터링하면 error active 상태로 복구할 수 있음
- Error Active
- Error Counters
- Transmit Error Counter (TEC) 와 Receive Error Counter (REC) 로 구성
- TEC는 전송할 때 에러가 발생하면 count 증가
- REC는 받을 때 에러 발생하면 count 증가
- 둘 중에 하나가 127 를 넘으면 error passive 로 들어감
- TEC 가 255 보다 커지면 bus off 로 들어감
- 규칙
- 송신 ECU 상태에서 Error 탐지 시 TEC(+8)
- 수신 ECU 상태에서 Error 탐지 시 REC(+1)
- 정상적으로 수행된 경우 둘 중에 하나가 1 감소
- Transmit Error Counter (TEC) 와 Receive Error Counter (REC) 로 구성
기타 자동차 내부 네트워크
FlexRay
- 배경
- ECU 개수 증가함에 따라, CAN 네트워크 부하율이 올라가 정보 수신율이 저하됨
- 당시에는 CAN 채널을 중복으로 사용하여 해결 -> CAN 채널 개수 증가 -> 배선이 많아짐 -> 연비가 떨어짐
- 특징
- Media Access : TDMA (Time Devision Multiple Access)
- 메시지 충돌이 발생하지 않음
- Redundancy : 2 Channels
- Error 발생 유무를 부가적으로 체크 가능
- Time Trigger 방식으로 정보를 100% 받을 수 있음 (원하는 시간 내에)
- Media Access : TDMA (Time Devision Multiple Access)
CAN-FD (Controller Area Network Flexible Data rate)
- 배경
- FlexRay 의 안전성 및 신뢰성 문제
- CAN 의 bandwidth 문제를 해결하고 최신 차량용 내부 네트워크 요구사항을 만족시키기 위한 프로토콜이 요구됨
- 특징
- Media Access : CSMA/CR
ISO-TP 프로토콜
CAN 기반 상위 계층 프로토콜 개요 (HLPs based on the CAN)
- 8 byte 가 넘어가는 데이터를 보낼 때 쪼개서 보낼 것인데 어떻게 할지를 정의하는 프로토콜
- 종류
- ISO-TP 프로토콜
- CAN 데이터 프레임의 8byte 한계를 넘어 대용량 데이터 전송을 가능하게 함
- 여러 프레임으로 나누어 데이터를 송신하고, 수신 측에서 이를 재조합
- OBD-II
- 자동차 엔진 상태 및 배기가스 데이터를 진단하기 위한 초기 프로토콜
- 내부 상태 데이터를 요청하고 이를 읽어 자동차 상태 점김 및 문제를 해결
- UDS (Unified Diagnostic Service)
- OBD-II 를 확장한 국제 표준 프로토콜 ECU 간 복잡한 진단 및 소프트웨어 업데이트를 지원
- ISO-TP 프로토콜
ISO-TP 프로토콜
- 주요 특징
- 연결 지향 전송 프로토콜
- 주소 지정
- 최대 4095 byte 데이터를 전송 가능
- 네트워크 통신의 흐름 제어 -> 충돌 방지
- 연결 지향 전송 프로토콜
- Addressing types
- 기본 Addressing
- 확장된 Addressing
- 첫 바이트를 주소 지정을 하기 위한 추가적인 정보로 사용
- 유형
- Single Frame (SF)
- 최대 7바이트 메시지 전송 가능
- B1 : 메시지의 형태를 위해 사용되는 단일 바이트
- 0 : 초기 시작 Data Field
- L : 메시지의 길이
- B2-8 : 메시지 바이트
- 사용되지 않은 바이트는 pad 바이트라고 불림
- Multi Frame messages
- First Frame (FF)
- 첫번째 2바이트를 추가 정보로 확인
- Sender 가 보냄
- 구성
- B1-2 : 메시지 포맷을 위해 사용되는 바이트
- 1 : 처음으로 시작하는 Data Field
- LLL : 메시지 길이
- B3-8 : 메시지 바이트
- 패딩이 없음
- B1-2 : 메시지 포맷을 위해 사용되는 바이트
- Consecutive Frames (CF)
- 첫번째 1바이트를 추가 정보로 확인
- Sender 가 보냄
- 구성
- B1 : 메시지 포맷을 위해 사용디는 바이트
- 2 : 처음으로 시작하는 Data Field
- S : 1값으로 시작하고 증가한다.
- B2-8 : 메시지 바이트
- B1 : 메시지 포맷을 위해 사용디는 바이트
- Flow Control Frames (FC)
- 첫번째 3바이트를 추가 정보로 확인
- Receiver 가 보냄
- 구성
- B1
- 3 : 처음으로 시작하는 Data Field
- F : Flow Control Flag
- B2
- BS : 블록 사이즈
- B3
- ST : 연속적인 프레임들 사이에서 최소 분리 시간
- B4-8
- 패딩
- B1
- First Frame (FF)
- Single Frame (SF)
OBD2 및 UDS 프로토콜
OBD 2 프로토콜
- OBD-II PIDs (Parameter IDs)
- 물리적인 Addressing
- 1대1 CAN ID 매칭
- 각 ECU 에 물리적인 CAN ID (>=1) 가 할당
- 1대1 CAN ID 매칭
- Functional Addressing
- 1대N CAN ID 매칭
- CAN ID 0x7DF
- UDS (Unified Diagnostic Services)
- single 프레임만 사용
- 1대N CAN ID 매칭
- PID CAN 메시지 포맷
- 요청 메시지
- CAN ID 0x7DF
- CAN ID 0x7E0~0x7E7이 할당된 ECU 들이 응답
- 응답 메시지
- CAN ID 0x7E8~0x7EF (assigned ID + 0x08)
- 요청 메시지
- OBD 2 Scanner
- ELM327
- 사용자가 자신의 자동차 정보를 실시간으로 확인할 수 있도록 해주는 장비
- 모든 OBD II 프로토콜 지원하는 microcontroller
- at 커맨드 방식으로 모든 제어를 수행
- ELM327
- 물리적인 Addressing
UDS 프로토콜
- UDS (Unified Diagnostic Services)
- OSI 모델의 세션 계층과 응용 계층을 활용
- Client / Server 통신
- Client = Scan Tool (or Tester)
- Server = ECU
- 많은 서비스들을 포함하는 6 function group
- Diagnostic and Communications Management
- Data Transmission
- Stored Data Transmission
- Input / Output Control
- Remote Activation of Routine
- Upload / Download
- 메시지 유형
- 진단 서비스 요청
- 진단 서비스 응답
- 긍정 : SID | 0x40
- 부정 : 0x7F
- NRC (Negative Response Code)
- rejection 의 원인에 관한 정보를 제공
자동차 내부 네트워크 해킹
자동차 내부 네트워킹 주요 해킹 사례
- Charlie Miller and Chris Valasek (2013~)
- UW 와 UCSD 연구팀의 연구결과를 Motivation 삼아, 2013년부터 최근까지 유명 해킹 컨퍼런스에서 실제 차량 해킹 시연 및 차량 해킹에 대해 자세히 정리한 White Paper 를 꾸준히 발표 중임
- 2013년 8월 DEFCON 21 에서 차량 해킹을 시연&발표
- Ford Escape 와 Toyota Prius 차량을 분석 후 결과를 공개
- A simple example (2010 Ford Escape)
- When no door is ajar the packet look like
- ID : 0x3B1, DLC: 08, Data(HEX) : 00 00 00 00 00 00 00 00
- When the driver's side door is ajar
- ID : 0x3B1, DLC: 08, Data(HEX) : 80 00 00 00 00 00 00 00
- When no door is ajar the packet look like
- A simple example (2010 Ford Escape)
- CAN 메시지를 주입하는데에 있어서 문제점
- 수신 ECU 에 Safety 기능이 구현되어 있음
- 공격 CAN 메시지와 정상 CAN 메시지가 혼재함
- Ford Escape 와 Toyota Prius 차량을 분석 후 결과를 공개
- 2014 Jeep Cherokee 의 In-Vehicle 네트워크 아키텍처 분석
- 다양한 외부 네트워크와 연결 -> Remote Attack Surface 존재
- In-Vehicle 네트워크와 연결 -> CAN message injection
- Uconnect system compromise 되면 모든 ECU 에 메시지 전송이 가능
- Remote Exploit Chain (2014 Jeep Cherokee)
- Remote Hacking through cellular network
- Internet port scan
- 2013-2015에 제조된 취약점 차량 발견
- Exploit the chip of the head unit
- ECU firmware 강제 update
- Malicious CAN messages injection
- Remote Hacking through cellular network
자동차 내부 네트워크 공격 유형
- DoS Attack (or Flooding Attack)
- CAN ID 메시지 우선순위를 이용한 공격 (Arbitration 과정)
- 우선순위가 높은 CAN ID 의 메시지를 CAN bus 에 다량 주입하여 모든 ECU 가 메시지 송신을 불가능하게 만드는 공격
- Fuzzing Attack
- 무작위로 조작된 CAN ID 와 임의의 데이터를 포함한 메시지를 생성해서 CAN bus 에 주입하는 공격
- 모든 ECU 가 조작된 메시지를 수신하게 되어 예상치 못한 동작을 유발
- Replay Attack
- 로깅해 놓은 메시지의 traffic 들을 다시 replay 시키는 것
- Spoofing Attack (or Fabrication Attack)
- 자동차의 특정 기능을 의도적으로 제어하기 위해 악의적인 메시지를 다량 주입하여 정상 메시지 동작을 방해하는 공격
- Suspension Attack
- ECU 통신을 중단하거나 멈추게 하는 공격
- UDS 패킷을 활용, Bus-off 메커니즘 등을 악용하여 수행
- ECU 통신을 중단하거나 멈추게 하는 공격
- Masquerade Attack
- Suspension 과 Spoofing attack 의 결합된 형태의 공격
- 특정 ECU 를 suspense 하고 동일한 패턴의 메시지를 inject 하는 공격
- Bus-off Attack
- bit error 를 강제로 발생시키는 것을 통해 TEC 를 증가시켜 Bus-off mode 로 변경시키는 공격
- Error via physical access
- Error via remote access
- 제약
- 동시에 전송
- 같은 ID 를 갖는 message 를 injection
- 높은 우선순위를 갖는 payload 를 생성
- 문제점
- attacker 도 TEC 가 올라감
- 하지만, victim 이 passive error flag 를 보내는 경우 attacker 의 TEC 가 감소함
- 이 과정을 계속 반복시키면 attacker 는 bus-off 에 빠지지 않을 수 있음
- attacker 도 TEC 가 올라감
- 제약
- bit error 를 강제로 발생시키는 것을 통해 TEC 를 증가시켜 Bus-off mode 로 변경시키는 공격
자동차 CAN IDS
자동차 내부 네트워크 보안기술
- Detective Method
- IDS (Intrusion Detection System) : 특정 Pattern 을 분서갛여 Normal 또는 Anomaly 상황을 탐지
- Preventive Method
- Firewall : 특정 네트워크에서 다른 네트워크로의 접근 차단
- Encryption / Message Authentication : 암호 알고리즘을 적용하여 정당한 ECU 만 메시지를 송/수신함
- Industrial Field 기술 동향
- Checksum - Prius (Toyota)
- Message Frequency - Jeep Cherokee (Chrysler)
- Access Control (OBD2 port)
- Data pattern (Miller and Valasek
- Secure CAN Transceiver (NXP)
자동차 CAN IDS 유형
- 대표적인 CAN IDS
- CAN traffic 의 통계적 특성을 활용
- 주기를 이용해서 ID 별로의 시간 차이의 분포를 보고 탐지
- 수집된 센서 정보들 간의 correlation 을 학습 데이터로 사용 상관관계가 높은 센서들 간의 cluster 를 생성해서 새롭게 수집된 센서 정보들 간의 correlation 오차가 threshold 를 초과하면 이를 공격으로 탐지
- ECU 의 하드웨어 특성을 이용
- Clock skew 를 이용하여 공격을 탐지, 공격을 수행한 ECU 를 식별
- 기기간의 하드웨어 클록 차이로 인해 발생하는 clock offset 의 변화량
- Clock skew 를 이용하여 공격을 탐지, 공격을 수행한 ECU 를 식별
- Deep learning 활용한 IDS
- CNN 을 이용해서 네트워크 traffic 패턴을 학습하여 악성 패킷을 탐지
- Inception-ResNet 모델을 활용
- CNN 을 이용해서 네트워크 traffic 패턴을 학습하여 악성 패킷을 탐지
- CAN traffic 의 통계적 특성을 활용
CAN Bus 리버싱
CAN Bus 리버싱 개요
- 역공학을 통해 할 수 있는 일
- 자동차 내부 네트워크 구조 이해
- Automotive IDS 개발 및 취약점 분석
- 자동차 내부 네트워크 모니터링 및 판단
- Comma.ai
- 2015년에 설립된 반자율주행 스타트업
- 설립자인 조지 호츠는 아이폰과 플레이스테이션을 최초로 해킹한 해커
- 자체 제작한 반자율주행 키트를 판매하고자 함
- 자율주행 기능이 있지 않은 평범한 자동차를 소프트웨어와 카메라가 포함된 키트를 활용하여 반자율주행 자동차로 바꾸는 것이 목표
- 카메라의 Image Processing 을 이용하여 주변 상황을 인지하지만, 해당 상황에 맞춰 자동차를 제어하기 위해서는 유효한 CAN 메시지를 차량에 전송해야 함
CAN DBC file
- What is a CAN DBC file (CAN bus databases) ?
- 원시 CAN bus data 를 physical 값으로 디코딩하기 위한 정보를 포함하는 text file
- 어디부터 어디까지가 speed 관련 정보이고 어디부터 어디까지가 brake 관련 정보인지 등등을 알려주는 file
- DBC format 파일에 명세되어 있는 정보
- Periodic Message
- 대부분의 CAN 메시지는 주기적으로 Bus 상으로 전송
- Event CAN Message
- 특정 이벤트 발생 시에만 전송되는 메시지
- Periodic and on-Event Message
- 주기적으로 전송 중 특정 이벤트 발생 시 추가적으로 전송되는 메시지
- Network Mapping
- 서로 다른 ECU 는 동일한 CAN ID 를 공유하지 않음
- 메시지 송/수신 관계는 DBC 파일에 명시되어 있음
- Signal information
- Startbit, Length, Min, Max, ...
- Signal types
- Constant
- Multi-values
- Counters
- Checksum
- Periodic Message
CAN Bus 리버싱
- CAN Traffic 모니터링
- PCAN-view- CAN Bus monitoring tool
- CAN 메시지 전송 유형
- Periodic message
- Event message
- Periodic and on-Event message
- CAN Network mapping
- CAN Network mapping 필요성
- 악성 ECU 발견
- 네트워크 attestation 수행
- 자동차 보안 testing 을 위한 Ground Truth 확보
- CAN Network mapping 목표
- ECU 열거
- 메시지 송신자 식별
- 메시지 수신자 식별
- ECU Suspension based
- 특정 ECU 의 메시지 전송을 중단시키고 CAN 네트워크를 확인하여 mapping 하는 방법
- UDS
- Bus-off mode
- 특정 ECU 의 메시지 전송을 중단시키고 CAN 네트워크를 확인하여 mapping 하는 방법
- CAN Network mapping 필요성
반응형
'미래차 보안시스템 전문인력양성사업 집중교육과정 > 차량 사이버 보안 및 UN Regulation 에 대한 이해' 카테고리의 다른 글
차량 디지털 포렌식의 프로세스 (0) | 2025.02.07 |
---|---|
차량 디지털 포렌식의 정의 및 현황 (0) | 2025.02.07 |
차량 사이버 보안 인증 (1) | 2025.02.07 |
암호 기초 (0) | 2025.02.04 |
차량 사이버보안 개요 및 자동차 해킹 Case Study (0) | 2025.02.03 |