ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื‘ืชืช-ืžืขืจื›ืช eBPF ื”ืžืืคืฉืจื•ืช ืขืงื™ืคืช ื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช Spectre

ื–ื•ื”ืชื” ืคื’ื™ืขื•ืช ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก (CVE-2021-33624) ื”ืžืืคืฉืจืช ืœื”ืฉืชืžืฉ ื‘ืชืช-ืžืขืจื›ืช eBPF ื›ื“ื™ ืœืขืงื•ืฃ ื”ื’ื ื” ืžืคื ื™ ืคืจืฆื•ืช ืžื—ืœืงื•ืช Spectre, ื”ืžืืคืฉืจื•ืช ืœืงื‘ื•ืข ืืช ืชื•ื›ืŸ ื”ื–ื™ื›ืจื•ืŸ ื›ืชื•ืฆืื” ืžื™ืฆื™ืจืช ืชื ืื™ื ืขื‘ื•ืจ ื‘ื™ืฆื•ืข ืกืคืงื•ืœื˜ื™ื‘ื™ ืฉืœ ืคืขื•ืœื•ืช ืžืกื•ื™ืžื•ืช. ืžืชืงืคืช ืกืคืงื˜ืจ ื“ื•ืจืฉืช ื ื•ื›ื—ื•ืช ืฉืœ ืจืฆืฃ ืžืกื•ื™ื ืฉืœ ืคืงื•ื“ื•ืช ื‘ืงื•ื“ ืžื™ื•ื—ืก ืฉืžื•ื‘ื™ืœ ืœื‘ื™ืฆื•ืข ืกืคืงื•ืœื˜ื™ื‘ื™ ืฉืœ ื”ื•ืจืื•ืช. ืขืœ ื™ื“ื™ ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืชื•ื›ื ื™ื•ืช BPF ื”ืžื•ืขื‘ืจื•ืช ืœื‘ื™ืฆื•ืข, ื ื™ืชืŸ ืœื™ืฆื•ืจ ื”ื•ืจืื•ืช ื“ื•ืžื•ืช ื‘-eBPF ื•ืœื”ื“ืœื™ืฃ ืืช ื”ืชื•ื›ืŸ ืฉืœ ื–ื™ื›ืจื•ืŸ ื”ืœื™ื‘ื” ื•ืื–ื•ืจื™ื ืฉืจื™ืจื•ืชื™ื™ื ืฉืœ ื–ื™ื›ืจื•ืŸ ืคื™ื–ื™ ื“ืจืš ืขืจื•ืฆื™ ืฆื“.

ื”ืคื’ื™ืขื•ืช ื ื’ืจืžืช ืขืœ ื™ื“ื™ ืคื’ืžื™ื ื‘ืžืืžืช, ื”ืžืฉืžืฉ ืœืื™ืชื•ืจ ืฉื’ื™ืื•ืช ื•ืคืขื™ืœื•ืช ืœื ืžืงื•ื‘ืœืช ื‘ืชื•ื›ื ื™ื•ืช BPF. ื”ืžืืžืช ืžื•ื ื” ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืข ืืคืฉืจื™ื™ื ืฉืœ ืงื•ื“, ืืš ืžื“ืœื’ ืขืœ ืืคืฉืจื•ื™ื•ืช ื”ืกืชืขืคื•ืช ืฉืื™ื ืŸ ืžืงื•ื‘ืœื•ืช ืžื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœ ื”ืกืžื ื˜ื™ืงื” ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืขืจื›ืช ื”ื”ื•ืจืื•ืช. ื‘ืขืช ื”ืคืขืœืช ืชื•ื›ื ื™ืช BPF, ืืคืฉืจื•ื™ื•ืช ื”ืกืชืขืคื•ืช ื›ืืœื” ืฉืื™ื ืŸ ื ืœืงื—ื•ืช ื‘ื—ืฉื‘ื•ืŸ ืขืœ ื™ื“ื™ ื”ืžืืžืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื—ื–ื•ื™ ืฉื’ื•ื™ ืขืœ ื™ื“ื™ ื”ืžืขื‘ื“ ื•ืœื”ืคืขื™ืœ ื‘ืžืฆื‘ ืกืคืงื•ืœื˜ื™ื‘ื™. ืœื“ื•ื’ืžื”, ื‘ืขืช ื ื™ืชื•ื— ืคืขื•ืœืช ื”"ื˜ืขื™ื ื”", ื”ืžืืžืช ืžืฆืคื” ืฉื”ื”ื•ืจืื” ืžืฉืชืžืฉืช ื‘ืคื ืงืก ืขื ื›ืชื•ื‘ืช ืฉืขืจื›ื” ื ืžืฆื ืชืžื™ื“ ื‘ื’ื‘ื•ืœื•ืช ืฉืฆื•ื™ื ื•, ืืš ืชื•ืงืฃ ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืชื ืื™ื ืฉื‘ื”ื ื”ืžืขื‘ื“ ื™ื ืกื” ืœื‘ืฆืข ืคืขื•ืœื” ืกืคืงื•ืœื˜ื™ื‘ื™ืช ืขื ื›ืชื•ื‘ืช ืฉืื™ื ื” ืขื•ืžื“ืช ื‘ืชื ืื™ ื”ืื™ืžื•ืช.

ื”ื‘ืขื™ื” ืžื•ืคื™ืขื” ืžืื– ืฉื—ืจื•ืจื• ืฉืœ ืœื™ื‘ื” 4.15 ื•ืชื•ืงื ื” ื‘ืฆื•ืจื” ืฉืœ ืชื™ืงื•ื ื™ื (1, 2, 3, 4). ื”ืคื’ื™ืขื•ืช ื ืฉืืจืช ืœื ืžืชื•ืงื ืช ื‘ื”ืคืฆื•ืช (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

ื‘ื ื•ืกืฃ, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืืช ื”ื”ืขืจื” ืœื’ื‘ื™ ื”ืฉืคืขืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื›ืœื™ื ืœื”ื’ื ื” ืžืคื ื™ ืคื’ื™ืขื•ื™ื•ืช ืฉืœ Spectre. ื”ื”ืขืจื” ืžืกื›ืžืช ืืช ืชื•ืฆืื•ืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžืืชืจ ื”ื‘ืื’ื™ื rr (Record and Replay), ืืฉืจ ื ื•ืฆืจ ื‘ืขื‘ืจ ื‘ืžื•ื–ื™ืœื” ื›ื“ื™ ืœืืชืจ ืฉื’ื™ืื•ืช ืฉืงืฉื” ืœื—ื–ื•ืจ ืขืœื™ื”ืŸ ื‘ืคื™ื™ืจืคื•ืงืก. ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ืงืจื™ืื•ืช ื”ืžืขืจื›ืช ืฉืฉื™ืžืฉื• ืœื‘ื“ื™ืงืช ืงื™ื•ืžืŸ ืฉืœ ืกืคืจื™ื•ืช ื”ืคื—ื™ืชื” ืืช ืคืขื•ืœืช "ืžืงื•ืจื•ืช rr" ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ ื”ื‘ื“ื™ืงื” ืž-3 ื“ืงื•ืช 19 ืฉื ื™ื•ืช ืœ-36 ืฉื ื™ื•ืช.

ืžื—ื‘ืจ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ื—ืœื™ื˜ ืœื‘ื“ื•ืง ื›ื™ืฆื“ ื”ื‘ื™ืฆื•ืขื™ื ื™ืฉืชื ื• ืœืื—ืจ ื”ืฉื‘ืชืช ื”ื’ื ืช Spectre. ืœืื—ืจ ืืชื—ื•ืœ ื”ืžืขืจื›ืช ืขื ื”ืคืจืžื˜ืจ "ืžื™ื˜igations=off", ื–ืžืŸ ื”ื‘ื™ืฆื•ืข ืฉืœ "rr sources" ืœืœื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ื™ื” 2 ื“ืงื•ืช ื•-5 ืฉื ื™ื•ืช (ืคื™ 1.6 ืžื”ื™ืจ ื™ื•ืชืจ), ื•ืขื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ื•ื ื”ื™ื” 33 ืฉื ื™ื•ืช (ืžื”ื™ืจ ื‘-9%). ื‘ืื•ืคืŸ ืžืขื ื™ื™ืŸ, ื”ืฉื‘ืชืช ื”ื’ื ืช Spectre ืœื ืจืง ื”ืคื—ื™ืชื” ืืช ื–ืžืŸ ื‘ื™ืฆื•ืข ื”ืงื•ื“ ื‘ืจืžืช ื”ืœื™ื‘ื” ืคื™ 1.4 (ืž-2m9s ืœ-1m32s), ืืœื ื’ื ืฆืžืฆืžื” ื‘ื—ืฆื™ ืืช ื–ืžืŸ ื”ื‘ื™ืฆื•ืข ื‘ืžืจื—ื‘ ื”ืžืฉืชืžืฉ (ืž-1m9s ืœ-0m33s), ื›ื›ืœ ื”ื ืจืื” ื‘ื’ืœืœ ื™ืขื™ืœื•ืช ืžื•ืคื—ืชืช ืฉืœ ืคืขื•ืœืช ืžื˜ืžื•ืŸ CPU ื•-TLB ืžืชืืคืก ื›ืืฉืจ ื”ื’ื ืช Spectre ืžื•ืคืขืœืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”