| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 2018
- Docker
- ESXi
- beebox
- diva
- Volatility
- XSS
- filescan
- kibana
- CTF-d
- ctf
- InsecureBank
- igoat
- dreamhack
- 인시큐어뱅크
- 안드로이드
- lord of sql injection
- otter
- Strings
- SQL Injection
- base64
- Suninatas
- 포렌식
- vulnhub
- frida
- Openstack
- FTK Imager
- foremost
- imageinfo
- elasticsearch
- Today
- Total
Information Security
자동차 속도계 뒤에서 벌어지는 이야기: CAN 통신 해킹 완전 분석 Part 1 본문
CAN 프로토콜이란
CAN(CONTROLLER AREA NETWORK)은 차량과 산업용 장비에서 널리 사용되는 실시간 직렬 통신 프로토콜이다. 1980년대 독일 Bosch사가 개발했으며, 여러 마이크로컨트롤러 간의 고속 통신과 높은 신뢰성을 보장하기 위해 설계되었다. CAN은 여러 장치를 하나의 버스로 연결하여 메시지 기반으로 데이터를 주고받는 방식이 특징이다.
CAN 프로토콜이란
차량의 CAN 네트워크에서는 여러 ECU나 센서 같은 노드가 동시에 메시지를 송수신할 수 있습니다. 각 메시지는 메시지 ID와 최대 8바이트 데이터로 구성되며, ID는 메시지의 우선순위를 결정합니다. 만약 두 개 이상의 노드가 동시에 메시지를 전송하려고 하면, 우선순위 기반 버스 중재(Arbitration)가 자동으로 이루어집니다. 이때 숫자가 낮은 ID가 우선순위가 높다는 규칙에 따라, 우선순위가 낮은 메시지는 전송을 중단하고 나중에 재전송됩니다. 이렇게 하면 버스 충돌이 발생하더라도 중요한 메시지가 먼저 안전하게 전달될 수 있습니다.
패키지를 최신 업데이트 합니다.

자동차 계기판 시뮬레이터에는 SDL2 기반이므로 해당 라이브러리 설치하는 명령어 입니다.

CAN 패킷을 송수신하고 분석하려면 CAN 유틸리티가 필요합니다. can-utils는 차량의 CAN 네트워크와 통신할 수 있도록 해주는 명령어입니다.
- cansniffer - 실시간 CAN 패킷을 감시하는 도구
- cansend - CAN 패킷을 직접 전송하는 도구
- candump - 수신된 모든 CAN 패킷을 출력
- canplayer - 저장된 CAN 로그를 다시 재생
- cangen - 랜덤 CAN 패킷 생성

계측 클러스터 시뮬레이터를 다운로드 합니다. 해당 시뮬레이터는 CAN 트래픽을 생성하는데 사용됩니다.

ICSim 디렉터리 안으로 들어가면 setup_vcan.sh라는 쉘 스크립트를 확인할 수 있습니다.

modprobe 명령어는 CAN 및 VCAN 모듈과 같은 커널 모듈을 로드하는 데 사용됩니다. 마지막 두 줄은 자동차 네트워크를 시뮬레이션하기 위해 vcan0 인터페이스를 생성합니다.

setup_vcan.sh 스크립트를 실행하면 vcan0 인터페이스가 생성된 것을 알 수 있습니다.

소스드를 컴파일 자동화를 진행합니다.

icsim CAN 시뮬레이터 프로그램을 가상 CAN 인터페이스 vcan0를 이용해 실행합니다. 속도계, 방향지시등, 브레이크, 도어를 포함한 대시보드가 작동하지 않습니다. 이는 vcn0 인터페이스에 트래픽이 없기 때문입니다.

vcan0은 ICSim이 CAN 프레임을 송수신하는 데 사용하는 가상 CAN 인터페이스입니다. 제어판을 시작하면 속도계가 약간 흔들리는 것을 볼 수 있는데, 이는 제어판에서 시뮬레이션하는 노이즈 때문입니다.
| Accelerate (가속) | 위쪽 화살표 (↑) |
| Left/Right Turn Signal (좌/우 방향 지시) | 왼쪽/오른쪽 화살표 (← / →) |
| Unlock Front L/R Doors (앞좌석 좌/우 문 잠금 해제) | Right-Shift + A, Right-Shift + B |
| Unlock Back L/R Doors (뒷좌석 좌/우 문 잠금 해제) | Right-Shift + X, Right-Shift + Y |
| Lock All Doors (모든 문 잠금) | 오른쪽 Shift 키를 누른 상태에서 왼쪽 Shift 키 입력 |
| Unlock All Doors (모든 문 잠금 해제) | 왼쪽 Shift 키를 누른 상태에서 오른쪽 Shift 키 입력 |

'IoT 보안 > 자동차 해킹' 카테고리의 다른 글
| 자동차 속도계 뒤에서 벌어지는 이야기: CAN 통신 해킹 완전 분석 Part 2 (0) | 2026.03.03 |
|---|