상단영역

본문영역

자동차회사=소프트웨어회사?

지금도 차량 1대에 100개 정도의 ECU와 1억 줄 정도의 코드가 탑재된다. 고가의 차량일수록 탑재된 전장부품의 수가 많고 더 많은 코드를 넣었다고 자랑 아닌 자랑을 하기도 한다. 하지만 통계적으로만 보자면 상업용 소프트웨어는 일반적으로 코드 1,000줄에 7개의 버그를 가지고 있다. 그렇게 보자면 자동차에는 10만 개의 버그가 있다고 가정할 수 있다. 지금도 끊임없이 발생하는 원인을 알 수 없는 온갖 사고들이 이와 무관하지 않을 것이다.

자동차회사 기술자들과 자동차보안 관련 회의를 할 때, 예전에 비해 분위기가 많이 달라졌음을 느낀다. 중공업 특유의 하드함이 접근을 거부하는 높은 벽 같아 왠지 답답했는데, 요즘은 많이 소프트해진 느낌이다. "자동차회사는 소프트웨어 개발사" 선언 전후로 확실히 달라진 것 같으니, 말이라는 것이 사람의 마음에 미치는 영향은 정말 크구나, 새삼 놀란다. 그리고 오늘날 자동차의 기술적 성질을 볼 때 이는 매우 긍정적인 변화라 생각된다.

그런데 대화가 원론적 수준에서 실무적 수준으로 넘어갈 때쯤, 확실한 변화에 도달하기엔 아직은 갈 길이 좀 멀구나 싶은 생각도 든다. 머리로는 '그래, 소프트웨어야' 라고 생각을 고쳤다 하더라도 몸에 달라붙은 버릇을 바꾸기는 여간 쉬운 일이 아닌가 보다. 여전히 자동차산업은 소프트웨어가 아니라 하드웨어 조립산업으로 인식된다. 그러니 어떤 문제에 대해서든 조립의 단위인 부품 위주로 사고하려는 버릇이 남아 있다. 자동차보안 문제 또한 어떤 부품의 어떤 기능 정도로 생각하는 경향이 있다. 소프트웨어적으로 볼 때 이는 상당히 잘못된 인식이다. 이에, 현장에서 자주 듣는 질문에 답함으로써 '자동차=소프트웨어' 등식을 다시 한 번 생각해 보자.

"자동차 부품에 어떤 보안 기능을 탑재해야 하나?"

원론적으로 말하자면, 보안이란 '기능'이 아니다. 소프트웨어 세계에서는 보안을 필요에 따라 추가하는 부가적 기능으로 보지 않는다. 언제나 보안을 고려해 시스템을 '설계'해야 한다. 보안을 무시하는 개발자는 결국 큰 문제를 일으키고 만다. 결정적으로, 보안과 관련된 기능이 있다고 해서 그 소프트웨어가 저절로 안전해지는 것도 아니다. 총체적으로 안전한 시스템을 설계하는 것이 보안적으로 가장 중요한 일이다.

실무적으로 보더라도, 보안 기능이 필요한 부품이 있고 아닌 부품이 있다. 크게 자동차 '내부(Internal)' 통신 영역과 '외부(External)' 통신 영역으로 나눠 보자면, 내부통신 영역에 해당하는 부품들은 대체로 특별한 보안 기능을 따로 추가할 필요가 없다. 주로 CAN(Controller Area Network)으로 통신하며 자동차 주행에 관련된 각종 장치들을 제어하는 내부 ECU(Electronic Control Unit)들이 여기에 해당한다. 그것들은 보안 기능 추가가 아니라 외부의 위험으로부터의 '격리'가 필요한 것들이다. 보안 기능은 CCU(Communication Control Unit)를 통해 자동차 외부와 통신하는 영역에 탑재하고 철저하게 관리하는 것이 일반적으로 적절한 설계다. 외부통신과 직접 관계되는 텔레매틱스(Telematics)나 인포테인먼트(Infotainment) 등이 여기에 해당한다.

특히 ECU 중 구동장치나 제동장치 등 자동차의 주행과 직접 관계되는 부품들은 애초에 주어진 바 각각의 목적에만 충실한 단순 사칙연산만을 수행하는 것이 소프트웨어적으로 오히려 안전하다. 단순해야 할 것은 단순해야 한다는 뜻이다. 안전하게 설계된 시스템이라면, 미국의 자동차 보안 및 사생활 보호 'SPY CAR(The Security and Privacy in Your Car)' 법안에서도 언급하듯 보안이 꼭 필요한 영역과 보안이 불필요한 영역을 안전하게 '분리'한 시스템이라면 MCU 등의 부품에는 암호화나 키 관리 등 보안 기능을 따로 탑재할 필요가 없다. 오히려 괜한 복잡성 때문에 예기치 못한 오작동 등 위험성만 높아질 뿐이다.

"커넥티드 카 때문에 모든 부품에 보안 기능을 탑재해야 한다던데?"

아니, 오히려 안전을 위해서라도 피해야 할 일이다. '커넥티드 카'란 무선통신을 통해 내비게이션, 원격제어, 인포테인먼트, 자율주행 등의 서비스로써 자동차를 단순한 운송수단을 넘어 정보통신기기로 변화하게 만드는 기술을 통칭하는 개념이다. 앞서 말했듯 대체로 자동차 외부통신에 관계된 문제다. 내부통신 영역과 분리해 생각해야 한다.

간단히 말하자면, 커넥티드 카 보안이란 자동차 내부의 ECU 간의 통신을 외부통신으로부터 격리함으로써 안전하게 지키는 일이다. 즉, 자동차 외부에서 내부 장치를 임의로 조작할 수 없어야 한다는 뜻이다. 그렇기 때문에 커넥티드 카 때문에 "모든" 부품에 보안 기능이 탑재되어야 한다는 말은 별 의미가 없는 말이다. 정확히 분석된 보안적 필요에 따라 꼭 필요한 보안 기능을 꼭 필요한 적재적소에 적절하게 적용하는 일, 즉 안전한 시스템 설계야말로 자동차의 소프트웨어적 무결성을 이루는 올바른 방법이다.

"그렇다면 왜들 그리 보안부품을 사야 한다고 말하는가?"

일단은 자동차보안 기술 전반에 대한 이해 부족 때문이라고 생각되고, 부품기업들의 사업 전략적 필요 또한 의심해 볼 수 있겠다. 전장(電裝, E/E, Electrical/Electronic Components) 산업이 자동차 산업의 미래라는 말은 조금도 과장이 아니다. 자동차 제조원가에서 전장부품이 차지하는 비율은 현재 35% 정도에서 곧 50%를 넘으리라 예상된다. 그러니 이를 두고 전 세계적으로 경쟁이 아주 치열하다. 해당 시장의 기존 강자들뿐 아니라 후발주자인 세계적 전자기업들이 막강한 자본력을 무기 삼아 점점 더 커지는 전장 시장을 노리고 덤벼든다. 이를테면 한국의 '삼성전자'가 미국의 오디오 전문기업 '하만(Harman)'을 80억 달러에 인수한 것도 전장 사업의 미래 가치 때문이다. 그러니 자동차회사 입장에서도 그런 부품회사들에게 사업적으로 종속되지 않기 위해서라도 전장부품을 직접 생산하는 계획을 세울 수밖에 없는 처지다. 그렇기 때문에 기존 제품들과 다른 기술적 특수성이 과장되는 것일 뿐, 그 특수성이 실제로 필요한 것인지와는 전혀 무관한 이야기다. 자동차보안 기술적으로 보더라도, 불필요한 연산을 괜히 낭비할 뿐이다.

"커넥티드 카 시대를 대비해 자동차회사는 어떤 일을 해야 하나?"

무조건 보안이다. 즉, 안전한 시스템의 설계다. 10년 뒤 가장 중요한 IT 기술은 자동차보안일 거라 전망한다. 소셜 네트워크, 클라우드 컴퓨팅, 빅 데이터, IoT 등 온갖 요란한 기술들보다 자동차보안이 훨씬 더 중요하다. 다른 것들에 비해 자동차보안은 사람의 목숨이 걸려 있는 일이기 때문이다. 천 번 만 번 잘했다더라도 혹시 단 한 번 잘못하면 기업의 존망까지 위태로워질 수 있다. 커넥티드 카는 하드웨어적으로 그리고 소프트웨어적으로 일단 안전해야 한다. 편의성 등 여타 성질들은 모두 다 안전성 한참 뒤에 놓인다.

그리고, 소프트웨어적 무결성에 도전해야 한다. 과거 자동차는 '기계장치'였지만 미래 자동차는 '전자장치'다. 지금도 차량 1대에 100개 정도의 ECU와 1억 줄 정도의 코드가 탑재된다. 고가의 차량일수록 탑재된 전장부품의 수가 많고 더 많은 코드를 넣었다고 자랑 아닌 자랑을 하기도 한다. 하지만 통계적으로만 보자면 상업용 소프트웨어는 일반적으로 코드 1,000줄에 7개의 버그를 가지고 있다. 그렇게 보자면 자동차에는 10만 개의 버그가 있다고 가정할 수 있다. 지금도 끊임없이 발생하는 원인을 알 수 없는 온갖 사고들이 이와 무관하지 않을 것이다. 그러니 소프트웨어 개발사가 그러하듯, 소프트웨어로서의 퀄리티 관리와 프로그램의 동작에는 변화 없이 프로그램 내부의 구조를 개선하는 리팩토링 등 사후 확인 작업을 통해 소프트웨어적 최적화에 집중할 것을 권한다. 그런 일들을 제대로 해내기만 해도 현재 원인 불명의 문제들이 대폭 해소되리라 예상한다.

그리고 거듭 강조하는 바, 기존의 하드웨어 조립산업의 패러다임으로부터 벗어나야 한다. 자동차회사는 소프트웨어 개발사로서 자동차를 '안전한 시스템'으로 '설계'하는 일에 집중해야 한다. 그 일은 부품회사 등 다른 누군가가 대신 해 줄 수 없는 일이다. 지금껏 자동차는 비싼 부품과 싼 부품으로 완제품의 가격을 조절했다. 그래서 값이 10배 이상 차이 나는 제품군이 성립 가능했다. 10배 비싸지만 10배 더 좋은 오디오는 가능하다. 하지만 10배 안전한 보안은 가능한가? 가장 비싼 차보다 10배 싸다고 해서 10배 불안한 자동차를 팔 것인가? 안전 때문에라도 자동차보안 문제는 부품 기준 사고방식으로 풀 수 있는 문제가 아니다. 부품과 무관하게 안전한 소프트웨어 시스템을 설계하고 이를 싼 차와 비싼 차에 모두 적용해야 할 일이다.

"자동차회사는 소프트웨어 개발사", 정말 그렇게 되기를 기대하고 응원한다.

저작권자 © 허프포스트코리아 무단전재 및 재배포 금지
이 기사를 공유합니다