다음을 통해 공유


계획 부팅 및 호스트 증명

이 문서에서는 Microsoft가 계획 부팅과 호스트 증명을 통해 호스트의 무결성과 보안을 확인하는 방법을 설명합니다.

신중한 부팅

TPM(신뢰할 수 있는 플랫폼 모듈)은 신뢰할 수 있는 타사에서 제공하는 펌웨어를 사용하는 변조 방지 암호화 보안 감사 구성 요소입니다. 부팅 구성 로그에는 호스트가 마지막으로 부트스트랩 시퀀스를 진행했을 때 PCR(Platform Configuration Registers)에 기록된 해시 연결 측정값이 포함됩니다. 다음 그림은 이 기록 프로세스를 보여 줍니다. 이전에 해시된 측정값을 다음 측정값의 해시에 증분 방식으로 추가하고 합집합에서 해시 알고리즘을 실행하면 해시 연결이 수행됩니다.

호스트 증명 서비스 해시 체인을 보여 주는 다이어그램

부팅 구성 로그(TCGLog)를 사용하여 호스트가 해당 구성 상태 증명을 제공하면 증명이 수행됩니다. TPM은 읽기 및 확장 작업 이외의 PCR 값을 표시하지 않기 때문에 부팅 로그 위조는 어렵습니다. 또한 호스트 증명 서비스에서 제공하는 자격 증명은 특정 PCR 값으로 봉인됩니다. 해시 연결을 사용해도 대역 외 자격 증명을 계산상 스푸핑하거나 봉인 해제할 수 없습니다.

호스트 증명 서비스

호스트 증명 서비스는 호스트 머신이 고객 데이터나 워크로드와 상호 작용하도록 허용되기 전에 신뢰할 수 있는지 확인하는 예방 조치입니다. 호스트 증명 서비스는 증명 정책(보안 상태 정의)에 대해 각 호스트에서 보낸 규정 준수 설명문(호스트의 규정 준수의 확인 가능한 증명)의 유효성을 검사하여 확인합니다. 이 시스템의 무결성은 TPM에서 제공하는 신뢰할 수 있는 루트에 의해 보장됩니다.

호스트 증명 서비스는 특수화된 잠긴 환경 내에서 각 Azure 클러스터에 있습니다. 잠긴 환경에는 호스트 머신 부트스트래핑 프로토콜에 참여하는 다른 게이트키퍼 서비스가 포함됩니다. PKI(퍼블릭 키 인프라)는 증명 요청 출처의 유효성을 검사하기 위한 중개자 역할을 하며 ID 발급자 역할(호스트 증명 성공 시에만)을 합니다. 증명 호스트에 발급된 사후 증명 자격 증명은 해당 ID로 봉인됩니다. 요청 호스트만 자격 증명을 봉인 해제하고 이를 이용하여 증분 권한을 얻을 수 있습니다. 이렇게 하면 메시지 가로채기(man-in-the middle) 및 스푸핑 공격을 방지할 수 있습니다.

Azure 호스트가 잘못된 보안 구성으로 공장에서 도착하거나 데이터 센터에서 변조된 경우 해당 TCGLog에는 다음 증명 시 호스트 증명 서비스에서 플래그가 지정된 침해 지표가 포함되므로 증명에 실패합니다. 증명에 실패하면 Azure 집합이 잘못된 호스트를 신뢰하지 않습니다. 이 방지를 통해 효과적으로 호스트에 대한 모든 통신이 차단되고 인시던트 워크플로가 트리거됩니다. 근본 원인과 잠재적인 손상 표시를 확인하기 위해 조사와 자세한 사후 분석이 수행됩니다. 분석이 완료된 후에만 호스트가 수정되고 Azure 집합에 조인하고 고객 워크로드를 수행할 수 있습니다.

다음은 호스트 증명 서비스의 대략적인 아키텍처입니다.

호스트 증명 서비스 아키텍처를 보여 주는 다이어그램

증명 측정값

다음은 현재 캡처된 많은 측정값의 예제입니다.

보안 부팅 및 보안 부팅 키

서명 데이터베이스와 해지된 서명 데이터베이스 다이제스트가 올바른지 유효성을 검사하여, 호스트 증명 서비스는 클라이언트 에이전트가 적합한 소프트웨어를 신뢰할 수 있는 것으로 간주하도록 합니다. 퍼블릭 키 등록 키 데이터베이스와 퍼블릭 플랫폼 키에 대한 서명의 유효성을 검사하여, 호스트 증명 서비스는 신뢰할 수 있는 당사자만 신뢰할 수 있는 것으로 간주하는 소프트웨어의 정의를 수정할 권한이 있는지 확인합니다. 마지막으로, 보안 부팅이 활성 상태인지 확인하여, 호스트 증명 서비스는 이 정의가 적용되고 있는지 유효성을 검사합니다.

디버그 컨트롤

디버거는 개발자를 위한 강력한 도구입니다. 그러나 메모리와 기타 디버그 명령에 대한 무제한 액세스는 신뢰할 수 없는 당사자에 제공되는 경우 데이터 보호와 시스템 무결성을 약화할 수 있습니다. 호스트 증명 서비스는 프로덕션 머신에서 부팅 시 모든 종류의 디버깅이 사용되지 않는지 확인합니다.

코드 무결성

UEFI 보안 부팅을 사용하면 부팅 시퀀스 중에 신뢰할 수 있는 하위 수준 소프트웨어만 실행할 수 있습니다. 그러나 사후 부팅 환경에서 커널 모드 액세스를 사용하는 드라이버와 기타 실행 파일에도 동일한 검사를 적용해야 합니다. 이를 위해 CI(코드 무결성) 정책을 사용하여 유효한 서명과 잘못된 서명을 지정하여 신뢰할 수 있는 것으로 간주되는 드라이버, 이진 파일, 기타 실행 파일을 정의합니다. 이러한 정책이 적용됩니다. 정책 위반 시 조사를 위해 보안 인시던트 응답 팀에 대한 경고가 생성됩니다.

다음 단계

플랫폼 무결성 및 보안을 추진하는 방법에 대한 자세한 내용은 다음을 참조하세요.