рд▓рд┐рдирдХреНрд╕рдордзреНрдпреЗ рдлрд╛рдЗрд▓ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛

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

рд▓рд┐рдирдХреНрд╕рдордзреНрдпреЗ рдлрд╛рдЗрд▓ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛

рдлрд╛рдЗрд▓ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ SUID рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓рд╕рд╛рдареА рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд░реНрдпрд╛рдп рджреЗрддрд╛рдд, рдкрд░рдВрддреБ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рддреЗ рдереЛрдбреЗ рдЧреЛрдВрдзрд│рд╛рдд рдЯрд╛рдХрдгрд╛рд░реЗ рд╡рд╛рдЯреВ рд╢рдХрддрд╛рдд.


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

рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд░реАрд▓ рд▓реЗрдЦ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд╛рдЪрд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рддрд░ рдореА рддреБрдордЪрд╛ рдХрд╛рд╣реА рд╡реЗрд│ рд╡рд╛рдЪрд╡реАрди: рдореВрд▓рдд:, рдлрд╛рдЗрд▓ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд░реВрдЯ рдореНрд╣рдгреВрди рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдирд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдХрд╛рд╣реА рдХреНрд╖рдорддрд╛ рд░рд╛рдЦреВрди рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рддреЗ, рдорд░реНрдпрд╛рджрд┐рдд рд╣реА рдпрд╛рджреАрдЬреЗрд╡реНрд╣рд╛ рддреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕реЛрдбрддрд╛рдд рдЖрдгрд┐ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рддрд╛рдд. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рдЖрдХреНрд░рдордгрдХрд░реНрддреНрдпрд╛рдиреЗ рдмрдлрд░ рдУрд╡реНрд╣рд░рдлреНрд▓реЛ рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рд╢реЛрд╖рдг рд╡рд╛рдкрд░реВрди рдПрдЦрд╛рджреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╢реА рддрдбрдЬреЛрдб рдХреЗрд▓реА, рддрд░ рддреЗ рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рдХрд┐рдорд╛рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╛рдВрд╢рд┐рд╡рд╛рдп рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЧреЛрд╖реНрдЯреАрдЪрд╛ рд▓рд╛рдн рдШреЗрдК рд╢рдХрдгрд╛рд░ рдирд╛рд╣реАрдд.

рд╕рд╛рдорд╛рдиреНрдпрдд: рдиреЗрд╣рдореА рд░реВрдЯ рдореНрд╣рдгреВрди рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рдЙрддреНрддрдо рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬрдЪреЗ рдХрд╛рдп? рд╕реБрджреИрд╡рд╛рдиреЗ, рд╣реЗ рджреЗрдЦреАрд▓ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдпреЛрдЧреНрдп рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЕрд╕рддреАрд▓. рдЬрд░ рддреБрдореНрд╣реА рдЙрдмрдВрдЯреВ рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреЕрдХреЗрдЬрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ 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 рдХрд┐рдВрд╡рд╛ рд╕рдорддреБрд▓реНрдп рдордзреНрдпреЗ рд╕реНрд╡рддрдВрддреНрд░ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рд▓рд┐рд╣рд┐рдгреЗ рдЖрд╣реЗ рдЬреЗ рдЖрд╡рд╢реНрдпрдХ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреВрди рдХреЙрд▓ рдХрд░реВ рд╢рдХрддреЗ. рд╣реЗ рд╡рд╛рдпрд░рд╢рд╛рд░реНрдХрджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдЬреЗ рдмрд╛рдпрдирд░реА рд╡рд╛рдкрд░рддреЗ /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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛