본문 바로가기
미래차 보안시스템 전문인력양성사업 집중교육과정/차량 사이버 보안 및 UN Regulation 에 대한 이해

자동차 내부 네트워크

by whiteTommy 2025. 2. 5.
반응형
더보기

목차

  • 자동차 전장 시스템 이해
  • 자동차 내부 네트워크 I
  • 자동차 내부 네트워크 II
  • HLT over CAN
  • OBD2 & UDS 프로토콜
  • 자동차 내부 네트워크 해킹
  • 자동차 CAN IDS
  • CAN 리버싱

 

자동차 전장 시스템 이해

자동차 전장 시스템 개요

  • 자동차 전장 시스템이란?
    • 전자 제어를 기반으로 자동차의 성능, 안전성, 편의성을 향상시키는 시스템
      • 전장(E/E : Electronical&Electronic) : 자동차에 들어가는 모든 전기 및 전자 장치 등을 포함
    • 현재 자동차 개발 비용의 40% 이상을 차지, 지속적으로 증가하는 추세
  • 자동차 전장 시스템의 역할
    • 환경 (ECO)
      • 연료 효율 개선 및 배출가스 감소
    • 안전 (Safety)
      • 센서 및 전장 시스템으로 차량 상태와 주변 상황 실시간 모니터링
      • 사고 발생 시 대처 능력 향상
    • 엔터테인먼트 (Entertainment)
      • 이동 수단 이상의 경쟁력 제공 (음악 감상, 스포츠 모드, 실시간 영상 시청 등)
  • 예시
    • 스티어링 시스템
      • (과거) 기계식 조향장치
        • 조향 휠과 바퀴가 기계적인 연결로 구성
      • (현재) 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

자동차 전장 주요 도메인

  • 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년 가까이 실제 자동차에 적용되어 왔고, 앞으로도 적용될 예정
  • 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 사용
    • 차량, 항공기, 산업용 제어기 등 다양한 곳에서 사용
  • 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 데이터를 신호차이로 변환하거나 역변환 제공
  • 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 ID 는 하나의 ECU 에 정의되어 있음
      • 하나의 ECU 는 여러 가지 ID 를 보낼 수 있음
    • 아무것도 보내지 않는 상태가 1 V 이다. 
      • 이때, 어떤 ECU 도 보낼 수 있다.
    • 0 V 가 발생했다는 것은 특정 ECU 가 메시지를 보내려고 한다.
      • 나머지는 Receiver 상태가 됨.
    • 동시에 2개의 ECU 가 메시지를 보낸다고 할 때, 메시지의 우선순위를 나눈다. 이를 결정해주는 필드는 arbitration field 이다.
  • 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 이 제일 높다.
    • 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 규칙을 받지 않음
      • Error Delimiter (구분자)
    • 오버로드 프레임
      • Overload Flag
        • 6개의 연속된 0
      • Overload Delimiter
        • 8개의 연속된 1
    • Inter-Frame Space (IFS)
      • 프레임 사이의 분리된 기간
      • 3개의 연속적인 1비트
      • 3 bit 를 쉬고 보낸다고 이해하면 됨

 

자동차 내부 네트워크 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 가 탐지
    • Message Level 에서 탐지되는 에러
      • Form Error
        • 프레임 포맷이 어긋나는 경우
      • ACK Error
        • ACK slot 이 0으로 표현되지 않는 경우
        • Sender 가 탐지
      • CRC Error
        • 수신한 CRC 와 계산된 CRC 가 다른 경우
        • Receiver 가 탐지

 

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 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 감소

 

기타 자동차 내부 네트워크

FlexRay

  • 배경
    • ECU 개수 증가함에 따라, CAN 네트워크 부하율이 올라가 정보 수신율이 저하됨
    • 당시에는 CAN 채널을 중복으로 사용하여 해결 -> CAN 채널 개수 증가 -> 배선이 많아짐 -> 연비가 떨어짐
  • 특징
    • Media Access : TDMA (Time Devision Multiple Access)
      • 메시지 충돌이 발생하지 않음
    • Redundancy : 2 Channels
      • Error 발생 유무를 부가적으로 체크 가능
    • Time Trigger 방식으로 정보를 100% 받을 수 있음 (원하는 시간 내에)

 

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 프로토콜

  • 주요 특징
    • 연결 지향 전송 프로토콜
      • 주소 지정
    • 최대 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 : 메시지 바이트
                • 패딩이 없음
          • Consecutive Frames (CF)
            • 첫번째 1바이트를 추가 정보로 확인
            • Sender 가 보냄
            • 구성
              • B1 : 메시지 포맷을 위해 사용디는 바이트
                • 2 : 처음으로 시작하는 Data Field
                • S : 1값으로 시작하고 증가한다.
              • B2-8 : 메시지 바이트
          • Flow Control Frames (FC)
            • 첫번째 3바이트를 추가 정보로 확인
            • Receiver 가 보냄
            • 구성
              • B1
                • 3 : 처음으로 시작하는 Data Field
                • F : Flow Control Flag
              • B2
                • BS : 블록 사이즈
              • B3
                • ST : 연속적인 프레임들 사이에서 최소 분리 시간
              • B4-8
                • 패딩

 

 

OBD2 및 UDS 프로토콜

OBD 2 프로토콜

  • OBD-II PIDs (Parameter IDs)
    • 물리적인 Addressing
      • 1대1 CAN ID 매칭
        • 각 ECU 에 물리적인 CAN ID (>=1) 가 할당
    • Functional Addressing
      • 1대N CAN ID 매칭
        • CAN ID 0x7DF
        • UDS (Unified Diagnostic Services)
      • single 프레임만 사용
    • 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 커맨드 방식으로 모든 제어를 수행

 

 

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 
    • CAN 메시지를 주입하는데에 있어서 문제점
      • 수신 ECU 에 Safety 기능이 구현되어 있음
      • 공격 CAN 메시지와 정상 CAN 메시지가 혼재함
  • 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

 

자동차 내부 네트워크 공격 유형

  • 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 메커니즘 등을 악용하여 수행
  • 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 에 빠지지 않을 수 있음

 

자동차 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 의 변화량
    • Deep learning 활용한 IDS
      • CNN 을 이용해서 네트워크 traffic 패턴을 학습하여 악성 패킷을 탐지
        • Inception-ResNet 모델을 활용

 

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

 

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
반응형