eBPF เจธเจฌเจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจœเฉ‹ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ

eBPF เจธเจฌเจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ (CVE-2021-4204) เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ JIT เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจนเฉˆเจ‚เจกเจฒเจฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจ—เฉˆเจฐ-เจ…เจงเจฟเจ•เจพเจฐเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเจพเจชเจคเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจเจ•เจœเจผเฉ€เจ•เจฟเจŠเจŸ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจชเฉฑเจงเจฐเฅค เจธเจฎเฉฑเจธเจฟเจ† เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ 5.8 เจคเฉ‹เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡ เจฐเจนเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจจเจซเจฟเจ•เจธเจก เจฐเจนเจฟเฉฐเจฆเฉ€ เจนเฉˆ (เจฐเจฟเจฒเฉ€เจœเจผ 5.16 เจธเจฎเฉ‡เจค)เฅค เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจœเจพ เจฐเจนเฉ‡ เจ…เฉฑเจชเจกเฉ‡เจŸ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ‡เจนเจจเจพเจ‚ เจชเฉฐเจจเจฟเจ†เจ‚ 'เจคเฉ‡ เจŸเจฐเฉˆเจ• เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจกเฉ‡เจฌเฉ€เจ…เจจ, เจ†เจฐเจเจšเจˆเจเจฒ, เจธเฉ‚เจธเฉ‡, เจซเฉ‡เจกเฉ‹เจฐเจพ, เจ‰เจฌเฉฐเจŸเฉ‚, เจ†เจฐเจšเฅค เจ‡เจน เจ˜เฉ‹เจธเจผเจฃเจพ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจธเจผเฉ‹เจธเจผเจฃ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ เจ•เจฟ 18 เจœเจจเจตเจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจนเฉˆ (เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจนเจซเจผเจคเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ).

เจจเจฟเจฐเจฌเจฒเจคเจพ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฒเจˆ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เฉ€เจคเฉ‡ เจ—เจ eBPF เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ€ เจ—เจฒเจค เจคเจธเจฆเฉ€เจ• เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค eBPF เจธเจฌเจธเจฟเจธเจŸเจฎ เจธเจนเจพเจ‡เจ• เจซเฉฐเจ•เจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธเจฆเฉ€ เจธเจนเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเจธเจฆเฉ€เจ•เจ•เจฐเจคเจพ เจฆเฉเจ†เจฐเจพ เจคเจธเจฆเฉ€เจ• เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ•เฉเจ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ PTR_TO_MEM เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจธเฉฐเจญเจต เจฌเจซเจฐ เจ“เจตเจฐเจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฃ เจฒเจˆ, เจตเฉˆเจฐเฉ€เจซเจพเจ‡เจฐ เจจเฉ‚เฉฐ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเจพ เจ†เจ•เจพเจฐ เจชเจคเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค bpf_ringbuf_submit เจ…เจคเฉ‡ bpf_ringbuf_discard เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ, เจŸเจฐเจพเจ‚เจธเจซเจฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจฌเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจตเฉˆเจฐเฉ€เจซเจพเจ‡เจฐ เจจเฉ‚เฉฐ เจฐเจฟเจชเฉ‹เจฐเจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เฉ€เจคเฉ‡ eBPF เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจฌเจซเจฐ เจธเฉ€เจฎเจพ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจนเจฎเจฒเฉ‡ เจจเฉ‚เฉฐ เจ…เฉฐเจœเจพเจฎ เจฆเฉ‡เจฃ เจฒเจˆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ†เจชเจฃเจพ BPF เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เจˆ เจนเจพเจฒเฉ€เจ† เจฒเฉ€เจจเจ•เจธ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจ‡เจธ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเจฒเฉŒเจ• เจ•เจฐเจฆเฉ‡ เจนเจจ (เจˆเจฌเฉ€เจชเฉ€เจเจซ เจคเฉฑเจ• เจ—เฉˆเจฐ-เจ…เจงเจฟเจ•เจพเจฐเจค เจชเจนเฉเฉฐเจš เจธเจฎเฉ‡เจค, เจนเฉเจฃ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจนเฉ€ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจฐเฉ€เจฒเฉ€เจœเจผ 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹