[CKS] 20. Kubernetes 배포 전 Platform 바이너리 파일 검증하기

쿠버네티스 다운로드 파일, 체크섬 검증으로 악성코드 감염을 막아 안전한 클러스터 운영을 지원합니다.

개요

네트워크에 접근하는 공격자는 사용자의 다운로드 요청을 가로채 진짜 파일을 악성 파일로 바꿔치기할 수 있습니다. 모든 파일은 고유한 체크섬을 가지므로, 쿠버네티스 클러스터를 배포하기 전 플랫폼 바이너리를 검증하는 방법을 알아봅니다.

무결성(Integrity) 확인하기

  1. kubernetes 바이너리 파일을 다운로드합니다.
curl https://dl.k8s.io/v1.20.0/kubernetes.tar.gz -L -o kubernetes.tar.gz
  1. 체크섬 생성

다운로드 후 체크섬 유틸리티를 사용하여 이진 파일의 체크섬을 생성합니다.

이렇게 생성된 해시값을 바이너리 릴리즈 파일에 제공된 해시값과 비교하여 수행합니다.

shasum -a 512 kubernetes.tar.gz
sha512sum kubernetes.tar.gz

Hands-on

# tar.gz 파일의 압축을 해제 (-x: 풀기, -f: 파일 지정)
tar -xf kubernetes.tar.gz

# 압축이 풀려 생성된 kubernetes 디렉터리 안으로 이동
cd kubernetes

# 'version' 이라는 파일을 생성하고 "v1.32.0-modified" 라는 내용을 덮어씀 (파일 내용 수정)
echo "v1.32.0-modified" > version

# 수정된 'kubernetes' 디렉터리를 새로운 압축 파일로 생성 (-c: 생성, -z: gzip 압축, -f: 파일 지정)
tar -czf kubernetes-modified.tar.gz kubernetes

# 새로 만든 압축 파일의 SHA-512 체크섬을 계산하여 파일 무결성을 검증
shasum -a512 kubernetes-modified.tar.gz

Reference