เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™เบเบปเบ™เป„เบเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD

เป‚เบ„เบ‡เบเบฒเบ™ Grsecurity เป„เบ”เป‰เป€เบœเบตเบเปเบœเปˆเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปเบฅเบฐเบเบฒเบ™เบชเบฒเบ—เบดเบ”เบงเบดเบ—เบตเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบชเปเบฒเบฅเบฑเบšเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบซเบกเปˆ (CVE-2021-26341) เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เปเปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบ–เป‰เบฒเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเปเบฒเบ™เบปเบ”เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบ•เบปเบ™เป€เบญเบ‡เบกเบฑเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบฑเบเบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเป„เบ”เป‰เบเบฐเบเบฝเบกเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐเบ‚เป‰เบฒเบกเบเบปเบ™เป„เบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ KASLR (kernel memory randomization) เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ‚เบญเบ‡ kernel ePBF. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบญเบทเปˆเบ™เป†เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ kernel.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเปˆเบงเบ‡เบฅเบฐเป€เบกเบตเบ”, เบ„เบฒเบ”เบ„เบฐเป€เบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฑเบ™เบ—เบตเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฐเป‚เบ”เบ”เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ (SLS, Straight Line Speculation). เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบฎเบฑเบ”เบงเบฝเบเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ”เบ”เบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เปเบ•เปˆเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบเบฐเป‚เบ”เบ”เป‚เบ”เบเบเบปเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เป€เบŠเบฑเปˆเบ™ JMP, RET เปเบฅเบฐ CALL. เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฐเป‚เบ”เบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เบ‚เปเป‰เบกเบนเบ™ arbitrary เบ—เบตเปˆเบšเปเปˆเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰. เบซเบผเบฑเบ‡เบˆเบฒเบเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบชเบฒเบ‚เบฒเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปเปˆเป„เบ›, เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบฝเบ‡เปเบ•เปˆเบกเป‰เบงเบ™เบ„เบทเบ™เบชเบฐเบ–เบฒเบ™เบฐเปเบฅเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ, เปเบ•เปˆเบฎเปˆเบญเบ‡เบฎเบญเบเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เปเบ„เบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป‚เบ”เบเปƒเบŠเป‰เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡.

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ Spectre-v1, เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡ (gadgets) เปƒเบ™ kernel เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ. เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบกเบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ” gadgets เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเป€เบžเบตเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบšเบžเบงเบเบกเบฑเบ™เบ—เบตเปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ. เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual eBPF. เป€เบžเบทเปˆเบญเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป‚เบ”เบเปƒเบŠเป‰ eBPF, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ›เบดเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ eBPF เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบดเปƒเบ™เบฅเบฐเบšเบปเบš (โ€œsysctl -w kernel.unprivileged_bpf_disabled=1โ€).

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Zen1 เปเบฅเบฐ Zen2 microarchitecture, เบฅเบงเบกเบ—เบฑเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD EPYC เปเบฅเบฐ AMD Ryzen Threadripper เบฅเบธเป‰เบ™เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบฅเบธเป‰เบ™เบ—เบตเบชเบญเบ‡, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบŠเบธเบ” PRO เปเบฅเบฐ APU A. เป€เบžเบทเปˆเบญเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒ, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป‚เบ—เบซเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ INT3 เบซเบผเบท LFENCE เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเบฒเบ‚เบฒ (RET, JMP, CALL).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™