ISO/SAE 21434
사이버 보안 인증 과정에서 중요한 점은, 이 인증이 Tier 1, Tier 2, Tier 3 공급업체가 직접 받는 것이 아니라 주로 OEM(Original Equipment Manufacturer) 기업에 의해 이루어진다는 것입니다.
이는 Tier 1, Tier 2, Tier 3 공급업체들이 OEM 기업이 제공하는 방법에 따라 테스트를 수행하게 된다는 의미입니다.
문서 ISO/SAE 21434에 명시된 바와 같이, 사이버 보안 인터페이스 협약에 따라 Tier 1 공급업체는 OEM 기업의 인증을 받기 위해 필요한 사항들에 대해 협의하고 지원합니다.
이와 유사하게, Tier 2는 Tier 1을, Tier 3은 Tier 2를 지원하게 됩니다.
결국, 인증의 주체가 되는 OEM 기업이 사이버 보안 인증의 전체적인 판단을 내리고, 어떠한 검증 방법론을 적용할지 결정하게 됩니다. 이러한 구조는 사이버 보안 인증 과정에서 각 업체의 역할과 책임을 명확히 하는 데 중요한 역할을 합니다.
ISO/SAE 21434 원문을 살펴보면, 사이버 보안은 다양한 검증 절차를 포함합니다. 이 중에서도 'Secure Coding'은 소프트웨어 개발 과정에서 보안을 최우선으로 고려하여 안전하게 코드를 작성하는 것을 의미합니다. 또한, '보안약점점검'을 통해 소프트웨어의 알려진 취약점을 확인하고 대응합니다.
'Vulnerability Scanning', 즉 '취약점 스캐닝'은 시스템 내의 보안 취약점을 자동으로 탐지하는 절차입니다. 마지막으로, '퍼징테스트'는 아직 알려지지 않은 취약점을 발견하기 위해 수행되며, 이는 보안 검증 과정에서 중요한 부분을 차지합니다.
보안약점 & 보안취약점
효율적인 검증 방법을 논하기에 앞서, 보안 취약점의 분류에 대한 이해가 선행되어야 합니다. 이를 위해 '보안 약점'과 '보안 취약점'에 대해 먼저 설명드리겠습니다.
ISO21434에 따르면, '약점(Weakness)'은 이미 알려진 소프트웨어 버그나 의도치 않은 동작들을 의미합니다. 반면에, '보안 취약점'은 이러한 약점 중에서도 공격자가 이용할 수 있는 부분을 가리킵니다.
간단히 말해서, 차량 내부의 오류로 인해 발생하는 의도치 않은 동작은 '약점'으로 분류되며, 외부 공격에 의해 유발되는 오류는 '보안 취약점'으로 분류됩니다.
중요한 점은, 보안 측면에서 '약점(Weakness)'이라고 할지라도, 이는 사실상 품질 관리의 일부분입니다.
즉, 버그를 수정하고 비정상적인 동작을 해결하는 과정이 바로 그것입니다.
따라서, 제 생각에는 '약점'과 '보안 취약점'을 구분하는 주요 요소는 검증 과정에서의 악의적 의도의 유무가 될 수 있습니다.
즉, 약점이든 취약점이든 기본적인 문제는 동일하지만, 그것이 공격자에 의해 악용될 수 있는지 여부가 핵심 차이점이라고 볼 수 있습니다.
이전까지는 주로 네트워크나 시스템의 보안 취약점을 노리는 공격들이 많았습니다.
그러나 이제 네트워크 및 시스템 보안이 점차 강화되면서 공격자들의 전략도 진화하고 있습니다.
최근에는 어플리케이션 자체를 직접 타겟으로 하는 공격 방식이 증가하고 있습니다. 이에 따라, 우리는 이제 어플리케이션에 대한 보안 대응 전략을 강화할 필요가 있습니다.
알려지지 않은 보안취약점 VS 알려진 보안취약점
보안 취약점을 이해하는 데 있어 주목해야 할 세 가지 요소가 있습니다. 첫 번째는 전 세계 어딘가의 누군가가 새로운 보안 취약점을 발견하는 경우입니다. 이 발견자가 만약 블랙 해커라면, 그가 이용하는 공격을 '제로데이 어택'이라고 합니다. 이는 아직 널리 알려지지 않은 새로운 취약점을 이용한 공격을 의미합니다. 이러한 상황은 '알려지지 않은 보안 취약점'으로 분류됩니다.
두 번째는 이 취약점이 발견되고 그에 대한 대응 방안이 마련된 이후의 상황으로, 이를 '알려진 보안 취약점'이라고 합니다. 당연히 취약점이 무엇인지 모르는 상태와, 알고 있으며 대처 방법이 있는 상태에서의 보안 검증 방법은 서로 다릅니다.
마지막으로, 제로데이 공격에 대한 검증이 중요해 보일 수 있지만, 실제로는 알려진 취약점에 대한 대응이 더 중요할 수 있습니다. 이 두 유형의 취약점을 명확하게 구분하는 것은 보안 전략을 수립하는 데 있어 핵심적인 요소입니다.
최근에는 오픈소스 소프트웨어의 사용이 증가하고 있습니다.
오픈소스의 특성상, 소스 코드가 누구에게나 공개되어 있기 때문에 해커들도 이를 쉽게 접근할 수 있습니다.
이는 오픈소스에 포함된 보안 취약점들도 해커들에게 공개된다는 것을 의미합니다.
따라서, 알려진 보안 취약점이 있는 오픈소스 소프트웨어는 해커들에 의해 더 쉽게 공격을 당할 수 있는 위험이 있습니다.
소프트웨어 공급망의 복잡성 역시 보안 취약점이 증가하는 또 다른 원인입니다.
이는 오픈소스의 문제와 유사하게 이해할 수 있습니다.
현대의 소프트웨어 개발은 여러 회사들이 협력하여 다양한 과정을 거치며 진행됩니다.
이 과정에서 해커들은 공급망의 여러 단계를 이용하여 공격을 시도할 수 있습니다.
예를 들어, 자동차 산업에서는 OEM뿐만 아니라 초기 공급 단계인 티어1, 티어2, 티어3 또는 오픈소스에 취약점을 심어 최종 제품까지 이를 전달시킬 수 있습니다.
이로 인해, 직접 개발하지 않은 소프트웨어에 대한 검증이 필수적으로 요구되는 상황입니다.
Fuzzing Test
마지막으로, '퍼징 테스트'에 대해 말씀드리겠습니다.
퍼징 테스트란, 간단히 말해 비정상적이고 예외적이며 무작위적인 입력들을 대량으로 시험해보는 과정입니다.
해커들이 자주 사용하는 이 방법은 시스템이 어떤 특정한 입력에 대해 적절히 대응하지 못하는 취약점을 찾아내기 위한 것입니다. 이러한 접근 방식을 체계화한 것이 바로 퍼징 테스트입니다.
일반적으로 랜덤 테스트로 오해될 수 있지만, 실제로는 단순하고 무작위적인 취약점 탐색이 결코 쉽지 않습니다.
이에 따라, 다양한 퍼징 기법들이 개발되어 최대한 효율적으로 취약점을 찾을 수 있도록 발전하고 있습니다.
퍼징 테스트는 품질 관리 분야에서는 비교적 새로운 접근 방식이며, 따라서 다소 생소하게 느껴질 수 있습니다.
기본적으로, 기능 시험은 제품이나 소프트웨어가 정상적인 입력에 대해 정상적으로 작동하는지를 검증하는 과정입니다.
반면, 퍼징 테스트는 비정상적인 입력에 대한 소프트웨어의 반응을 테스트하여 비정상적 동작을 찾아내는 것에 초점을 맞춥니다.
기능 시험과의 주요 차이점은 범위의 제한성입니다.
기능 시험의 경우, 제품의 기능이 10개라면 테스트 케이스의 개수가 상대적으로 유한합니다.
그러나 퍼징 테스트는 비정상 입력을 다루기 때문에 이론적으로 테스트 케이스가 무한대로 증가할 수 있습니다.
이러한 상황에서 최대한 효율적으로 테스트를 진행하는 것이 퍼징 테스트의 핵심이며, 이를 통해 보안 측면에서의 어려움을 극복하는 데 중요한 역할을 합니다.
'자동차' 카테고리의 다른 글
AUTOSAR Architecture (0) | 2024.05.27 |
---|---|
SENT 통신 (0) | 2024.05.27 |
SDV (2) | 2024.02.27 |
ECU (1) | 2024.02.06 |
SILS, HILS (0) | 2024.01.05 |