본문 바로가기
자동차 사이버보안/자동차 보안 플랫폼

자동차 사이버 보안: 퍼징 테스트(Fuzzing Test)이란 무엇인가?

by HYS Blog 2023. 5. 17.

안녕하세요,

자동차 개발의 흥미로운 세계에서 깊은 흔적을 남기고 있는 퍼징 테스트(Fuzzing Test)에 대해 알아볼까요? 🚗💨

퍼징 테스트는 C/C++ 및 임베디드 소프트웨어에서 버그를 찾는 인기 있는 테스트 방법으로,

특히 메모리 손상을 찾는 데 특히 효과적입니다.

이 테스트 접근법은

새로운 보안 표준을 준수하고, 시간을 절약하며, 비용을 줄이고, 소프트웨어 품질을 향상시키는 자동차 회사에 의해

점점 더 채택되고 있습니다.

이제 이 퍼징 테스트가 자동차 회사들에게 어떻게 도움이 되는지 살펴봅시다.

제가 참조한 글은 아래와 같습니다.

 

 

Integrating Fuzzing Into Automotive Security

Fuzzing has taken the automotive software industry by storm, Let's have a look at how integrating fuzzing helps automotive developers write better code.

www.code-intelligence.com

 

퍼징 테스트(Fuzzing Test)란?

 

퍼징 테스트는 개발자들이 테스트하려는 시스템에 부하를 주는 대량의 입력을 생성하는 데 도움이 됩니다.

이렇게 하면, 다른 테스트 방법으로는 찾기 어려운 버그를 찾아낼 수 있습니다.

또한, 힙 버퍼 오버플로우나 use-after-free와 같은 C/C++ 및 임베디드 코드에서 메모리 손상을 찾는 데

특히 효과적이라고 입증되었습니다.

개발 과정 중에 이러한 메모리 손상을 발견하면,

개발자들은 소프트웨어가 출시되기 전에 이를 해결할 수 있습니다.

이로 인해 보안 위반 및 충돌의 위험이 감소합니다.

이러한 이유로 구글과 마이크로소프트 같은 회사들은 오랫동안 퍼징 테스트를 채택해왔고,

이제 자동차 산업도 이를 따라잡고 있습니다.

 

퍼징 테스트는 자동차 회사가 ISO 21434를 준수하는 데 도움이 됩니다

 

CARIAD와 Woven Planet와 같은 자동차 회사들은

새로운 ISO 21434 표준이 이전 산업 표준보다 더 많은 소프트웨어 모듈에 대한 보안 테스트를 요구하기 때문에,

점점 더 퍼징 테스트를 채택하고 있습니다.

그러나 각 모듈에 대해 정기적으로 펜테스트를 실행하는 것은 비용과 시간이 많이 듭니다.

그래서, 자동차 제조업체들은 보안 테스트를 자동화하고,

지속적인 퍼징 테스트를 통해 펜테스트를 대체하는 방법을 찾고 있습니다.

결국, 모듈에 대해 퍼징 테스트를 실행하는 것이 전체 침투 테스트를 수행하는 것보다 더 저렴합니다.

또한, 퍼징은 개발 과정 초기에 버그를 식별하고 수정하는 데 도움이 되는 추가적인 장점을 가지고 있습니다.

이는 또한 비용과 시간을 절약하는 데 도움이 됩니다.

 

퍼징 테스트는 위협 요소 위험 평가를 자동화합니다

 

자동차 소프트웨어 산업에서는 모든 제품 개발 과정이 사이버 보안 공학 과정과 함께 이루어져야 합니다.

이 과정에서 가장 일반적으로 사용되는 방법론은 "위협 요소 위험 평가"(TARA)라고 알려져 있으며,

사이버 보안 위험을 식별하고, 평가하고, 우선 순위를 정하고, 통제하는 데 도움이 됩니다.

TARA는 완화 조치와 수용 가능한 위험 수준을 고려하므로

사이버 보안을 향상시키는 매우 실용적인 방법입니다.

그러나, 새로운 프로젝트에 대해 위협 요소 위험 평가(TARA)를 구현하는 것은

다양한 테스트 방법론과 프로세스를 포함해야 하므로 도전적일 수 있습니다:

 

기능 테스트: 현재 시스템의 기능 평가

사이버 보안 사양: 존재하는 사양 결정 및 추가 필요 사양

취약점 스캔: 알려진 취약점 데이터베이스에 기반한 제품 내의 모든 취약점 발견

침투 테스트: 전문가들이 제품을 수동으로 살펴보고 이용 가능한 모든 포인트를 테스트합니다.

CI/CD 시스템에 퍼징 테스트 도구를 통합하면 이러한 필요한 테스트 방법 대부분을 자동화할 수 있습니다.

예를 들어, CI Fuzz와 같은 엔터프라이즈 퍼징 솔루션을 사용하면

개발자들이 기능 버스와 보안 문제를 지속적으로 스캔하고 이러한 발견을 분류할 수 있습니다

이러한 엔터프라이즈 솔루션은 일반적으로 필요한 모든 정보를 포함하는 표준화된 버그 리포트를 제공합니다.

 

자동차 개발자들은 퍼징을 좋아합니다!

 

이 글을 마무리하며,

퍼징 테스트가 자동차 개발자들의 주요 고충점을 해결한다는 것을 확인할 수 있습니다:

퍼징 테스트는 C/C++ 및 임베디드 소프트웨어에서 버그를 찾습니다.

퍼징 테스트는 자동차 개발자들이 ISO 21434를 준수하고 위협 요소 위험 평가(TARA)를 자동화하는 데 도움이 됩니다.

퍼징 테스트는 침투 테스트를 보완하며, 자동차 개발자들이 코드에 대한 지속적인 보안 테스트를 실행하면서

개발 속도를 유지할 수 있게 해줍니다.

 

결론

자동차 산업에서 일하신다면,

Continental, Bosch, ZF, CARIAD와 같은 회사들이

퍼징 테스트를 성공적으로 구현한 베스트 프랙티스와 예제를 찾아보는 것이 가치가 있습니다. I

SO 21434와 같은 산업 규범을 준수하는 데 어떻게 자동화된 퍼징 테스트가 도움이 될 수 있는지 더 알아보려면,

ISO 21434 준수 체크리스트의 10단계를 확인해 보세요.