αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž™αž“αŸ’αžαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αžšαž”αžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš AMD

αž‚αž˜αŸ’αžšαŸ„αž„ Grsecurity αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž’αŸ†αž–αžΈαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αž˜αžΈ (CVE-2021-26341) αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš AMD αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αŸ…αž˜αž»αžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž‡αŸ„αž‚αž‡αŸαž™ αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹αž˜αžΆαžαž·αž€αžΆαž“αŸƒαžαŸ†αž”αž“αŸ‹αžŸαžαž·αžαžΆαž˜αž’αŸ†αž–αžΎαž…αž·αžαŸ’αžαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž–αž½αž€αž‚αŸαž€αŸ†αžŽαžαŸ‹αž”αŸ’αž›αž„αŸ‹αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž™αž“αŸ’αžαž€αžΆαžšαž€αžΆαžšαž–αžΆαžš KASLR (αž€αžΆαžšαž…αŸƒαžŠαž“αŸ’αž™αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαžΊαžŽαŸ‚αž›) αžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αžαžΊαžŽαŸ‚αž› ePBF αŸ” αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž“αŸƒαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž˜αž·αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ’αžšαžΆαž“αž…αŸ„αž›αž‘αŸ αžŠαŸ‚αž›αž’αžΆαž…αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž˜αžΆαžαž·αž€αžΆαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαžΊαžŽαŸ‚αž›αŸ”

αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαŸ‚αž› processor αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš preemptive αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ jump in memory (SLS, Straight Line speculation)αŸ” αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž›αŸ„αžαžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸ‚αž›αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΈαž€αžΆαžšαž›αŸ„αžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαžΌαž…αž‡αžΆ JMP, RET αž“αž·αž„ CALL αž•αž„αžŠαŸ‚αžšαŸ” αžŠαŸ„αž™αž’αŸ’αžœαžΎαžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž›αŸ„αžαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒ αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆαž˜αž’αŸ†αž–αžΎαž…αž·αžαŸ’αžαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž”αŸ†αžŽαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαžΆαžŸαžΆαžαžΆαž˜αž½αž™αž˜αž·αž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αžαž½αžšαž€αŸ’αž”αžΆαž›αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžœαž·αž›αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž“αžΌαžœαžŸαŸ’αžαžΆαž“αž—αžΆαž– αž αžΎαž™αž˜αž·αž“αž’αžΎαž–αžΎαž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΆαž“αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž“αŸ…αžαŸ‚αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αž αžΎαž™αž’αžΆαž…αžšαž€αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‘αžΆαž‰αž™αž€αž†αžΆαž“αŸ‚αž›αž…αŸ†αž αŸ€αž„αŸ”

αžŠαžΌαž…αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αž“αŸƒαž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡ Spectre-v1 αžŠαŸ‚αžš αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž‘αžΆαž˜αž‘αžΆαžšαž±αŸ’αž™αž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαž›αŸ†αžŠαžΆαž”αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† (αž§αž”αž€αžšαžŽαŸ) αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΊαžŽαŸ‚αž›αžŠαŸ‚αž›αž“αžΆαŸ†αž‘αŸ…αžŠαž›αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αŸ” αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž€αžΎαžαž‘αžΎαž„αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž§αž”αž€αžšαžŽαŸαž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠ αž“αž·αž„αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž”αž“αŸ’αžαŸ‚αž˜αžŠαž›αŸ‹αž–αž½αž€αžœαžΆαžŠαŸ‚αž›αžšαžΆαžšαžΆαŸ†αž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αŸ” αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αž€αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αž eBPF αž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸαžŠαŸ„αž™αž”αŸ’αžšαžΎ eBPF αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž’αŸ„αž™αž”αž·αž‘αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ eBPF αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž―αž€αžŸαž·αž‘αŸ’αž’αž·αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ (β€œsysctl -w kernel.unprivileged_bpf_disabled=1”)αŸ”

αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž•αŸ’αž’αŸ‚αž€αž›αžΎ Zen1 αž“αž·αž„ Zen2 microarchitecture αžšαž½αž˜αž‘αžΆαŸ†αž„αž‡αŸ†αž“αžΆαž“αŸ‹αž‘αžΈαž˜αž½αž™ αž“αž·αž„αž‘αžΈαž–αžΈαžšαž“αŸƒ AMD EPYC αž“αž·αž„ AMD Ryzen Threadripper processors αž€αŸαžŠαžΌαž…αž‡αžΆ AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper αž§αž”αž€αžšαžŽαŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸŠαŸαžšαžΈ PRO αž“αž·αž„ APU A. αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž αŸ…αž‘αŸ…αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† INT3 ឬ LFENCE αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžΆαžαžΆ (RET, JMP, CALL) αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹