
Scanner di vulnerabilità per cluster Kubernetes che rileva CVE-2018-1002105 testando l'accesso API non autenticato e l'escalation dei privilegi tramite richieste malformate.
Utility di test che verifica se un cluster è affetto dalla vulnerabilità Kubernetes ad alta severità pubblicata qui. Un'analisi a livello stakeholder della CVE-2018-1002105 è disponibile su https://gravitational.com/blog/kubernetes-websocket-upgrade-security-vulnerability/
L'esecuzione di questo test attraverso bilanciatori di carico di layer 7 o proxy posti davanti al tuo server API Kubernetes potrebbe essere inaffidabile e produrre risultati errati. Questo test opera connettendosi al server API e verificando la presenza di effetti collaterali del server API che manifestano il bug in Kubernetes. L'esecuzione di questa prova di concetto attraverso un bilanciatore di carico di layer 7 potrebbe indicare falsamente che l'API è vulnerabile a CVE-2018-1002105
Questo strumento tende a dare falsi positivi. Se la tua API Kubernetes è fornita da un importante provider cloud (come Amazon AWS EKS, Google Cloud GKE o Microsoft Azure AKS), è quasi certo che tale provider abbia già corretto il tuo server API e tu non sia più affetto da CVE-2018-1002105. Accogliamo con favore pull request che migliorino il rilevamento di endpoint del server API non vulnerabili.
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
Lo strumento tenterà di verificare due cose: se il cluster consente accesso non autenticato all'API, che a sua volta permetterà accesso non autenticato all'endpoint API aggregato. Tenterà anche di trovare un pod e verificare se il server API lascia la connessione aperta su una richiesta malformata, indicando che il cluster è suscettibile a CVE-2018-1002105.
Testing for unauthenticated access...
> API allows unauthenticated access
Testing for privilege escalation...
> API is vulnerable to CVE-2018-1002105
Se vedi API allows unauthenticated access indica che il test è riuscito a rilevare accesso non autenticato al cluster. Questo test è piuttosto semplice, ma dovrebbe rilevare una configurazione predefinita in cui l'accesso anonimo al cluster è consentito.
Se vedi API is vulnerable to CVE-2018-1002105, significa che, utilizzando il kubeconfig fornito, lo strumento è stato in grado di testare e confermare che il tuo cluster è vulnerabile.