차량 네트워크 시뮬레이터인 ICSim을 구축
들어가며
이번 포스팅에서는 차량 네트워크 시뮬레이터인 ICSim을 구축하고 사용하는 방법을 다룰려고 한다. ICSim 자동차 해킹 실습 환경을 위해서 구축 하기도 한다. 왜냐하면 ICSim은 차량 내부의 CAN 네트워크를 시뮬레이션하여 차량 보안 연구에 유용하다. 생각보다 설치 하는 방법도 실행 하는 방법도 간단하다. 따라서 쉽게 따라할수 있을 것이다.
실습 환경
VMware 17과 Ubuntu 24.04.1
의존성 설치
ICSim을 사용하기 전에 필요한 소프트웨어와 라이브러리를 설치해야 한다. 아래 명령어를 터미널에 입력하여 설치를 진행한다.
sudo apt-get install can-utils libsdl2-dev
ICSim 다운로드
다음 명령어로 GitHub에서 ICSim을 클론하여 다운로드 한다.
git clone https://github.com/zombieCraig/ICSim.git
컴파일
다운로드한 ICSim을 컴파일하려면, ICSim 디렉토리로 이동 후 make
명령어를 사용한다.
cd ICSim
make
ICSim 실행
ICSim을 실행하려면 가상 CAN 인터페이스인 vcan0
을 사용하여 클러스터 시뮬레이터를 시작한다.
./icsim vcan0
Control 실행
차량 내부에서 CAN 메시지를 조작하거나 시뮬레이션된 차량을 제어하려면 다음 명령어로 Control 프로그램을 실행한다.
./controls vcan0
ICSim 명령어 (controls 프로그램에서)
ICSim의 controls 프로그램을 사용하면 키보드로 차량의 상태를 제어할 수 있따. 아래 테이블은 ICSim의 주요 명령어를 정리한 것이다.
키 | 기능 |
---|---|
i |
시동 켜기/끄기 (Ignition on/off) |
w |
와이퍼 작동 (Wipers on/off) |
t |
방향 지시등 작동 (Turn signal on/off) |
h |
경적 작동 (Honk horn) |
l |
헤드라이트 켜기/끄기 (Lights on/off) |
1 |
좌측 방향 지시등 켜기 (Left signal) |
2 |
우측 방향 지시등 켜기 (Right signal) |
Space |
비상등 켜기/끄기 (Hazard lights on/off) |
↑ |
가속 (Accelerate) |
← /→ |
좌/우 방향 지시등 (Left/Right Turn Signal) |
Right Shift+A/B |
앞 좌/우 문 잠금 해제 (Unlock Front L/R Doors) |
Right Shift+X/Y |
뒤 좌/우 문 잠금 해제 (Unlock Back L/R Doors) |
Left Shift+A/B |
앞 좌/우 문 잠금 (Lock Front L/R Doors) |
Left Shift+X/Y |
뒤 좌/우 문 잠금 (Lock Back L/R Doors) |
Right Shift + Left Shift |
모든 문 잠금 (Lock All Doors) |
Left Shift + Right Shift |
모든 문 잠금 해제 (Unlock All Doors) |
CAN 메시지 모니터링
CAN 메시지를 실시간으로 모니터링하려면 candump
명령어를 사용하한다. 아래 명령어를 통해 vcan0
에서 송수신되는 CAN 메시지를 확인할 수 있다.
candump vcan0
이 가이드를 따라하면 ICSim을 성공적으로 설치하고 사용할 수 있다. 다음은 최종적으로 설치하고 실행한 모습이다.
접기/펼치기
Virtual CAN Bus 설정 및 ICSim 트래픽 분석
Block Harbor Cybersecurity와 함께 가상 CAN 버스를 설정하고 ICSim 트래픽을 분석 할 수 있다고 한다. 아래 명령어들을 따라하면 간단하게 가상 CAN 환경을 구축할 수 있다.
Block Harbor 웹사이트: https://blockharbor.io
ICSim GitHub: https://github.com/zombieCraig/ICSim
시스템 업데이트 및 ICSim 클론
sudo apt-get update
sudo apt-get upgrade
git clone https://github.com/zombieCraig/ICSim.git
의존성 설치
sudo apt-get install libsdl2-dev libsdl2-image-dev
가상 CAN 인터페이스 설정
sudo modprobe can
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
ICSim 실행
cd ICSim
make all
./icsim vcan0
Control 실행 및 CAN 트래픽 분석
./controls vcan0
candump vcan0
cansniffer vcan0
ICSim 리셋 및 시드 기반 제어
./icsim -r vcan0
./controls -s [seed] vcan0
./controls -s [seed] -l 2 vcan0
위 명령어를 따라하면 CAN 버스를 설정하고 ICSim 트래픽을 분석할 수 있다고 한다. 트래픽을 모니터링하며 다양한 공격 시나리오를 공부해 볼 수 있지 않을까 생각한다.
Car Hacking 101: Practical Guide to Exploiting CAN Bus Using Instrument Cluster Simulator - Part I
저의 글을 읽어 주셔서 감사합니다. 작성한 글이 저작권 등에 의해 문제가 있거나 글 자체에 문자가 있다면 바로 삭제하겠습니다. 댓글과 피드백 또한 감사합니다.
연구 목적으로 사용하지 않고 악의적인 목적으로 이용할 시 발생할 수 있는 법적인 책임은 진행한 본인에게 있습니다. 악의적인 목적으로 사용하지 마세요. 본 포스팅 사진에 대한 모든 저작권은 블로그 소유자에게 있습니다.
댓글남기기