
IoT 개발자는 전통적으로 하드웨어에 중점을 두었지만 연결하려면 점점 더 많은 양의 임베디드 소프트웨어가 필요하며, 일반적으로 제 3자 코드(third-party code)에서 해당 소프트웨어를 만든다.
장치 관찰 플랫폼 제공업체 멤폴트(Memfault)의 CEO이자 임베디드 소프트웨어 엔지니어인 프랑수아 발다사리(François Baldassari)는 “IoT 장치의 활용도와 범위가 커짐에 따라 제3자 코드를 관리하고 이해하는 것이 업계의 모든 사람이 고려해야 하는 사항임에는 의심의 여지가 없다”면서 3자 코드의 중요성을 강조했다.
제 3자 소프트웨어 구성 요소는 IoT 내에서 점점 더 중요한 역할을 한다. VDC Research 에 따르면 2015년부터 2020년까지 IoT 제품에서 3자 상용 코드 사용이 17%에서 56%로 3배 이상 증가했다. 연결된 장치에서 개발자는 통신 라이브러리, 암호화 라이브러리, 통신 프로토콜의 일부 또는 칩 및 구성 요소의 통신 모듈 내에서 3자 소프트웨어를 구축할 수 있다.
하지만 이처럼 널리 사용되는 제3자 코드도 IoT 장치 관리에 주요 취약성을 유발할 수 있다. 제3자 코드 라이브러리에서 피할 수 없는 취약점이 발생하여 OS가 잠재적인 보안 침해에 노출될 수 있기 때문이다.
VDC Research에 따르면 IoT 개발자의 거의 4분의 3이 개발에 있어 보안이 중요하다고 말했지만,조직의 56%만이 IoT 장치의 보안을 테스트하기 위한 공식적인 정책과 절차를 가지고 있다. 취약성을 완화하거나 관리하기 위해 제3자 코드 제공업체에 맡기는 것은 위험할 수 있다. 따라서, 개발자들은 다음의 3가지 부분에 유의해야 한다고 프랑수아는 말한다.
첫째로, 전체론적 개발 프로그램의 일부로 제3자 코드를 고려해야 한다. 개발자는 개발 주기의 모든 단계에서 제3자 코드의 영향을 평가해야 한다. 평가는 개발자가 요구 사항을 결정하고 사용자 인터페이스를 결정할 때나 위험 및 규정 준수를 위한 프로세스를 코딩할 때, 친숙한 코드와 빠른 수정을 위해 배포된 코드에 대한 정기 감사를 진행할 때 필요하다.
둘째로, 제3자 코드는 장치를 업데이트할 수 있어야 한다. IoT 개발은 특정 장치 사용 사례에 대해 정적 펌웨어를 작성하는 것을 의미했다. 일단 출시되면 개발자는 제품과 더 이상 상호 작용하거나 관여할 수 없다. 그러나 연결성은 장치 수명과 기능에 대한 최종 사용자의 기대치를 높인다. 이를 위해서는 OTA 업데이트를 전송하고 관찰 가능성을 장치에 통합하여 제3자 코드가 장치에 미치는 영향을 측정할 수 있는 장치를 구축해야 한다고 프랑수아는 말한다.
셋째로, 장치 제조업체는 작업 중인 제품에 대해 알아야 한다. 알려지지 않은 문제에 대비하고 알려진 문제를 선점하기 위해 IoT 개발자는 자신이 의존하는 제3자 코드, 제공되는 라이선스 및 작성자의 지원에 대해 지속적으로 이해해야 한다. 특히 버그가 불가피하게 발생할 때 수정해야 하는 사람은 제3자 코드 작성자가 아닌, 엔지니어이기 때문에 내부에서 제3자 코드가 하는 일을 제대로 이해해야 한다.
프랑수아는 “중요성이 확대되고 소비자 수요가 증가하는 만큼 IoT 장치 제조업체는 제품을 지속적으로 개선해야 한다”면서 “이러한 작업이 제3자 코드에 어떻게 반영되는지 완전히 인식하고 맹목적으로 의존하지 않는다면, 더 나은 장치 작동 및 더 나은 제품을 보장할 수 있다”고 말했다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]