GCP - KMS Enum

Support HackTricks

KMS

클라우드 키 관리 서비스암호화 키를 안전하게 저장하는 역할을 하며, 이는 민감한 데이터의 암호화 및 복호화와 같은 작업에 필수적입니다. 이러한 키는 키 링 내에서 조직되어 구조화된 관리를 가능하게 합니다. 또한, 접근 제어는 개별 키 수준 또는 전체 키 링에 대해 세밀하게 구성할 수 있어, 권한이 보안 요구 사항에 정확히 맞춰질 수 있습니다.

KMS 키 링은 기본적으로 전역으로 생성되며, 이는 해당 키 링 내의 키가 모든 지역에서 접근 가능함을 의미합니다. 그러나 특정 지역에 특정 키 링을 생성하는 것도 가능합니다.

키 보호 수준

  • 소프트웨어 키: 소프트웨어 키는 KMS에 의해 완전히 소프트웨어로 생성 및 관리됩니다. 이러한 키는 **하드웨어 보안 모듈(HSM)**에 의해 보호되지 않으며, 테스트 및 개발 목적으로 사용될 수 있습니다. 소프트웨어 키는 보안이 낮고 공격에 취약하기 때문에 생산 용도로는 권장되지 않습니다.

  • 클라우드 호스팅 키: 클라우드 호스팅 키는 KMS에 의해 클라우드에서 생성 및 관리되며, 고가용성 및 신뢰할 수 있는 인프라를 사용합니다. 이러한 키는 HSM에 의해 보호되지만, HSM은 특정 고객에 전용되지 않습니다. 클라우드 호스팅 키는 대부분의 생산 사용 사례에 적합합니다.

  • 외부 키: 외부 키는 KMS 외부에서 생성 및 관리되며, 암호화 작업에 사용하기 위해 KMS로 가져옵니다. 외부 키는 고객의 선호에 따라 하드웨어 보안 모듈(HSM) 또는 소프트웨어 라이브러리에 저장될 수 있습니다.

키 용도

  • 대칭 암호화/복호화: 단일 키를 사용하여 데이터를 암호화 및 복호화하는 데 사용됩니다. 대칭 키는 대량의 데이터를 암호화하고 복호화하는 데 빠르고 효율적입니다.

  • 비대칭 서명: 키를 공유하지 않고 두 당사자 간의 안전한 통신에 사용됩니다. 비대칭 키는 공개 키와 개인 키로 구성된 쌍으로 제공됩니다. 공개 키는 다른 사람과 공유되며, 개인 키는 비밀로 유지됩니다.

  • 비대칭 복호화: 메시지 또는 데이터의 진위를 확인하는 데 사용됩니다. 디지털 서명은 개인 키를 사용하여 생성되며, 해당 공개 키를 사용하여 검증할 수 있습니다.

  • MAC 서명: 비밀 키를 사용하여 메시지 인증 코드를 생성함으로써 데이터 무결성과 진위를 보장하는 데 사용됩니다. HMAC는 네트워크 프로토콜 및 소프트웨어 애플리케이션에서 메시지 인증에 일반적으로 사용됩니다.

회전 주기 및 파괴 예정 기간

기본적으로90일이지만, 쉽게완전히 사용자 정의할 수 있습니다.

"파괴 예정" 기간은 사용자가 키 삭제를 요청한 시점부터 키가 삭제될 때까지의 시간입니다. 키가 생성된 후에는 변경할 수 없습니다(기본값 1일).

기본 버전

각 KMS 키는 여러 버전을 가질 수 있으며, 그 중 하나는 기본 버전이어야 하며, 이는 KMS 키와 상호작용할 때 버전이 지정되지 않을 경우 사용됩니다.

열거

키를 나열할 수 있는 권한이 있는 경우 다음과 같이 접근할 수 있습니다:

# List the global keyrings available
gcloud kms keyrings list --location global
gcloud kms keyrings get-iam-policy <KEYRING>

# List the keys inside a keyring
gcloud kms keys list --keyring <KEYRING> --location <global/other_locations>
gcloud kms keys get-iam-policy <KEY>

# Encrypt a file using one of your keys
gcloud kms encrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

# Decrypt a file using one of your keys
gcloud kms decrypt --ciphertext-file=[INFILE] \
--plaintext-file=[OUTFILE] \
--key [KEY] \
--keyring [KEYRING] \
--location global

권한 상승

GCP - KMS Privesc

포스트 익스플로잇

GCP - KMS Post Exploitation

참고 문헌

HackTricks 지원하기

Last updated