2022년 07월호 지면기사
/ 글 | 한상민 기자_han@autoelectronics.co.kr
좌측부터 유지수 사원, 이상은 차장, 심상규 전무, 진승환 이사
자동차는 머신러닝 등 AI를 통한 첨단 기능-소프트웨어 중심, 제어의 중앙집중화와 함께 내외부 네트워크를 통해 모든 것이 세상과 연결되고 있다. 엔터테인먼트, 모빌리티 서비스, 전기-자율주행까지 모두에 오픈소스가 사용되고 그 보안 취약성은 갈수록 심각해지고 있다. 전기-자율주행 달성을 위한, 자유로운 공간이자 통로인 소프트웨어 정의 자동차란 로비에서 사이버보안 스페셜리스트 아우토크립트를 만났다.
글 | 한상민 기자_han@autoelectronics.co.kr
“로비로 오세요!”
토종 자동차 사이버보안 전문기업 아우토크립트(AUTOCRYPT) 방문 하루 전. 수화기 넘어 이 회사 CTO인 심상규 전무가 이렇게 말했다. 일정상 점심시간을 피했고, 대단한 ‘스파이게임’이 있을 것도, 철통같은 보안이 요구되는 빌딩도 아닐 텐데 ‘굳이 로비에서 보자고 했을까?’란 의문이 들었다.
하지만 이것은 아우토크립트가 위치한 여의도 세우빌딩을 찾으면서 쉽게 풀렸다. 2019년 펜타시큐리티로부터 분사하면서 2개 층을 사용하던 회사는 글로벌 자동차 사이버보안 규제 및 대응책 요구와 함께 인력을 50명에서 200명으로, 사무실을 3개(6, 7, 8) 층도 모자라 1층 로비 절반을 사무실로 변경해 사용했기 때문이었다.
UNECE WP.29는 2020년 6월 총회서 자동차 사이버보안 법규 UN Regulation R155(Cyber Security and Cyber Security Management System, CSMS) “차량 사이버보안 관리체계”를 채택했고, 제조사 단위의 자동차 사이버보안 조직, R&R, 차량 수명주기에 대한 사이버보안 프로세스, 차종별 보안기술 및 평가결과 인증을 요구하고 있다. 이 규제는 오는 7월부터 신차에, 2024년 7월부터는 모든 차량에 적용된다. 향후 OEM은 CSMS 인증 없이 UNECE 대상국 및 협약국에 차량을 판매할 수 없게 되는 것이다.
자동차의 기능, 시스템들은 내부 네트워크를 통해 서로 연결되고 점점 더 많은 다른 차량, 인프라, 외부 인터넷과 연결되고 있다. 이는 차량의 모든 장치가 사이버보안 위협에 노출된다는 뜻이다. 이뿐만 아니라, 머신러닝 등 AI를 통한 첨단 운전자 지원 시스템(ADAS), 자율주행을 비롯한 거의 모든 기능과 이의 고도화가 오픈소스 코드를 통해 이뤄지면서 보안 취약성은 심각한 수준에 이르고 있다.
“윈도를 여닫는 ECU에는 오픈소스가 들어갈 여지가 없지만, ADAS와 IVI에는 많은 오픈소스가 들어갈 수밖에 없습니다. 예를 들어 openCV는 이미지 분석처리에 가장 많이 쓰이는 라이브러리입니다. 멀티미디어도 마찬가지이지만, 안전이 핵심인 자동차에서 머신러닝이 기본기술처럼 활용되고 기반 코드들이 모두 오픈소스입니다.” 심 전무가 우려했다.
그러니까, 이 미팅은 전기-자율주행 달성을 위한, 모두에게 자유로운 공간이자 통로인 소프트웨어 정의 자동차란 로비에서 아우토크립트를 만난 것이다.
2019년 펜타시큐리티로부터 분사하면서 2개 층을 사용하던 회사는 글로벌 자동차 사이버보안 규제 및 대응책 요구와 함께 인력을 50명에서 200명으로, 사무실을 3개(6, 7, 8) 층도 모자라 1층 로비의 절반을 사무실로 변경해 사용하고 있다.
두 가지 위협
“중앙화되지 않은 현재의 차량에서도 오픈소스의 천국인 IVI 시스템은 물론 ADAS에 오픈소스가 널리 사용되면서 보안 취약성이 커지고 있습니다. 이것을 아우토크립트의 고객이 사전에 점검해 볼 수 있도록 해주자는 것입니다. AUTOCRYPT Security Analyzer는 전체 차량 아키텍처와 부품, 기능별 아키텍처를 만들 때 생각할 수 있는 보안 개념이 아니라, 실제로 구현할 때, 오픈소스 코드를 가져와 활용할 때 묻어오는 보안 문제를 잡는 솔루션입니다.” 진승환 이사가 설명했다.
회의실에서, 아우토크립트의 제품 기획, 패키징, 판매를 담당하는 솔루션기획팀은 야심 찬 새 솔루션 ‘AUTOCRYPT Security Analyzer’에 대해 설명하기 시작했다.
AUTOCRYPT Security Analyzer는 기업들이 WP.29 차량 사이버보안 관리체계에 대응할 수 있도록 돕는 아우토크립트의 여러 솔루션 중 하나로, 소프트웨어에 ‘오픈소스’ 컴포넌트 구성이 어떻게 돼 있는지, 해당 오픈소스 컴포넌트의 보안 취약성을 찾아 자동으로 분석해주는 툴이다.
우선, 진 이사에 따르면 오픈소스 사용 시 발생하는 문제는 크게 두 가지다. ▶첫 번째는 라이센스 리스크다.
“전반적으로 사람들은 오픈소스라고 하면 프리(free)로 알고 있지만, 실제로는 오픈소스 프로젝트나 컴포넌트에 따라 라이센스가 매우 복잡하고 다릅니다. 이를 간과하고 사용한다면 회사 차원의 큰 피해가 발생합니다.”
예를 들어, 2008년 LG CNS는 GS 인증 제품을 구매했는데, 판매사의 라이센스 위반으로 모두 고소당하며 대표가 체포됐다. 2018년 한컴은 듀얼 라이센스(커머셜 사용 시 다른 조약) 미인지로 23억 원을 손해배상했다. 삼성전자도 2018년경 리눅스 커널의 코드 및 BusyBox 사용 시 라이센스 위반으로 손해배상 판결을 받은 바 있다. 이런 심각성에도 불구하고 개발자들이 법률 항목까지 꼼꼼하게 체크하기는 쉽지 않은 실정이다.
▶두 번째는 아우토크립트의 전문 분야인 ‘보안 취약성’이다. 오픈소스는 잠재 보안 취약성이 매우 높다. 예를 들어, IT 업계에서는 이미 오픈소스에서 찾아 공개된 14만 개 이상의 CVE(Common Vulnerabilities and Exposures)를 관리하고 있지만 매일 50개 이상이 새로 발견되고 있다. 우리나라의 한 해 해킹은 3,000건 이상이지만 검거율은 매우 낮다(2020년 17.3%). 대부분 해킹 발생 원인은 오래된 오픈소스 사용과 노출된 보안 취약성을 해결하지 않은 제품 판매다. 이런 이유로 발생한 자동차 산업의 피해 사례로는, 최근 혼다의 사내 네트워크 시스템이 사이버 공격을 받아 대규모 장애를 일으켜 미국, 터키, 인도 등 11개 공장의 생산이 중단된 바 있다.
AUTOCRYPT Security Analyzer 제품 구조
오픈소스 찾기
팀은 AUTOCRYPT Security Analyzer의 주요 기능과 동작 설명 이전에, 어떻게 보면 AUTOCRYPT Security Analyzer의 핵심기술 중 하나인 효율적인 ‘오픈소스 찾기’에 대해 설명했다.
개발자의 개발과정에서 오픈소스를 사용하는 방식은 크게 세 가지인데, 이를 분석하는 것은 매우 중요한 반면, 작업은 그리 쉬운 것이 아니다. 게다가 이는 앞서 언급한 ‘라이센스 리스크’, ‘보안 취약성’ 인지와 직결된다.
개발자는 라이브러리를 통째로 카피해(exact) 사용하거나 이를 일부 수정해 사용할 수 있다. 또 함수만 호출해 쓰는 경우(dependency)도 있다. 라이브러리에서 일부분만 카피해 사용하고, 이것을 수정하기도 한다. 개발자가 이런 다양한 양상으로 오픈소스를 사용하기 때문에 어떤 오픈소스가 어디에 어떻게 사용됐는지 분석하기는 쉽지 않다.
“오픈소스의 안전한 공급망 관리를 위한 SBOM(Software Bill of Materials), 소프트웨어 구성 목록이 요구되고 있습니다. 미국 바이든 행정부는 보안 리스크 관리를 철저히 하기 위해 미 정부에 소프트웨어를 판매하는데 SBOM 제출을 요구하는데, 이처럼 전 세계적인 정부, 산업계가 보안을 이유로 이런 조건을 요구하게 될 것입니다.” 심 전무가 말했다.
이에 따른 AUTOCRYPT Security Analyzer의 주요 기능과 동작은 크게 두 가지다.
▶첫째, AUTOCRYPT Security Analyzer는 보안 데이터(VDB)를 축적하고 관리한다. 오픈소스 컴포넌트를 수집, 자체 취약점을 등록하고, 알려진 취약점 및 머신러닝 기반 비공개 패치를 수집 관리한다. ▶둘째, 분석 대상이 소스 코드이기 때문에, 주요 기능인 스캐너를 이용해 소스 코드를 분석, 스캔, 목록화하고, 특허기술을 활용해 오픈소스 사용 방식까지 찾아내 이것을 보안 취약점 컴포넌트와 1대1 비교 검토한다.
“SBOM에 있어 중요 항목인 사용된 오픈소스 목록을 먼저 구성하고, 보안 취약점을 편집합니다. 이미 보안 취약점들이 1:1로 비교되고, 위치 등이 기록됐기 때문에 보안 취약점들을 다시 DB에서 끌고 옵니다. 이렇게 되면 실질적으로 SBOM, 여기에 해당하는 라이센스 리스크 보고, 그리고 보안 취약성 등 3가지를 리포트합니다.” 진 이사가 설명했다.
오픈소스 탐지 방식 비교
함수 단위 미세검출
AUTOCRYPT Security Analyzer는 4가지 검출 방식을 활용해 다양한 형태의 오픈소스 보안 취약점을 검출한다. 특히, 다른 솔루션과 달리 함수 단위까지 미세분석하는, 오픈소스 일부만 카피해 사용해도 검출해 낼 수 있는 ‘특허기술’로 오탐 및 과탐 발생률을 제로 수준으로 낮춘다.
“대부분 경쟁사 제품은 오픈소스를 컴포넌트나 라이브러리 레벨에서 사용하는 경우(함수만 호출해 쓰거나)에 대응하고 있지만, 저희는 파일은 물론 Function 레벨까지 합니다. 이 특허기술은 분석대상 오픈소스 목록에서 모든 소스를 분석해 파일 뿐만 아니라 함수, Function 단위까지 유니크한 시그니처 리스트를 만들어 놓습니다. 그리고 분석해야 하는 소스코드 역시 파일 및 함수 단위까지 시그니처를 추출해 비교 분석함으로써 같은 함수가 어디에 쓰였는지를 찾는 것입니다.”
아우토크립트는 그들의 기술이 얼마나 우월한지 보여주는 실제 벤치마크 테스트 데이터를 보여줬다. 결과는 경쟁사 대비 2~3배 정확했다.
올 2월 KAIST 사이버보안연구 센터가 진행한 성능 평가 테스트는, GitHub 최상위 랭크 중 자주 사용되는 7개 언어로 생성된 오픈소스 프로젝트 10개를 선정해 총 4,258개의 SBOM 구성요소와 총 352개 CVE 대상 보안 취약성 탐지 결과를 낸 것이다. AUTOCRYPT Security Analyzer를 비롯해 4개 제품을 테스트했는데, AUTOCRYPT Security Analyzer는 경쟁제품인 S사의 B제품보다 SBOM 탐지율 3배, 오탐율에서 3배 가까이 뛰어난 성능을 보였다. 보안 취약점 탐지에서는 B제품 대비 CVE 탐지율이 2배 이상 좋았고 오탐율은 5배 이상 뛰어났다.
심 전무는 “S사 B제품은 시장에서 마켓셰어가 80%나 됩니다. 하지만 SBOM 테스트에서 4,258개가 탐지돼야 하는데, Security Analyzer가 4,177개(정탐수 4,152개)를 탐지하는 동안 B제품은 1,342개(정탐수 1,299개) 밖에 탐지하지 못했습니다. 이런 차이는 AUTOCRYPT Security Analyzer가 FUNCTION 단위까지 탐지하기 때문입니다. 저희 제품의 탐지율이 98%인 동안 B제품의 탐지율은 불과 31%에 그쳤습니다”라고 말했다.
352개의 CVE에 대한 탐지에서도, B제품이 114개 탐지(정탐수 98개)로 탐지율 28%, 오탐율 14%를 기록하는 동안, Security Analyzer는 245개 탐지(정탐수 237개)로 탐지율 67%, 오탐율 3%를 기록했다.
“CVE에서도 SBOM 탐지와 비슷한 결과가 나올 수밖에 없습니다. 다만 보안 취약성에서 SBOM과 같이 98% 이상이 나왔으면 속이 시원했을 것인데 그렇지 못해 아쉽습니다. 이 부분은 오픈소스들이 업그레이드되는 것까지 계속 모니터링해 업데이트해야 하는데, 4,000만 개 정도 되는 컴포넌트들을 DB로 관리하다가 보니 타임 갭 때문에 생기는 오차로 볼 수 있습니다.” 진 이사가 설명했다.
D E M O
1 유지수 씨가 AUTOCRYPT Security Analyzer를 데모했다.
스캐너를 이용해 ‘openCV’를 분석한 결과 요약이 상단에 표시됐다. 멀티팩터 컴포넌트 수에 함수, 파일, 라이브러리의 세 가지 레벨 분석방식을 적용했다. 결과적으로 함수 카피는 없고 63개의 개별 파일이 오픈소스와 동일하게 사용됐으며, 21개 라이브러리가 사용됐음이 표시됐다. 코드 레벨 취약점은 92개였는데, 함수 레벨에서 90개, 파일에서 2개가 보고됐다. 적용된 전체 라이센스는 64개, 법적책임이 요구되는 21개 라이센스가 사용됐다. 인터페이스 하단부에는 1단계 소프트웨어 맵, 2단계 SBOM, 3단계 소프트웨어 리스크가 표시됐다. 1단계는 통째로 개발한 소프트웨어 구조를 분석해 코드가 어떻게 구성돼 있는지, 어떤 오픈소스가 어떻게 사용되고 포함됐는지 보여줬다. 2단계 SBOM에서는 개발자가 사전에 관리하고 인지하고 있던 모듈 정보와 얼마나 일치하는지, 3단계에서는 인지 결과에서 어떤 보안 취약점이 포함돼 있고, 그것을 위험도 순으로 분류해 보여줬다.
2 Security Analyzer는 취약점이 발견됐을 때 패치에 대한 정보도 제공한다. 취약점 ID는 CVE에서 관리하는 일련번호를 따른다. 분석결과 어떤 취약점이 포함돼 있는지, 위험도가 높은 것을 하이라이트해 이것을 개발자가 추적하고 고칠 수 있는지 보여줬다. 이때 상세 취약 인터페이스로 들어가면 함수에서 검출된 취약점들, 이 문제를 해결할 패치, 패치 우선순위를 안내한다.
3 리스크가 높은 붉은 색으로 표시된 라이센스(Protective)를 클릭하면, 해당 오픈소스를 사용할 경우 모든 소스 코드를 공개해야 한다는 ‘배포 시 소스코드 제공의무와 범위’와 같은 라이선스 요구사항도 알 수 있다.
퍼징테스트
자동차에서 소프트웨어 하나를 개발 완료해 차에 탑재, 양산하고, 이 소프트웨어에서 특정 시점에 새로운 취약점이 발견된다면 개발자들이 이를 쉽게 알아채고 찾아내 대응하기 힘들다. 특히 사용하는 오픈소스가 많다면 이런 것을 차량 라이프사이클 내내 일일이 쫓아가면서 해내기가 더욱 어렵다. 하지만 AUTOCRYPT Security Analyzer를 이용하면 개발자들은 언제든 보안 이슈를 받을 수 있고 해결책을 받아 OTA를 통해 신속히 패치할 수 있다.
미팅을 마칠 즈음, 심 전무는 이런 차원, 차량 라이프사이클의 사이버보안 대응을 위해 아우토크립트가 곧 ‘퍼징 테스트’ 툴을 출시할 것이라고 귀띔했다.
퍼징 기법은 프로그램에 유효한, 예상치 않은, 무작위 데이터를 입력해 이후의 갑작스런 이상 동작 등 목표물의 약점을 찾는 방법이다. 기존 IT 환경의 퍼징 툴도 있지만, 이는 자동차 환경에서 제약을 받는다. 예를 들어 자동차와 IT는 통신 프로토콜, 데이터 사용 방식, 소프트웨어가 다르다.
“퍼징 툴을 개발한 것은 고객들로부터 퍼징 테스트 의뢰를 받아왔기 때문입니다. 머신러닝도 그렇지만 자동차에서는 오픈소스만 적용하면 되는 것이 아니라, 도메인 지식과 관련 데이터를 어떻게 프리-프로세싱할 것인가에 따라 결과가 달라지기 때문에 퍼징도 단지 툴을 가져다가 연결만 해준다고 되는 것이 아닙니다. 결국 자동차에 대한 도메인 이해도와 퍼징에 대한 기술적 경험, 역량이 있어야 하는데 그런 회사는 별로 없습니다.” 심 전무가 말했다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>