[차량보안] 차량보안과 CAN 네트워크
차량의 CAN 네트워크
자동차 CAN(Controller Area Network) 네트워크는 차량 내 다양한 부품들 간에 효율적으로 정보를 교환하고 통신하기 위한 핵심 시스템입니다. CAN 네트워크는 센서, 엔진 제어 유닛, 브레이크 시스템, 헤드라이트 등 다양한 부품들 간의 상호 작용을 가능케 하며, 차량의 안전성과 성능을 향상시키는 데 중요한 역할을 합니다. 하지만 공격자가 해당 네트워크에 물리적인 접근하여 침투한다면.. 차량은 더이상 안전하지 않겠죠. 사실 차량에 도입 뿐만 아닌 다른곳에서도 활발하게 사용하고 있으므로 다양한 보안 방안이 연구되고 적용되어야 할것입니다.
CAN 프로토콜 및 네트워크
CAN(Controller Area Network)은 1983년에 개발되었습니다. 초기에는 Bosch사에서 자동차 내부 통신을 위한 효율적이고 안정적인 방법을 찾기 위해 개발되었습니다. 초기 목표는 차량 내 다양한 부품들 간에 데이터를 신속하게 교환하여 시스템의 효율성을 높이는 것이었습니다.
초기에 주로 독일의 자동차 제조사들에서 채택되었으나, 시간이 흐름에 따라 국제적으로 표준으로 받아들여졌습니다. 표준이라는게 참 무서운게 한번 규정되면 모든 제품들은 해당 표준들을 따라야 합니다. 결국 ISO(국제 표준화 기구)에서는 1993년에 CAN에 대한 국제 표준인 ISO 11898을 제정하여 통신 프로토콜에 일관성을 부여했습니다.
CAN은 점차 발전하면서 현재에 이르러서는 자동차 산업뿐만 아니라 산업 자동화, 로봇 공학, 항공, 선박 등 다양한 분야에서 활용되고 있습니다. 특히 최근에는 자율주행 자동차, 스마트 시티, 인터넷 of Things(IoT) 등 첨단 기술에서의 중요성이 더욱 부각되고 있습니다.
차량의 CAN 네트워크
차량에서 ECU들의 통신을 위해 사용되는 CAN네트워크는 차량의 거미줄처럼 연결되어 있습니다. 복잡하게 생긴 위 사진처럼 차량에서 CAN네트워크를 쓰는 이유는 표준이기 때문이기도 하지만.. 더 깊게 생각해보면 다음과 같은 장점을 가지고 있습니다.
1. 빠른 전송 속도
표준 속도는 두가지로 나누어져 있습니다.
- 고속 CAN (High-Speed CAN): 주로 자동차의 주요 제어 시스템 간에 사용되는 표준이며, 보통 500 kbps(킬로비트/초)로 동작합니다. 엔진 제어, 트랜스미션 제어, 에어백 시스템 등과 같은 중요한 시스템 간의 빠른 데이터 통신에 사용됩니다.
- 저속 CAN (Low-Speed CAN 또는 LS-CAN): 차량 내의 부가적인 기능이나 액세서리 간에 사용되는 표준이며, 보통 125 kbps로 동작합니다. 예를 들면, 엔터테인먼트 시스템, 창문 제어, 라이트 제어 등과 같은 ECU간의 통신에 사용됩니다.
2. 효율적인 통신
CAN은 분산된 시스템 간에 데이터를 교환하는 데 많은 장점이 있습니다. 차량 내의 다양한 부품들은 하나의 CAN 네트워크를 통해 데이터를 주고 받으며, 이는 복잡한 차량 시스템에서 빠른속도로 통신을 가능하게 합니다.
3. 높은 신뢰성 및 안정성
데이터 전송 중에 오류를 감지하고 복구할 수 있는 기능을 가지고 있어, 차량 내에서 신뢰성 있는 데이터 통신이 가능합니다. 이는 차량 시스템의 정확성과 안정성을 보장하는 데 중요한 역할을 합니다.
차량 CAN 네트워크 보안 취약점
과거 차량은 내부 네트워크로만 구성되어 있었습니다. 모든 접점은 노출된 부분에서 발생하는것처럼 차량의 노출된 배선, usb등 을 통해 공격할 수 있었습니다. 하지만 이제 셀롤러나 ota등 외부와 연결되면서 직간접적으로 차량을 제어할 수 있는 can네트워크 까지 접근하고 있습니다. 이러한 공격이 발생하는 이유는 아이러니하게도 can의 효율적 통신과 관련이 있는데, 빠르지만 보안 기능이 부족했기 때문입니다.
대표적인 CAN 네트워크에 대한 취약점은 다음과 같습니다.
1. 도청 및 중간자 공격
CAN은 기본적으로 안전한 통신을 위한 보안 기능이 부족하다. 따라서 도청 공격으로 데이터를 가로채거나, 중간자 공격으로 데이터를 변경하는 위험이 있다.
2. 데이터 무결성 문제
CAN은 데이터 무결성을 보장하지 않기 때문에 악의적인 데이터 삽입이 가능하다. 공격자는 이를 이용하여 차량 시스템을 오동작시킬 수 있다.
3. 플러딩 공격
CAN은 특정 메시지를 여러 번 반복하여 보내는 플러딩 공격에 취약하다. 이로 인해 네트워크 혼잡이 발생하며 정상적인 통신이 차단될 수 있다.
4. 리플레이 공격
공격자는 이미 전송된 메시지를 기록하여 나중에 재전송하는 리플레이 공격을 시도할 수 있다. 이로 인해 차량 시스템이 의도치 않게 작동할 수 있다.
CAN네트워크 취약점에 대한 대응 방안
위에 나열된 공격 방법처럼 차량 내부에서 대응할 수 있는 방안들은 지금도 계속 연구되고 있습니다. 실제 외부에서 접근하는 단순한 방법(obd-2, usb 등)은 신차종 대부분 기본적으로 필터링이 되고있죠. 개념저인 대응 방안은 다음과 같습니다.
1. 암호화 및 서명 기술 도입
CAN 통신에 암호화와 서명 기술을 도입하여 데이터의 안전성을 강화할 수 있다. 메시지의 무결성을 검증하고, 인증된 통신만을 허용함으로써 중간자 공격을 방지할 수 있다.
2. 침입 탐지 시스템 도입
CAN 네트워크에 인트러션 감지 시스템을 도입하여 이상 행동을 탐지하고 차량 시스템에 대한 공격을 적시에 차단할 수 있다.
3. 물리적 보안 강화
CAN 네트워크에 대한 물리적인 접근을 제한함으로써 외부 공격을 방어할 수 있다. 또한, 내장된 시스템에 대한 물리적인 보호책을 마련하여 도난 및 불법 접근을 방지할 필요가 있다.
마무리
실제 차량의 CAN 네트워크에 대해 자세히 알수록 CAN-FD 등 확장되고 개선된 프로토콜도 있습니다. flex ray, 이더넷 등 늘어나는 차량 데이터 전송을 위해 새로운 규격, 기존의 프로토콜을 활용하는 통신 방법도 나오고 있구요. 하지만 CAN은 아직까지도 차량에 핵심적인 내부 네트워크로 남아있습니다. 다음에는 이러한 CAN 네트워크에 대해 적용할 수 있는 보안 방법, 표준들을 한번 공부해가며 살펴볼까 합니다.