рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рд╕реНрддрд░рд╛рд╡рд░ рдХреЛрдбрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдгрд╛рд░реА eBPF рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдордзреАрд▓ рднреЗрджреНрдпрддрд╛

eBPF рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдПрдХ рдЕрд╕реБрд░рдХреНрд╖рд╛ (CVE-2021-4204) рдУрд│рдЦрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ JIT рд╕рд╣ рд╡рд┐рд╢реЗрд╖ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреНрдпреЗ Linux рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╣рдБрдбрд▓рд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╕реНрдерд╛рдирд┐рдХ рдЕрдирдкреНрд░рд┐рд╡реНрд╣рд┐рд▓реЗрдЬреНрдб рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рдврд╡рддрд╛ рдпреЗрддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪрд╛ рдХреЛрдб рдпреЗрдереЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рдпреЗрддреЛ. рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рдкрд╛рддрд│реА. рд╕рдорд╕реНрдпрд╛ Linux рдХрд░реНрдирд▓ 5.8 рдкрд╛рд╕реВрди рджрд┐рд╕реВрди рдпреЗрдд рдЖрд╣реЗ рдЖрдгрд┐ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╣рддреЗ (рд░рд┐рд▓реАрдЭ 5.16 рд╕рд╣). рд╡рд┐рддрд░рдгрд╛рддреАрд▓ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрджреНрдпрддрдирд╛рдВрдЪреА рд╕реНрдерд┐рддреА рдпрд╛ рдкреГрд╖реНрдард╛рдВрд╡рд░ рдЯреНрд░реЕрдХ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. рдЕрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ рдХреА рдХрд╛рд░реНрдпрд░рдд рд╢реЛрд╖рдг рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ 18 рдЬрд╛рдиреЗрд╡рд╛рд░реА рд░реЛрдЬреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдирд┐рдпреЛрдЬрд┐рдд рдЖрд╣реЗ (рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдЕрд╕реБрд░рдХреНрд╖рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЖрдард╡рдбрд╛ рджреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ).

рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ eBPF рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдЪреБрдХреАрдЪреНрдпрд╛ рдкрдбрддрд╛рд│рдгреАрдореБрд│реЗ рднреЗрджреНрдпрддрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддреЗ. eBPF рдЙрдкрдкреНрд░рдгрд╛рд▓реА рд╕рд╣рд╛рдпреНрдпрдХ рдХрд╛рд░реНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЬреНрдпрд╛рдЪрд╛ рдпреЛрдЧреНрдп рд╡рд╛рдкрд░ рд╡рд┐рд╢реЗрд╖ рдкрдбрддрд╛рд│рдХрд╛рджреНрд╡рд╛рд░реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдХрд╛рд╣реА рдлрдВрдХреНрд╢рдиреНрд╕рдирд╛ рд╡рд┐рддрд░реНрдХ рдореНрд╣рдгреВрди PTR_TO_MEM рд╡реНрд╣реЕрд▓реНрдпреВ рдкрд╛рд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдВрднрд╛рд╡реНрдп рдмрдлрд░ рдУрд╡реНрд╣рд░рдлреНрд▓реЛ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, рдкрдбрддрд╛рд│рдХрд╛рд▓рд╛ рдпреБрдХреНрддрд┐рд╡рд╛рджрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдореЗрдорд░реАрдЪрд╛ рдЖрдХрд╛рд░ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. bpf_ringbuf_submit рдЖрдгрд┐ bpf_ringbuf_discard рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА, рдЯреНрд░рд╛рдиреНрд╕рдлрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореЗрдорд░реАрдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рдЪрд╛ рдбреЗрдЯрд╛ рдкрдбрддрд╛рд│рдХрд╛рд▓рд╛ рдХрд│рд╡рд▓рд╛ рдЧреЗрд▓рд╛ рдирд╛рд╣реА, рдЬреНрдпрд╛рдЪрд╛ рдЙрдкрдпреЛрдЧ рдЦрд╛рд╕ рдбрд┐рдЭрд╛рдИрди рдХреЗрд▓реЗрд▓рд╛ eBPF рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛рдирд╛ рдмрдлрд░ рд╕реАрдореЗрдкрд▓реАрдХрдбреЗ рдореЗрдорд░реА рдХреНрд╖реЗрддреНрд░ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рд╣рд▓реНрд▓рд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдиреЗ рд╕реНрд╡рддрдГрдЪрд╛ BPF рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЖрдгрд┐ рдЕрдиреЗрдХ рдЕрд▓реАрдХрдбреАрд▓ Linux рд╡рд┐рддрд░рдгреЗ рд╣реА рдХреНрд╖рдорддрд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рддрд╛рдд (рдИрдмреАрдкреАрдПрдлрдордзреНрдпреЗ рдЕрдирдкреНрд░рд┐рд╡реНрд╣рд┐рд▓реЗрдЬреНрдб рдНрдХреНрд╕реЗрд╕рд╕рд╣ рдЖрддрд╛ рдХрд░реНрдирд▓рдордзреНрдпреЗрдЪ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗ, рд░рд┐рд▓реАрдЭ 5.16 рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрддреЗ). рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЙрдмрдВрдЯреВ 20.04 LTS рдордзреАрд▓ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рднреЗрджреНрдпрддреЗрдЪрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рдкрд░рдВрддреБ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 рдЖрдгрд┐ Fedora 33 рдордзреНрдпреЗ рдЕреЕрдбрдорд┐рдиреА рд╕реЗрдЯ рдЕрд╕рд▓реНрдпрд╛рд╕рдЪ kernel.unprivileged_bpf_disabled рдкреЕрд░рд╛рдореАрдЯрд░ рддреЗ 0. рдЕрд╕реБрд░рдХреНрд╖рд╛ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЙрдкрд╛рдп рдореНрд╣рдгреВрди, рддреБрдореНрд╣реА "sysctl -w kernel.unprivileged_bpf_disabled=1" рдХрдорд╛рдВрдбрд╕рд╣ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ BPF рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд░реЛрдЦреВ рд╢рдХрддрд╛.

рд╕реНрддреНрд░реЛрдд: opennet.ru

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