Le réseau du cluster est à la fois une surface de mouvement et une surface de contrôle. Par défaut, le réseau est plat et non segmenté, de sorte que tout pod atteint n'importe quel autre ; là où des NetworkPolicies existent, elles sont souvent incomplètes ou contournables ; le CNI et l'overlay qui implémentent le réseau des pods ont leurs propres comportements abusables ; et un service mesh, censé ajouter authentification et chiffrement, introduit des sidecars et un plan de contrôle qui peuvent être retournés contre le trafic qu'ils gèrent.
ip -4 addr; ip route # pod network and reachability
kubectl get networkpolicies -A 2>/dev/null # are any policies defined at all?
kubectl get pods -A -o jsonpath='{..image}' | tr ' ' '\n' | grep -iE 'istio|linkerd|envoy|cilium' | sort -u
Sous-sujets#
- Contournement de NetworkPolicy : atteindre des cibles qu'une politique devait bloquer.
- Abus du CNI et de l'overlay : faiblesses dans l'implémentation du réseau de pods.
- Abus du service mesh : retourner les sidecars et le plan de contrôle du mesh contre le trafic.