
잘못된 요청을 통한 인증되지 않은 API 액세스 및 권한 상승을 테스트하여 CVE-2018-1002105를 감지하는 Kubernetes 클러스터 취약점 스캐너입니다.
여기에 게시된 심각한 쿠버네티스 CVE에 대해 클러스터를 확인하는 테스트 유틸리티입니다. CVE-2018-1002105에 대한 이해관계자 수준의 글은 다음에서 확인할 수 있습니다: https://gravitational.com/blog/kubernetes-websocket-upgrade-security-vulnerability/
이 테스트를 레이어 7 로드 밸런서나 프록시를 통해 실행하면 쿠버네티스 API 서버 앞에서 신뢰할 수 없는 결과가 나올 수 있습니다. 이 테스트는 API 서버에 연결하여 쿠버네티스 버그를 나타내는 부작용을 확인하는 방식으로 작동합니다. 레이어 7 로드 밸런서를 통해 이 개념 증명을 실행하면 API가 CVE-2018-1002105에 취약하다고 잘못 표시될 수 있습니다.
이 도구는 오탐(false-positive) 경향이 있습니다. 쿠버네티스 API가 주요 클라우드 제공업체(예: Amazon AWS EKS, Google Cloud GKE, Microsoft Azure AKS)에서 제공되는 경우, 해당 서비스 제공업체는 거의 확실히 API 서버에 패치를 적용했으므로 더 이상 CVE-2018-1002105의 영향을 받지 않습니다. 취약하지 않은 API 서버 엔드포인트를 탐지하는 기능을 개선한 풀 리퀘스트를 환영합니다.
go get github.com/gravitational/cve-2018-1002105
cd $GOPATH/src/github.com/gravitational/cve-2018-1002105
go run main.go
docker run -it --rm -v $HOME/.kube/config:/kubeconfig: quay.io/gravitational/cve-2018-1002105:latest
이 도구는 두 가지를 테스트합니다: 클러스터가 API에 대한 인증되지 않은 접근을 허용하는지 (이는 집계 API 엔드포인트에 대한 인증되지 않은 접근을 허용함), 그리고 파드를 찾아 API 서버가 잘못된 요청에 대해 연결을 열어두는지 확인하여 클러스터가 CVE-2018-1002105에 취약한지 테스트합니다.
인증되지 않은 접근 테스트 중...
> API가 인증되지 않은 접근을 허용합니다
권한 상승 테스트 중...
> API가 CVE-2018-1002105에 취약합니다
API가 인증되지 않은 접근을 허용합니다 메시지가 나타나면 테스트가 클러스터에 대한 인증되지 않은 접근을 감지했다는 의미입니다. 이 테스트는 매우 기본적이지만, 클러스터에 익명 접근이 허용된 기본 설정을 감지할 수 있습니다.
API가 CVE-2018-1002105에 취약합니다 메시지가 나타나면 제공된 kubeconfig를 사용하여 테스트가 클러스터가 취약하다는 것을 확인했음을 의미합니다.