보안은 "기능이 동작하는지"를 검증하는 게 아니라, "깨지지 않는지"를 증명해야 하기 때문입니다.
Verification과 Validation — 왜 구분해야 하는가
많은 사람들이 Verification과 Validation을 같은 개념으로 씁니다. 하지만 ISO/SAE 21434에서 이 둘은 명확히 다릅니다. Clause 11은 Cybersecurity Validation을 다루는데, 이것이 단순 기능 테스트와 어떻게 다른지 이해하는 것이 출발점입니다.
Verification
구현 검증
"요구사항대로 만들었는가?"
SecOC MAC 생성 코드가 요구사항대로 동작하는가
Secure Boot 서명 검증 로직이 명세대로 구현됐는가
Security Access Seed-Key 알고리즘이 정의대로인가
Requirement → 구현 → 테스트 Traceability 확인
Validation
보안 효과 검증
"실제 공격을 막을 수 있는가?"
실제 CAN Injection 공격이 SecOC로 차단되는가
변조된 펌웨어를 Secure Boot가 실제로 막는가
공격자 관점에서 우회 경로가 없는가
공격 시나리오 전체 체인이 성립하지 않음을 확인
Verification에서 통과했다고 Validation이 통과되는 건 아닙니다. "요구사항대로 구현됐지만 실제 공격에는 뚫리는" 상황이 현장에서 실제로 발생합니다. 요구사항 자체가 공격 시나리오를 충분히 커버하지 못한 경우가 많기 때문입니다.
왜 차량 보안 테스트는 어려운가
자동차 보안 테스트가 일반 소프트웨어 테스트와 다른 이유는 대상 자체가 다르기 때문입니다.
차량 — 연결된 시스템 전체가 테스트 대상
Mobile App
→
Cloud Backend
→
TCU
→
Gateway
→
Safety ECU
OBD Port
→
Diagnostic Access
→
Gateway 우회
→
CAN 전체 접근
웹 서비스는 서버 하나를 테스트하면 되는 경우가 많습니다. 하지만 차량은 Gateway, TCU, ADAS ECU, Powertrain ECU, CAN/Ethernet, OTA 서버, Mobile App, Cloud까지 모두 연결됩니다. 가장 위험한 문제는 개별 ECU 취약점이 아니라 "어디를 통해 어디까지 침투 가능한가"의 Attack Chain입니다.
개별 ECU가 아무리 강해도, 연결된 경로 중 하나가 약하면 차량 전체가 위험합니다. TCU → Gateway → CAN → Brake ECU 체인이 성립하면 개별 ECU 보안은 의미를 잃습니다.
차량 보안 테스트는 무엇을 하는가 — 4가지 활동
많은 사람들이 차량 보안 테스트 = Pentest라고 생각합니다. 하지만 21434 Clause 11에서 요구하는 검증 활동은 훨씬 넓습니다.
1
Requirement-based Security Test — 요구사항이 실제로 구현됐는가
Security Requirement가 ECU에서 실제로 동작하는지 확인합니다. TARA에서 도출된 보안 목표가 구현으로 이어졌는지 Traceability를 따라 검증하는 단계입니다.
2
Vulnerability Analysis — 구현 실수와 알려진 취약점 탐색
Hard-coded Key, Debug Port 열림, Default Password, Buffer Overflow, 인증 우회 가능성 등을 분석합니다. Legacy Code, 외부 공급사 코드, 오픈소스, AUTOSAR Stack이 섞인 차량에서는 예상보다 취약점이 많이 발견됩니다.
3
Fuzzing — 비정상 입력으로 예외 상황 탐색
정상 패킷 대신 비정상 입력을 계속 넣어서 ECU가 예상치 못한 상황에서 어떻게 동작하는지 확인합니다. 잘못된 UDS Length, 비정상 CAN Frame, Oversized SOME/IP Message 등이 대상입니다.
4
Penetration Test — 실제 공격 시나리오가 성립하는가
공격자 관점에서 차량 전체를 공격합니다. 개별 ECU 취약점 발견이 아니라 "실제 공격 체인이 성립하는가"를 확인하는 것이 핵심입니다.
요구사항이 실제 공격 시나리오를 충분히 커버하지 못할 수 있음. Validation은 공격자 관점에서 별도로 수행해야 함
잘못된 기대
"OEM에 제출할 Pentest Report만 있으면 된다" — 보고서 형식만 맞추면 된다는 생각
실제로는
VTA 심사는 Traceability를 봄. Requirement → Test Spec → Test Result → Residual Risk까지 연결이 있어야 인정받음
차량 보안 테스트는 "완료"보다 "지속 관리" 개념에 가깝습니다. 그래서 ISO 21434도 Clause 12~14에서 양산 이후 보안 활동을 계속 요구합니다. 새로운 CVE가 발표됐을 때 영향 분석하고 패치를 배포하는 것까지가 보안 검증의 범위입니다.
현업에서는 실제로 이렇게 경험한다
Pentest 범위 정의가 가장 먼저 어렵다 — 어디까지 공격 시나리오로 볼지 OEM마다 다릅니다. 어떤 OEM은 OBD 중심이고, 어떤 OEM은 클라우드·Mobile App까지 포함합니다. 프로젝트 초기에 OEM과 범위를 합의하지 않으면 나중에 재수행 요청이 생깁니다.
테스트보다 증적 정리가 더 오래 걸린다 — Pentest 수행 자체보다 Traceability, Report 작성, Evidence 정리가 더 많은 시간을 차지하는 경우가 많습니다. Requirement와 Test Case를 연결하고 Cybersecurity Case로 취합하는 작업이 상당한 공수입니다.
보안 수정 후 기능 Regression이 반드시 발생한다 — SecOC 적용 후 CAN Latency 증가, HSM 적용 후 Boot Time 증가, IDS 활성화 후 CPU Load 증가. 보안 수정이 Safety 또는 기능 요구사항과 충돌하는 경우가 반드시 생깁니다.
Legacy ECU는 테스트 자체가 어렵다 — Debug Interface가 없거나 로깅 체계가 부족한 ECU는 취약점 분석 난이도가 매우 높습니다. Black-box 테스트 접근이 필요하고, 결과의 신뢰성을 증명하기도 어렵습니다.
OEM은 "취약점 0개"보다 대응 체계를 본다 — 실제로 중요한 건 취약점이 발견됐을 때 수정·재검증·OTA 배포 프로세스가 있는가입니다. 취약점 개수보다 이 체계의 존재 여부가 VTA 심사에서 더 중요하게 평가됩니다.
마무리
차량 보안 테스트의 목적은
"안전하다고 선언하는 것"이 아닙니다.
어디까지 위험을 줄였고,
남은 위험을 이해하고 관리하고 있는지를 증명하는 것입니다.
자동차는 이제 단순 기계가 아니라 계속 연결되고 업데이트되는 시스템입니다. 그래서 보안 테스트도 출시 전 이벤트가 아니라 차량 생애주기 전체의 활동으로 바뀌고 있습니다. 그리고 이것이 ISO 21434 Clause 11이 말하는 Validation의 진짜 의미입니다.
핵심 요약
Clause 11은 Cybersecurity Validation — Verification(구현 검증)과 다른 개념이다
Validation의 핵심 질문: "실제 공격을 막을 수 있는가?"
차량 보안 테스트는 개별 ECU가 아니라 차량 전체 Attack Chain을 본다
4가지 활동: Requirement-based Test → Vulnerability Analysis → Fuzzing → Penetration Test
Pentest의 핵심은 취약점 개수가 아니라 Attack Chain 완성 여부다
주요 Work Product: Validation Specification, Validation Report, Vulnerability Analysis Report, PenTest Report, Residual Risk Evaluation
Residual Risk는 "방치"가 아니라 근거와 함께 문서화하고 OEM 승인을 받아야 한다