7장. Keylime을 사용하여 시스템 무결성 보장
Keylime을 사용하면 원격 시스템의 무결성을 지속적으로 모니터링하고 부팅 시 시스템 상태를 확인할 수 있습니다. 암호화된 파일을 모니터링된 시스템으로 보내고 모니터링 중인 시스템이 무결성 테스트에 실패할 때마다 트리거된 자동 작업을 지정할 수도 있습니다.
7.1. Keylime 작동 방식
다음 작업 중 하나 이상을 수행하도록 Keylime 에이전트를 구성할 수 있습니다.
- 런타임 무결성 모니터링
- Keylime 런타임 무결성 모니터링은 에이전트가 배포된 시스템을 지속적으로 모니터링하고 허용 목록에 포함된 파일의 무결성을 측정하고 excludelist에 포함되지 않습니다.
- 측정된 부팅
- Keylime 측정된 부팅은 부팅 시 시스템 상태를 확인합니다.
Keylime의 신뢰 개념은 TPM(Trusted Platform Module) 기술을 기반으로 합니다. TPM은 통합된 암호화 키가 있는 하드웨어, 펌웨어 또는 가상 구성 요소입니다. TPM 따옴표를 폴링하고 오브젝트 해시를 비교함으로써 Keylime은 원격 시스템의 초기 및 런타임 모니터링을 제공합니다.
가상 머신에서 실행 중이거나 가상 TPM을 사용하는 것은 기본 호스트의 무결성에 따라 달라집니다. 가상 환경의 Keylime 측정에 의존하기 전에 호스트 환경을 신뢰해야 합니다.
Keylime는 세 가지 주요 구성 요소로 구성됩니다.
- Verifier
-
처음에는 에이전트를 실행하는 시스템의 무결성을 지속적으로 확인합니다. 패키지에서 검증기를 배포하거나
keylime_server
RHEL 시스템 역할을 usign하여 배포할 수 있습니다. - Registrar
-
모든 에이전트의 데이터베이스를 포함하며 TPM 공급 업체의 공개 키를 호스팅합니다. 패키지의 등록 기관을 컨테이너로 배포하거나
keylime_server
RHEL 시스템 역할을 usign하여 배포할 수 있습니다. - agent
- 검증기에서 측정한 원격 시스템에 배포됩니다.
또한 Keylime은 대상 시스템에서 에이전트를 프로비저닝하는 것을 포함하여 많은 기능에 keylime_tenant
유틸리티를 사용합니다.
그림 7.1. 구성을 통한 Keylime 구성 요소 간 연결
Keylime은 구성 요소와 테넌트 간에 교환된 키와 인증서를 사용하여 신뢰 체인에서 모니터링되는 시스템의 무결성을 보장합니다. 이 체인의 안전한 기반은 신뢰할 수 있는 CA(인증 기관)를 사용합니다.
에이전트가 키 및 인증서를 수신하지 않으면 CA에서 부여하지 않고 키와 자체 서명 인증서를 생성합니다.
그림 7.2. Keylime 구성 요소 인증서와 키 간 연결