보안 설정된 VM 인스턴스의 무결성 모니터링

이 항목에서는 Stackdriver를 사용하여 보안 설정된 VM 인스턴스의 부팅 무결성을 모니터링하고, 무결성 확인 실패의 원인을 파악하고, 무결성 정책 기준을 업데이트하는 방법을 알아봅니다.

시작하기 전에

Stackdriver를 사용하여 VM 부팅 무결성 모니터링

무결성 확인 이벤트를 보고 해당 이벤트에 대한 알림을 설정하려면 Stackdriver Monitoring을 사용하고, 해당 이벤트에 대한 세부정보를 검토하려면 Stackdriver Logging을 사용합니다.

무결성 확인 이벤트 보기

  1. Stackdriver Monitoring으로 이동
  2. Stackdriver Monitoring 콘솔의 오른쪽 상단 드롭다운 메뉴를 사용하여 VM 인스턴스가 위치한 GCP 프로젝트가 포함된 Stackdriver 계정을 선택합니다.
  3. 왼쪽 탐색 창에서 리소스를 선택한 다음 측정항목 탐색기를 선택합니다.
  4. 리소스 유형 및 측정항목 찾기 필드에 instance를 입력하고 GCE VM 인스턴스 리소스 유형을 선택합니다.
  5. 다음 측정항목 중 하나를 선택합니다.

    • Early Boot Validation은 마지막 부팅 시퀀스 중 이전 부팅 부분의 성공/실패 상태를 보여줍니다. 이전 부팅은 UEFI 펌웨어가 시작되어 부트로더에 제어권을 넘길 때까지의 부팅 시퀀스입니다.
    • Late Boot Validation은 마지막 부팅 시퀀스 중 이후 부팅 부분의 성공/실패 상태를 보여줍니다. 이후 부팅은 부트로더가 실행된 후 완료될 때까지의 부팅 시퀀스입니다. 여기에는 운영체제 커널을 로드하는 과정이 포함됩니다.
  6. 원하는 경우 필터를 적용하여 표시되는 측정항목 정보를 제한하거나, 표시되는 측정항목 정보를 그룹화하거나, 측정항목 데이터를 집계합니다. 자세한 내용은 추가 구성을 참조하세요.

무결성 확인 이벤트에 대한 알림 설정

VM 인스턴스에서 부팅 확인에 실패할 경우 알림을 받으려면 Early Boot ValidationLate Boot Validation 측정항목의 값에 대한 알림을 설정합니다. 알림 구성에 대한 자세한 내용은 알림 소개를 참조하세요.

  1. Stackdriver Monitoring으로 이동
  2. Stackdriver Monitoring 콘솔의 오른쪽 상단 드롭다운 메뉴를 사용하여 VM 인스턴스가 위치한 GCP 프로젝트가 포함된 Stackdriver 계정을 선택합니다.
  3. 왼쪽 탐색 창에서 알림을 선택한 다음 정책 만들기를 선택합니다.
  4. 조건 추가를 클릭합니다.
  5. 새 알림 조건 인터페이스를 사용하기 위해 알림 조건을 만들기 위한 새로운 UI를 사용해보세요.라는 메시지에서 수신 설정을 선택합니다(필수).
  6. 측정항목 기준선/비율 변경/부재에서 선택을 클릭합니다.
  7. 리소스 유형 및 측정항목 찾기 필드에 instance를 입력하고 GCE VM 인스턴스 리소스 유형을 선택합니다.
  8. 다음 측정항목 중 하나를 선택합니다.

    • Early Boot Validation은 마지막 부팅 시퀀스 중 이전 부팅 부분의 성공/실패 상태를 보여줍니다. 이전 부팅은 UEFI 펌웨어가 시작되어 부트로더에 제어권을 넘길 때까지의 부팅 시퀀스입니다.
    • Late Boot Validation은 마지막 부팅 시퀀스 중 이후 부팅 부분의 성공/실패 상태를 보여줍니다. 이후 부팅은 부트로더가 실행된 후 완료될 때까지의 부팅 시퀀스입니다. 여기에는 운영체제 커널을 로드하는 과정이 포함됩니다.
  9. 필터에서 status=failed를 기준으로 필터링합니다.

  10. 그룹화 기준에서 status를 기준으로 그룹화합니다.

  11. 다음의 경우 조건 트리거에서 Any time series violates를 선택합니다.

  12. 조건에서 is above 0 for 1 minute를 지정합니다.

  13. 조건 저장을 클릭합니다.

  14. 알림을 하나 이상 추가합니다.

  15. 원하는 경우 알림 수신자가 알림 처리 방법을 이해할 수 있도록 문서를 추가합니다.

  16. 정책 이름을 지정합니다.

  17. 정책 저장을 선택합니다.

무결성 확인 이벤트 세부정보 보기

  1. VM 인스턴스 페이지로 이동합니다.
  2. 인스턴스 ID를 클릭하여 VM 인스턴스 세부정보 페이지를 엽니다.
  3. 로그에서 Stackdriver Logging을 클릭합니다.
  4. 검토하려는 earlyBootReportEvent 또는 lateBootReportEvent 로그 항목을 찾습니다.
  5. 로그 항목 > jsonPayload > earlyBootReportEvent 또는 lateBootReportEvent 중 해당하는 항목을 펼칩니다. 해당 섹션 내에서 policyEvaluationPassed 요소는 부팅 시퀀스의 특정 섹션이 무결성 정책 기준에 따른 확인을 통과했는지 여부를 나타냅니다.
  6. actualMeasurements 섹션과 이 섹션 내의 번호가 매겨진 요소를 펼쳐 최근 부팅 시퀀스에서 저장된 플랫폼 구성 등록(PCR) 값을 확인합니다. PCR 값은 번호가 매겨진 요소 내의 pcrNum 요소에 저장되어 있습니다. PCR 값은 최근 부팅 시퀀스에 사용된 부팅 구성요소와 구성요소 로드 순서를 식별하며, 이 값을 무결성 정책 기준과 비교하면 VM 인스턴스 부팅 시퀀스에 변경사항이 있는지 확인할 수 있습니다. PCR이 나타내는 정보에 대한 자세한 내용은 무결성 모니터링 이벤트를 참조하세요.
  7. policyMeasurements 섹션을 펼쳐 무결성 정책 기준에 대해 저장된 PCR 값을 확인합니다.

무결성 확인 이벤트에 대한 응답 자동화

Stackdriver 로그를 내보낸 후 이를 Cloud Functions 같은 다른 서비스에서 처리하여 부팅 확인 이벤트에 대한 응답을 자동화할 수 있습니다. 자세한 내용은 로그 내보내기 개요를 참조하세요.

부팅 무결성 확인 실패의 원인 확인

  1. VM 인스턴스 페이지로 이동합니다.
  2. 인스턴스 ID를 클릭하여 VM 인스턴스 세부정보 페이지를 엽니다.
  3. 로그에서 Stackdriver Logging을 클릭합니다.
  4. 가장 최근의 earlyBootReportEventlateBootReportEvent 로그 항목을 찾아 어느 항목의 policyEvaluationPassed 값이 false인지 확인합니다.
  5. 로그 항목 > jsonPayload > earlyBootReportEvent 또는 lateBootReportEvent 중 해당하는 항목을 펼칩니다.
  6. actualMeasurementspolicyMeasurements 섹션과 이러한 섹션 내의 번호가 매겨진 요소를 펼쳐 각각 최근 부팅 시퀀스에서 저장된 플랫폼 구성 등록(PCR) 값과 무결성 정책 기준을 확인합니다. PCR 값은 최근 부팅 시퀀스와 무결성 정책 기준에 사용된 부팅 구성요소와 구성요소 로드 순서를 식별합니다.
  7. actualMeasurements 섹션과 policyMeasurements 섹션의 PCR 값을 비교하여 최근 부팅 시퀀스와 무결성 정책 기준 사이에 변동이 발생했는지 확인합니다. 비교 결과 값이 상이한 것으로 나타나는 요소가 확인 실패의 원인이 되는 문제입니다. 이러한 섹션의 요소 번호는 PCR 번호와 일치하는 경우가 거의 없으며, actualMeasurementspolicyMeasurements에서 비슷하게 번호가 매겨진 요소가 서로 다른 PCR을 나타낼 수도 있습니다. 예를 들어 Windows와 Linux 모두의 이전 부팅 시퀀스에서 actualMeasurements3 요소와 policyMeasurements 요소의 2 요소는 모두 PCR7을 나타냅니다.

  8. 무결성 모니터링 이벤트를 검사하여 변경된 PCR이 나타내는 사항을 확인하고 이것이 예상된 변경사항인지 조사합니다.

무결성 정책 기준 업데이트

초기 무결성 정책 기준은 인스턴스 생성 시 암시적으로 신뢰할 수 있는 부팅 이미지에서 파생됩니다. 이 기준을 업데이트하면 현재 인스턴스 구성을 사용하여 무결성 정책 기준이 업데이트됩니다. 기준을 업데이트할 때는 VM 인스턴스가 실행되고 있어야 합니다.

인스턴스 구성에서 커널 업데이트 또는 커널 드라이버 설치와 같은 계획된 부팅 관련 변경사항이 발생한 후에는 이로 인해 무결성 확인에 실패하게 되므로 기준을 업데이트해야 합니다. 예기치 않게 무결성 확인에 실패할 경우에는 VM 인스턴스를 중지하고 실패 원인을 조사해야 합니다.

무결성 정책 기준을 업데이트하려면 setShieldedVmIntegrityPolicy 권한이 있어야 합니다.

무결성 정책 기준을 업데이트하려면 다음 절차를 따릅니다.

gcloud

compute instances update 명령어와 --shielded-vm-learn-integrity-policy 플래그를 사용하여 VM 인스턴스의 무결성 정책 기준을 업데이트합니다.

다음 예에서는 my-instance VM 인스턴스의 무결성 정책 기준을 재설정합니다.

gcloud beta compute instances update my-instance \
    --shielded-vm-learn-integrity-policy

API

updateAutoLearnPolicy 요청 본문 항목과 setShieldedVmIntegrityPolicy 메소드를 사용하여 VM 인스턴스의 무결성 정책 기준을 업데이트합니다.

다음 예에서는 VM 인스턴스의 무결성 정책 기준을 재설정합니다.

PATCH https://www.googleapis.com/compute/alpha/projects/my-project/zones/us-central1-b/instances/my-instance/setShieldedVmIntegrityPolicy?key={YOUR_API_KEY}
{
  "updateAutoLearnPolicy": true
}

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서