You are on page 1of 24

FUZZIT 1.0.

2
[종료 PA]

커넥티드자율주행시스템실
사이버보안기술팀

Software for Safe World


01. 개요

02. 수행 내용

03. 결론

Table of contents
01. 개요

Software for safe world


01. UNECE R.155 (UNR.155)

자동차 사이버보안 대응을 위해 UNECE WP.29에서 제정한 자동차 사이버보안 규제


UNR.155 규제 상세 내용

• 자동차를 대상으로 안전성 및 보안성을 갖춘 제품을 생산하기 위해 개발, 생산, 생산 후 과정 전반에 걸쳐 조직이 적절한
목적
보안 조치를 취하도록 보장하기 위함

대상 • 완성차 업체, 자동차 부품 업체

적용 차량 • 승용차, 상용차, 트레일러 및 자율주행 레벨 3이상의 4륜 소형 자동차

• 2020년 6월 채택
• 2022년 7월 신규 자동차 적용 (유럽)
적용 시점
• 2024년 7월 전체 자동차 적용 예정 (유럽)
※ 완성차 업체 정부기관으로부터 UNECE WP.29의 차량 형식 승인 필요

2020 2022 2024

’22 7월 ’24 7월
’20 6월 채택
신규 자동차 적용 전체 자동차 적용
02. ISO 21434

자동차 사이버보안 국제 표준으로 자동차 라이프사이클에 기반한 구체적인 사이버보안 활동 정의


▪ 완성차 업체와 자동차 부품 업체들은 ISO 21434를 기준으로 사이버보안 대응 절차 수립 및 엔지니어링 수행
▪ 사이버보안 관점의 자동차 라이프사이클 전 과정(개발/생산/운영/폐기)에 대한 내용을 포함
• Part5 | 조직 사이버보안 관리 • Part6 | 프로젝트 의존적 사이버보안 관리 • Part7 | 분산 사이버보안 활동 • Part8 | 지속적인 사이버보안 활동
기업 - 사이버보안 거버넌스 - 사이버보안 책임, 계획 - 공급업체 역량 - 사이버보안 모니터링
- 사이버보안 문화 - 사이버보안 평가 - 책임 조정 - 사이버보안 사건 평가
사이버보안 관리 - 조직 사이버보안 감사 - 취약점 분석 및 관리

• Part9 | 컨셉
- 항목 정의
컨셉 단계 - 사이버보안 목표
- 사이버보안 컨셉

• Part10 | 제품 개발 • Part11 | 사이버보안 확인


- 설계 - 검증 사양 및 활동
제품 개발 단계 - 통합 및 검증 - 검증 보고서

• Part12 | 생산 • Part13 | 운영 및 유지보수 • Part14 | 사이버보안 지원 종료 및 폐기


- 생산 관리 및 계획 - 사이버보안 사고 대응 계획 - 지원 종료 및 폐기에 따른 소통 절차
개발 이후 단계 - 사이버보안 사고 대응 조치

• Part15 | 위협 분석 및 위험 평가
- 자산 식별
- 위협 시나리오 식별
위협 분석 및 - 영향 등급
위험 평가 (TARA) - 공격 경로 분석
- 공격 가능성 평가
- 위험 값 결정
- 위험 처리 결정
03. ISO 21434와 퍼징 검증

ISO 21434의 사이버보안 시험 항목으로 퍼징 검증을 명시


▪ ISO 21434 표준 기반 제어기 SW 개발 라이프사이클의 상위 모듈 시스템 통합 및 확인 단계에서 수행 요구
▪ ISO 21434 표준에서 요구하는 취약점 탐색 방법으로 퍼징 검증 수행을 명시 (ISO 21434:2021 – Part10 참조)

ISO 21434 기반 제어기 SW 개발 라이프사이클

제품 개발 제품 검증

사이버보안
요구사항 하위 모듈 상위 모듈
사이버보안 사이버보안 사이버보안
시스템 시스템
목표 컨셉 확인
사이버보안 통합 및 확인 통합 및 확인
아키텍처 설계

ISO 21434:2021 - Part10 [RC-10-12]

구성요소에 남아있는 취약점을


확인하기 위해 검증을 수행해야 합니다.
...
NOTE7 | 검증 방법은
다음을 포함해야 합니다.
▪ 퍼징 검증 퍼징 검증을 통한 취약점 분석 요구
...
04. 퍼징 검증

퍼징 검증이란?
▪ 유효한 혹은 유효하지 않거나, 예기치 않은 값을 다수 입력하여 예상하지 못한 결함을 찾기 위한 검증
▪ 자동차 제어기 대상으로 수행 시 제어기의 리셋, 응답 없음, 비정상 동작 등의 결함 검출 가능

퍼징 검증 수행 프로세스

STEP 01 STEP 02 STEP 03

검증 환경 구축 통신 데이터 분석 테스트 케이스 생성


검증 대상 제어기의 통신 데이터 테스트케이스 생성
분석 ex) CAN DBC, EthCC

STEP 06 STEP 05 STEP 04

결과 분석 결과 확인 검증 수행
결과를 분석하여, 결함 발생 도출된 검증 결과 확인 퍼징 검증 수행
여부 확인
05. 퍼징 검증 자동화 솔루션

FUZZIT
▪ 자동차 제어기의 잠재적 보안 취약점 검출을 위한 퍼징 검증 자동화 도구
▪ 통신 인터페이스 사양 문서를 분석하여 생성한 테스트 케이스로 검증 수행 및 결함 검출

FUZZIT 도구 실행 화면
06. 수행 일정

1.0.2 버전 개발 수행 일정
2021년 2022년
분류 수행 내용
5월 6월 7월 8월 9월 10월 11월 12월 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월

요구사항도출
설계
아키텍처 및 상세 설계

프로젝트 관리 기능 구현

테스트 수행 관련 기능 구현

데이터 생성 관련 기능 구현

결함 판단 기능 구현
구현
결함 재현 기능 구현

CAN 통신 인터페이스 통합 및 적용

GUI 개발

디자인 적용

코드 통합
통합 및
검증
COVER 기반 검증 수행

RT FUZZIT (v1.0.1) RT 대응

릴리즈(10/7)
02. 수행 내용

Software for safe world


01. 시스템 아키텍처

FUZZIT과 독립적이고 커스텀 가능한 모니터


▪ 제어기의 출력을 모니터링 할 수 있는 모니터의 경우 FUZZIT과 독립적으로 설계하여 각 제어기 특성에 맞게
구현하여 사용할 수 있도록 지원

FUZZIT 통신 인터페이스 정보
(CAN DBC, EthCC 등)

제어기 출력 정보
CAN message
(fuzz Data)

Monitor ECU
CAN message
(제어기 출력)
02. 요구사항 도출

기능 요구사항 및 사용자 요구사항 도출


▪ 퍼징 자동화 도구에 대한 경험 부족으로 경쟁사 도구(beStorm) 분석을 통해 개발을 위한 참고 사례 확보
▪ beStorm 을 포함한 상용 퍼징 도구의 분석을 통해 기능 요구사항 및 사용자 요구사항 도출

구분 요구사항 설명 도출 건수

프로젝트 및 데이터 관리 프로젝트 생성, 열기, 저장 및 테스트 데이터 열기 및 저장과 관련된 요구사항 21

테스트 설정 테스트 설정과 관련된 요구사항 8

테스트 수행 테스트 수행과 관련된 요구사항 19

데이터 생성 테스트를 위한 퍼즈 데이터 생성과 관련된 요구사항 6

결함 판단 테스트 수행 중 결함 판단과 관련된 요구사항 5

결함 재현 발생한 결함의 재현과 관련된 요구사항 7

테스트 결과 보고 테스트 결과 보고서 내보내기와 관련된 요구사항 18

도구 정보 및 라이선스 도구 버전 정보 및 라이선스와 관련된 요구사항 2

총 개수 86 건

도출된 요구사항 리스트


03. 아키텍처 및 상세 설계(1/2)

주요 기능 별 유스케이스 다이어그램 작성 및 GUI 설계


▪ 식별된 요구사항 중 퍼징 시험과 관련성이 높은 주요 기능들에 대한 유스케이스 다이어그램 작성
▪ GUI 설계 및 목업 작성

데이터 생성 테스트 수행

결함 판단 결함 재현

주요 기능 별 유스케이스 다이어그램 작성된 GUI 목업


03. 아키텍처 및 상세 설계(2/2)

SW 아키텍처 설계
▪ GUI, Engine, Core로 구분하여 SW 아키텍처 설계

SW 아키텍처
04. 개발(1/4)

테스트 케이스 생성을 위한 퍼징 데이터 생성


▪ 통신 인터페이스 사양 문서의 구조 분석을 통한 시그널 파티션 및 경계값 생성
▪ 시그널 파티션을 조합하여 시드 데이터를 생성하고, 시드 데이터를 뮤테이션하여 퍼징 데이터 확장
▪ 경계값을 시드 데이터 생성 방식과 동일한 방식으로 조합하여 퍼징 데이터 생성

테스트 케이스 자동 생성 프로세스 퍼징 데이터 생성 옵션 선택 화면

통신 인터페이스 사양 구조 분석

메시지 및 시그널 구조 분석

테스트 케이스 생성

Signal partition-based Boundary-based


Generation Generation
시그널 파티션 생성 경계값 생성
Seed 테스트 케이스 생성 테스트 케이스 생성

Mutation

Bit flip

Arithmetic mutation

Block-based mutation

Dictionary-based mutation
04. 개발(2/4)

테스트 수행
▪ 테스트 상태는 시작, 일시정지, 중지, 재현으로 구분
▪ 각 테스트 상태에 따른 세부 동작을 정의하고 상태 다이어그램 작성 및 구현
1. 선택 재현 종료
2. 모니터/ECU 끊김
IDLE
선택 재현 수행

1. 테스트 완료
테스트 시작
2. 테스트 중지

Processing Reproduce

1. 테스트 일시정지
2. 모니터/ECU 끊김 1. 테스트 시작
3. 선택/자동 재현 수행 2. ECU 재연결

선택/자동 재현 수행
Pause
테스트 중지
1. 선택/자동 재현 종료
2. 모니터/ECU 끊김

상태 별 정의

IDLE 테스트 수행 전 대기 상태 (대기 / 완료 / 중지)

Processing 테스트를 수행하고 있는 상태

테스트는 수행하고 있지 않지만,


Pause
결함 검출 로직은 수행 하고 있는 상태

Reproduce 결함 재현을 수행하고 있는 상태

테스트 상태 다이어그램 및 상태별 정의 표 테스트 수행 화면


04. 개발(3/4)

설정한 결함 판단 기준에 따른 결함 판단
▪ 모니터로부터 받은 제어기 출력을 분석하여 결함 판단을 할 수 있도록 기능 구현
▪ 결함 발생 여부는 메시지의 지연 및 고장코드의 발생 여부로 확인

메시지 지연 고장코드 발생

설정 가능한
모니터링을 원하는 메시지 Id, 지연 기준 시간, 오차 범위 모니터링을 원하는 값 (고장 코드)
세부 사항

결함 판단 기준
입력 화면
04. 개발(4/4)

발생한 결함에 대한 재현
▪ 발생한 결함을 자동/선택 재현할 수 있는 기능으로 결함의 재현 여부에 따라 이상현상과 취약점으로 구분
▪ 재현은 이전 결함이 발생한 시점부터 현재 결함이 발생한 시점까지의 테스트 데이터를 재전송

검증수행 / 대기 재현 수행

N
재현 성공 ?

N
이상현상 등록 재현 결함 == 이상현상?

Y
Y
이전에 취약점 등록?

취약점 등록

결함 재현 프로세스 결함 재현 화면
05. 통합 및 검증

코드 통합 및 COVER 기반 검증
▪ 엔진 및 GUI 통합 후 COVER를 활용하여 요구사항 기반의 커버리지 측정 및 분석 진행

커버리지 항목 커버리지 수치 커버리지 항목 커버리지 수치


분기 커버리지 40.81% (329/806) 분기 커버리지 61.45% (644/1144)
함수 커버리지 69.28% (203/293) 함수 커버리지 79.24% (401/506)
함수호출 커버리지 66.80% (785/1175) 함수호출 커버리지 78.28% (1388/1773)

엔진 커버리지 현황 GUI 커버리지 현황


03. 결론

Software for safe world


01. 수행 결과(1/2)

도출된 요구사항 대비 개발 현황
▪ 도출된 요구사항 86건 중 71건 개발 완료
▪ 미개발 요구사항의 경우 대부분 결과 보고서 및 테스트 데이터 관련 부분으로 일부는 다음 버전에서 지원 예정

구분 요구사항 설명 도출 건수 개발 현황

프로젝트 및 데이터 관리 프로젝트 생성, 열기, 저장 및 테스트 데이터 열기 및 저장과 관련된 요구사항 21 15

테스트 설정 테스트 설정과 관련된 요구사항 8 6

테스트 수행 테스트 수행과 관련된 요구사항 19 18

데이터 생성 테스트를 위한 퍼즈 데이터 생성과 관련된 요구사항 6 6

결함 판단 테스트 수행 중 결함 판단과 관련된 요구사항 5 5

결함 재현 발생한 결함의 재현과 관련된 요구사항 7 6

테스트 결과 보고 테스트 결과 보고서 내보내기와 관련된 요구사항 18 13

도구 정보 및 라이선스 도구 버전 정보 및 라이선스와 관련된 요구사항 2 2

총 개수 86 71

도출된 요구사항 대비 개발 현황
01. 수행 결과(2/2)

종합 평가
▪ 초기 도출한 요구사항 대비 82.56% 개발 완료
▪ 미개발 항목의 경우 추가 검토 후 다음 버전에서 지원 예정
▪ 팀 내 개발 역량 확보
▪ 사내 타 개발팀과의 협업을 통한 팀 내 개발 역량 확보
▪ 개발 초기 인력 부족으로 인해 해외 외주 개발자와 협업을 진행하였으나, 팀 역량 확보를 통해 내재화 진행
▪ 이슈 대응 미흡으로 인한 RT 일정 지연 발생
▪ RT 초반, 경험 부족으로 인해 이슈 조치 기간이 증가하여 일정 지연 발생
▪ 5차 RT 이후 거의 지연 없이 진행 됨
02. 향후 계획

FUZZIT 1.0.3 (2023년 예정)


▪ CAN 인터페이스 변경
▪ 원활한 협업을 위해 PCAN에서 Vector 인터페이스로 변경 예정
▪ 차량용 Ethernet 통신 기능 추가
▪ Vector 인터페이스 기반 차량용 Ethernet 통신 기능 추가 예정
▪ 데이터 분석 기능 추가
▪ 검출된 결함을 분석할 수 있는 데이터 분석 기능 추가 예정
▪ 결과 보고서 기능 개선
▪ 퍼징 시험 결과 보고서에 대한 가독성 및 편의성 증대를 위한 기능 개선 예정
▪ UX/UI 개선
▪ 유저의 사용 환경을 고려한 GUI 유연성 개선 예정
Thank you

Software for safe world

You might also like