[기고] 임베디드 시스템의 사이버 보안 Part #2 (2/2)

보안을 위한 SW 개발 프로세스

2021-07-06     석주원 기자

[글=오재준 매니저 | IAR Systems]
jaejoon.oh@iar.com

*두 개로 나뉘어진 기사입니다.(Part #1 보러가기 클릭)

 

인베디드 시스템 보안을 위한 SW 개발 프로세스

1. 신뢰점(Root of Trust, RoT)

RoT는 시스템에서 무조건적으로 믿을 수 있는 소프트웨어, 하드웨어 또는 데이터를 뜻한다. 하드웨어 관점에서 본다면 고유 ID, MCU의 시리얼 넘버와 인증서(certificate)와 키(key)를 저장할 수 있는 락커블(lockable) 메모리(flash)가 그것이다. 소프트웨어 관점에서 본다면 서명되고 암호화된 애플리케이션을 비보안 영역(unsecure memory)으로 로딩하는 시큐어 부트 매니저(Secure Boot Manager)다. 이 RoT는 뒤에서 설명할 신뢰 사슬(Chain of Trust, CoT)을 구성하는 기반이 된다.

RoT와

 

2. 신뢰 사슬(Chain of Trust, CoT)

CoT는 인증서(certificates)를 바탕으로, 변경할 수 없는 부트로더와 메모리의 보안 영역을 갖춤으로써 가능하다. 기기의 인증서는 RoT에서 설명한 고유 ID와 공용키(publick key)를 바탕으로 생성된다.

Chain

 

3. 트러스트존(TrustZone)

트러스트존이란 하나의 MCU에 분리된 두 개의 환경을 제공하여 보안이 필요한 정보를 격리된 환경에서 안전하게 보호하는 기술이다. CPU, 주소 공간, 메모리를 하드웨어 단위로 분리하여 기밀성과 무결성을 제공할 수 있는 보안 및 비보안의 격리된 환경을 제공한다.

이 트러스트존의 격리화는 기존의 일반 영역에서 행해지던 보안 기술 외에 하드웨어 기반의 격리된 보안 환경을 추가로 제공해 자원에 대한 보다 높은 보안 능력을 제공한다. 일반 수행 영역인 REE(Rich Execution Environment)와 보안된 수행 영역인 TEE(Trusted Execution Environment)로 분리되는데, TEE는 TEE와 REE의 자원 모두에 접근이 가능하고 REE는 오직 REE의 자원에서만 접근이 가능하도록 제한되어 있다.

TrustZone

트러스트존이 적용된 프로세서의 부팅 절차는 아래와 같다. 전원이 인가되면 TEE가 먼저 부팅되고, 이후 REE 부팅이 시작된다. TEE가 먼저 부팅함에 따라 REE의 악의적인 소프트웨어가 다른 소프트웨어의 작동 과정을 조작하는 행위를 미리 파악하고 대비할 수 있다.

TrustZone이

 

4. 프로비저닝(Provisioning)

임베디드 시스템에서 프로비저닝이란 시큐어 부트 매니저와 함께 고유 ID와 개인키(private key)를 기기에 주입하는 것을 뜻한다. 프로비저닝의 뜻에서도 알 수 있듯이 보안 시설 내에서 행해져야 하며, 하드웨어 보안 모듈(Hardware Security Module, HSM)이 사용된다면 서명(signing)과 마스터링(mastering)은 HSM 내에서 수행되어야 한다. 프로비저닝된 기기는 인증서, 고유 ID, 개인키, 개인키를 통한 보안 접근 경로, 변경할 수 없는 시큐어 부트로더, 고객 고유 정보를 저장한다.

 

5. 마스터링(Mastering)

마스터링이란 응용 프로그램을 서명하고 암호화하여 패키징하는 것을 의미하며 타깃 장치의 보안이 적용되지 않은 메모리로 복사될 수 있는 상태를 말한다. 설계부터 배포 단계까지의 보안을 위해서 설계 단계에서부터 응용 프로그램을 마스터링하며, 이 마스터링된 응용 프로그램은 시큐어 부트 매니저를 통해 애플리케이션 영역의 메모리로 복사된다.

응용

 

6. 보안 제조(Secure Manufacturing)

보안 제조는 보안이 갖춰진 시설에서 기기를 프로비저닝하고 마스터링된 응용 프로그램을 플래싱(flashing)하는 제품 생산 단계다. IAR에서는 SDP(Secure Desktop Provisioner)를 제공하며 완전한 자동화 생산 라인이 필요치 않은 장치에 대해 단순화한 생산을 할 수 있게 해준다. 이 SDP는 조작 방지 기능을 이용해 하드웨어 장치를 물리적으로 조작하려는 시도가 감지되면 제품이 자동으로 유지 관리 모드로 전환되어 생산 시의 보안을 유지할 수 있게 해준다.

보안

 

IAR 보안 솔루션 ‘인셉션 슈트(Inception Suite - ET/CT)’

IAR 보안 솔루션인 ‘인셉션 슈트(Inception Suite)’는 ET(Embedded Trust)와 CT(C-Trust)로 나뉜다.

ET(Embedded

ET는 보안팀에서 사용하는 툴로, 보안 컨텍스트(Secure Context)를 생성하고 기기를 프로비저닝하며 시큐어 부트 매니저를 설정(configure)할 수 있는 기능이 추가된다. 여기에서 보안 컨텍스트란 생성된 키와 인증서로서, 개발팀에 전달하여 프로비저닝된 기기에서 프로그램을 수행할 수 있도록 해준다. 이에 반해 CT는 개발팀에서 사용되는 툴이며, 별도의 보안에 관련된 지식 없이 보안 컨텍스트를 임포트(import)하고 응용 프로그램을 마스터링하는데 사용된다.

아래 그림은 ET와 CT를 사용한 소프트웨어 개발 절차를 나타낸다. 보안팀에서는 ET를 이용해 키와 인증서를 바탕으로 MCU를 프로비저닝하고 보안 컨텍스트를 생성한다. 개발팀에서는 보안팀에서 생성된 보안 컨텍스트를 임포트(Import)하고 프로비저닝된 MCU에 개발 후 해당 응용 프로그램을 마스터링해서 배포한다.

임베디드 시스템에서 사이버 보안은 여러 피해 사례를 비추어 볼 때 그 중요성이 더 커지고 있다. 보안팀은 ET(Embedded Trust)를 이용해 프로비저닝된 디바이스를 제공할 수 있으며, 개발팀은 CT(C-Trust)를 이용해 컴파일 즉시 마스터링된 애플리케이션을 얻을 수 있다. 결론적으로 IAR 보안 솔루션인 인셉션 슈트를 이용하면, 보안에 대한 깊은 이해 없이도 개발부터 생산까지 손쉽게 임베디드 시스템에 사이버 보안을 적용시킬 수 있다.