eBPF เชฎเชพเช‚ เชจเชฌเชณเชพเชˆเช“ เชœเซ‡ เชธเซเชชเซ‡เช•เซเชŸเชฐ 4 เชเชŸเซ‡เช• เชธเซเชฐเช•เซเชทเชพเชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡

Linux เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชฌเซ‡ เชจเชฌเชณเชพเชˆเช“ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เชœเซ‡ เชธเซเชชเซ‡เช•เซเชŸเชฐ v4 เชนเซเชฎเชฒเชพ (SSB, เชธเชŸเซเชŸเชพเช•เซ€เชฏ เชธเซเชŸเซ‹เชฐ เชฌเชพเชฏเชชเชพเชธ) เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃเชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ eBPF เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชฌเชฟเชจเชชเซเชฐเชพเชชเซเชคเชฟเชนเซ€เชค BPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชนเซเชฎเชฒเชพเช–เซ‹เชฐ เชšเซ‹เช•เซเช•เชธ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเชพ เชธเชŸเซเชŸเชพเช•เซ€เชฏ เช…เชฎเชฒ เชฎเชพเชŸเซ‡ เชถเชฐเชคเซ‹ เชฌเชจเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เชฐเซเชจเชฒ เชฎเซ‡เชฎเชฐเซ€เชจเชพ เชฎเชจเชธเซเชตเซ€ เชตเชฟเชธเซเชคเชพเชฐเซ‹เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชจเช•เซเช•เซ€ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เช•เชฐเซเชจเชฒเชฎเชพเช‚ eBPF เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเชพ เชœเชพเชณเชตเชฃเซ€เช•เชพเชฐเซ‹เช เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เชถเซ‹เชทเชฃเชจเซ€ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เช›เซ‡ เชœเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชนเซเชฎเชฒเชพเช“ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡. เชธเชฎเชธเซเชฏเชพเช“ เชชเซ‡เชšเซ‹ (1, 2) เชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เช†เช—เชพเชฎเซ€ Linux เช•เชฐเซเชจเชฒ เช…เชชเชกเซ‡เชŸเชฎเชพเช‚ เชธเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชตเชฟเชคเชฐเชฃ เช•เซ€เชŸเชฎเชพเช‚ เช…เชชเชกเซ‡เชŸเซเชธ เชนเชœเซ เชธเซเชงเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชจเชฅเซ€ (เชกเซ‡เชฌเชฟเชฏเชจ, RHEL, SUSE, Arch, Fedora, Ubuntu).

เชธเซเชชเซ‡เช•เซเชŸเชฐ 4 เชเชŸเซ‡เช• เชฎเซ‡เชฅเชก เชชเชฐเซ‹เช•เซเชท เชเชกเซเชฐเซ‡เชธเชฟเช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฒเช–เชตเชพ เช…เชจเซ‡ เชตเชพเช‚เชšเชตเชพเชจเซ€ เช•เซเชฐเชฟเชฏเชพเช“ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช“เชชเชฐเซ‡เชถเชจเซเชธเชจเชพ เชธเชŸเซเชŸเชพเช•เซ€เชฏ เช…เชฎเชฒเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซเชฏเชพ เชชเช›เซ€ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เช•เซ‡เชถเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชกเซ‡เชŸเชพเชจเซ‡ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชฐเซ€เชก เช‘เชชเชฐเซ‡เชถเชจ เชฒเช–เชตเชพ เช‘เชชเชฐเซ‡เชถเชจเชจเซ‡ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡ (เชฆเชพ.เชค., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), เชคเซ‹ เชธเชฎเชพเชจ เช‘เชชเชฐเซ‡เชถเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพเช‚ เชฐเซ€เชก เชเชกเซเชฐเซ‡เชธเชจเซ€ เช‘เชซเชธเซ‡เชŸ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชœเชพเชฃเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เชฐเซ€เชก เช‘เชชเชฐเซ‡เชถเชจเซเชธ เชตเชงเซ เชตเชพเชฐเช‚เชตเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เซ‡เชถเชฎเชพเช‚เชฅเซ€ เชฐเซ€เชก เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡) เช…เชจเซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชฒเซ‡เช–เชจเชจเชพ เชชเชฐเซ‹เช•เซเชท เช“เชซเชธเซ‡เชŸเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‡เชจเซ€ เชฐเชพเชน เชœเซ‹เชฏเชพ เชตเชฟเชจเชพ เชฒเซ‡เช–เชฟเชค เชชเชนเซ‡เชฒเชพ เชฐเซ€เชก เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชœเซ‹, เช‘เชซเชธเซ‡เชŸเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชฒเซ‡เช–เชจ เช…เชจเซ‡ เชตเชพเช‚เชšเชจ เชฎเชพเชŸเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชตเชฟเชธเซเชคเชพเชฐเซ‹เชจเซเช‚ เช†เช‚เชคเชฐเช›เซ‡เชฆ เชฎเชณเซ€ เช†เชตเซ‡, เชคเซ‹ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชซเช•เซเชค เช…เชจเซเชฎเชพเชจเชฟเชค เชฐเซ€เชคเซ‡ เชฎเซ‡เชณเชตเซ‡เชฒ เชตเชพเช‚เชšเชจ เชชเชฐเชฟเชฃเชพเชฎเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชถเซ‡ เช…เชจเซ‡ เช† เช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เช•เชฐเชถเซ‡. เช† เชธเซเชตเชฟเชงเชพ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเชจเซ‡ เช…เชฎเซเช• เชธเชฐเชจเชพเชฎเชพเช‚ เชชเชฐ เชœเซ‚เชจเชพ เชฎเซ‚เชฒเซเชฏเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชธเซเชŸเซ‹เชฐเชจเซเช‚ เช‘เชชเชฐเซ‡เชถเชจ เชนเชœเซ€ เชชเซ‚เชฐเซเชฃ เชฅเชฏเซเช‚ เชจเชฅเซ€. เช…เชธเชซเชณ เชธเชŸเซเชŸเชพเช•เซ€เชฏ เช‘เชชเชฐเซ‡เชถเชจเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซเชฏเชพ เชชเช›เซ€, เชคเซ‡เชจเชพ เช…เชฎเชฒเชจเชพ เชจเชฟเชถเชพเชจ เช•เซ‡เชถเชฎเชพเช‚ เชฐเชนเซ‡ เช›เซ‡, เชœเซ‡ เชชเช›เซ€ เช•เซ…เชถเชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชเช• เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ…เชถ เช…เชจเซ‡ เช…เชจเช•เซ…เชถเซเชก เชกเซ‡เชŸเชพเชจเชพ เชเช•เซเชธเซ‡เชธ เชŸเชพเช‡เชฎเชฎเชพเช‚ เชฅเชฏเซ‡เชฒเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเชพ เช†เชงเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชชเซเชฐเชฅเชฎ เชจเชฌเชณเชพเชˆ (CVE-2021-35477) BPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชตเซ‡เชฐเชฟเชซเชฟเช•เซ‡เชถเชจ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชฎเชพเช‚ เช–เชพเชฎเซ€เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช›เซ‡. เชธเซเชชเซ‡เช•เซเชŸเชฐ 4 เชนเซเชฎเชฒเชพ เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡, เชšเช•เชพเชธเชฃเซ€เช•เชฐเซเชคเชพ เชธเช‚เชญเชตเชฟเชค เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เชธเซเชŸเซ‹เชฐเซเชธ เชชเช›เซ€ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชตเชงเชพเชฐเชพเชจเซ€ เชธเซ‚เชšเชจเชพ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡ เชœเซ‡ เช…เช—เชพเช‰เชจเชพ เช“เชชเชฐเซ‡เชถเชจเชจเชพ เชจเชฟเชถเชพเชจเชจเซ‡ เชตเชฟเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเชฒ เชฎเซ‚เชฒเซเชฏเชจเซ‹ เชธเช‚เช—เซเชฐเชน เช•เชฐเซ‡ เช›เซ‡. เชฐเชพเช‡เชŸ เชจเชฒ เช“เชชเชฐเซ‡เชถเชจ เช–เซ‚เชฌ เชœ เชเชกเชชเซ€ เช…เชจเซ‡ เชธเชŸเซเชŸเชพเช•เซ€เชฏ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เช…เชตเชฐเซ‹เชงเซ‡ เชคเซ‡เชตเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชนเชคเซ€ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชฎเชพเชคเซเชฐ BPF เชธเซเชŸเซ‡เช• เชซเซเชฐเซ‡เชฎเชจเชพ เชจเชฟเชฐเซเชฆเซ‡เชถเช• เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชเชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชฌเชจเชพเชตเชตเซ€ เชถเช•เซเชฏ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชนเซ‡เช เชณ เชธเชŸเซเชŸเชพเช•เซ€เชฏ เช…เชฎเชฒ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชคเซ€ เชธเซ‚เชšเชจเชพ เชชเซเชฐเชฟเชฎเชชเซเชŸเชฟเชต เชธเซเชŸเซ‹เชฐ เช‘เชชเชฐเซ‡เชถเชจ เชชเชนเซ‡เชฒเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซเช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชฌเซ€เชœเซ€ เชจเชฌเชณเชพเชˆ (CVE-2021-3455) เช เชนเช•เซ€เช•เชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ BPF เชตเซ‡เชฐเชฟเชซเชพเชฏเชฐ เชธเช‚เชญเชตเชฟเชค เชœเซ‹เช–เชฎเซ€ เชฎเซ‡เชฎเชฐเซ€ เชธเซ‡เชต เช‘เชชเชฐเซ‡เชถเชจเชจเซ‡ เช“เชณเช–เซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ BPF เชธเซเชŸเซ‡เช•เชจเชพ เชฌเชฟเชจ-เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชตเชฟเชธเซเชคเชพเชฐเซ‹เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเซเช‚ เชจเชฅเซ€, เชœเซ‡เชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เชฒเช–เชตเชพเชจเซเช‚ เช‘เชชเชฐเซ‡เชถเชจ เชธเซเชฐเช•เซเชทเชฟเชค เชจเชฅเซ€. เช† เชธเซเชตเชฟเชงเชพ เชธเซเชŸเซ‹เชฐ เชธเซ‚เชšเชจเชพเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชคเชพ เชชเชนเซ‡เชฒเชพ, เชฌเชฟเชจ-เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฎเซ‡เชฎเชฐเซ€ เชตเชฟเชธเซเชคเชพเชฐ เชชเชฐ เช†เชงเชพเชฐเชฟเชค, เชธเชŸเซเชŸเชพเช•เซ€เชฏ เชตเชพเช‚เชšเชจ เช‘เชชเชฐเซ‡เชถเชจ เช•เชฐเชตเชพเชจเซ€ เชถเช•เซเชฏเชคเชพ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡. BPF เชธเซเชŸเซ‡เช• เชฎเชพเชŸเซ‡ เชจเชตเซ€ เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ‡ เชคเชชเชพเชธเซเชฏเชพ เชตเชฟเชจเชพ เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ BPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชฎเซ‡เชฎเชฐเซ€ เชชเซเชฐเชฆเซ‡เชถเชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ‡ เชšเชพเชฒเชพเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชšเชพเชฒเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชเช• เชฐเชธเซเชคเซ‹ เช›เซ‡ เชœเซ‡ เชชเช›เซ€ BPF เชธเซเชŸเซ‡เช• เชฎเชพเชŸเซ‡ เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

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

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