Kubernetes - OPA Gatekeeper bypass

рдЗрд╕ рдкреЗрдЬ рдХреЗ рдореВрд▓ рд▓реЗрдЦрдХ рд╣реИрдВ рдЧрд┐рдпреЛрдо

рдЧрд▓рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ

рдирд┐рдпрдореЛрдВ рдХрд╛ рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

рдПрдХ рдЕрд╡рд▓реЛрдХрди рд╣реЛрдирд╛ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдХреМрди рд╕реЗ рдирд┐рдпрдо рд╕рдХреНрд░рд┐рдп рд╣реИрдВ, рдХрд┐рд╕ рдореЛрдб рдкрд░ рд╣реИрдВ рдФрд░ рдХреМрди рдЗрд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

CLI рдХреЗ рд╕рд╛рде

$ kubectl api-resources | grep gatekeeper
k8smandatoryannotations                                                             constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryAnnotations
k8smandatorylabels                                                                  constraints.gatekeeper.sh/v1beta1                  false        K8sMandatoryLabel
constrainttemplates                                                                 templates.gatekeeper.sh/v1                         false        ConstraintTemplate

ConstraintTemplate рдФрд░ Constraint рдХреЛ Open Policy Agent (OPA) Gatekeeper рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ Kubernetes рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред

$ kubectl get constrainttemplates
$ kubectl get k8smandatorylabels

GUI рдХреЗ рд╕рд╛рде

рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Gatekeeper Policy Manager рдХреЗ рд╕рд╛рде OPA рдирд┐рдпрдореЛрдВ рддрдХ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ "рдПрдХ рд╕рд░рд▓ рдХреЗрд╡рд▓ рдкрдардиреАрдп рд╡реЗрдм рдпреВрдЖрдИ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмрд░рдиреЗрдЯреАрдЬрд╝ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ OPA Gatekeeper рдиреАрддрд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП" рд╣реИред

рдЙрдЬрд╛рдЧрд░ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ:

$ kubectl get services -A | grep gatekeeper
$ kubectl get services -A | grep 'gatekeeper-policy-manager-system'

рдЫреВрдЯреА рдиреЗрдорд╕реНрдкреЗрд╕

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреБрдЫ рдирд┐рдпрдо рд╕рднреА рдиреЗрдорд╕реНрдкреЗрд╕ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдЗрдирдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рдПрдХ рд╕рдлреЗрдж рд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, liveness-probe рдирд┐рдпрдо рдХреЛ рдкрд╛рдВрдЪ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмрд╛рдпрдкрд╛рд╕

рдЧреЗрдЯрдХреАрдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЕрд╡рд▓реЛрдХрди рдХрд░рдХреЗ, рд╕рдВрднрд╛рд╡рд┐рдд рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд╣рд╛рдВ рдЕрдкрдирд╛ рд╣рдорд▓рд╛ рдЪрд▓рд╛рдПрдВред

Abusing Roles/ClusterRoles in Kubernetes

рд╕рдВрджрд░реНрдн

Last updated