Confidential Space 보안 개요

이 문서에서는 Confidential Space의 보안 통제와 광범위한 위협을 완화하도록 시스템을 설계하는 방법을 설명합니다. Confidential Space는 데이터의 기밀과 소유권을 유지하면서 워크로드에 기밀 데이터(예: 규제 대상 데이터 또는 개인 식별 정보(PII))를 공유할 수 있도록 설계되었습니다. Confidential Space는 데이터가 워크로드와 데이터의 원래 소유자에게만 표시되도록 격리를 만드는 데 도움이 됩니다.

워크로드 운영자 또는 기밀 데이터를 만든 원래 당사자 간에 신뢰를 설정할 수 없는 경우에 Confidential Space를 사용할 수 있습니다. 예를 들어 금융 기관은 Confidential Space를 사용하여 서로 협력하여 사기를 식별하거나 자금세탁 활동을 분석할 수 있습니다. Confidential Space는 고객 데이터 세트 전반에서 분석을 허용하면서 고객 ID를 비공개로 유지합니다.

Confidential Space 시스템 구성요소

Confidential Space는 승인된 워크로드에만 보안 비밀을 해제하도록 설계된 신뢰할 수 있는 실행 환경(TEE)을 사용합니다. 증명 프로세스와 강화된 OS 이미지는 워크로드가 신뢰할 수 없는 연산자로부터 처리하는 워크로드와 데이터를 보호하는 데 도움이 됩니다.

Confidential Space 시스템에는 세 가지 핵심 구성요소가 있습니다.

  • 워크로드: 클라우드 기반 TEE에서 실행되는 강화된 OS가 포함된 컨테이너화된 이미지입니다. 컨피덴셜 컴퓨팅을 하드웨어 격리와 원격 증명 기능을 제공하는 TEE로 사용합니다.
  • 증명 서비스: OpenID Connect(OIDC) 토큰 제공업체입니다. 이 서비스를 사용하여 TEE의 증명 견적을 확인하고 인증 토큰을 해제합니다. 토큰에는 워크로드의 식별 속성이 포함되어 있습니다.
  • 보호되는 리소스: Cloud Key Management Service 키 또는 Cloud Storage 버킷과 같은 관리형 클라우드 리소스입니다. 리소스는 승인된 제휴 ID 토큰에 대한 액세스 권한을 부여하는 허용 정책으로 보호됩니다. 워크로드 아이덴티티 풀을 사용하는 중간 단계에서 OIDC 토큰이 IAM에서 사용할 수 있는 제휴 ID 토큰으로 변환됩니다.

시스템을 사용하면 보호된 리소스에 대한 액세스 권한이 승인된 워크로드에만 부여되도록 할 수 있습니다. 또한 Confidential Space는 증명 전후에 워크로드를 검사 및 조작하지 못하도록 보호하는 데 도움이 됩니다.

Confidential Space 시스템에는 다음과 같은 세 가지 당사자가 있습니다.

  • 워크로드 작성자: 보호된 리소스에 대한 액세스 권한이 있는 애플리케이션이 포함된 컨테이너화된 이미지를 만듭니다. 작성자는 데이터나 결과에 액세스할 수 없습니다. 또한 작성자는 데이터나 결과에 대한 액세스를 제어하지 않습니다.
  • 워크로드 운영자: Google Cloud 프로젝트에서 워크로드를 실행합니다. 운영자에게는 일반적으로 프로젝트에 대한 전체 관리 권한이 있습니다. 운영자는 Compute Engine 인스턴스, 디스크, 네트워킹 규칙과 같은 Google Cloud 리소스를 관리하고 여기에서 작동하는 Google Cloud API와 상호작용할 수 있습니다. 운영자는 데이터나 결과에 액세스할 수 없으며 코드나 실행 환경에 영향을 주거나 수정할 수 없습니다. 또한 운영자는 데이터나 결과에 대한 액세스를 제어하지 않습니다.
  • 리소스 소유자(또는 데이터 공동작업자): 보호된 리소스를 소유합니다. 리소스 소유자는 자신의 데이터에 액세스하고 자신의 데이터에 대한 권한을 설정하며 결과에 액세스할 수 있습니다. 다른 리소스 소유자의 데이터에 액세스하거나 직접 코드를 수정할 수 없습니다.

Confidential Space에서는 워크로드 작성자, 워크로드 운영자, 리소스 소유자가 서로 신뢰하지 않는 별도의 신뢰 모델을 지원합니다.

다음 다이어그램에서는 시스템 구성요소와 당사자를 보여줍니다. 워크로드는 보호된 리소스와 별도의 프로젝트에 있습니다.

Confidential Space 시스템 및 구성요소

안전한 데이터 처리 예시

Confidential Space는 데이터를 공유하면서 사용자의 개인 정보를 보호하는 데 도움이 됩니다. 다음 표에서는 세 가지 사용 사례를 예시로 설명합니다.

사용 사례 예시 시나리오
기능 암호화 모델 기능 암호화 모델에서 Alice는 전체 데이터 세트를 노출하지 않고 자신의 기밀 데이터 결과를 Bob과 공유하려고 합니다. Alice는 데이터 세트를 암호화하고 자신의 프로젝트에서 Cloud KMS에 있는 데이터 암호화 키(DEK)를 보호합니다. Alice는 워크로드를 구현하는 프로그램을 작성하고 Bob과 바이너리를 공유합니다. Alice는 DEK에 대한 액세스 권한을 프로그램에 부여하도록 KMS를 구성합니다. 워크로드는 Bob의 Confidential Space에서 실행되고 Alice의 데이터 세트를 복호화 및 처리하며 결과를 Bob의 Cloud Storage에 작성합니다.
다자간 계산 다자간 계산에서 Alice와 Bob은 입력 데이터 세트의 기밀성을 유지하면서 결과를 서로 공유하려고 합니다. 기능 암호화 모델과 마찬가지로, Alice와 Bob은 각각의 데이터 세트를 암호화하고 프로젝트의 Cloud KMS 인스턴스에 있는 DEK를 보호합니다. 결과를 결정하는 프로그램을 공동 작성하여 Confidential Space에서 실행합니다. Alice와 Bob은 DEK에 대한 액세스 권한을 프로그램에 부여하도록 KMS를 구성합니다. 프로그램은 두 데이터 세트를 모두 읽고 처리한 후 결과를 공유된 Cloud Storage 버킷에 작성합니다.
키 공유 더 복잡한 스킴에서는 키 공유 개념을 사용합니다. 키 공유는 Alice, Bob, 다른 소유자 간에 분할된 비공개 키로, 개별 공유에 대한 지식은 암호화된 데이터 세트에 액세스할 수 없습니다. 이 스킴에서는 신뢰가 여러 소유자에게 분할됩니다. 비공개 키는 승인된 워크로드에서 제한한 TEE에서만 조립됩니다.

이러한 예시에서는 워크로드만 암호화된 데이터 세트에 액세스하여 처리할 수 있습니다. Confidential Space는 자신이 소유하지 않은 데이터에 대해 감사를 받지 않는 작업을 수행할 수 없도록 합니다. 데이터 소유자는 데이터 사용 방식과 작업하도록 승인된 워크로드를 제어합니다.

워크로드의 무결성 및 기밀성 보호

신뢰할 수 없는 워크로드 운영자로부터 워크로드를 보호하는 데 도움이 되도록 Confidential Space는 다음 보안 제어를 구현합니다.

  • 증명 프로세스는 워크로드 이미지나 TEE의 수정 사항을 감지합니다. 이 제어는 워크로드의 무결성 사전 증명을 보호하는 데 도움이 됩니다.
  • 강화된 기본 이미지는 공격에 노출되는 영역을 줄이고 워크로드 운영자가 런타임 시 인스턴스에 액세스하거나 손상시키지 못하도록 방지하는 데 도움이 됩니다. 이 제어를 통해 증명 후 워크로드의 무결성과 기밀성을 보호할 수 있습니다. 이러한 보안 제어를 통해 워크로드, 보안 비밀, 처리하는 데이터를 보호할 수 있습니다.

증명 프로세스

증명 프로세스는 보안 VM 신중한 부팅과 확장 런타임 측정을 기반으로 합니다. 이 프로세스는 vTPM(Virtual Trusted Platform Module) 기기에서 보호되는 확장 전용 등록의 부팅 시퀀스 측정을 캡처합니다.

측정에는 초기 부팅 구성요소, 로드된 커널, 컨테이너 이미지가 포함됩니다. 또한 인스턴스가 컨피덴셜 VM임을 나타내는 플래그와 같은 환경 속성이 포함됩니다. vTPM은 증명 서비스에서 신뢰하는 인증 증명 키를 사용하여 이러한 측정값을 서명(또는 견적)합니다.

다음 다이어그램에서는 Confidential Space 시스템의 구성요소와 각 구성요소가 증명 프로세스에 참여하는 방법을 보여줍니다.

증명 프로세스의 시스템 구성요소 및 당사자

증명 프로세스는 다음 구성요소에 따라 다릅니다.

  • 게스트 펌웨어: Google Cloud의 신뢰할 수 있는 부분인 변경할 수 없는 구성요소입니다.
  • 증명된 Confidential Space 이미지: 연결된 부팅 디스크에서 읽는 Container-Optimized OS를 기반으로 한 강화된 이미지입니다.
  • 초기 부팅 구성요소: vTPM과 상호작용하여 부팅 구성요소를 플랫폼 구성 등록(PCR)으로 측정하는 부트로더 및 커널입니다.
  • 런처: 이미지 저장소에서 워크로드 바이너리를 다운로드하고 컨테이너와 해당 구성을 PCR로 측정하는 구성요소입니다. 런처는 인스턴스 메타데이터 서버에서 구성을 읽습니다.

  • 증명 처리 코드: PCR 견적을 준비하고 vTPM의 견적, 증명 키, 전체 이벤트 로그를 반환하는 코드입니다.

  • 증명 서비스: 견적을 확인하고 이벤트 로그를 재생하고 OIDC 토큰을 발행하며 워크로드 액세스 정책의 속성이 있는 토큰을 반환하는 서비습니다.

강화된 이미지

Confidential Space 이미지는 최소한의 단일 용도 OS입니다. 이 이미지는 컨테이너 런처와 단일 컨테이너를 순차적으로 실행합니다. Confidential Space 이미지는 Container-Optimized OS의 강화된 기존 보안 기능을 기반으로 하며 다음과 같은 이점을 제공합니다.

  • 무결성 보호가 적용된 암호화된 디스크 파티션: Confidential Space 이미지에는 다음 파티션이 포함됩니다.
    • 런처 바이너리가 포함된 root-fs 파티션 및 OEM 파티션. 이러한 파티션은 변경될 수 없으며 dm-verity로 보호됩니다.
    • 다운로드한 워크로드 바이너리를 저장하는 쓰기 가능한 임시 파티션입니다. dm-crypt는 이 파티션을 암호화하고 무결성을 보호합니다.
    • RAM에 매핑되는 tmp-fs 파티션. 컨피덴셜 VM TEE에서 VM의 메모리는 암호화됩니다. 또한 swap-fs 시스템이 중지되므로 잘못 구성된 운영체제에서 데이터를 디스크에 저장하지 못합니다.
  • 인증되고 암호화된 네트워크 연결: 런처는 TLS를 사용하여 증명 서비스를 인증하고 통신 링크를 보호합니다.
  • 다양한 부팅 측정: 이러한 측정에는 커널 명령줄 인수, root-fsdm-verity 구성, 워크로드 바이너리가 포함됩니다.
  • 중지된 원격 액세스 및 클라우드별 도구: 이러한 도구에는 sshdOS 로그인이 포함됩니다.

  • 상태 전환 감소: 예를 들어 런처가 단일 컨테이너를 실행한 후 종료됩니다.

위협 모델 및 완화

이 섹션에서는 Confidential Space가 완화하는 데 도움이 되는 위협 모델과 Confidential Space로 인해 발생하는 새로운 위험을 설명합니다.

이 문서에서는 다음 공격을 다루지 않습니다.

  • 게스트 통합 확장 가능 펌웨어 인터페이스(UEFI) 펌웨어, Confidential Space 이미지 부트로더 및 커널, 컨테이너 런타임, 워크로드의 서드 파티 종속 항목에 적용되는 소프트웨어 공급망 공격. 데이터 공동작업자는 리소스 소유자가 허용 정책으로 리소스를 공유하기 전에 리소스 소유자가 컨테이너 이미지를 검토하고 감사했다고 가정합니다.
  • Google Cloud 공격(예: VM 이스케이프)

가능한 공격

Confidential Space는 세 가지 가능한 공격을 방어하도록 설계되었습니다.

  • 악의적인 워크로드 운영자: 악의적인 워크로드 운영자는 디스크 콘텐츠를 수정하고 네트워크 연결을 가로채며 런타임 시 TEE를 손상시키려고 합니다. 악의적인 운영자는 공격에 노출되는 영역을 확장하거나 런타임 환경을 제한할 수 있습니다. 예를 들어 악의적인 운영자는 직렬 콘솔을 추가하여 새로운 공격 벡터를 도입할 수 있습니다. 또 다른 예시로, 악의적인 운영자는 게스트의 메모리 크기 제한, 디스크 공간 변경, 방화벽 규칙 변경과 같은 리소스를 제한할 수 있습니다. 이러한 제약조건으로 인해 I/O 오류가 트리거되어 잘못 테스트된 오류 사례가 발생할 수 있습니다.
  • 악의적인 증명 클라이언트: 이 공격자는 증명 서비스에 연결하여 잘못된 형식의 서명된 이벤트 로그 메시지를 보냅니다.
  • 악의적인 리소스 소유자: 악의적인 리소스 소유자는 워크로드에서 사용하는 암호화된 데이터 세트를 완벽하게 제어할 수 있습니다. 이 공격자는 잘못된 입력이나 왜곡된 데이터를 표시하고 워크로드의 파싱 취약점을 트리거하거나 개인 정보 보호 설정을 우회하려고 할 수 있습니다.

공격에 노출되는 영역

다음 표에서는 공격자가 사용할 수 있는 공격 노출 영역을 설명합니다.

공격자 타겟 공격에 노출되는 영역 위험
워크로드 운영자 TEE, 워크로드 디스크 읽기

디스크에서 읽는 모든 내용을 공격자가 제어할 수 있습니다.

멀티 작성자 영구 디스크 및 동적 디스크 연결과 같은 서비스는 공격자가 디스크 콘텐츠를 동적으로 또는 자유롭게 수정할 수 있음을 의미합니다.

워크로드 운영자 TEE, 워크로드 디스크 쓰기 디스크에 기록된 모든 내용이 공격자에게 표시됩니다. 디스크 스냅샷가져오기 기능을 참조하세요.
워크로드 운영자 TEE, 워크로드 메타데이터 서버 공격자가 시작 스크립트 및 환경 변수를 포함한 메타데이터 서버에서 읽은 인스턴스 속성을 제어할 수 있습니다.
워크로드 운영자 TEE, 워크로드 네트워크 이미지 저장소나 증명 서비스에 대한 외부 네트워크 연결을 가로챌 수 있습니다. 이 공격은 공개용 Cloud Router 인스턴스와 비공개 VPC를 사용하여 수행됩니다.
증명 클라이언트 증명 서비스 이벤트 로그 및 증명 메시지 증명 서비스에는 방어적으로 쓰기 어려운 복잡하고 암호화가 많이 필요한 로직이 있습니다.
리소스 소유자 워크로드 암호화된 데이터 세트

공격자가 워크로드의 입력 데이터 세트를 악성 처리할 수 있습니다. 즉, 암호화된 데이터는 반드시 신뢰할 수 있는 데이터가 아닙니다.

Google Cloud 인프라

Google Cloud에는 Compute Engine 하이퍼바이저, 컨피덴셜 VM용 vTPM, 게스트 UEFI 펌웨어, 호스팅된 증명 서비스가 포함됩니다. vTPM 및 OIDC 서명 키와 같은 민감한 키 자료는 안전하게 보호되도록 설계되었습니다.

Google 인프라는 각 고객의 데이터가 같은 물리적 서버에 저장되어 있더라도 이를 다른 고객과 사용자의 데이터와 따로 논리적으로 격리하도록 설계되었습니다. 지원 담당자와 엔지니어의 관리 액세스 권한은 고객에게 제한적이고 감사되며 투명합니다. 또한 컨피덴셜 VM의 인라인 메모리 암호화는 인스턴스 메모리의 기밀성을 보호하는 데 도움이 됩니다. 인라인 메모리 암호화는 직접 검사나 실수로 인한 메모리 로깅(커널 비정상 종료 로그)을 비효율적으로 렌더링합니다. 플랫폼 보호 방법에 대한 자세한 내용은 Google 보안 개요를 참조하세요.

위협과 완화

무결성 보호를 사용하는 암호화된 파일 시스템은 디스크 공격으로 인한 위험을 완화하도록 설계되었습니다. 또한 코드를 디스크에서 읽은 후에는 측정되어 해당 데이터를 다시 디스크에서 읽지 않습니다. 보안 비밀은 디스크나 외부 기기(예: 직렬 콘솔)에 일반 텍스트 형식으로 공개되지 않습니다.

인증된 엔드 투 엔드 암호화 채널을 통해 네트워크 공격의 위험을 완화할 수 있습니다. SSH와 같은 외부 네트워크 액세스는 이미지에서 중지됩니다. 증명 프로토콜을 사용하면 부팅 시퀀스와 메타데이터 서버에서 읽은 모든 구성을 보호할 수 있습니다. 마지막으로, Confidential Space 워크로드는 편향된 데이터 세트로 인한 위험을 완화하기 위해 개인 정보 차등 보호 제어를 사용해야 합니다.

다음 표에서는 위협과 완화를 설명합니다.

신중한 부팅 프로세스에 대한 공격

이 표에서는 신중한 부팅 프로세스와 관련된 잠재적인 위협과 완화 전략을 설명합니다.

위협 위험 완화 완화 구현

공격자가 신중한 부팅을 지원하지 않는 이전 펌웨어로 보안 VM을 부팅합니다.

공격자가 공격에 성공하면 임의의 측정값을 재생하여 원격 증명을 막을 수 있습니다.

Google Cloud 제어 영역에서 이 위협을 완화합니다.

Confidential Space는 vTPM 기기 및 최신 UEFI 펌웨어를 추가합니다. 또한 Confidential Space는 신중한 부팅을 사용 설정하며 신중한 부팅은 중지될 수 없습니다.

Google Cloud 인프라 내부

공격자가 게스트 물리적 메모리에서 UEFI 펌웨어를 덮어쓰고 vTPM 등록을 재설정한 후 수정된 펌웨어를 실행하는 게스트를 재부팅합니다.

공격자가 공격에 성공하면 임의의 측정값을 재생하여 원격 증명을 막을 수 있습니다.

이 위협은 하이퍼바이저에서 완화됩니다. 게스트 재부팅 시 하이퍼바이저는 UEFI 펌웨어의 클린 복사본을 게스트 메모리에 로드합니다. 게스트 메모리의 이전 수정사항은 삭제됩니다. 또한 게스트 재부팅은 vTPM을 재설정하는 유일한 이벤트입니다. Google Cloud 내부 및 컨피덴셜 컴퓨팅 사용 설정
공격자가 프로그램 실행에 부정적인 영향을 미치는 측정되지 않은 구성 파일을 수정합니다.

이 위협은 증명 프로세스에서 완화됩니다. 실행 가능한 모든 바이너리와 각 구성 파일은 실행되기 전에 완전히 측정됩니다.

특히 안전한 부팅 변수, grub 구성, 커널 명령줄 인수가 측정됩니다.

보안 검토에 따라 증명 프로세스에서 누락된 측정값이 없습니다.

Confidential Space 이미지 내에서
공격자가 초기 부팅 구성요소에서 메모리 손상 취약점을 트리거하고 코드 실행 권한을 획득합니다.

초기 부팅 구성요소는 C 언어로 작성됩니다. 이러한 구성요소는 신뢰할 수 없는 사용자 데이터를 처리하며 메모리 손상 문제에 취약할 수 있습니다. 최근 예시는 BootHole을 참조하세요.

이 위험은 증명 프로세스로 완화됩니다. 초기 부팅 구성요소는 데이터를 처리하기 전에 사용자 제어 데이터를 측정해야 합니다. BootHole 공격은 수정된 grub.cfg를 사용하여 코드 실행 권한을 획득하고 안전한 부팅을 방해합니다.

하지만 Confidential Space 시스템에서는 grub.cfg 측정이 예상 구성과 일치하지 않으므로 공격이 증명을 통과하지 못합니다.

관련된 위험은 복잡한 파일 시스템 로직에서 발생합니다. Sequaia와 같은 이전 취약점은 파일 시스템 드라이버가 복잡한 데이터 구조를 처리하고 메모리 손상 문제에 취약할 수 있음을 보여줍니다.

이 위험은 블록 수준 dm-veritydm-crypt 무결성 보호 사용 및 자동 마운트 중지를 통해 완화됩니다.

Confidential Space 이미지 내에서
공격자는 읽고 측정된 후, 읽고 실행되기 전에 디스크에서 초기 부팅 바이너리를 수정합니다(디스크 TOCTOU).

초기 부팅 구성요소는 베어메탈 머신용으로 빌드되었으며 클라우드의 동적 환경을 예상하지 못할 수 있습니다. 부팅 구성요소는 실행 중에 디스크 콘텐츠를 변경할 수 없다고 가정할 수 있으며, 이는 클라우드 환경에 대한 잘못된 가정입니다.

이 위험은 방어 프로그래밍을 통해 완화됩니다. 읽기, 측정, 실행 패턴을 사용하여 디스크 콘텐츠를 한 번만 읽습니다.

Confidential Space 이미지의 보안 검토는 UEFI, Shim 또는 GNU GRUB와 같은 초기 부팅 구성요소에서 TOCTOU 문제를 식별하지 못했습니다.

Confidential Space 이미지 내에서
공격자는 커널이 로드된 후 디스크의 기기 드라이버와 사용자 모드 서비스를 수정합니다.

이 위협은 무결성 보호가 적용된 루트 파일 시스템을 통해 완화됩니다.

Confidential Space 이미지의 Root-fs 무결성은 dm-verity로 보호됩니다. 구성(root-hash)은 커널 명령어 인수로 전달된 후 증명 서비스에서 측정되고 증명됩니다.

Confidential Space 이미지 내에서

컨테이너 런처에 대한 공격

이 표에서는 런처와 관련된 잠재적인 위협과 완화 전략을 설명합니다.

위협 위험 완화 완화 구현
공격자가 런처나 이미지 저장소의 네트워크 연결을 가로챕니다.

이미지 저장소에 대한 연결은 인증되고 암호화된 TLS 연결로 보호됩니다.

공격자가 이미지 URL을 변경하고 워크로드 바이너리를 제어할 수 있습니다. 그러나 이러한 작업은 증명 로그에 반영됩니다.

이미지 저장소는 액세스 목록을 사용하여 제어되지 않으므로 모든 사용자가 이미지를 볼 수 있다고 가정합니다. 워크로드 컨테이너 이미지에 보안 비밀이 포함되어 있지 않은지 확인해야 합니다.

Confidential Space 이미지 내에서
공격자가 다운로드하여 측정한 후 디스크에서 워크로드 이미지를 수정합니다.

이 위협은 암호화된 쓰기 가능한 파티션으로 완화되며 무결성이 보호됩니다.

워크로드 이미지와 해당 임시 데이터는 부팅별 임시 키를 사용하여 dm-crypt로 보호됩니다.

dm-crypt 디스크 암호화 프로세스는 롤백 공격을 허용합니다. 여기서 공격자는 디스크 콘텐츠를 이전에 표시된 암호문과 태그로 바꿉니다. 이러한 공격은 Confidential Space 설정에서 매우 복잡하다고 간주됩니다.

Confidential Space 이미지 내에서
공격자가 메타데이터 서버에서 런처 구성을 수정하고 이미지 저장소 URL을 제어합니다. 증명 프로세스는 인증되지 않은 이미지를 로드하는 안전하지 않은 구성을 감지합니다. 증명 서비스 내에서

증명 서비스에 대한 공격

이 표에서는 증명 서비스에 대한 잠재적인 위협과 완화 전략을 설명합니다.

위협 위험 완화 완화 구현
공격자가 런처나 증명 서비스의 네트워크 연결을 가로채고 유선에서 보안 비밀 토큰을 읽습니다.

이 위협은 인증되고 암호화된 TLS 연결을 통해 완화됩니다. 이 연결은 수동 도청으로부터 토큰을 보호하는 데 도움이 됩니다.

공격자에는 TLS 키가 없으므로 공격자가 서비스를 가장할 수 없습니다. 공격자는 성공해도 유효한 OIDC 토큰을 만들 수 없습니다.

클라이언트 ID가 증명 프로토콜에서 보장되므로 공격자는 유효한 클라이언트를 가장할 수 없습니다.

워크로드와 증명 서비스 사이의 네트워크 내에서
공격자가 파싱 불일치를 악용하며 증명 프로세스에서 변경되지 않은 변경사항이 발생합니다.

측정 이벤트 로그가 직렬화되어 파싱되고 처리된 증명 서비스로 전송되므로 이 위협이 발생할 수 있습니다.

서비스와 런타임 OS가 로그의 시맨틱스에 동의하지 않으면 파싱 불일치가 발생합니다.

예를 들어 cmdline 필드에 쉼표로 구분된 인수 목록이 있으면 커널 및 서비스에서 a=1, b=2 c='3,d=e'와 같은 문자열(값 하위 문자열의 ,d에 유의)을 다르게 파싱할 수 있습니다. 있습니다.

OS 동작을 올바르게 반영하는 파싱 엔진을 사용하면 이 위험이 완화될 수 있습니다. 특히 cmdline는 전체 문자열로 처리되며 키-값 쌍으로 분할되지 않습니다.

Confidential Space 이미지 내에서
공격자가 모든 서비스 리소스를 사용하므로 서비스에 서비스 거부(DoS) 공격이 발생합니다. 다른 Confidential Space 사용자의 경우 서비스가 중단됩니다.

이 신뢰성 위험은 필요에 따라 쉽게 복제되고 확장될 수 있는 분산형 탄력적 서비스를 통해 완화됩니다.

코드는 악의적인 클라이언트의 리소스 소진을 방지합니다.

워크로드 내에서

워크로드에 대한 공격

이 표에서는 워크로드와 관련된 잠재적인 위협과 완화 전략을 설명합니다.

위협 위험 완화 완화 구현
공격자가 쓰기 가능한 파티션에서 런타임 보안 비밀을 읽습니다.

암호화된 파일 시스템으로 이 위협을 완화할 수 있습니다. 쓰기 가능한 파일 시스템은 dm-crypt를 사용하여 마운트됩니다. 스왑이 중지되고 메모리 콘텐츠가 디스크에 페이징되지 않습니다.

심층 방어 기술인 OIDC 토큰에는 범위가 지정되며 수명이 짧습니다.

Confidential Space 이미지 내에서
공격자가 직렬 콘솔에서 런타임 보안 비밀을 읽습니다. 사용자 인증 정보와 토큰이 직렬 콘솔에 전혀 출력되지 않으므로 이 위협은 Confidential Space 이미지에서 완화됩니다. 또한 클라우드 로깅이 중지됩니다. Confidential Space 이미지 내에서
공격자가 OSLogin 패키지를 사용하여 승인된 SSH 키를 업데이트한 후 실행 중인 인스턴스에 연결합니다. sshd를 포함한 기본 systemd 서비스가 마스킹되므로 Confidential Space 이미지에서 이 위협이 완화됩니다. Confidential Space 이미지 내에서
공격자가 메타데이터 서버의 시작 스크립트를 업데이트하면 게스트 에이전트에서 자동으로 로드합니다. 게스트 에이전트 패키지가 중지되어 있으므로 이 위협은 Confidential Space 이미지에서 완화됩니다. Confidential Space 이미지 내에서
공격자가 OS 구성 에이전트를 사용하여 VM에 잘못된 패키지를 푸시합니다. OS 구성 에이전트가 중지되어 있으므로 이 위협은 Confidential Space 이미지에서 완화됩니다. Confidential Space 이미지 내에서
공격자가 잘못된 형식의 암호화된 데이터 세트를 워크로드에 전달합니다. 워크로드에 방어적인 파싱 코드가 있으면 이 위협이 완화됩니다. 워크로드 내에서
공격자는 편향되거나 악성 처리된 데이터 세트를 워크로드에 전달하고 다른 당사자로부터 데이터 세트 정보를 학습하려고 합니다. 워크로드에서 개인 정보 차등 보호 제어를 구현하여 이 위협을 완화합니다. 워크로드 내에서

보안 테스트

Confidential Space는 Google에서 포괄적인 보안 검토 프로세스를 수행했습니다. 이 보안 검토 프로세스에는 다음 테스트와 감사가 포함되었습니다.

  • 부정적인 흐름 엔드 투 엔드 통합 테스트

    이러한 테스트는 코드가 예기치 않은 TEE 환경에서 실행되거나 수정된 워크로드 컨테이너를 실행하는 경우와 같이 잘못된 측정에 대해 증명이 실패했음을 확인했습니다.

  • 신중한 부팅 프로세스의 수동 감사

    이 검토에서는 누락된 측정과 중복 읽기 버그를 식별하는 데 중점을 두었습니다. 테스트를 통해 코드가 보안 권장사항을 고려하여 작성되었으며 오류가 발생하면 코드가 닫힙니다(종료).

  • Confidential Space 이미지와 런처 로직의 빌드 프로세스에 대한 수동 감사:

    이 검토에서는 패키지 삭제 및 공격 노출 영역 감소를 주로 다룹니다.

  • 증명 서비스의 수동 감사

    이 검토에서는 올바른 증명 프로토콜을 구현하고 파싱 문제를 방지하는 데 중점을 두었습니다.

  • 사이버 보안 전문가의 암호화 검토

    검토에서는 증명 프로토콜, 파일 시스템 암호화, 무결성 솔루션에 중점을 두었습니다.

  • 개인 정보 보호 전문가의 개인 정보 보호 검토

    이 검토에서는 Google에서 작성한 워크로드에서의 개인 정보 차등 보호 제어에 중점을 두었습니다.

  • 지속적 퍼지 테스트

    이러한 테스트에서는 vTPM 및 증명 서비스와 같은 보안이 중요한 구성요소를 다룹니다.

외부 펜테스트 조직인 NCC Group에서 시스템에서 침투 테스트를 수행했습니다. NCC는 보안 컴퓨팅 플랫폼으로 Confidential Space를 검토했습니다.

다음 단계