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

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

[CKS] 20. Kubernetes 배포 전 Platform 바이너리 파일 검증하기
Photo by Viktor Talashuk / Unsplash

개요

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

무결성(Integrity) 확인하기

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

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

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

  • macOS 및 Linux(shasum 사용):
shasum -a 512 kubernetes.tar.gz
  • Linux(sha512sum 사용):
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