보안이 갖는 가치와 중요성
IoT가 널리 확산되면서 향후 10년간 수십 억 개의 클라우드 커넥티드 제품이 설계, 생산, 판매될 것으로 전망된다. 하지만 쉽게 해킹을 당할 수 있는 제품을 원하는 사람은 없을 것이다. 그러므로 보안의 중요성이 어느 때보다 커지고 있다.
우수한 코드 품질을 갖추는 것은 보안성을 확보한 제품을 만드는 데에 있어 필수 불가결하며, 이를 실현하기 위해서는 개발 과정의 일환으로 코드 분석 도구를 사용하는 것이 반드시 필요하다. 소스 코드는 제품의 품질을 좌우하는 요소라고 할 수 있다.
제품의 개발, 제조, 업데이트 전반에 걸쳐 보안을 확보하기 위해서는 먼저 구상 단계에서부터 보안성을 확보할 필요가 있다. 모든 기업은 투자한 자산을 보호받고 싶어하며, 이것은 소프트웨어 설계 및 엔지니어링 과정에 투입되는 모든 노력을 포함한다. 결국, 수 개월, 수 년에 걸쳐 제품을 개발하기 위해 기울인 노력이 물거품이 되게 하고 싶지는 않을 것이다. 여기서는 기업과 그 가치의 핵심에 대해 이야기해보겠다.
관계 법령 및 실무 규정
여러 정부 공공기관에서도 오늘날 IoT 기기의 보안이 취약한 경우 발생할 수 있는 위협에 대한 인식이 확산되고 있다. 과거 IoT 제품은 보안 관련 고려 사항에 전혀 포함되지 못 했던 바, 이로 인해 민간의 자율 규제 능력이 부족하다는 인식이 확산돼 관계 법령 제정에 박차를 가하고 있는 실정이다. 전 세계 정부 공공 기관들은 새로운 기초 보안 표준을 제정하고, 이를 통해 IoT 제품을 개발하고 있는 기업으로 하여금 이를 시행하도록 하여 사이버 범죄로부터 최종 소비자들을 보호해야 할 필요가 있다.
이에 정부 기관과 산업 단체는 적극적으로 실무 규정을 편찬하며, 기업을 대상으로 각종 자문을 제공, IoT 제품 개발 과정에서 필요한 사항과 관련해 지원을 제공한다. 예를 들어 영국의 디지털 문화 미디어 스포츠 부에서는 ‘소비자용 사물인터넷 보안을 위한 실무 규정’을 도입해 소비자용 IoT 기기와 관련되는 1대 보안 지침을 제공한다. 이는 전 세계적으로 해당 분야 관련 법령 제정의 기준으로 활용되고 있다.
또 다른 예로, ‘소비자 사물인터넷 보안 간이 지침’을 들 수 있다. 이 지침은 사물 인터넷 보안 재단(IoTSF)에서 발표한 것으로, 전 세계 여러 기관 및 기업을 대상으로 소비자용 사물 인터넷 기기에 대한 다양한 국제 표준, 규정, 국제 지침을 파악, 준수하는 과정을 용이하게 하는 것을 목적으로 하고 있다.
게다가 지금은 정부 규제가 옛날처럼 호락호락 하지가 않은 상황이다. 이미 미국의 캘리포니아나 오레곤 주의 경우, 유럽 연합 및 영국과 마찬가지로 강력한 규제를 도입하며, APAC 회원국 내에도 이러한 추세를 바짝 쫓아가고 있는 국가가 다수 있다.
가트너는 최근 “전 세계 CEO의 75%가 2024년까지 사이버 물리 보안 사태에 대해 직접적인 책임을 지게 될 것”이라고 전망했다. 이는 많은 기업이 앞으로 IoT 제품과 관련해 어느 정도 수준의 보안을 달성해야 할 것인지에 대해 초점을 맞출 수 있도록 해주는 계기가 될 것이다.
산업 재산권 보호, 주요 관심사로 부각
관련 지침 및 법규 외에도 IoT 제품의 보안 수준을 높이지 않으면 안 되는 요인은 몇 가지가 더 있다. 우리는 고객을 대상으로 가장 심각하다고 생각되는 보안 문제가 무엇이라고 인식하고 있는지를 조사했다.
이 중에는 당연히 관련 법규 준수가 포함돼 있었지만, 그래프에서 보는 바와 같이, 고객에게 있어 이보다 더 큰 문제는 바로 지적 재산권 절도 행위였다. 디바이스의 해킹 및 악성코드 설치가 그 뒤를 이었다. 산업재산권 침해 행위에 대해 더 생각해보자면, IoT 제품을 개발하기 위해 투자되는 비용의 대부분은 기기가 기능을 발휘할 수 있도록 하는 소프트웨어의 설계, 생산, 시험 과정에 소요된다. 그러므로 제품의 보안성을 확보하는 데에 있어 중요한 요소의 하나는 어떠한 형태로든 ‘산업재산권 보호’ 장치가 반드시 포함돼야 한다는 것이다.
이것은 소프트웨어에 해커나 경쟁사가 무단으로 접근하는 행위를 방지하고, 생산 과정 중, 그리고 현장 배치 후 소프트웨어가 누출되지 않도록 보호하는 것을 말한다. 이렇게 산업 재산권이 도난을 당할 수 있는 원인에는 여러가지가 있다. 예를 들어, 경쟁사가 소프트웨어에 대해 리버스 엔지니어링을 시도할 수 있다. 또한, 짝퉁 제조업체가 귀사의 IoT 제품을 모방하여 회색 시장에 내 놓을 수도 있다. 이 경우 빼앗기는 판매 기회는 개발사의 매출 손실로 그대로 돌아온다. 이뿐 아니라, 기업의 평판에도 악영향을 미칠 수가 있다.
보안은 언제 적용하는가?
개발에서 생산으로 이어지는 일반적인 과정을 살펴보면 다음과 같다.
이론적으로, 보안은 빗장을 잠그는 개념으로 개발의 마지막 단계, 시판 직전에 적용하는 것도 가능하다. 소스코드 단위로 코드 분석과 테스트 사이클을 거치면서 말이다. 그리고 나서 제품 생산에 바로 들어갈 수도 있다. 그렇지만 이것은 그다지 좋은 생각은 아니다. 왜냐하면, 이러한 시험의 과정은 실제로 기기가 현장에서 사용되는 방식과는 차이가 있을 수 있기 때문이다. 이것은 실제로 기기가 시판된 뒤에도 악용의 우려가 있는 보안상 허점이 잔존할 수도 있음을 의미한다.
제품에 각인되는 보안
보안 기능이 제품의 태생적인 일부로서 그 안에 각인되도록 하기 위해서는 제품의 초기 구상 단계에서부터 보안 기능을 포함시키는 것이 훨씬 바람직하다. 가장 이상적인 방식은 개발 도구 및 업무 흐름 상에 보안 기능을 일체화 시키는 것이다. 이것은 이미 제품의 일부로 포함돼 있는 상태에서 보안 기능을 개발 및 시험할 수 있음을 의미한다.
이러한 방식을 사용하면 제품이 최종 소비자의 손에 들어간 이후 발생할 수 있는 위험이 크게 줄어든다. 보안성을 갖춘 IoT 제품의 기본은 바로 Root of Trust(RoT)를 구현하는 것이다. 이것은 사용자가 신뢰할 수 있는 최소한의 소프트웨어, 하드웨어 및 데이터를 말한다.
하드웨어 측면에서 보면, 사용되는 MCU는 (생산 시점에는) 디버그 기능을 제거해야 하며, 메모리를 잠글 수 있어야 한다. 또한, 개별 기기의 식별이 가능해야 한다. 한편 소프트웨어 측면에서 보면, 기저의 MCU 하드웨어 기능을 바탕으로 하는 보안 보트 관리자를 통해 기기를 대상으로 강력한 RoT를 제공하며, 이것은 전체적인 부팅 프로세스의 보안을 확보하도록 해준다. 이를 통해 악성 코드의 주입을 방지하고, 보안 업데이트 기능을 구현해 이를 적절히 보호할 수 있다.
PKI(Public Key Infrastructure) 키 및 인증서 등의 보안 데이터를 추가함으로써 MCU 시스템은 보안적인 맥락 프로필을 제공받는다. 이러한 프로필은 각각의 기기를 대상으로 프러비저닝돼야 한다. 보안 맥락의 요소를 생성하고, 대상이 되는 MCU 기기의 기능에 대한 정보를 바탕으로 그 설정을 편집할 수 있는 개발 툴이 있다면 이러한 과정이 쉽고 간편해질 것이다. 일단 MCU를 대상으로 보안적 맥락의 프러비저닝이 이뤄진 다음에는 주 개발팀이 주 사용자 어플리케이션으로부터 신뢰하며, 우수한 품질을 지닌 코드의 개발을 진행할 수 있다.
사용 중인 개발 툴이 보안 지식의 바탕을 이룬다고 한다면, 엔지니어가 개발 업무 수행 과정에서 따르고 있는 업무 프로세스에는 보안 기능을 배제한 시스템에서 따라야 할 업무 프로세스와 비교해 크게 변경을 가할 이유가 없어진다. 이는 개발 및 테스팅 일정 상에 변동이 발생하지 않도록 하는 데에 도움을 준다.
일단 향후 업그레이드 및 확장 가능성을 반영해 소프트웨어를 개발하고 그에 대한 시험을 모두 마친 후에는 최종적인 제품보안 맥락 및 암호화 어플리케이션을 보안 프로그래밍 시설로 전달하거나, 작은 규모의 프로젝트인 경우에는 아마도 보안을 확보한 데스크톱 프로그래밍 시스템으로 이를 옮기게 될 것이다. 하지만 여기서 사용되는 툴 및 시설은 다시 한 번, IoT 제품이 보안성을 유지할 수 있도록 해 주는 핵심적인 요소가 된다.
요약
커넥티드 기기의 보안은 과거 어느 때보다 중요해지고 있다. 현재의 보안 위협은 결코 무시할 수 없는 수준에 이르러, 해킹 공격이나 위조 행위, 클로닝 등의 범죄 행위가 기승을 부리고 있다. 또한, 각국 정보는 관련 법률 및 정책의 제정을 적극적으로 추진하고 있다. 이러한 상황에 대비하지 못하는 기업은 존망의 위기에 처하게 될 것이다. 적절한 코딩 표준과 함께 사용되는 우수한 품질의 코드 분석 툴은 코딩 과정에서의 보안성을 확보할 수 있도록 개발됐다.
코드 품질과 기존에 개발돼 있는 보안 장치(코드 베이스 암호화, 생산 한도 설정 등)을 개발의 근간으로 삼게 되면, 기업 입장에서는 보안 규정과는 별도로 생산을 진행하는 과정에서 발생할 수 있는 위조 및 클로닝 행위의 위험을 크게 줄일 것이다. IoT 보안은 간단 명료하면서도 확장성을 지녀야 하며, 지속 가능해야 한다. 보안은 개념 구상 단계부터 제품과 통합이 이뤄져야 한다. 왜냐하면, 개발을 먼저 진행하고 보안 기능을 나중에 추가하는 방식은 거의 통하지 않기 때문이다.
헬로티 서재창 기자 |