Replicated

CAN 버스 리버스 엔지니어링 본문

스마트카 소프트웨어 보안

CAN 버스 리버스 엔지니어링

라구넹 2025. 4. 13. 20:34

CAN 취약점

- 브로드캐스트 - 누구나 통신 내용 확인 가능

- 접근제어 x - 누구나 통신에 참여 가능

- 기밀성 x - 누구나 패킷의 의미 분석 가능

- 인증 x - 누구나 패킷 위조 가능

 

CAN 버스 리버스 엔지니어링 -> 사이버 킬 체인 정찰 단계에 해당

 

위협 식별: STRIED
Spoofing  인증이 없는 CAN 대상으로 통신에 참여  MAC 등 데이터 인증 추가
Tampering    
Repudiation    
Information disclosure 자동차 내부 네트워크 정보 유출 암호화
Denial of service 자동차 내부 네트워크 대상 DoS 공격 수행 IPS(침입 방지 시스템)
Elevation of privilege 자동차 정비 기기의 권한을 얻어서 공격 수행 정비 시 역할 기반 접근제어(RBAC)

 

위협 등급: Spoofing
Dmage potential 위험도 상: 자동차 강제 제어 가능
Reproducibility 위험도 상: 동일 차종에 한하여 무한 공격
Exploitability 위험도 하: 유선 환경으로 공격함, 차량 접근
Affected Users 위험도 중: 분석 대상 모델 보유자에 한함
Discoverability 위험도 중: 전용 장비로 분석해야 함

 

 

CAN 버스 연결

- OBD- II 커넥터를 이용한 연결

- 통신회선 분석을 통한 CAN 버스 식별 후 연결

- 기타 통신 커넥터를 이용한 연결

 

 

OBD- II 커넥터를 이용한 연결

- 시스템 어디에 문제가 있는지 스캐닝을 하기 위한 포트가 있는데, 6번과 14번이 CAN 통신과 연결됨

- OBD- II 커넥터의 6번과 14번에 접근하면 가능

- 차-케이블-노트북 연결하고 ECU 패킷 볼 수도 있는데 케이블 150만원 정도 함

- 그래서 보통 구리선 두개 아두이노랑 연결

 

통신회선 분석을 통한 CAN 버스 식별 후 연결

- 2015년 이후 정도 OBD- II 커넥터에 접근 제어 생김

- 그래서 쌍으로 된 배선 찾고 멀티미터로 2.5V 내는 걸 찾음

- 멀티미터로 저항 측정(종단 120, 회선 60)

- 오실로스코프로 CAN 시그널 캡쳐

 

기타 통신 커넥터를 이용한 연결

- 자동차 제조사마다 별도의 통신 커넥터 사용, 거기서 CAN 확인

 

 

CAN 버스 통신 리버싱(분석)

 

모니터링 툴 기반 분석

- CAN 패킷 모니터링: CAN 패킷을 모니터링하고 생성할 수 있는 디바이스를 이용하여 CAN 패킷 분석

- CAN 패킷 의미 분석: 차량 내부 CAN 버스에서 발생되고 있는 각 패킷의 용도를 리버스 엔지니어링하여 식별

 

CAN 패킷 모니터링

- CAN 통신 시뮬레이터(CAN 디바이스 + CAN 소프트웨어)를 이용한 모니터링

- CAN 디바이스: CAN signal(아날로그)을 수신하여 digital 데이터로 변환
    - 아두이노, 라즈베리파이, ELM327 등

- CAN 소프트웨어: CAN 디바이스가 수신한 데이터를 CAN 패킷 형태로 가공

    - 와이어샤크, can-utils, Kayak 등

- CAN 통신 시뮬레이터는 옵션 기능의 차이일 뿐 기본적 기능은 모두 유사

 

candump를 이용한 모니터링

- 스니퍼 디바이스, arbitation id(CAN ID), CAN 패킷의 크기(data field의 크기), CAN 데이터

 

 

CAN 패킷 그룹화

- CAN 네트워크에 연결된 디바이스들은 최소 10ms~최대 초 단위로 패킷 송신

- 단순 모니터링으로 특수한 상황 캡쳐 어려움

- cansniffer를 이용한 패킷 그룹화

- CAN ID(arbitation ID) 기준으로 그룹화하여 변화가 있을 때만 표시

- 다른 모니터링 툴들도 비슷한 기능 제공

 

 

CAN 패킷 기록과 재생

- CAN 패킷의 기능을 분석하기 위함

- 자동차에서 발생하는 CAN 패킷을 기록하고 재생해보는 실험

    - CAN 패킷 기록: Log (패킷을 수집)

    - CAN 패킷 재생: Replay (수집한 패킷을 다시 자동차 내부로 송신)

    - 인증, 접근제어 없음, 스푸핑 가능

 

 

CAN 패킷 분석

- 자동차를 강제 제어할 수 있는 패킷 찾는 과정

- 수집한 패킷들의 역할이 무엇인지 분석해나가는 과정

1. 창의적 패킷 분석(전수조사, 이벤트 기반 조사)

2. CAN 버스 퍼징(무작위 대입)

3. 자동차 정비기기를 이용한 분석

 

창의적 패킷 분석(전수조사, 이벤트 기반 조사)

- 전수조사 + 이벤트

1. 모니터링 툴을 켜고 기록을 시작

2. 차량의 문을 열고 담는 동작을 수행

3. 기록을 멈춘다

4. 기록된 내용을 재생한다(자동차로 주입)

5. 2단계의 행위가 강제로 발생하는지 확인

->

1. 원하는 행위를 수행하는 패킷 로그 확보

2. CAN 패킷 그룹화 기능 이용

3. 차량 문을 제어하는 패킷 분석 완료

 

CAN 버스 퍼징(무작위 대입)

- 무작위로 CAN 패킷 주입

- 예상할 수 없는 동작 발생 확인

- 자동차 내부 네트워크 DoS 공격에 사용

 

 

트러블 슈팅?

그냥 실험용 차량이 아니라 일반 사용 차량으로 실험 수행 하지 말자

굉장히 위험한 행위임