.AI·Cloud·Data·IoT 등 지능형 기술이 지속적으로 발전하고 대량의 데이터 처리 및 활용을 위해 Cloud와 IoT 환경은 점점 밀접한 관계를 갖게 될 것이다. 이로 인해 발생하는 보안의 필요성에 대해 고찰해 보려고 한다.
. 1.CloudIoTNative서비스 현황과 개요 현재 국내외의 다양한 CSP(CloudServiceProvider)는 Cloud서비스 및 리소스 사용시의 안전한 이용 때문에 비즈니스 또는 개인 환경에서 다양한 형태의 보안 솔루션, Native서비스 보안 설정, 옵션 등을 서포트하고 있다. IoT영역도 기기 접속, 관리, 분석, 개발을 위한 다양한 Cloud Native서비스를 제공하고 있다.Cloud와 IoT영역이 점차 확장, 성장하면서 복수의 Cloud관련 보안 취약점이 발견되거나 사고가 발생했고 보안의 중요성이 더 커지고 있다. 이번 EQST insight제목에서는 IoT분야와 Cloud환경 사이에서 Cloud Native서비스를 이용할 때의 보안 고려 사항을 기술하는 대표적인 클라우드 프로바이더인 AWS, Azure, GCP3개의 Cloud IoT에 관한 간단한 설명과 보안 관련 insight를 작성했다. 1)AWS(Amazon Web Services)AWSIoT는 IoT기기 접속을 위한 클라우드 서비스 및 관리 분석 등을 위한 서비스를 제공하고 IoT서비스를 3개 영역(기기 소프트웨어, 제어 서비스 데이터 서비스)15의 서비스로 구분하고 있다.
[AWS IoT 아키텍처 ①]각 영역 및 상세 서비스에 대해 자세히 살펴보면 다음과 같다. a. 디바이스 소프트웨어 영역 디바이스 소프트웨어 영역은 사용자의 IoT 디바이스를 지원하기 위한 소프트웨어를 제공하고 개발 및 배포 등의 확장성을 지원하는 영역으로, 상세 서비스는 다음과 같다.각 영역 및 상세 서비스에 대해 자세히 살펴보면 다음과 같다. a. 디바이스 소프트웨어 영역 디바이스 소프트웨어 영역은 사용자의 IoT 디바이스를 지원하기 위한 소프트웨어를 제공하고 개발 및 배포 등의 확장성을 지원하는 영역으로, 상세 서비스는 다음과 같다..c. 데이터 서비스 영역 데이터 서비스 영역의 경우 AWS 내에서 제공하는 다양한 IoT 서비스를 활용하여 사용자의 디바이스 내 데이터를 분석 및 모니터링을 제공하는 영역으로, 상세 서비스는 다음과 같다.전술한 AWS IoT 아키텍처를 이용하여 설계한 모델은 다음과 같다.[AWS IoT 통신/연결 아키텍처]. 2)Azure(Microsoft Azure)Azure IoT는 IoT자산을 접속, 모니터링 및 제어하는 Microsoft Cloud의 관리형 플랫폼 서비스이다. IoT애플리케이션의 개발, 데이터 분석, 운영 관리 등의 다양한 Native서비스를 제공하고 Azure내의 다른 서비스와 통합하여 사용 가능하게 한다. Azure의 경우 IoT서비스를 크게 2개 영역(접속 및 분석, 에지 및 기기 지원)과 8개의 서비스에 나눠서 주고 있다. 각 영역 및 상세 서비스에 대해서 자세히 보면 다음과 같다.. a. 접속 및 분석 영역의 접속 및 분석 영역은 IoT기기와 Azure Cloud서비스 사이의 중앙 허브 역할을 하며 안정된 통신을 가능한 대용량 데이터를 분석 및 관리하는 영역이다.b. 에지 및 디바이스 지원 영역 에지 및 디바이스 지원 영역은 애저를 통해 IoT 디바이스 개발 시 이벤트 프로세싱, 머신러닝, 이미지 처리와 같은 복잡한 기술을 용이하게 배포 및 도입할 수 있도록 하는 영역이다. 또한, 인터넷과 연결된 디바이스를 위한 통신 및 보안 기능을 제공하여 기기를 제어하고 애플리케이션에 대한 사용자 및 디바이스 액세스를 관리해 준다.전술한 서비스로 구축한 Azure IoT 아키텍처는 다음과 같다.[Azure IoT 아키텍처]. 3)GCP(Google Cloud Platform)Google Cloud IoT Core는 다양하게 분산된 기기의 데이터를 쉽고 안전하게 접속, 관리, 수집하는 완전 관리형 서비스로 접속된 기기에서 데이터를 수집하고 Google Cloud의 다른 서비스와 통합하고 사용할 수 있다. GCP의 경우 IoT서비스를 단일 영역의 1개의 Core서비스와 기타 관련 서비스로 구분하여 제공하고 있다. GCP Native서비스인 Pub/Sub을 기반으로 분산된 장치 데이터를 Google Cloud내의 Native서비스와 통합하고 사용하고 고도의 분석, 시각화 머신-러닝 등에 독자적인 IoT데이터 스트림을 활용하여 운용 효율을 높이고 기술·최적화한 효율적인 모델을 구축할 수 있도록 한다.※2023년 8월 16일부터 Google Cloud의 IoT Core서비스는 종료할 예정이며 대체 서비스로서 AWS의 “IoT코어”나 Azure의 “IoT허브”이 꼽힌 상태였고, Google Cloud IoT도입 시는 다른 CSP의 IoT서비스를 고려할 필요가 있다(https://cloud.google.com/iot/docs)[구글 Cloud Platform IoT 아키텍처]. 1. 보안 고려 사항, 그동안 CSP(AWS, Azure, GCP)가 제공하는 IoT서비스에 대해서 간단하게 봐왔다. 다음에 CSP가 제공하는 IoT서비스를 Cloud환경에서 기기와 접속하고 사용할 때 고려해야 하는 보안 사항에 대해서 보고 싶다.기본적으로 3개의 CSP는 모두 고객 및 비즈니스 데이터 보호를 위해서 자체 보안 규정을 준수하고 표준 보안 프로토콜 및 안전성이 검증된 암호 알고리즘을 지원하는 접속된 기기와 Cloud간의 안전한 쌍방향 통신을 제공한다. 또한 사용자 및 기기에 대한 자체 자격증 및 접근 관리를 지원하는 고객에게 안전하게 권한을 부여하고 사용할 수 있도록 독자적인 Native서비스(AWS IAM, Azure RBAC, Azure AD, GCP IAM등)를 제공한다. 마지막으로, 가상 네트워크 환경을 통해서 공용 인터넷 접속 노출을 제한하고 IoT Core/Hub등을 사용할 수 있고, 그 밖에 서비스 운용의 안정성 및 가용성 등의 보안이 고려되도록 다양한 Native서비스를 IoT서비스와 함께 사용할 수 있도록 지원한다. 1)인증 및 자격 증명 관리 접속된 디바이스 및 사용자에게 사용 용도 및 역할에 따른 접근 제어를 해야 하고’principle of least privilege(최소한의 원칙)’가 적용되도록 구체적이고 상세한 권한에 대한 자격 증명을 준비해야 한다. 또 접속을 안전하게 관리할 수 있는 정책을 내부적으로 작성하고 관리해야 한다.IoT Cloud에서의 인증은, 서버 또는 클라이언트 자격 증명을 확인하는 것이다. 서버 인증은 디바이스 또는 다른 클라이언트가 Cloud의 IoT엔드 포인트와 통신하는 것이다, 클라이언트 인증은 디바이스 또는 다른 클라이언트가 CSP의 IoT서비스를 사용하고 인증하는 과정이다. 이로써 IoT기기에 접속되어 있는 모든 디바이스는 승인되지 않은 클라이언트 및 서버의 입력하거나 요구를 받아들이지 않게 할 필요가 있습니다.인증의 경우 CSP마다 인증 방식이 좀 다른 경우가 있으며 사용 중인 장치의 타입이나 아키텍처 및 인프라에 의해서 다르게 적용된다. 기기/애플리케이션/CLI명령 등 IoT서비스 접속 및 이용 시 각 CSP가 제공하는 인증 방법과 대표적으로 사용되는 하나의 방법에 대해서 살펴보자. a.AWS의 경우 X.509 certificate사용자 지정 인증, Amazon Cognito, IAM자격증 등의 인증을 사용한다. 복수의 인증 방식 중 사용자 지정 인증의 경우 사용자 지정 권한 부여인들과 함께 사용자 지정 인증 서비스와 AWS Lambda함수를 사용하고 자체 인증 및 권한 부여 전략을 관리할 수 있다. 사용자 지정 권한 부여자를 사용하고 AWS IoT는 전달자 토큰 인증 및 권한 부여 JWT또는 OAuth를 사용하고 자격 증명을 인증하고 작업을 승인한다.[AWS IoT 디바이스 게이트웨이 <> 사용자 지정 권한 부여자 인증].b. Azure Azure의 경우 Azure AD, Azure RBAC, X.509 certificate 등의 인증을 사용한다. 애저에서 소개하는 RBAC 인증은 IoT Hub ID 레지스트리를 사용하여 토큰을 통해 디바이스/모듈별 보안 자격 증명 및 액세스 제어를 구성할 수 있다.[토큰 서비스를 통한 디바이스 인증].c. GCPGCP의 경우 IAM, 인증(키/대, JWT, 애플리케이션, MQTT 브리지) 등의 방법이 존재한다. 아래 그림은 MQTT를 사용하여 Cloud IoT 코어에 인증하는 과정을 요약한 그림으로, MQTT 브리지는 기기의 공용 키와 대조하여 JWT를 확인하고 접속한다.[MQTT 브리지 사용을 통한 Cloud IoT 인증]마지막으로 인증 키는 배포 시에 Cloud서비스에서 생성된 장치 ID및 관련 인증 키가 필요하므로 키 보존, 키 순환 등의 보안 요소를 고려하고 키를 안전하게 관리하고 각 디바이스에는 고유의 패스워드를 생성하고 관리해야 한다. 2)접속 보안 AWS, Azure, GCP함께 TLS(전송 계층 보안)를 지원하고 이에 따른 IoT기기 및 서비스 접속을 보호한다. 또 CSP에서 제공되는 가상 네트워크 환경에서 엔드 포인트 및 Native서비스(AWS Private Link, Azure Private Link)을 지원하고 개인 IP주소를 통해서 CSP에서 실행되는 서비스에 안전하게 접근하고 외부 노출을 최소화시키고 서비스를 이용할 수 있다. 3)데이터 보호 디바이스와 클라우드 환경 및 클라우드 서비스 간의 보존, 송신 중의 데이터에 대한 암호화를 할 필요가 있으며 암호화는 보안상 안전한 프로토콜(MQTT, HTTPS)및 알고리즘을 사용하여 데이터를 보호해야 한다. 대부분의 CSP는 기본적으로 전송에 대한 데이터 보호를 지원하고 보존 시 데이터 암호에 대해서는 별도 설정 및 옵션으로 데이터를 보호한다. 데이터 암호의 때에는 독자적인 CSP소유의 키를 사용하여 암호화할 수도 있다. 4)로깅그모니타링그 및 보안 솔루션 CSP에서 제공되는 모니터링 및 로깅 Cloud Native서비스(Cloud Watch, Cloud Trail, Azure Monitor, Cloud Logging…)등을 활용하여 이상 행위나 접속 등의 보안 위협에 대비할 필요가 있고 CSP마다 보안 솔루션(AWS:SecurityHub, Azure:SecurityCenter, Google:SecurityCommandCenter)가 제공하는 다양한 보안 툴과 기능을 활용한 보안을 강화할 수 있다. 그 밖에도 일부 CSP는 IoT서비스를 보다 안전하게 사용하기 위한 커스터마이즈 보안 서비스를 제공하고 있다. AWS의 경우 기기 구성 감사와 모니터링 등을 하고 보안 리스크를 경감하는 “IoT Device Defender”서비스를 제공하고 Azure는 IoT및 OT기기, 취약성 및 위협을 식별하는 통합 보안 솔루션이다”Microsoft Defender for IoT”를 제공하며 보안을 향상시키는 방법을 제안했다. 마지막으로 위의 4개의 Cloud환경에서의 IoT보안 고려 사항 외에도 IoT에 대한 기본적인 보안(펌웨어 보안 하드웨어 취약성, WebCM어플리케이션 취약성, 불필요한 서비스 사용 등)에 대해서도 신경을 써야 한다. CSP가 제공하는 보안에 특화된 Native서비스 또는 솔루션만 사용하는 것이 아니라 컴퓨팅 네트워크, 어플리케이션 등 모든 계층의 보안 향상을 위해서 다른 CloudNative서비스 및 리소스를 함께 사용함으로써 외부의 위협에서 디바이스 및 Cloud환경을 안전하게 구성할 필요가 있다.참고 자료 공통 https://www.n-ix.com/best-practices-ensure-iot-cloud-security/https://www.iotforall.com/iot-cloud-convergence-security-guide https://www.cloudflare.com/ko-kr/learning/security/glossary/iot-security/. AWShttps://pages.awscloud.com/rs/112-TZM-766/images/IoT_Security_Best_Practices_Guide_design_v3.1.pdf https://docs.aws.amazon.com/ko-kr/iot/https://aws.amazon.com/ko/iot-core/faqs/. Azurehttps://docs.microsoft.com/ko-kr/azure/iot-fundamentalshttps://docs.microsoft.com/ko-kr/azure/iot-edge/about-iot-edge?view=iotedge-2020-11 https://docs.microsoft.com/ko-kr/azure/architecture/reference-architectures/iot https://docs.microsoft.com/ko-kr/azure/iot-hub https://docs.microsoft.com/ko-kr/azure/defender-for-iot/https://docs.microsoft.com/en-us/security/benchmark/azure/baselines/iot-hub-security-baseline https://docs.microsoft.com/en-us/azure/role-based-access-control/. Google Cloudhttps://cloud.google.com/iot-core https://cloud.google.com/iot/docs/concepts/device-security https://www.kcloudnews.co.kr .마지막으로 인증키는 배포 시 Cloud 서비스에서 생성된 디바이스 ID 및 관련 인증키가 필요하므로 키 저장, 키 순환 등 보안 요소를 고려하여 키를 안전하게 관리하고, 각 디바이스에는 고유의 비밀번호를 생성하여 관리해야 한다. 2) 접속보안 AWS, 애저, GCP 모두 TLS(전송계층보안)를 지원하고, 이를 통해 IoT 디바이스 및 서비스 접속을 보호한다. 또한 CSP에서 제공되는 가상 네트워크 환경에서의 엔드포인트 및 Native 서비스(AWS Private Link, Azure Private Link)를 지원하여 프라이빗 IP 주소를 통해 CSP에서 실행되는 서비스에 안전하게 접근하고 외부 노출을 최소화시켜 서비스를 이용할 수 있다.3) 데이터 보안 디바이스와 클라우드 환경 및 클라우드 서비스 간의 저장, 전송 중인 데이터에 대한 암호화를 수행해야 하며, 암호화는 보안상 안전한 프로토콜(MQTT, HTTP) 및 알고리즘을 사용하여 데이터를 보호해야 한다. 대부분의 CSP는 기본적으로 전송에 대한 데이터 보호를 지원하고 있으며 저장 시 데이터 암호에 대해서는 별도 설정 및 옵션 형태로 데이터를 보호해준다. 데이터 암호 시에는 자체 CSP 소유의 키를 사용하여 암호화할 수도 있다. 4) 로깅 모니터링 및 보안 솔루션 CSP에서 제공되는 모니터링 및 로깅 Cloud Native 서비스(Cloud Watch, Cloud Trail, Azure Monitor, Cloud Logging…) 등을 활용하여 이상 행위 및 접근 등의 보안 위협에 대비해야 하며, CSP별 보안 솔루션(AWS: Security Hub, Azure: Security Center, Google: Security Command Center)이 제공하는 다양한 보안 도구 및 기능을 활용할 수 있다. 이외에도 일부 CSP는 IoT 서비스를 보다 안전하게 사용하기 위한 맞춤형 보안 서비스를 제공하고 있다. AWS의 경우 기기 구성 감사와 모니터링 등을 통해 보안 위험을 줄이는 ‘IoT Device Defender’ 서비스를 제공하고, 애저는 IoT 및 OT 디바이스, 취약성 및 위협을 식별하는 통합 보안 솔루션인 ‘Microsoft Defender for IoT’를 제공해 보안을 향상시키는 방법을 제안하고 있다. 마지막으로 상기 4가지 Cloud 환경에서의 IoT 보안 고려사항 외에도 IoT에 대한 기본적인 보안(펌웨어 보안, 하드웨어 취약성, WebCM 애플리케이션 취약성, 불필요한 서비스 사용 등)에 대해서도 신경을 써야 한다. CSP가 제공하는 보안에 특화된 Native 서비스 또는 솔루션만을 사용할 것이 아니라 컴퓨팅, 네트워크, 애플리케이션 등 모든 계층에서의 보안 향상을 위해 다른 Cloud Native 서비스 및 리소스를 함께 사용함으로써 외부 위협으로부터 디바이스 및 Cloud 환경을 안전하게 구성할 필요가 있다.참고자료 공통 https://www.n-ix.com/best-practices-ensure-iot-cloud-security/ https://www.iotforall.com/iot-cloud-convergence-security-guide https://www.cloudflare.com/ko-kr/learning/security/glossary/iot-security/ .AWShttps://pages.awscloud.com/rs/112-TZM-766/images/IoT_Security_Best_Practices_Guide_design_v3.1.pdf https://docs.aws.amazon.com/ko_kr/iot/ https://aws.amazon.com/ko/iot-core/faqs/ .Azurehttps://docs.microsoft.com/ko-kr/azure/iot-fundamentalshttps://docs.microsoft.com/ko-kr/azure/iot-edge/about-iot-edge?view=iotedge-2020-11 https://docs.microsoft.com/ko-kr/azure/architecture/reference-architectures/iot https://docs.microsoft.com/ko-kr/azure/iot-hub https://docs.microsoft.com/ko-kr/azure/defender-for-iot/ https://docs.microsoft.com/en-us/security/benchmark/azure/baselines/iot-hub-security-baseline https://docs.microsoft.com/en-us/azure/role-based-access-control/ .Google Cloudhttps://cloud.google.com/iot-core https://cloud.google.com/iot/docs/concepts/device-security https://www.kcloudnews.co.kr .