차량 사이버보안/보안기술

Secure Debug를 막으면 개발은 어떻게 하지? — 양산 ECU의 Debug 권한 관리 현실

vsec 2026. 5. 29. 08:18
현업에서 보는 차량 보안 아키텍처
보안팀 vs 개발팀 — 현장에서 가장 자주 부딪히는 말
개발팀 : "Debug 막으면 개발은 어떻게 해요? 장애 분석은요?"
보안팀 : "Debug 열어두면 ECU 다 털립니다. Flash Dump 하면 끝이에요."
개발팀 : "양산 직전인데 지금 Debug 설정 바꾸면 일정이 안 나옵니다."
보안팀 : "개발용 Unlock이 양산 이미지에 그대로 남으면 더 큰 문제입니다."

둘 다 맞는 말입니다. 그리고 실제 차량 보안에서는 이 두 요구사항을 동시에 만족시켜야 합니다.

Debug Port는 개발자에게는 필수 도구입니다.
그런데 공격자에게는 ECU 내부로 들어가는
가장 강력한 침입 경로이기도 합니다.

그래서 차량 보안에서는 "Debug를 없애는 것"이 아니라 "누가, 언제, 어떻게 Debug를 사용할 수 있는가"를 관리하기 시작합니다. 이게 바로 Secure Debug입니다.


왜 Debug Port가 위험할까

MCU 기반 ECU에는 보통 JTAG, SWD, DAP 같은 Debug Interface가 존재합니다. 원래 목적은 Firmware Download, Breakpoint, Memory Read, Register 분석 같은 개발 기능입니다. 그런데 공격자 입장에서는 완전히 다른 도구가 됩니다.

⚠️ Debug Port가 열려 있으면 가능해지는 것들

Flash Dump  ·  Firmware 추출  ·  Secure Boot 우회
Key 탈취  ·  Memory 조작  ·  Boot Flow 변경

Debug Port는 사실상 "하드웨어 Root 권한"에 가까운 인터페이스입니다. 그리고 실제 공격은 생각보다 단순합니다.

Debug Port를 통한 실제 공격 흐름
ECU 확보
PCB 분석
JTAG/SWD 핀 확인
Debugger 연결
Flash Read
Firmware 추출
여기서 끝이 아닙니다. Firmware를 얻으면 → Reverse Engineering → 취약점 분석 → Key 위치 탐색 → Secure Boot 우회 분석까지 이어집니다. Debug Interface 하나가 ECU 전체 보안으로 연결됩니다.

양산 ECU는 Debug를 막기 시작했다 — 하지만 완전히는 못 막는다

R155, ISO/SAE 21434, OTA, Secure Boot가 도입되면서 상황이 바뀌었습니다.

✅ "양산 ECU에서는 기본적으로 Debug 접근을 제한한다"가 거의 기본 보안 정책이 되기 시작했습니다.

그런데 Debug를 완전히 차단하면 다른 문제가 생깁니다. 현실에서는 양산 이후에도 Debug가 필요한 순간이 반드시 옵니다.

  • 양산 이후 필드 장애 분석
  • 서비스센터 Diagnostic 대응
  • RMA(반품) ECU 분석
  • 공장 재작업
  • 품질 이슈 재현
❌ 양산 ECU의 Debug는 완전히 차단해야 한다
✅ Debug는 "누가, 어떤 권한으로" 접근하느냐를 관리해야 한다
완전 차단은 개발·서비스·품질 대응을 모두 막습니다. 현실적인 접근은 Debug를 없애는 게 아니라, ECU Lifecycle 전체에서 접근 권한을 단계별로 관리하는 것입니다.

현업에서 진짜 무서운 것 — 운영 실수

사실 가장 위험한 건 "Debug를 지원한다"는 사실 자체가 아닙니다.

💡 진짜 위험한 건 이런 운영 실수입니다.

· 양산 이미지인데 Debug 활성화 상태로 출하
· 개발용 Password 하드코딩이 양산까지 그대로 남음
· 전 ECU 동일한 Debug Key 사용
· 개발 단계 Unlock 설정이 제거되지 않음
· 양산 직전 일정 압박으로 Debug 정책 검토 생략

특히 개발 일정 부족, 양산 직전 변경, 생산라인 이슈가 겹치면 Debug 정책이 제대로 정리되지 못하는 경우가 생깁니다. 그리고 이게 실제 현업에서 꽤 자주 발생합니다.


ECU Lifecycle별 Debug 권한 관리

"Debug 가능 / 불가능"처럼 단순하게 관리하지 않습니다. ECU가 어느 단계에 있느냐에 따라 허용 범위가 달라집니다.

개발 단계
Full Debug
Breakpoint, Flash Read, Memory 접근 모두 허용
생산 단계
FW Download만
Firmware 쓰기만 허용. 읽기·디버깅 제한
서비스 단계
Diagnostic 일부
인증된 서비스 툴로 제한적 Diagnostic만 허용
양산 단계
기본 차단
Debug 기본 비활성화. 인증 없이 접근 불가
RMA 단계
인증 후 제한
OEM 인증 후 분석 목적으로 제한적 허용

즉 ECU Lifecycle 전체에서 Debug 정책을 관리합니다. 단계별로 허용 범위가 다르고, 단계 전환 시 반드시 정책이 변경되어야 합니다.


Secure Debug — 인증된 사람만 접근 가능하게

최근 차량 보안에서는 Debug도 인증 기반으로 바뀌고 있습니다. "Debugger를 꽂았다"가 아니라, "인증된 사용자만 Debug 가능"으로 개념이 바뀌는 것입니다.

Secure Debug — Challenge-Response 인증 흐름
🔌
Debugger 연결 시도 — JTAG/SWD 연결. 이 시점에서 바로 접근되지 않습니다.
ECU가 Challenge 생성 — 무작위 난수를 생성해 Debugger 툴에 전달합니다. 매 연결마다 다름
🔑
외부 서명 툴이 Response 생성 — OEM이 보유한 Private Key로 Challenge에 서명합니다. Key는 OEM만 보유
ECU 내부 Key로 검증 — HSM 또는 보안칩 내부에 저장된 Key로 서명을 검증합니다.
검증 성공 시에만 Debug Open — 인증된 툴만 접근 가능. 일반 Debugger는 연결해도 아무것도 할 수 없습니다.
ℹ️ 이 구조의 핵심은 Challenge가 매 연결마다 다르다는 점입니다.
한 번의 Response를 캡처해도 재사용이 불가능합니다. Replay Attack을 막는 구조입니다.

Secure Debug도 결국 Key 관리 문제다

Secure Debug 구조도 결국 "누가 신뢰 가능한가" 문제입니다. Challenge-Response, 전자서명, Key Verification 위에서 동작하기 때문입니다.

구성 요소역할보관 위치
OEM Private Key Response 서명 생성 OEM 서버 (외부 반출 금지)
Device Public Key 서명 검증 ECU 내부 HSM / 보안칩
Device Unique Key ECU별 고유 인증 ECU 내부 HSM / 보안칩
Debug Certificate 접근 권한 범위 정의 서비스 툴 / OEM 발급
⚠️ Key가 일반 Flash에 있으면 이 구조 전체가 무너집니다.

Flash Dump → Key 추출 → 인증 우회 → Fake Unlock 생성이 가능해집니다.
그래서 Secure Debug에서도 HSM 또는 외장 보안칩 기반 Key 보호가 핵심입니다.

SDV 시대에는 더 복잡해진다

AP, Linux, Hypervisor, TEE, MCU가 함께 있는 SDV 구조에서는 Debug 관리 자체가 훨씬 복잡해집니다.

Debug 대상특성관리 포인트
AP Linux Debug SSH, gdb, 원격 접근 인증 기반 접근 제어, 로그 감사
MCU Debug JTAG/SWD 물리 접근 Secure Debug + 물리 핀 보호
TEE Secure World Debug 일반 디버거로 접근 불가 별도 인증 채널, 접근 자체 최소화
Hypervisor Debug Guest VM 전체 영향 권한 분리, VM별 독립 정책

SDV 시대에는 "Debug 정책 자체가 하나의 보안 시스템"이 됩니다. 레이어별로 독립적인 접근 제어가 필요하고, 어느 하나라도 열려있으면 전체가 영향을 받을 수 있습니다.


현업에서는 이렇게 느껴진다

Secure Debug 적용 현장에서 배운 것들

가장 위험한 건 "개발용 설정이 양산까지 남는 것"이다 — Debug 기능 자체가 문제가 아니다. 일정 압박으로 양산 직전 정책 검토가 생략되면 개발용 Unlock이 출하 이미지에 그대로 남는 경우가 실제로 있다. 이게 진짜 위험이다.
ECU Lifecycle별 Debug 정책을 프로젝트 초반에 확정해야 한다 — 개발 단계, 생산 단계, 양산 단계, RMA 단계별로 무엇을 허용할지 초반에 정해두지 않으면 나중에 보안과 일정 사이에서 충돌이 생긴다.
Secure Debug는 Key Provisioning과 함께 설계해야 한다 — Challenge-Response 구조를 만들어도 ECU별 고유 Key를 제조 단계에서 어떻게 주입할지 설계하지 않으면 실제로 동작하는 시스템을 못 만든다.
RMA 프로세스가 의외로 복잡한 병목이 된다 — 양산 이후 Secure Debug가 잘 되어 있으면 반품 ECU 분석이 어려워진다. OEM 인증 기반으로 제한적 접근을 허용하는 RMA 전용 프로세스를 미리 만들어두지 않으면 품질 대응이 막힌다.

마무리

차량 보안에서 Debug는
"막아야 하는 기능"이 아닙니다.

누가, 언제, 어떤 권한으로 접근 가능한가를
ECU Lifecycle 전체에서 관리해야 하는 기능입니다.

그 순간부터 Debug는 단순 개발 도구가 아니라
보안 아키텍처의 일부가 됩니다.
핵심 요약
1
Debug Port는 강력한 공격 경로다 — Flash Dump, Firmware 추출, Key 탈취, Secure Boot 우회까지 연결된다
2
진짜 위험은 운영 실수다 — 개발용 Unlock이 양산 이미지에 남는 것이 Debug 기능 자체보다 위험하다
3
ECU Lifecycle별로 Debug 권한을 다르게 관리해야 한다 — 개발·생산·서비스·양산·RMA 단계별로 허용 범위가 달라야 한다
4
Secure Debug는 Challenge-Response 인증 기반 구조다 — 인증된 툴만 접근 가능하고, Replay Attack을 막는 구조로 설계해야 한다
5
결국 핵심은 Key Protection — Key가 일반 Flash에 있으면 Secure Debug 구조 전체가 무너진다. HSM·보안칩 기반 Key 보호가 필수다
SecureDebug 차량사이버보안 HSM JTAG SWD DebugPort R155 ISO21434 KeyProtection RootOfTrust ECU보안 SDV
반응형