본문 바로가기

자료 리뷰/ISO|SAE 21434(사이버보안)

내 차가 해킹 당하면, 어디가 고장 났는지 알 수 있을까요? X-CANIDS 논문으로 본 설명 가능한 차량 보

본 포스트는 다음 학술 문서를 기반으로 공부 목적의 요약 및 분석하여 작성한 포스트입니다.

X-CANIDS; Signal-Aware Explainable Intrusion Detection System for Controller Area Network-Based In-Vehicle Network

 


'소프트웨어 중심의 자동차(SDV)' 시대가 본격화되면서, 자동차는 이제 도로 위를 달리는 거대한 컴퓨터가 되었습니다. 하지만 이 편리함 뒤에는 어두운 그림자가 있죠. 바로 사이버보안 위협입니다.

해커가 원격으로 차량의 CAN 버스(차량 내부 통신망)에 접근해 브레이크나 조향 시스템을 조작하는 것, 상상만 해도 끔찍한데요. 이 때문에 최근 UN R155와 같은 국제 법규는 자동차 제조사에게 "사이버 공격을 탐지(Detect)하고, 분석(Forensic)할 수 있는" 강력한 침입 탐지 시스템(IDS)을 차량에 탑재할 것을 의무화하고 있습니다.

하지만 기존 IDS들은 한계가 명확했습니다. "공격이 탐지되었습니다!"라고 경고는 띄우지만, "그래서 어디가, 어떻게 공격받았는데?"라는 질문에는 답을 못했죠.

오늘 제가 분석해 드릴 X-CANIDS 논문은 이 질문에 대한 아주 영리한 해답을 제시합니다. 바로 '설명 가능한(Explainable)' IDS라는 개념이죠.

1. 기존 IDS의 한계 : "암호 해독"은 못하는 탐지기

기존의 많은 차량용 IDS는 CAN 메시지의 비트(bit) 패턴이나, 특정 메시지 ID가 전송되는 '시간 주기'를 분석하는 방식에 의존했습니다.

문제점 : 

1. 성능의 한계: 단순히 0과 1의 나열(비트)만 봐서는 차량의 복잡한 상태를 이해하기 어렵습니다.

2. 설명 불가능: 공격이 탐지되어도, 그 비트 패턴이 차량의 '어떤 기능'을 의미하는지 즉시 알 수 없습니다. 이는 UN R155의 '포렌식(분석)' 요구사항을 충족시키기 어렵게 만듭니다.

마치 알 수 없는 언어로 쓰인 암호문(CAN raw data)을 보고 "이건 평소와 다른데?"라고 말할 뿐, "이건 '엔진을 끄라'는 명령어다!"라고 '해석'은 못 하는 것과 같습니다.

2. X-CANIDS의 핵심: '신호(Signal)'로 보고 '설명(Explain)'한다

X-CANIDS는 이 문제를 두 가지 핵심 아이디어로 해결합니다.

💡 아이디어 1: '신호(Signal)' 기반 탐지 (의미를 분석하다)

X-CANIDS는 CAN 메시지 페이로드를 그냥 '비트 덩어리'로 보지 않습니다. 대신, 자동차 제조사가 가진 CAN 데이터베이스(*.dbc 파일)를 활용해 이 비트들을 '엔진 RPM', '조향각(Steering Angle)', '바퀴 속도'와 같이 '사람이 이해할 수 있는 공학적 신호(Signal)'로 실시간 번역(역직렬화)합니다.

  • (Before) 비트: 0x1A 0x05 0x3C ... (이게 뭐죠? 🤷‍♀️)
  • (After) 신호: Engine_RPM = 2100, Wheel_Speed_FL = 50.5 km/h (아하! 💡)

이렇게 '의미'를 아는 신호 데이터를 기반으로 비정상 행위를 탐지하기 때문에, 단순 비트 패턴을 보는 것보다 훨씬 더 정교하고 정확한 탐지가 가능합니다.

💡 아이디어 2: '설명 가능성(Explainability)' (어디가 공격받았는지 알려주다)

X-CANIDS는 '오토인코더(Autoencoder)'라는 딥러닝 모델을 사용합니다. 이 모델은 '비지도 학습' 방식으로, 공격이 없는 '정상 주행' 데이터만 학습합니다.

  1. 학습(Training): 정상적인 '신호' 데이터(RPM, 속도 등)를 입력받아, 이 데이터를 압축했다가 다시 원본과 똑같이 '복원'하도록 훈련됩니다. 정상 데이터는 아주 잘 복원해내겠죠.
  2. 탐지(Inference): 이제 실제 차량에 이 모델을 탑재합니다. 만약 해커가 조향각 신호를 조작하는 '공격 데이터'를 주입하면, 이 데이터는 모델이 배운 '정상' 패턴과 완전히 다릅니다.
  3. 결과: 모델은 이 비정상 신호를 제대로 복원하지 못하고, '복원 오류(Reconstruction Error)'가 급증하게 됩니다. X-CANIDS는 이 오류가 특정 임계값을 넘으면 "공격!"이라고 판단합니다.

여기서 핵심! X-CANIDS는 이 '복원 오류'를 신호별로 각각 계산합니다.

따라서 공격이 탐지되면, "엔진 RPM 신호의 복원 오류가 90%!", "조향각 신호의 복원 오류가 5%"처럼, 어떤 신호가 공격의 직접적인 타겟이 되었는지 정확히 알려줄 수 있습니다. 이것이 바로 '설명 가능성'입니다.

3. 실제 차량 탑재가 가능할까? (Feasibility & Results)

논문으로만 존재하는 기술이 아니라, 실제 '차량용 등급의 임베디드 기기'(NVIDIA Jetson AGX Xavier)에서 성능을 테스트했기 때문입니다

결과는 놀라웠습니다 :

  • 엔진 RPM 조작 공격 (Fabrication): 해커가 가짜 '엔진 RPM' 신호(556_PID_0Ch)를 주입하자 , X-CANIDS는 정확히 해당 신호뿐만 아니라, 080_N, 316_N 등 다른 ECU에서 측정되는 관련 RPM 신호들에서도 이상 징후를 동시에 탐지해냈습니다
  • 차량 속도 조작 공격 (Masquerade): 해커가 '차량 속도' 신호(316_VS)를 조작하자 , 이와 연관된 4개의 '바퀴 속도' 신호(386h의 WHL_SPD 계열)에서도 동시에 오류가 급증하는 것을 확인했습니다.

이는 단순히 "공격 받았다"를 넘어, "엔진 RPM 관련 시스템이 공격받고 있다" 또는 "속도 관련 시스템이 공격받고 있다"고 시스템 단위로 '설명'과 '분석'이 가능함을 증명한 것입니다.

4. 솔직한 한계점 (이것만으론 부족하다)

물론 X-CANIDS가 만능은 아닙니다. 이 논문은 매우 정직하게 한계점을 밝히고 있습니다.

  • 치명적 약점: 'Suspension Attack' (중단 공격)
    • 이 공격은 특정 ECU가 메시지를 보내는 것을 그냥 '중단'시켜 버리는 공격입니다.
    • X-CANIDS는 이 공격에 매우 비효율적입니다.
    • 이유: X-CANIDS의 입력값은 '가장 최근에 수신된 신호 값'을 캐시(cache)하여 사용합니다. 만약 ECU가 공격으로 멈춰서 새 신호를 보내지 않으면, IDS는 마지막으로 수신한 '정상 신호'를 계속 입력으로 사용하게 됩니다. 당연히 복원 오류는 발생하지 않고, 공격을 인지할 수 없게 되죠.
  • 해결책 (논문 저자의 제안):
    • X-CANIDS와 같은 '신호 기반 IDS'는 반드시 메시지 전송 주기를 감시하는 '시간 간격 기반(Time-interval-based) IDS'와 함께 사용되어야 합니다.

5. 정리

X-CANIDS 논문은 UN R155 법규가 요구하는 '탐지'와 '포렌식(설명)'이라는 두 마리 토끼를 잡을 수 있는 매우 현실적이고 강력한 접근 방식을 제시합니다.

  1. 'CAN DB'를 활용해 단순 비트가 아닌 '신호'를 분석함으로써 탐지 성능을 높였고,
  2. '신호별 복원 오류'를 계산하여 공격받은 지점을 특정하는 '설명 가능성'을 확보했습니다.
  3. '임베디드 기기 테스트'를 통해 실제 차량 적용 가능성(Feasibility)까지 검증했습니다.

물론 '중단 공격'에 대한 약점은 명확하지만, 이는 다른 IDS와의 상호 보완을 통해 충분히 해결 가능한 문제입니다.

제조사들이 UN R155 대응을 위해 IDS 탑재를 서두르고 있는 지금, X-CANIDS가 제시한 '신호 기반의 설명 가능한 보안'은 앞으로 차량 IDS가 나아가야 할 방향을 명확히 보여주고 있습니다.