ืงืืืฆืช ืืืงืจืื ืืืืื ืืืจืกืืื ืืืืคืฉืืช ืืืกืืจืื ืืืืชื ืคืืืขืืช ืืืฉื ืืืื ืื ืืืืงืจื-ืืจืืืืงืืื ืืื ืฉื ืืขืืื ืืื ืื ื-ARM, ืฉืืื ืืจืกื ืืืจืืืช ืฉื ืืคืืืขืืช Spectre-v2, ืืืืคืฉืจืช ืืขืงืืฃ ืืช ืื ืื ืื ื ืืืื ื ืฉื eIBRS ื-CSV2 ืฉื ืืกืคื ืืืขืืืื . ืืคืืืขืืช ื ืืชื ื ืืกืคืจ ืฉืืืช: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) ื-Spectre-BHB (CVE-2022-23960), ืืืชืืจืื ืืืืืืื ืฉืื ืื ืฉื ืืืชื ืืขืื (BHI - ืืชืงืคื ืืืฉืคืืขื ืขื ืจืืืช ืฉืื ืืช ืฉื ืืจืฉืืืช, ืืืฉื, ืชืืืื ืืืฉืชืืฉ ืืืงืจื ื, BHB - ืืชืงืคื ืืืืชื ืจืืช ืืจืฉืืืช, ืืืฉื, eBPF JIT ืืืงืจื ื).
ืืืงืจืื ืืืืืื ื ืืฆืื ืขืืื ืืืืคืฉืจ ืืืืฅ ื ืชืื ืื ืฉืจืืจืืชืืื ืืืืืจืื ืืืืื ืืืจืื ืืืฉืชืืฉ. ืืืืืื, ืืืฆื ืืืฆื, ืืืืฆืขืืช ืฉืืืืฉ ื-exploit ืืืื, ื ืืชื ืืืืฅ ืืืืืจื ืืืืื ืืืจืืืช ืขื hash ืฉื ืกืืกืืช ืืืฉืชืืฉ ืืฉืืจืฉ ื ืืขื ืช ืืืงืืืฅ /etc/shadow. ืื ืืฆืื ืืืืื ืืช ืืืคืฉืจืืช ืฉื ื ืืฆืื ืคืืืขืืช ืืจืืช ืืจืฉืื ืืืช (ืืชืงืคืช ืืืื ืืงืจื ื) ืืืืฆืขืืช ืชืืื ืืช eBPF ืฉื ืืขื ืช ืขื ืืื ืืืฉืชืืฉ. ืืคืฉืจ ืื ืืืฉืชืืฉ ืืืงืื eBPF ืืืื'ืืื ืงืืืืื ืฉื Spectre ืืงืื ืืงืจื ื, ืืจืฆืคืื ืฉื ืคืงืืืืช ืฉืืืืืืื ืืืืฆืืข ืกืคืงืืืืืื ืฉื ืืืจืืืช.
ืืคืืืขืืช ืืืคืืขื ืืจืื ืืขืืื ืืื ืื ืืขืืื ืืื, ืืืขื ืืขืืืื ืืืฉืคืืช Atom. ืืื ืืขืืื ARM, Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 ืืืืื ืืื ืฉืืื Cortex-R ืืืฉืคืขืื ืืืืขืื. ืืคื ืืืงืจ, ืืคืืืขืืช ืืื ื ืืืคืืขื ืืืขืืื AMD. ืืื ืืืื ืืช ืืืขืื, ืืืฆืขื ืืกืคืจ ืฉืืืืช ืชืืื ื ืืืกืืืช ืืคืืืขืืช, ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืคื ื ืืืคืขืช ืืื ืช ืืืืืจื ืืืืื CPU ืขืชืืืืื.
ืืื ืืืกืื ืืชืงืคืืช ืืจื ืชืช-ืืืขืจืืช eBPF, ืืืืืฅ ืืืฉืืืช ืืืจืืจืช ืืืื ืืช ืืืืืืช ืฉื ืืฉืชืืฉืื ืืกืจื ืคืจืืืืืืื ืืืืจืื ืชืืื ืืืช eBPF ืขื ืืื ืืชืืืช 1 ืืงืืืฅ "/proc/sys/kernel/unprivileged_bpf_disabled" ืื ืืคืขืืช ืืคืงืืื "sysctl -w kernel. unprivileged_bpf_disabled=1". ืืื ืืืกืื ืืชืงืคืืช ืืืื'ืืื, ืืืืืฅ ืืืฉืชืืฉ ืืืืจืืช LFENCE ืืืืืจื ืงืื ืฉืขืืืืื ืืืืืื ืืืืฆืืข ืกืคืงืืืืืื. ืจืืื ืืฆืืื ืฉืชืฆืืจืช ืืจืืจืช ืืืืื ืฉื ืจืื ืืคืฆืืช ืืื ืืงืก ืืืจ ืืืืื ืืช ืืืฆืขื ืืืื ื ืืืจืืฉืื ืืกืคืืง ืืื ืืืกืื ืืช ืืชืงืคืช eBPF ืฉืืืืืื ืืืืงืจืื. ืืืืืฆืืช ืฉื ืืื ืื ืืืฉืืชืช ืืืฉื ืืืชื-ืคืจืืืืืืืช ื-eBPF ืื ืื ืืจืืจืช ืืืืื ืืื ืืืืช ืืื ืืงืก 5.16 ืืื ืืขืืจื ืืืืจื ืืกื ืืคืื ืงืืืืื.
ืืืืื ื ืงืื ืกืคืืืืืืช, BHI ืืื ืืจืกื ืืืจืืืช ืฉื ืืชืงืคืช Spectre-v2, ืฉืื, ืืื ืืขืงืืฃ ืืื ื ื ืืกืคืช (Intel eIBRS ื- Arm CSV2) ืืืืจืื ืืืืคืช ื ืชืื ืื, ื ืขืฉื ืฉืืืืฉ ืืืืืคืช ืขืจื ื-Banch History Buffer, ืืืฉืืฉ ื-CPU ืืื ืืืืืืจ ืืช ืืืืืื ืืกืชืขืคืืช ืืืืง ืขื ืืื ืืชืืฉืืืช ืืืืกืืืจืื ืฉื ืืขืืจืื ืืขืืจ. ืืืืื ืืืชืงืคื, ืืืืฆืขืืช ืื ืืคืืืฆืืืช ืขื ืืืกืืืจืืืช ืืืขืืจืื, ื ืืฆืจืื ืชื ืืื ืืืืืื ืฉืืื ืฉื ืืืขืืจ ืืืืฆืืข ืกืคืงืืืืืื ืฉื ืืืืจืืืช ืืืจืืฉืืช, ืฉืชืืฆืืชื ืืืืขื ืืืืืื.
ืืืขื ืฉืืืืฉ ืืืืืจ ืืืกืืืจืืืช ืกื ืืคืื ืืืงืื ืืืืืจ ืืขื ืกื ืืฃ, ืืืชืงืคื ืืืืฉื ืืื ื-Spectre-v2. ืืืฉืืื ืฉื ืืชืืงืฃ ืืื ืืืฆืืจ ืชื ืืื ืื ืฉืืืชืืืช, ืืขืช ืืืฆืืข ืคืขืืื ืกืคืงืืืืืืืช, ื ืืงืืช ืืืืืจ ืื ืชืื ืื ืืืืืืจืื. ืืืืจ ืืืฆืืข ืงืคืืฆื ืขืงืืคื ืกืคืงืืืืืืืช, ืืชืืืช ืืงืคืืฆื ืื ืงืจืืช ืืืืืืจืื ื ืฉืืจืช ืืืืืื, ืืืืืจ ืืื ื ืืชื ืืืฉืชืืฉ ืืืืช ืืฉืืืืช ืืงืืืขืช ืชืืื ืืืืืื ืืื ืืืืืจ ืืืชื ืขื ืกืื ื ืืชืื ืฉื ืฉืื ืืืื ืืืื ืืืืฉื ืืืืืื ืืืื ืฉืืืจ. ื ืชืื ืื.
ืืงืืจ: OpenNet.ru