IoT 솔루션에 대한 보안 모범 사례
이 개요에서는 일반적인 Azure IoT 솔루션 보안과 관련된 주요 개념을 소개합니다. 각 섹션에는 자세한 내용과 참고 자료를 제공하는 콘텐츠의 링크가 포함되어 있습니다.
다음 다이어그램은 일반적인 IoT 솔루션의 구성 요소를 개략적으로 보여 줍니다. 이 문서에서는 IoT 솔루션의 보안에 중점을 둡니다.
IoT 솔루션의 보안을 다음 세 가지 영역으로 나눌 수 있습니다.
디바이스 보안: 실제로 배포되는 동안 IoT 디바이스 보안을 유지합니다.
연결 보안: IoT 디바이스와 IoT 클라우드 서비스 간에 전송되는 모든 데이터의 기밀성과 변조 방지를 보장합니다.
클라우드 보안: 데이터가 이동하고 클라우드에 저장되는 동안 데이터를 안전하게 보호합니다.
이 문서의 권장 사항을 구현하면 공동 책임 모델에 설명된 보안 의무를 충족하는 데 도움이 됩니다.
Microsoft Defender for IoT
Microsoft Defender for IoT에서 이 문서에 포함된 일부 권장 사항을 자동으로 모니터링할 수 있습니다. Microsoft Defender for IoT는 Azure에서 리소스를 보호하기 위한 최전선 방어선이 되어야 합니다. Microsoft Defender for IoT는 Azure 리소스의 보안 상태를 주기적으로 분석하여 잠재적인 보안 취약성을 식별합니다. 그런 다음 이를 해결하는 방법에 대한 권장 사항을 제공합니다. 자세한 내용은 다음을 참조하세요.
- 보안 권장 사항으로 보안 태세를 강화합니다.
- 조직용 Microsoft Defender for IoT란 무엇인가요?
- 디바이스 빌더용 Microsoft Defender for IoT란 무엇인가요?
장치 보안
하드웨어의 최소 요구 사항 범위 설정: 운영에 필요한 최소한의 기능만 포함하고 그 외에는 포함하지 않도록 디바이스 하드웨어를 선택합니다. 예를 들어 솔루션에서 디바이스를 작동하기 위해 필요한 경우에만 USB 포트를 포함합니다. 추가 기능은 원치 않는 공격 벡터에 디바이스를 노출할 수 있습니다.
변조 방지 하드웨어 선택: 디바이스 커버 열기 또는 디바이스 부분 제거와 같은 물리적 변조를 감지하는 기본 제공 메커니즘이 있는 디바이스 하드웨어를 선택합니다. 운영자에게 이러한 이벤트를 알리기 위해 클라우드로 업로드되는 데이터 스트림에 이러한 변조 신호가 포함될 수 있습니다.
보안 하드웨어 선택: 가능한 경우 신뢰할 수 있는 플랫폼 모듈을 기반으로 하는 보안 및 암호화된 스토리지 및 부팅 기능과 같은 보안 기능이 포함된 디바이스 하드웨어를 선택합니다. 이러한 기능을 통해 디바이스가 보다 안전해지고 전체 IoT 인프라가 보호됩니다.
보안 업그레이드 사용: 디바이스의 수명 동안 펌웨어 업그레이드는 피할 수 없습니다. 업그레이드 경로가 안전하고 펌웨어 버전이 암호화로 보장되는 디바이스를 빌드하면 업그레이드 중과 후에 디바이스가 안전하게 보호됩니다.
보안 소프트웨어 개발 방법론 준수: 보안 소프트웨어를 개발하려면 프로젝트 시작부터 구현, 테스트 및 배포까지 처음부터 보안을 고려해야 합니다. Microsoft 보안 개발 수명 주기는 보안 소프트웨어를 구축하는 단계별 접근 방식을 제공합니다.
가능하면 디바이스 SDK 사용: 디바이스 SDK는 강력하고 안전한 디바이스 애플리케이션을 개발하는 데 도움이 되는 암호화 및 인증과 같은 다양한 보안 기능을 구현합니다. 자세한 내용은 Azure IoT SDK를 참조하세요.
신중하게 오픈 소스 소프트웨어 선택: 오픈 소스 소프트웨어는 솔루션을 신속하게 개발할 수 있는 기회를 제공합니다. 오픈 소스 소프트웨어를 선택할 때 각 오픈 소스 구성 요소에 대한 커뮤니티의 활동 수준을 고려해야 합니다. 활발한 커뮤니티는 소프트웨어를 지원하고, 문제를 찾아서 해결합니다. 모호하고 활동이 활발하지 않은 오픈 소스 소프트웨어 프로젝트는 지원을 받지 못하고 문제를 발견하지 못할 수 있습니다.
안전하게 하드웨어 배포: IoT를 배포할 때 공공 장소나 감독되지 않는 현장처럼 안전하지 않은 위치에 하드웨어를 배포해야 할 수도 있습니다. 이러한 상황에서는 하드웨어 배포가 가능한 한 변조되지 않도록 해야 합니다. 예를 들어 하드웨어에 USB 포트가 있는 경우 안전하게 덮여 있는지 확인합니다.
인증 키를 안전하게 보관: 배포하는 동안 각 디바이스에는 디바이스 ID 그리고 클라우드 서비스에서 생성하는 해당 ID와 연결된 인증 키가 필요합니다. 배포 후에도 이러한 키를 물리적으로 안전하게 보관해야 합니다. 악의적인 디바이스는 손상된 키를 사용하여 기존 디바이스로 가장할 수 있습니다.
시스템을 최신 상태로 유지: 디바이스 운영 체제 및 모든 디바이스 드라이버를 최신 버전으로 업그레이드합니다. 운영 체제를 최신 상태로 유지하면 악의적인 공격으로부터 보호할 수 있습니다.
악의적인 활동으로부터 보호: 운영 체제에서 허용하는 경우 각 디바이스 운영 체제에 최신 바이러스 백신 및 맬웨어 방지 기능을 배치합니다.
자주 감사: 보안 사고에 대응할 때에는 보안 관련 문제에 대한 IoT 인프라를 감사하는 것이 핵심입니다. 대부분의 운영 체제는 이벤트 로깅 기능이 기본적으로 제공되는데, 보안 위반이 발생하지 않도록 이벤트 로그를 자주 검토해야 합니다. 디바이스는 감사 정보를 클라우드 서비스에 별도의 원격 분석 스트림으로 보내서 분석할 수 있습니다.
디바이스 제조업체 보안 및 배포 모범 사례 준수: 디바이스 제조업체가 보안 및 배포 지침을 제공하는 경우 이 문서에 나열된 일반 지침 외에도 해당 지침을 따릅니다.
필드 게이트웨이를 사용하여 레거시 또는 제한된 디바이스에 대한 보안 서비스 제공: 레거시 및 제한된 디바이스에는 데이터를 암호화하거나 인터넷에 연결하거나 고급 감사를 제공할 수 있는 기능이 부족할 수 있습니다. 이와 같은 경우에는 안전한 최신 현장 게이트웨이를 사용하여 기존 디바이스에서 데이터를 집계하고 인터넷을 통해 이러한 디바이스를 연결하는 데 필요한 보안을 제공할 수 있습니다. 현장 게이트웨이는 보안 인증, 암호화된 세션 협상, 클라우드로부터 명령 수신 및 기타 여러 보안 기능을 제공합니다.
연결 보안
X.509 인증서를 사용하여 디바이스를 IoT Hub 또는 IoT Central로 인증: IoT Hub 및 IoT Central은 디바이스 인증 방법으로 X509 인증서 기반 인증과 보안 토큰을 모두 지원합니다. 가능하면 더 큰 보안을 제공하므로 프로덕션 환경에서 X509 기반 인증을 사용합니다. 자세한 내용은 IoT Hub에 대한 디바이스 인증 및 IoT Central의 디바이스 인증 개념을 참조하세요.
TLS(전송 계층 보안) 1.2를 사용하여 디바이스에서 연결 보호: IoT Hub및 IoT Central은 TLS를 사용하여 IoT 디바이스 및 서비스에서 연결을 보호합니다. 현재 세 가지 버전의 TLS 프로토콜(1.0, 1.1 및 1.2)이 지원됩니다. TLS 1.0 및 1.1은 레거시로 간주됩니다. 자세히 알아보려면 인증 및 권한 부여를 참조하세요.
디바이스에서 TLS 루트 인증서를 업데이트하는 방법이 있는지 확인: TLS 루트 인증서는 수명이 길지만 만료되거나 해지될 수 있습니다. 디바이스의 인증서를 업데이트할 수 없는 경우 나중에 디바이스를 IoT Hub, IoT Central 또는 다른 클라우드 서비스에 연결하지 못할 수 있습니다.
Azure Private Link 사용 고려: Azure Private Link를 사용하면 가상 네트워크의 프라이빗 엔드포인트에 디바이스를 연결하여 IoT 허브의 공용 디바이스 연결 엔드포인트에 대한 액세스를 차단할 수 있습니다. 자세한 내용은 Azure Private Link를 사용하여 IoT Hub로의 수신 연결 및 프라이빗 엔드포인트를 사용하는 IoT Central에 대한 네트워크 보안을 참조하세요.
클라우드 보안
보안 소프트웨어 개발 방법론 준수: 보안 소프트웨어를 개발하려면 프로젝트 시작부터 구현, 테스트 및 배포까지 처음부터 보안을 고려해야 합니다. Microsoft 보안 개발 수명 주기는 보안 소프트웨어를 구축하는 단계별 접근 방식을 제공합니다.
신중하게 오픈 소스 소프트웨어 선택: 오픈 소스 소프트웨어는 솔루션을 신속하게 개발할 수 있는 기회를 제공합니다. 오픈 소스 소프트웨어를 선택할 때 각 오픈 소스 구성 요소에 대한 커뮤니티의 활동 수준을 고려해야 합니다. 활발한 커뮤니티는 소프트웨어를 지원하고, 문제를 찾아서 해결합니다. 모호하고 활동이 활발하지 않은 오픈 소스 소프트웨어 프로젝트는 지원을 받지 못하고 문제를 발견하지 못할 수 있습니다.
신중하게 통합: 소프트웨어 보안 결함의 상당수가 라이브러리 및 API 경계에 존재합니다. 현재 배포에 필요하지 않을 수 있는 기능이 API 계층을 통해 제공될 수 있습니다. 전반적인 보안을 유지하려면 통합되는 모든 구성 요소 인터페이스에서 보안 결함이 있는지 확인해야 합니다.
클라우드 자격 증명 보호: 공격자는 사용하는 클라우드 인증 자격 증명을 사용하여 IoT 배포를 구성하고 운영하여 IoT 시스템에 액세스하고 손상시킬 수 있습니다. 자격 증명을 보호하기 위해 암호를 자주 변경하고 공용 머신에서 이러한 자격 증명을 사용하지 마세요.
IoT 허브에 대한 액세스 제어 정의: 필요한 기능을 기반으로 IoT Hub 솔루션의 각 구성 요소에 필요한 액세스 유형을 이해하고 정의합니다. 서비스 API가 IoT 허브에 연결할 수 있는 권한을 부여할 수 있는 방법은 Microsoft Entra ID 또는 공유 액세스 서명입니다. 가능하다면 프로덕션 환경에서는 Microsoft Entra ID를 사용하세요. 보안이 더욱 강화되었습니다.
IoT Central 애플리케이션에 대한 액세스 제어 정의: IoT Central 애플리케이션에 대해 활성화하는 액세스 유형을 이해하고 정의합니다. 자세한 내용은 다음을 참조하세요.
백 엔드 서비스에 대한 액세스 제어 정의: 다른 Azure 서비스는 디바이스에서 IoT Hub 또는 IoT Central 애플리케이션이 수집하는 데이터를 사용할 수 있습니다. 디바이스에서 다른 Azure 서비스로 메시지를 라우팅할 수 있습니다. 이러한 서비스에 연결하려면 IoT Hub 또는 IoT Central에 대한 적절한 액세스 권한을 이해하고 구성합니다. 자세한 내용은 다음을 참조하세요.
클라우드에서 IoT 솔루션 모니터링: Azure Monitor의 IoT Hub 메트릭을 사용하여 IoT Hub 솔루션의 전반적인 상태를 모니터링하거나 IoT Central 애플리케이션 상태를 모니터링합니다.
진단 설정: 솔루션에서 이벤트를 로깅한 다음, 진단 로그를 Azure Monitor로 전송하여 작업을 모니터링합니다. 자세한 내용은 IoT 허브에서 문제 모니터링 및 진단을 참조하세요.
다음 단계
IoT 보안에 대해 자세히 알아보려면 다음을 참조하세요.