eBPF เชธเชฌเชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชจเชฌเชณเชพเชˆ เช•เซ‡ เชœเซ‡ Linux เช•เชฐเซเชจเชฒ เชธเซเชคเชฐเซ‡ เช•เซ‹เชก เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡

eBPF เชธเชฌเชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชเช• เชจเชฌเชณเชพเชˆ (CVE-2021-4204) เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ JIT เชธเชพเชฅเซ‡ เชตเชฟเชถเชฟเชทเซเชŸ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชฎเชพเช‚ Linux เช•เชฐเซเชจเชฒเชจเซ€ เช…เช‚เชฆเชฐ เชนเซ‡เชจเซเชกเชฒเชฐ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชฌเชฟเชจเชชเซเชฐเชพเชชเซเชคเชฟเชตเชฟเชนเซ€เชจ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชตเชฟเชถเซ‡เชทเชพเชงเชฟเช•เชพเชฐ เชตเซƒเชฆเซเชงเชฟ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เช•เซ‹เชกเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. Linux เช•เชฐเซเชจเชฒ เชธเซเชคเชฐ. เช† เชธเชฎเชธเซเชฏเชพ Linux เช•เชฐเซเชจเชฒ 5.8 เชฅเซ€ เชฆเซ‡เช–เชพเชˆ เชฐเชนเซ€ เช›เซ‡ เช…เชจเซ‡ เช…เชจเชฟเชถเซเชšเชฟเชค เชฐเชนเซ‡ เช›เซ‡ (เชชเซเชฐเช•เชพเชถเชจ 5.16 เชธเชนเชฟเชค). เชกเชฟเชธเซเชŸเซเชฐเชฟเชฌเซเชฏเซเชถเชจเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช เซ€เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ‡เชฒเชพ เช…เชชเชกเซ‡เชŸเซเชธเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เช† เชชเซƒเชทเซเช เซ‹ เชชเชฐ เชŸเซเชฐเซ…เช• เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡: เชกเซ‡เชฌเชฟเชฏเชจ, เช†เชฐเชเชšเชˆเชเชฒ, เชธเซเชธเซ‡, เชซเซ‡เชกเซ‹เชฐเชพ, เช‰เชฌเซเชจเซเชŸเซ, เช†เชฐเซเช•. เชเชตเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช•เซ‡ เชเช• เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชถเซ‹เชทเชฃ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชœเชพเชจเซเชฏเซเช†เชฐเซ€ 18 เชจเชพ เชฐเซ‹เชœ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เช›เซ‡ (เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เชจเชฌเชณเชพเชˆเชจเซ‡ เช เซ€เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช…เช เชตเชพเชกเชฟเชฏเชพ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡).

เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฎเชพเชŸเซ‡ เชชเซเชฐเชธเชพเชฐเชฟเชค eBPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธเชจเซ€ เช–เซ‹เชŸเซ€ เชšเช•เชพเชธเชฃเซ€เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชจเชฌเชณเชพเชˆ เชธเชฐเซเชœเชพเชฏ เช›เซ‡. eBPF เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชธเชนเชพเชฏเช• เช•เชพเชฐเซเชฏเซ‹ เชชเซ‚เชฐเชพ เชชเชพเชกเซ‡ เช›เซ‡, เชœเซ‡เชจเซ‹ เชธเชพเชšเซ‹ เช‰เชชเชฏเซ‹เช— เชตเชฟเชถเซ‡เชท เชšเช•เชพเชธเชฃเซ€เช•เชฐเซเชคเชพ เชฆเซเชตเชพเชฐเชพ เชšเช•เชพเชธเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชฆเชฒเซ€เชฒ เชคเชฐเซ€เช•เซ‡ PTR_TO_MEM เชฎเซ‚เชฒเซเชฏ เชชเชธเชพเชฐ เช•เชฐเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เช…เชจเซ‡ เชธเช‚เชญเชตเชฟเชค เชฌเชซเชฐ เช“เชตเชฐเชซเซเชฒเซ‹ เช…เชŸเช•เชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชšเช•เชพเชธเชฃเซ€เช•เชฐเซเชคเชพเช เชฆเชฒเซ€เชฒ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€เชจเซเช‚ เช•เชฆ เชœเชพเชฃเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡. bpf_ringbuf_submit เช…เชจเซ‡ bpf_ringbuf_discard เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡, เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เชฎเซ‡เชฎเชฐเซ€เชจเชพ เช•เชฆ เชชเชฐเชจเชพ เชกเซ‡เชŸเชพเชจเซ€ เชœเชพเชฃ เชตเซ‡เชฐเชฟเชซเชพเชฏเชฐเชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชจ เชนเชคเซ€, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช–เชพเชธ เชกเชฟเชเชพเช‡เชจ เช•เชฐเซ‡เชฒ eBPF เช•เซ‹เชกเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฌเชซเชฐ เชฌเชพเช‰เชจเซเชกเซเชฐเซ€เชจเซ€ เชฌเชนเชพเชฐเชจเชพ เชฎเซ‡เชฎเชฐเซ€ เชตเชฟเชธเซเชคเชพเชฐเซ‹เชจเซ‡ เช“เชตเชฐเชฐเชพเช‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.

เชนเซเชฎเชฒเซ‹ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช เชชเซ‹เชคเชพเชจเชพ BPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชฒเซ‹เชก เช•เชฐเชตเชพ เชธเช•เซเชทเชฎ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช, เช…เชจเซ‡ เช˜เชฃเชพ เชคเชพเชœเซ‡เชคเชฐเชจเชพ Linux เชตเชฟเชคเชฐเชฃเซ‹ เช† เช•เซเชทเชฎเชคเชพเชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเซ‡ เช›เซ‡ (เช‡เชฌเซ€เชชเซ€เชเชซเชจเซ€ เชฌเชฟเชจเชชเซเชฐเชพเชชเซเชค เชเช•เซเชธเซ‡เชธ เชนเชตเซ‡ เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชœ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช›เซ‡, เชฐเชฟเชฒเซ€เช 5.16 เชฅเซ€ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡). เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช‰เชฌเซเชจเซเชŸเซ 20.04 เชเชฒเชŸเซ€เชเชธเชฎเชพเช‚ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชจเชฌเชณเชพเชˆเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เช‰เชฌเซเชจเซเชŸเซ 22.04-เชฆเซ‡เชต, เชกเซ‡เชฌเชฟเชฏเชจ 11, เช“เชชเชจเชธเซเชธเซ‡ 15.3, เช†เชฐเชเชšเชˆเชเชฒ 8.5, เชธเซเชธเซ‡ 15-เชเชธเชชเซ€4 เช…เชจเซ‡ เชซเซ‡เชกเซ‹เชฐเชพ 33 เชœเซ‹ เชเชกเชฎเชฟเชจเซ€ เชธเซ‡เชŸ เชนเซ‹เชฏ เชคเซ‹ เชœ kernel.unprivileged_bpf_disabled เชชเชฐเชฟเชฎเชพเชฃเชจเซ‡ 0. เชจเชฌเชณเชพเชˆเชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เช‰เชชเชพเชฏ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ "sysctl -w kernel.unprivileged_bpf_disabled=1" เช†เชฆเซ‡เชถ เชตเชกเซ‡ เชฌเชฟเชจเชชเซเชฐเชฟเชฏ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฆเซเชตเชพเชฐเชพ BPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเชพ เช…เชฎเชฒเชจเซ‡ เช…เชŸเช•เชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹