Vrije Universiteit Amsterdam ááž ááŻááąááŽáĄáá˝á˛áˇáá áşáá˝á˛áˇáááş Intel áážááˇáş ARM ááááŻáááşááŹááťáŹá¸á microarchitectural structures ááťáŹá¸áá˝ááş áĄáŹá¸áááşá¸ááťááşáĄáá áşáá áşááŻááᯠáážáŹáá˝áąáá˝áąáˇáážááá˛áˇááźáŽá¸ Spectre-v2 vulnerability á áááŻá¸ááťá˛áˇááŹá¸áážááşá¸áá áşááŻááźá áşáááˇáş ááááŻáááşááŹááťáŹá¸áá˝ááş eIBRS áážááˇáş CSV2 ááŹáá˝ááşááąá¸ááášáááŹá¸ááťáŹá¸ááᯠááťáąáŹáşáá˝ážáŹá¸áááŻááşá áąáá˛áˇáááşá . áĄáŹá¸áááşá¸ááťááşááᯠáĄáááşááťáŹá¸á á˝áŹááąá¸ááŹá¸ááźáŽá¸ááźá áşáááş- BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) áážááˇáş Spectre-BHB (CVE-2022-23960) á ááá°ááŽááąáŹ áááŻááşááťáŹá¸ááᯠááąáŹáşááźáááˇáşá áá°ááŽááąáŹááźáżáᏠ(BHI - áá˝á˛ááźáŹá¸ááźáŹá¸ááŹá¸ááąáŹáĄáá˝ááˇáşáá°á¸ááťáŹá¸áĄáááˇáşáááŻáááááŻááşá áąááąáŹáááŻááşáááŻááşáážáŻáá áşááŻá áĽáááŹá áĄááŻáśá¸ááźáŻáá°ááŻááşáááşá¸á ááşáážááˇáş kernelá BHB - áá°ááŽááąáŹáĄáá˝ááˇáşáĄááąá¸áĄáááˇáşáá˝ááşáááŻááşáááŻááşáážáŻáá áşááŻá áĽáááŹá eBPF JIT áážááˇáş kernel)á
ááŻááąááŽááťáŹá¸áááş áĄááŻáśá¸ááźáŻáá°ááąááŹááž kernel memory ááž ááááŹá¸ááąááŹááťáŹá¸ááᯠááŻááşáá°áááŻááşá áąáááˇáş áĄááŻááşáĄááŻáśá¸ááťáážáŻáá áşááŻááᯠáááŻááşááźáá˛áˇáááşá áĽáááŹáĄáŹá¸ááźááˇáşá ááźááşáááşááŹá¸ááąáŹ exploit áááŻáĄááŻáśá¸ááźáŻá /etc/shadow áááŻááşáážáááşááŹá¸ááąáŹ root user password á hash ááźááˇáş kernel ááž string áá áşááŻáĄáŹá¸ ááźáŹá¸ááśááŻááşáá°áááŻááşááŻáśááᯠááźáááŹá¸áááşá exploit áááş user-loaded eBPF ááááŻááááşááᯠáĄááŻáśá¸ááźáŻá áĄáá˝ááˇáşáá°á¸áĄáááˇáşáá áşáᯠ(kernel-to-kernel attack) áĄáá˝ááşá¸ áĄáŹá¸áááşá¸ááťááşáá áşááŻáĄáŹá¸ áĄááŻáśá¸ááťáááŻááşááźáąááᯠáááŻááşááźáááşá kernel ááŻááşáážá eBPF áážáááźáŽá¸ááŹá¸ Spectre gadgets ááťáŹá¸áĄá áŹá¸á áá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáážááşá¸áááŻááşááąáŹááşáááş áŚá¸áááşáááˇáş commands ááťáŹá¸á sequences ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááşáááşá

Atom ááááŹá¸á áŻááž ááááŻáááşááŹááťáŹá¸ááž áá˝á˛á áááşáážá Intel ááááŻáááşáᏠáĄááťáŹá¸á áŻáá˝ááş áĄáŹá¸áááşá¸ááťááş ááąáŤáşááŹáááşá ARM ááááŻáááşááŹááťáŹá¸áá˛áá˝ááş Cortex-A15á Cortex-A57á Cortex-A7*á Cortex-X1á Cortex-X2á Cortex-A710á Neoverse N1á Neoverse N2á Neoverse V1 áážááˇáş Cortex-R ááťá áşááşáĄááťááŻáˇáááş ááźáżááŹááźáąáŹááˇáş áááááŻááşáááŻááşáááşá ááŻááąááááźáŻááťááşáĄá áĄáŹá¸áááşá¸ááťááşáááş AMD ááááŻáááşááŹááťáŹá¸áá˝ááş áááąáŤáşááŤá ááźáżááŹááᯠáááşáážáŹá¸áááşá áĄááŹáááş CPU ááąáŹáşáááşááťáŹá¸áá˝ááş ááŹáˇááşáá˛ááŹáá˝ááşáážáŻáááąáŤáşáᎠáĄááŻáśá¸ááźáŻáááŻááşáááˇáş áĄáŹá¸áááşá¸ááťááşááᯠááááşáááŻáˇáááş ááąáŹáˇááşáá˛áááşá¸áááşá¸ááťáŹá¸á á˝áŹááᯠáĄáááŻááźáŻááŹá¸áááşá
eBPF subsystem áážáá áşáááˇáş áááŻááşáááŻááşáážáŻááťáŹá¸ááᯠááááşáááŻáˇáááşáĄáá˝ááşá "/proc/sys/kernel/unprivileged_bpf_disabled" áááŻááşáááŻáˇ 1 ááąá¸ááŹá¸ááźááşá¸ áááŻáˇáááŻááş "sysctl -w kernel.unprivileged_bpf_disabled=1" command ááᯠááŻááşááąáŹááşááźááşá¸ááźááˇáş áĄáá˝ááˇáşáá°á¸ááážáááąáŹ áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áĄáá˝ááş eBPF ááááŻááááşááťáŹá¸ááᯠdefault áĄááąááźááˇáş áááşáááŻááşá á˝ááşá¸ááᯠdisable ááŻááşáááş áĄááźáśááźáŻáĄááşááŤáááşá gadgets ááťáŹá¸áážáá áşáááˇáş áááŻááşáááŻááşáážáŻááťáŹá¸ááᯠááááşáááŻáˇáááşáĄáá˝ááşá speculative execution ááźá áşááąáŤáşá áąáááŻááşáááˇáş code sections ááťáŹá¸áá˝ááş LFENCE instruction ááᯠáĄááŻáśá¸ááźáŻáááş áĄááźáśááźáŻáĄááşááŤáááşá distribution áĄááťáŹá¸á áŻá default configuration áááş áááááźáŻáááˇáşááŤáááşá Linux ááŻááąááŽááťáŹá¸ áááŻááşááźáá˛áˇááąáŹ eBPF áááŻááşáááŻááşáážáŻááᯠááááşáááŻáˇáááş ááŻáśááąáŹááşááąáŹ áááŻáĄááşááąáŹ ááŻáśááźáŻáśááąá¸áĄá áŽáĄááśááťáŹá¸ áážááážááˇáşááźáŽá¸ááźá áşáááşá eBPF áááŻáˇ áĄáá˝ááˇáşáá°á¸ááážáááąáŹ áááşááąáŹááşáá˝ááˇáşááᯠááááşáááş Intel á áĄááźáśááźáŻááťááşááťáŹá¸áááŻáááşá¸ kernel áážá áááşá default áĄááąááźááˇáş áĄááŻáśá¸ááźáŻááŤáááşá Linux 5.16 ááᯠááááşááŹááá˝á˛ááťáŹá¸áááŻáˇ ááźááşáááşáááˇáşáá˝ááşá¸ááąá¸ááŤáááşá
áááąáŹáááŹá¸áĄáá BHI áááş Spectre-v2 áááŻááşáááŻááşáážáŻá áááŻá¸ááťá˛áˇááŹá¸áážááşá¸áá áşááŻááźá áşááźáŽá¸á áááşá¸áá˝ááş áááşááąáŹááşá¸áĄááŹáĄáá˝ááş (Intel eIBRS áážááˇáş Arm CSV2) áááŻááťáąáŹáşáá˝ážáŹá¸ááźáŽá¸ ááąááŹááąáŤááşááźáŹá¸áážáŻááᯠá áŻá ááşá¸áááşá áááˇáşáážááşá¸ááťááşáááŻáááŻááąáŹááşá¸áá˝ááşá áąáááşáĄáá˝ááş Branch History Buffer áá˝ááş áááşáááŻá¸áĄá áŹá¸áááŻá¸ááźááşá¸ááᯠCPU áá˝ááşáĄááŻáśá¸ááźáŻááŤáááşá áĄááááşáĄáá°á¸áĄááźáąáŹááşá¸ááťáŹá¸á ááááŻááşá¸ááźáąáŹááşá¸ááᯠáááˇáşáá˝ááşá¸á ááşá¸á áŹá¸ááźááşá¸ááźááˇáş ááááťááąáŹáĄáááŻááşá¸áĄáááşááťáŹá¸á áááŻááşáááŻááşáážáŻáĄáá˝ááşá¸á áĄáá˝ááşáá°á¸ááźáąáŹááşá¸áážáŻááááŻááşá¸áážááˇáşáĄáá° ááźááşáážááşáážáŻááťáŹá¸áážáá áşáááˇáşá áĄáá°á¸áĄááźáąáŹááşá¸á áážáŹá¸áá˝ááşá¸ááąáŹáááˇáşáážááşá¸ááťááşáážááˇáş áááŻáĄááşááąáŹáá˝ážááşááźáŹá¸ááťááşááťáŹá¸ááᯠáážááşá¸áááŻááşááąáŹááşáááşáĄáá˝ááş áĄááźáąáĄááąááťáŹá¸ááᯠáááşááŽá¸ááŹá¸ááźáŽá¸á ááááşáááş áááşáážáşáá˝ááşáĄááŻáśá¸áááşáááşááźá áşáááşá
Branch Target Buffer áĄá
áŹá¸ Branch History Buffer áááŻáĄááŻáśá¸ááźáŻááźááşá¸áážáá˝á˛á áááŻááşáááŻááşáážáŻáĄáá
áşáááş Spectre-v2 áážááˇáş áá°ááŽááŤáááşá áááŻááşáááŻááşáá°áááŹáááşáážáŹ áážááşá¸áá
á
áşáááşááąá¸áá
áşááŻááŻááşááąáŹááşááąáŹáĄááŤá áááşáážááşááąááŹáá§ááááŹáážáá°ááąáŹááşáá˝áŹá¸áááˇáşáĄááźáąáĄááąááťáŹá¸áááŻáááşááŽá¸áááşááźá
áşáááşá áážááşá¸áááąáŹ áá˝ááşáááŻááşááŻááşááźááşá¸ááᯠááŻááşááąáŹááşááźáŽá¸ááąáŹááşá áážááşááŹááşáážáááşááąáŹ ááŻááşááááşá
áŹáááş áááşáážáşáá˝ááş ááťááşáážáááąáááşá áááŻáˇááąáŹááş áááşáážáşá áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠááŻáśá¸ááźááşáááşáĄáá˝ááş áááşá¸áááşá¸ááťáŹá¸áá˛ááž áá
áşááŻááᯠáááşáážáşááŻááşááŹá¸ááźááşá¸áážááˇáş áááşáážáşáááŹá¸ááąáŹ áááşááąáŹááşááťáááşáĄáá˝ááşá¸ áĄááźáąáŹááşá¸áĄáá˛ááťáŹá¸ááᯠáá˝á˛ááźááşá¸á
áááşááźáŹáážáŻáĄááąáŤáş áĄááźáąááśá áááşá¸ááᯠááźááşáááşááá°áááş áĄááŻáśá¸ááźáŻáááŻááşáááşá ááąááŹá
source: opennet.ru
