일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- listen server
- 게임 개발
- gameplay effect
- stride
- 언리얼 엔진
- 언리얼엔진
- MAC
- 게임개발
- unity
- 보안
- os
- widget
- Replication
- rpc
- attribute
- nanite
- gas
- UI
- local prediction
- C++
- 유니티
- Unreal Engine
- ability task
- Aegis
- CTF
- gameplay ability system
- animation
- Multiplay
- gameplay tag
- photon fusion2
- Today
- Total
Replicated
CAN 버스 리버스 엔지니어링 본문
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 공격에 사용
트러블 슈팅?
그냥 실험용 차량이 아니라 일반 사용 차량으로 실험 수행 하지 말자
굉장히 위험한 행위임
'스마트카 소프트웨어 보안' 카테고리의 다른 글
CAN (Controller Area Network) (0) | 2025.04.13 |
---|---|
자율주행자동차 (0) | 2025.04.13 |
위협 모델링 - DFD, STRIDE, DREAD (0) | 2025.04.13 |
소프트웨어 개발 보안 방법론, MS-SDL (0) | 2025.04.12 |
사이버 킬 체인(Cyber-Kill Chain) (0) | 2025.04.12 |