보안이 중요하다는 것은 다들 알지만 솔직히 크게 와닿지는 않습니다. 이번 포스팅에서는 쿠버네티스를 해킹해서 secret 리소스에 있는 비밀번호를 찾아내는 실습을 통해 쿠버네티스 보안의 중요성을 알아보겠습니다.
우리는 세 가지 리소스를 만들 것입니다.
Password: 1234
값을 가지는 secret credit-card
app1
app2
ETCD는 쿠버네티스의 클러스터 상태를 저장하는 키-값 데이터 저장소입니다. 쿠버네티스에 선언된 모든 정보가 여기에 저장되기 때문에 secret도 etcd를 조회해보면 알 수 있습니다.
이 방법은 만약 마스터 플레인의 정보가 노출되었고, etcd가 암호화되어 있지 않으며, etcd가 있는 서버에 접근할 수 있다는 많은 전제를 바탕으로 합니다.
etcd의 인증 정보는 모르지만 etcd가 존재하는 서버에 칩입을 했다고 가정해봅시다. etcd가 동작하는 프로세스를 찾고, 해당 프로세스의 데이터를 모두 뒤져보면 원하는 비밀 번호를 찾을 수 있을 것입니다.
ps aux | grep etcd
- etcd의 PID를 가져옵니다.ll /proc/<pid>/fd
를 보면 db라고 적힌 link 파일이 보입니다.