рд▓рд┐рдирдХреНрд╕рдорд╛ рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВ

рдирдорд╕реНрддреЗ рд╕рдмреИред рд╣рд╛рдореА рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдХрд╛рдордорд╛ рд▓рд╛рдЧрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ рд░ рдЬрдирд╡рд░реАрдорд╛ рдзреЗрд░реИ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рдХреНрд╖реЗрдкрдгрд╣рд░реВ рддрдпрд╛рд░реА рдЧрд░реНрджреИрдЫреМрдВред рдЕрд░реВрдордзреНрдпреЗ, рд╕рдмреИрдХреЛ рдордирдкрд░реНрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдордХреЛ рдирдпрд╛рдБ рд╕реНрдЯреНрд░рд┐рдордХреЛ рд▓рд╛рдЧрд┐ рднрд░реНрдирд╛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред "рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ"ред рдкреНрд░рдХреНрд╖реЗрдкрдгрдХреЛ рдкреНрд░рддреНрдпрд╛рд╢рд╛рдорд╛, рд╣рд╛рдореА рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдкрдорд╛ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реАрдХреЛ рдЕрдиреБрд╡рд╛рдж рд╕рд╛рдЭрд╛ рдЧрд░реНрдЫреМрдВред

рд▓рд┐рдирдХреНрд╕рдорд╛ рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВ

рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВрд▓реЗ SUID рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫ, рддрд░ рд╕реБрд░реБрдорд╛ рдереЛрд░реИ рднреНрд░рд╛рдордХ рд▓рд╛рдЧреНрди рд╕рдХреНрдЫред


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

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

рдЕрдиреБрдорддрд┐рд╣рд░реВ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рдЫрдиреН рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЬрд╣рд┐рд▓реЗ рдкрдирд┐ рд░реВрдЯрдХреЛ рд░реВрдкрдорд╛ рдЪрд▓реНрдЫ, рддрд░ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реБрдиреНрдЫ? рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рдпреЛ рдкрдирд┐ рд╕рдорд░реНрдерд┐рдд рдЫ рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕рд╣реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рднрдПрдХреЛ рдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ Ubuntu рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЬ рдЪрд╛рд╣рд┐рдиреНрдЫ libcap2-binред рддрдкрд╛рдИрдВрд▓реЗ рдЧреИрд░-рдкреБрд░рд╛рддрди рдХрд░реНрдиреЗрд▓ (рд╕рдВрд╕реНрдХрд░рдгрдмрд╛рдЯ 2.6.24).

рдпреА рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рдЕрдиреБрдорддрд┐рд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрджреНрдз рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, SUID рдмрд┐рдЯ рд╕реЗрдЯрд┐рдЩ рдЬрд╕реНрддреИ, рддрд░ рдЕрдиреБрдорддрд┐рд╣рд░реВрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ред рдЙрдкрдпреЛрдЧрд┐рддрд╛ setcap рдлрд╛рдЗрд▓рдмрд╛рдЯ рдЕрдиреБрдорддрд┐рд╣рд░реВ рдердкреНрди рд░ рд╣рдЯрд╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред

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

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

sudo setcap cap_net_raw=eip tracewalk

рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпрдпрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН =eip рд╕рдорд╛рдзрд╛рдирдХреЛ рд▓рд╛рдЧрд┐, рдо рдХреЗрд╣рд┐ рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБред рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЕрдиреБрдорддрд┐ рдирд╛рдо рд╕рд╛рдиреЛ рдЕрдХреНрд╖рд░рдорд╛ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЕрдм рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдиреБрдорддрд┐рд╣рд░реВ рд╕рд╣реА рд░реВрдкрдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫ:

setcap -v cap_new_raw=eip tracewalk

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

getcap tracewalk

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

setcap -r tracewalk

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

рддреНрдпрд╕реЛрднрдП рдпреЛ рдЕрдиреМрдареЛ рдкреНрд░рддреНрдпрдпрдХреЛ рдЕрд░реНрде рдХреЗ рд╣реЛ? =eip? рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐рд╣рд░реВрдХреЛ рдкреНрд░рдХреГрддрд┐рдХреЛ рдХреЗрд╣реА рдмреБрдЭрд╛рдЗ рдЖрд╡рд╢реНрдпрдХ рдЫред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдЕрдиреБрдорддрд┐рд╣рд░реВрдХреЛ рддреАрди рд╕реЗрдЯрд╣рд░реВ рдЫрдиреН - рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА, рд╡рдВрд╢рд╛рдгреБрдЧрдд рд░ рдЕрдиреБрдорддрд┐ рдкреНрд░рд╛рдкреНрдд:

  • рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдЕрдиреБрдорддрд┐рд╣рд░реВ рддреА рд╣реБрдиреН рдЬрд╕рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗ рдЧрд░реНрди рд╕рдХреНрдЫ рднрдиреЗрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ рдХрдЪреНрдЪрд╛ рд╕рдХреЗрдЯрд╣рд░реВрд╕рдБрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рд╕рдХреНрджреИрди рдпрджрд┐ CAP_NET_RAW рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд╕реЗрдЯрдорд╛ рдЫреИрдиред
  • рдЙрдкрд▓рдмреНрдз рдЫ рдЕрдиреБрдорддрд┐рд╣рд░реВ рддреА рд╣реБрдиреН рдЬреБрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдиреНрдЫ рдпрджрд┐ рдпрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрдЫред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗрд╣рд┐ рдЧрд░реНрдирдмрд╛рдЯ рд░реЛрдХреНрдЫрдиреН рдЬрдмрд╕рдореНрдо рдпреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдЙрдХреНрдд рдЕрдиреБрдорддрд┐ рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдПрдиред рдпрд╕рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд╕реЗрдЯрдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдорддрд┐рд╣рд░реВ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрдм рддрд┐рдиреАрд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫрдиреНред
  • рд╡рдВрд╢рд╛рдгреБрдЧрдд рдЕрдиреБрдорддрд┐рд╣рд░реВ рддреА рд╣реБрдиреН рдЬреБрди рдЬрдиреНрдорд┐рдПрдХреЛ рдмрдЪреНрдЪрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд╕реЗрдЯрдорд╛ рдЗрдирд╣реЗрд░рд┐рдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╢рд▓реНрдпрдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ fork() рд╡рд╛ clone() рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕рдзреИрдВ рдЕрднрд┐рднрд╛рд╡рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЕрдиреБрдорддрд┐рдХреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рджрд┐рдЗрдиреНрдЫ рдХрд┐рдирднрдиреЗ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рддреНрдпреЛ рдмрд┐рдиреНрджреБрдорд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫред рдЬрдм рдПрдХ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдмрд▓ рд╕реЗрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ exec() (рд╡рд╛ рд╕рдордХрдХреНрд╖) рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд▓рд╛рдИ рдЕрд░реНрдХреЛрд╕рдБрдЧ рдмрджрд▓реНрди рднрдирд┐рдиреНрдЫред рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯрд▓рд╛рдИ рдирдпрд╛рдБ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЗрдирд╣реЗрд░рд┐рдЯреЗрдмрд▓ рд╕реЗрдЯрджреНрд╡рд╛рд░рд╛ рдорд╛рд╕реНрдХ рдЧрд░рд┐рдПрдХреЛ рдЫред

рддреНрдпрд╕реИрд▓реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ setcap рд╣рд╛рдореАрд▓рд╛рдИ рджрд┐рдЗрдПрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдпрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рддрдиреНрддреНрд░ рд░реВрдкрдорд╛ рдпреА рддреАрди рд╕реЗрдЯрд╣рд░реВрдХреЛ рдЕрдиреБрдорддрд┐рд╣рд░реВ рдердкреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рдЕрд░реНрде рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд▓рд┐ рдлрд░рдХ рд░реВрдкрдорд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ:

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

рдорд╛рд░реНрдлрдд рдЕрдиреБрдорддрд┐рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрд╛ setcap рддреАрди рдЕрдХреНрд╖рд░ e, i ╨╕ p рдЙрд▓реНрд▓реЗрдЦ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА, рд╡рдВрд╢рд╛рдгреБрдЧрдд рд░ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рдХреНрд░рдорд╢рдГ рд╕реЗрдЯ рдЧрд░реНрджрдЫред рддреНрдпрд╕реЛрднрдП, рдкрд╣рд┐рд▓реЗрдХреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢:

sudo setcap cap_net_raw=eip tracewalk

... рд╕рдВрдХрд▓реНрдк рд╕рдВрдХреЗрдд рдЧрд░реНрдЫ CAP_NET_RAW рдЙрдкрд▓рдмреНрдз рд░ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдмрд▓ рд╕реЗрдЯрд╣рд░реВрдорд╛ рдердкрд┐рдиреБрдкрд░реНрдЫ рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдмрд┐рдЯ рдкрдирд┐ рд╕реЗрдЯ рдЧрд░рд┐рдиреБрдкрд░реНрдЫред рдпрд╕рд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рдкрд╣рд┐рд▓реЗ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рдЕрдиреБрдорддрд┐рд╣рд░реВрд▓рд╛рдИ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрдиреЗрдЫред рдПрдХреИ рдкрдЯрдХ рдзреЗрд░реИ рдЕрдиреБрдорддрд┐рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо-рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реВрдЪреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

sudo setcap cap_net_admin,cap_net_raw=eip tracewalk

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

рдкрд╣рд┐рд▓реЛ, рдлрд╛рдЗрд▓ рдХреНрд╖рдорддрд╛рд╣рд░реВ рд╕рд┐рдорд▓рд┐рдЩреНрдХрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрдирдиреН - рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрдкрд░реНрдЫ (рдЕрд░реНрдерд╛рддреН рд╕рд┐рдорд▓рд┐рдЩреНрдХрдХреЛ рд▓рдХреНрд╖реНрдп)ред

рджреЛрд╕реНрд░реЛ, рддрд┐рдиреАрд╣рд░реВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░рд┐рдПрдХреЛ рд▓рд┐рдкрд┐рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрдирдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЫ рдЬреБрди рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрд╛рдЗрдерди рдЕрдиреБрд╡рд╛рджрдХрдорд╛ рдЕрд╕рд╛рдЗрди рдЧрд░реНрдиреБрдкрд░реНрдЫред рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдпреЛ рдПрдХ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджрд╛ рд╣реЛ рдХрд┐рдирднрдиреЗ рддреНрдпрд╕реЛ рднрдП рддреНрдпрд╕ рджреЛрднрд╛рд╖реЗрд╕рдБрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреБрдорддрд┐ рд╣реБрдиреЗрдЫ, рдпрджреНрдпрдкрд┐ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рдпрд╕рд▓рд╛рдИ SUID рдмрдирд╛рдЙрдиреБ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдЫред рд╕рдмреИ рднрдиреНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╛рдп рднрдиреЗрдХреЛ C рд╡рд╛ рд╕рдордХрдХреНрд╖рдорд╛ рдЫреБрдЯреНрдЯреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рд▓реЗрдЦреНрдиреБ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрди рд░ рдпрд╕рд▓рд╛рдИ рд▓рд┐рдкрд┐рдмрд╛рдЯ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдЫред рдпреЛ Wireshark рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд╕реНрддреИ рд╣реЛ рдЬрд╕рд▓реЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ /usr/bin/dumpcap рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрди:

$ getcap /usr/bin/dumpcap 
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

рддреЗрд╕реНрд░реЛ, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рд╣реБрдиреНрдЫрдиреН LD_LIBRARY_PATH рд╕реНрдкрд╖реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐(1)ред рдорд╛ рдкрдирд┐ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ LD_PRELOADрдЬрд╣рд╛рдБрд╕рдореНрдо рдорд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫред

1. рдПрдХ рдЖрдХреНрд░рдордгрдХрд╛рд░реАрд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ LD_LIBRARY_PATHрдпрд╕рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реА рдПрдХрд▓рд╛рдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдорд╛ рдмреЛрд▓рд╛рдЙрди рдмрд╛рдзреНрдп рдкрд╛рд░реНрди, рд░ рдпрд╕реИрд▓реЗ рдХрд▓рд┐рдЩ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╕реНрд╡реЗрдЪреНрдЫрд╛рдЪрд╛рд░реА рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдпрддрд┐ рдиреИред рдкрд╛рдареНрдпрдХреНрд░рдо рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ рд╡реЗрдмрд┐рдирд╛рд░, рдЬреБрди 24 рдЬрдирд╡рд░реАрдорд╛ рд╣реБрдиреЗрдЫред

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

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