다음을 통해 공유


IoT Edge for Linux on Windows 보안

적용 대상:IoT Edge 1.5 확인 표시 IoT Edge 1.5

중요합니다

IoT Edge 1.5 LTS는 지원되는 릴리스입니다. IoT Edge 1.4 LTS는 2024년 11월 12일부터 수명이 종료됩니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.

Windows의 Linux용 Azure IoT Edge는 Windows 클라이언트 또는 서버 호스트의 모든 보안 기능을 사용하며 모든 추가 구성 요소가 동일한 보안 원칙을 따르도록 합니다. 이 문서에서는 기본적으로 사용하도록 설정되는 다양한 보안 원칙과 사용하도록 설정할 수 있는 몇 가지 선택적 원칙에 대해 설명합니다.

가상 머신 보안

IoT Edge for Linux(EFLOW) 큐레이팅된 가상 머신은 Microsoft CBL-Mariner를 기반으로 합니다. CBL-Mariner Microsoft의 클라우드 인프라, 에지 제품 및 서비스를 위한 내부 Linux 배포판입니다. CBL-Mariner 이러한 디바이스 및 서비스에 일관된 플랫폼을 제공하며 Microsoft가 Linux 업데이트를 최신 상태로 유지하는 데 도움이 됩니다. 자세한 내용은 CBL-Mariner 보안을 참조하세요.

EFLOW 가상 머신은 다음과 같은 4가지 포괄적인 보안 플랫폼을 사용합니다.

  1. 서비스 업데이트
  2. 읽기 전용 루트 파일 시스템
  3. 방화벽 잠금
  4. DM-Verity

서비스 업데이트

보안 취약성이 발생하면 CBL-Mariner EFLOW 월별 업데이트를 통해 최신 보안 패치 및 수정 사항을 제공합니다. 가상 머신에는 패키지 관리자가 없으므로 RPM 패키지를 수동으로 다운로드하거나 설치할 수 없습니다. EFLOW는 A/B 업데이트 메커니즘을 사용하여 가상 머신에 대한 모든 업데이트를 설치합니다. EFLOW 업데이트에 대한 자세한 내용은 IoT Edge for Linux on Windows 업데이트를 참조하세요.

읽기 전용 루트 파일 시스템

EFLOW 가상 머신에는 루트와 데이터라는 두 가지 주요 파티션이 있습니다. rootFS-A 또는 rootFS-B 파티션은 서로 교환할 수 있으며, 이 파티션은 읽기 전용 파일 시스템 /으로 탑재되므로 이 파티션에서 파일을 변경할 수 없습니다. 아래에 탑재된 /var 파티션은 읽기 가능하고 쓰기 가능하므로 콘텐츠를 변경할 수 있습니다. 업데이트 프로세스는 이 파티션에 저장된 데이터를 변경하지 않으므로 업데이트 간에 수정되지 않습니다.

, 및 /etc/home 특정 사용 사례에 /root/var대한 쓰기 액세스 권한이 필요할 수 있으므로 EFLOW는 쓰기 액세스를 제공하기 위해 이러한 디렉터리를 데이터 파티션 /var/.eflow/overlays 에 오버레이합니다. 이 설정을 통해 이러한 디렉터리에 쓸 수 있습니다. 오버레이에 대한 자세한 내용은 overlayfs를 참조하세요.

EFLOW CR 파티션 레이아웃

파티션 크기 설명
BootEFIA 8MB 향후 GRUBless 부팅을 위한 펌웨어 파티션 A
BootA 192MB A 파티션에 대한 부팅 로더 포함
RootFS A 4GB 루트 파일 시스템을 보유하는 두 개의 활성/수동 파티션 중 하나
BootEFIB 8MB 향후 GRUBless 부팅을 위한 펌웨어 파티션 B
BootB 192MB B 파티션에 대한 부팅 로더 포함
RootFS B 4GB 루트 파일 시스템을 보유하는 두 개의 활성/수동 파티션 중 하나
로그 1GB 또는 6GB /logs 아래에 탑재된 특정 파티션 로그
데이터 2GB~2TB 업데이트 간에 영구 데이터를 저장하기 위한 상태 저장 파티션입니다. 배포 구성에 따라 확장할 수 있습니다.

참고 항목

파티션 레이아웃은 논리 디스크 크기를 나타내며 가상 머신이 호스트 OS 디스크에서 사용하는 물리적 공간을 나타내지 않습니다.

방화벽

기본적으로 EFLOW 가상 머신은 방화벽 구성에 iptables 유틸리티를 사용합니다. Iptable은 Linux 커널에서 IP 패킷 필터 규칙의 테이블을 설정, 유지 관리 및 검사합니다. 기본 구현은 포트 22(SSH 서비스)에서 들어오는 트래픽을 허용하고 다른 트래픽을 차단합니다. 다음 단계를 사용하여 iptables 구성을 확인합니다.

  1. 승격된 PowerShell 세션 열기

  2. EFLOW 가상 머신에 연결

    Connect-EflowVm
    
  3. 모든 iptables 규칙 나열

    sudo iptables -L
    

    EFLOW iptables 기본값

확인된 부팅

EFLOW 가상 머신은 블록 디바이스의 투명한 무결성 검사를 제공하는 포함된 device-mapper-verity(dm-verity) 커널 기능을 통해 확인된 부팅을 지원합니다. dm-verity는 루트 권한을 유지하고 디바이스를 손상할 수 있는 영구 루트킷을 방지하는 데 도움이 됩니다. 이 기능은 가상 머신 기본 소프트웨어 이미지가 동일하고 변경되지 않도록 합니다. 가상 머신은 dm-verity 기능을 사용하여 파일 시스템의 기본 스토리지 계층인 특정 블록 디바이스를 확인하고 예상 구성과 일치하는지 확인합니다.

기본적으로 이 기능은 가상 머신에서 사용하지 않도록 설정되지만 설정하거나 끌 수 있습니다. 자세한 내용은 dm-verity를 참조하세요.

신뢰할 수 있는 플랫폼 모듈(TPM)

TPM(신뢰할 수 있는 플랫폼 모듈) 기술은 하드웨어 기반의 보안 관련 기능을 제공하도록 설계되었습니다. TPM 칩은 암호화 작업을 수행 하도록 설계 하는 보안 암호화 프로세서입니다. 변조를 확인 하는 여러 물리적 보안 메커니즘을 포함 하는 해당 칩 이며 악성 소프트웨어는 TPM의 보안 기능에 손상을 입힐 수 없습니다.

EFLOW 가상 머신은 vTPM을 지원하지 않습니다. 그러나 EFLOW 가상 머신에서 Windows 호스트 OS TPM을 사용할 수 있도록 하는 TPM 통과 기능을 사용하거나 사용하지 않도록 설정할 수 있습니다. 이렇게 하면 다음 두 가지 주요 시나리오를 수행할 수 있습니다.

보안 호스트 및 가상 머신 통신

EFLOW를 사용하면 PowerShell 모듈을 사용하여 가상 머신과 상호 작용할 수 있습니다. 자세한 내용은 IoT Edge for Linux on Windows용 PowerShell 함수를 참조하세요. 이 모듈을 실행하려면 상승된 세션이 필요하며 Microsoft Corporation 인증서로 서명됩니다.

Windows 호스트 운영 체제와 PowerShell cmdlet에 필요한 EFLOW 가상 머신 간의 모든 통신은 SSH 채널을 사용합니다. 기본적으로 가상 머신 SSH 서비스는 사용자 이름 및 암호로 인증할 수 없으며 인증서 인증만 허용합니다. 인증서는 EFLOW 배포 프로세스 중에 생성되며 각 EFLOW 설치에 대해 고유합니다. SSH 무차별 암호 대입 공격을 방지하기 위해 가상 머신은 SSH 서비스에 분당 3개 이상의 연결을 시도하는 경우 IP 주소를 차단합니다.

EFLOW CR(연속 릴리스) 버전에서 SSH 연결에 대한 전송 채널이 변경됩니다. 원래 SSH 서비스는 TCP 포트 22에서 실행되며, 동일한 네트워크의 모든 외부 디바이스가 TCP 소켓을 사용하여 액세스할 수 있습니다. 보안을 위해 EFLOW CR은 일반 TCP 소켓 대신 Hyper-V 소켓을 통해 SSH 서비스를 실행합니다. Hyper-V 소켓을 통한 모든 통신은 네트워킹을 사용하지 않고 Windows 호스트 OS와 EFLOW 가상 머신 간에 유지됩니다. 이 설정은 Windows 호스트 OS로만 연결을 제한하여 SSH 서비스 액세스를 제한합니다. 자세한 내용은 Hyper-V 소켓을 참조하세요.

다음 단계

Windows IoT 보안 프레미스에 대해 자세히 알아보기

Windows 업데이트에서 Linux용 최신 IoT Edge를 최신 상태로 유지합니다.