ื–ื•ื”ืชื” ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ืžืชืงืคืช Zombieload ืขืœ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ

ื—ื•ืงืจื™ื ืžื”ืื•ื ื™ื‘ืจืกื™ื˜ื” ื”ื˜ื›ื ื™ืช ืฉืœ ื’ืจืืฅ (ืื•ืกื˜ืจื™ื”) ื—ึธืฉื‚ื•ึผืฃ ืžื™ื“ืข ืขืœ ืฉื™ื˜ืช ื”ืชืงืคื” ื—ื“ืฉื” ื“ืจืš ืขืจื•ืฆื™ ืฆื“ ืฉืœื™ืฉื™ ืขื•ืžืก ื–ื•ืžื‘ื™ 2.0 (CVE-2019-11135), ื”ืžืืคืฉืจืช ืœื—ืœืฅ ืžื™ื“ืข ืกื•ื“ื™ ืžืชื”ืœื™ื›ื™ื ืื—ืจื™ื, ืžืขืจื›ืช ื”ื”ืคืขืœื”, ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื•ืžื•ื‘ืœืขื•ืช ืžื•ื’ื ื•ืช (TEE, Trusted Execution Environment). ื”ื‘ืขื™ื” ืžืฉืคื™ืขื” ืจืง ืขืœ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ. ืจื›ื™ื‘ื™ื ืœื—ืกื™ืžืช ื”ื‘ืขื™ื” ืžื•ึผืฆึธืข ืืชืžื•ืœ ืขื“ื›ื•ืŸ ืžื™ืงืจื•ืงื•ื“.

ื”ื‘ืขื™ื” ืฉื™ื™ื›ืช ืœืžื—ืœืงืช MDS (Microarchitectural Data Sampling) ื•ื”ื™ื ื’ืจืกื” ืžื•ื“ืจื ื™ืช ื™ืฆื ืœืื•ืจ ื‘ืžืื™ ื”ืชืงืคื•ืช ZombieLoad. ZombieLoad 2.0, ื›ืžื• ื”ืชืงืคื•ืช MDS ืื—ืจื•ืช, ืžืกืชืžื›ืช ืขืœ ื™ื™ืฉื•ื ื˜ื›ื ื™ืงื•ืช ื ื™ืชื•ื— ืฆื“ื“ื™ื•ืช ืขืœ ื ืชื•ื ื™ื ื‘ืžื‘ื ื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื (ืœื“ื•ื’ืžื”, Line Fill Buffer ื•- Store Buffer), ื”ืžืื—ืกื ื™ื ื‘ืื•ืคืŸ ื–ืžื ื™ ื ืชื•ื ื™ื ื”ืžืฉืžืฉื™ื ื‘ืชื”ืœื™ืš. ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช Load and Store) .

ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ื”ืชืงืคืช Zombieload ืžื‘ื•ืกืก ืขืœ ื”ื“ืœื™ืคื” ื”ืžืชืจื—ืฉืช ื‘ืžื”ืœืš ืคืขื•ืœืช ื”ืžื ื’ื ื•ืŸ ืœื”ืคืกืงื” ืืกื™ื ื›ืจื•ื ื™ืช ืฉืœ ืคืขื•ืœื•ืช (TAA, TSX Asynchronous Abort), ื”ืžื™ื•ืฉื ื‘ืชื•ืกืฃ TSX (Transactional Synchronization Extensions), ื”ืžืกืคืง ื›ืœื™ื ืœืขื‘ื•ื“ื” ืขื ื–ื™ื›ืจื•ืŸ ื˜ืจื ื–ืงืฆื™ื•ืช, ื”ืžืืคืฉืจ ื”ื’ื‘ืจืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื ืžืจื•ื‘ื™ื ืขืœ ื™ื“ื™ ื‘ื™ื˜ื•ืœ ื“ื™ื ืžื™ ืฉืœ ืคืขื•ืœื•ืช ืกื ื›ืจื•ืŸ ืžื™ื•ืชืจื•ืช (ืขืกืงืื•ืช ืื˜ื•ืžื™ื•ืช ื ืชืžื›ื•ืช ืฉื ื™ืชืŸ ืœืงื‘ืœ ืื• ืœื‘ื˜ืœ). ืื ืžื•ืคืจืขื•ืช, ืคืขื•ืœื•ืช ื”ืžื‘ื•ืฆืขื•ืช ื‘ืื–ื•ืจ ื”ื–ื™ื›ืจื•ืŸ ื”ืขืกืงืื•ืช ืžืชื‘ื˜ืœื•ืช.

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

ื”ืžืชืงืคื” ืžืกืชื›ืžืช ื‘ืคืชื™ื—ืช ืขืกืงืื•ืช TSX ื•ื™ืฆื™ืจืช ืชื ืื™ื ืœื”ืคืจืขื” ืืกื™ื ื›ืจื•ื ื™ืช ืฉืœื”ืŸ, ืฉื‘ืžื”ืœื›ืŸ ื ื•ืฆืจื™ื ืชื ืื™ื ืœื“ืœื™ืคื” ืฉืœ ืชื•ื›ืŸ ืžืื’ืจื™ื ืคื ื™ืžื™ื™ื ื”ืžืœืื™ื ื‘ืื•ืคืŸ ืกืคืงื•ืœื˜ื™ื‘ื™ ื‘ื ืชื•ื ื™ื ืžืคืขื•ืœื•ืช ืงืจื™ืื” ื‘ื–ื™ื›ืจื•ืŸ ื”ืžื‘ื•ืฆืขื•ืช ืขืœ ืื•ืชื” ืœื™ื‘ืช ืžืขื‘ื“. ื”ื“ืœื™ืคื” ืžื•ื’ื‘ืœืช ืœืœื™ื‘ื” ื”ืคื™ื–ื™ืช ืฉืœ ื”-CPU ื”ื ื•ื›ื—ื™ืช (ืขืœื™ื” ืคื•ืขืœ ื”ืงื•ื“ ืฉืœ ื”ืชื•ืงืฃ), ืืš ืžื›ื™ื•ื•ืŸ ืฉืžืื’ืจื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืžืฉื•ืชืคื™ื ื‘ื™ืŸ ืคืชื™ืœื™ื ืฉื•ื ื™ื ื‘ืžืฆื‘ Hyper-Threading, ืืคืฉืจ ืœื”ื“ืœื™ืฃ ืคืขื•ืœื•ืช ื–ื™ื›ืจื•ืŸ ื”ืžื‘ื•ืฆืขื•ืช ื‘ืฉืจืฉื•ืจื™ ืžืขื‘ื“ ืื—ืจื™ื.

ืœึดืชึฐืงื•ึนืฃ ื‘ื›ืคื•ืฃ ืœ ื›ืžื” ื“ื’ืžื™ื ืฉืœ ื”ื“ื•ืจ ื”ืฉืžื™ื ื™, ื”ืชืฉื™ืขื™ ื•ื”ืขืฉื™ืจื™ ืฉืœ ืžืขื‘ื“ื™ Intel Core, ื›ืžื• ื’ื Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W ื•ื”ื“ื•ืจ ื”ืฉื ื™ ืฉืœ Intel Xeon Scalable. ืžืขื‘ื“ื™ ืื™ื ื˜ืœ ื—ื“ืฉื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ืจืช Cascade Lake ืฉื”ื•ืฆื’ื” ื‘ืืคืจื™ืœ, ืืฉืจ ื‘ืชื—ื™ืœื” ืœื ื”ื™ื™ืชื” ืจื’ื™ืฉื” ืœื”ืชืงืคื•ืช RIDL ื•-Fallout, ืจื’ื™ืฉื™ื ืืฃ ื”ื ืœื”ืชืงืคื•ืช. ื‘ื ื•ืกืฃ ืœ-Zombieload 2.0, ื”ื—ื•ืงืจื™ื ื–ื™ื”ื• ื’ื ืืช ื”ืืคืฉืจื•ืช ืœืขืงื•ืฃ ืฉื™ื˜ื•ืช ื”ื’ื ื” ืฉื”ื•ืฆืขื• ื‘ืขื‘ืจ ื ื’ื“ ื”ืชืงืคื•ืช MDS, ื‘ื”ืชื‘ืกืก ืขืœ ื”ืฉื™ืžื•ืฉ ื‘ื”ื•ืจืื” VERW ื›ื“ื™ ืœื ืงื•ืช ืืช ื”ืชื•ื›ืŸ ืฉืœ ืžืื’ืจื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ื‘ืขืช ื—ื–ืจื” ืžื”ืงืจื ืœ ืœืžืจื—ื‘ ื”ืžืฉืชืžืฉ ืื• ื‘ืขืช ื”ืขื‘ืจืช ืฉืœื™ื˜ื” ืืœ ืžืขืจื›ืช ื”ืื•ืจื—ื™ื.

ื”ื“ื•"ื— ืฉืœ ืื™ื ื˜ืœ ืงื•ื‘ืข ื›ื™ ื‘ืžืขืจื›ื•ืช ืขื ืขื•ืžืก ื”ื˜ืจื•ื’ื ื™, ื”ื™ื›ื•ืœืช ืœื‘ืฆืข ืชืงื™ืคื” ืงืฉื”, ืฉื›ืŸ ื“ืœื™ืคื” ืžืžื‘ื ื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืžื›ืกื” ืืช ื›ืœ ื”ืคืขื™ืœื•ืช ื‘ืžืขืจื›ืช ื•ื”ืชื•ืงืฃ ืื™ื ื• ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ืขืœ ืžืงื•ืจ ื”ื ืชื•ื ื™ื ืฉื—ื•ืœืฆื•, ื›ืœื•ืžืจ. ื™ื›ื•ืœ ืจืง ืœืฆื‘ื•ืจ ืžื™ื“ืข ืฉืžื•ืคื™ืข ื›ืชื•ืฆืื” ืžื“ืœื™ืคื” ื•ืœื ืกื•ืช ืœื–ื”ื•ืช ืžื™ื“ืข ืฉื™ืžื•ืฉื™ ื‘ื™ืŸ ื”ื ืชื•ื ื™ื ื”ืœืœื•, ืœืœื ื™ื›ื•ืœืช ืœื™ื™ืจื˜ ื‘ื›ื•ื•ื ื” ื ืชื•ื ื™ื ื”ืงืฉื•ืจื™ื ืœื›ืชื•ื‘ื•ืช ื–ื™ื›ืจื•ืŸ ืกืคืฆื™ืคื™ื•ืช. ืขื ื–ืืช, ื—ื•ืงืจื™ื ืคืจืกืžื• ืœื ืฆืœ ืื‘ ื˜ื™ืคื•ืก, ืคื•ืขืœ ืขืœ ืœื™ื ื•ืงืก ื•-Windows, ื•ื”ื“ื’ื™ื ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ื”ืชืงืคื” ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”-hash ืฉืœ ื”ืกื™ืกืžื” ืฉืœ ืžืฉืชืžืฉ ื”ืฉื•ืจืฉ.
ืื•ืœื™ ื‘ื™ืฆื•ืข ื”ืชืงืคื” ืžืžืขืจื›ืช ืื•ืจื—ืช ืœืฆื‘ื™ืจืช ื ืชื•ื ื™ื ื”ืžื•ืคื™ืขื™ื ื‘ืคืขื•ืœื•ืช ืฉืœ ืžืขืจื›ื•ืช ืื•ืจื—ื•ืช ืื—ืจื•ืช, ืกื‘ื™ื‘ืช ื”ืžืืจื—ืช, ื”-Hypervisor ื•ืžื•ื‘ืœืขื•ืช Intel SGX.

ืชื™ืงื•ื ื™ื ืœื—ืกื™ืžืช ื”ืคื’ื™ืขื•ืช ื›ืœื•ืœ ืœืชื•ืš ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ ืœื™ื‘ืช ืœื™ื ื•ืงืก ื•ื ื›ืœืœ ื‘ืžื”ื“ื•ืจื•ืช 5.3.11, 4.19.84, 4.14.154, 4.9.201 ื•-4.4.201. ื’ื ืขื“ื›ื•ื ื™ ืœื™ื‘ื” ื•ืžื™ืงืจื•ืงื•ื“ ื›ื‘ืจ ืฉื•ื—ืจืจื• ืขื‘ื•ืจ ื”ืคืฆื•ืช ื’ื“ื•ืœื•ืช (ื“ื‘ื™ืืŸ, SUSE/openSUSE, ืื•ื‘ื•ื ื˜ื•, ืจื”ืœ, ืคื“ื•ืจื”, FreeBSD). ื”ื‘ืขื™ื” ื–ื•ื”ืชื” ื‘ืืคืจื™ืœ ื•ืชื•ืื ืชื™ืงื•ืŸ ื‘ื™ืŸ ืื™ื ื˜ืœ ืœืžืคืชื—ื™ ืžืขืจื›ื•ืช ื”ื”ืคืขืœื”.

ื”ืฉื™ื˜ื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ืœื—ืกื™ืžืช Zombieload 2.0 ื”ื™ื ืœื”ืฉื‘ื™ืช ืืช ืชืžื™ื›ืช TSX ื‘ืžืขื‘ื“. ื”ืชื™ืงื•ืŸ ื”ืžื•ืฆืข ืขื‘ื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก ื›ื•ืœืœ ืžืกืคืจ ืืคืฉืจื•ื™ื•ืช ื”ื’ื ื”. ื”ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื” ืžืฆื™ืขื” ืืช ื”ืคืจืžื˜ืจ "tsx=on/off/auto", ื”ืžืืคืฉืจ ืœืš ืœืฉืœื•ื˜ ืื ื”ืจื—ื‘ืช TSX ืžื•ืคืขืœืช ื‘ืžืขื‘ื“ (ื”ืขืจืš ืื•ื˜ื•ืžื˜ื™ ืžืฉื‘ื™ืช ืืช TSX ืจืง ืขื‘ื•ืจ ืžืขื‘ื“ื™ื ืคื’ื™ืขื™ื). ืืคืฉืจื•ืช ื”ื”ื’ื ื” ื”ืฉื ื™ื™ื” ืžื•ืคืขืœืช ืขืœ ื™ื“ื™ ื”ืคืจืžื˜ืจ "tsx_async_abort=off/full/full,nosmt" ื•ืžื‘ื•ืกืกืช ืขืœ ื ื™ืงื•ื™ ืžืื’ืจื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ื‘ืžื”ืœืš ื”ื—ืœืคืช ื”ืงืฉืจ (ื“ื’ืœ nosmt ืžืฉื‘ื™ืช ื‘ื ื•ืกืฃ ืืช SMT/Hyper-Threads). ื›ื“ื™ ืœื‘ื“ื•ืง ืื ืžืขืจื›ืช ืจื’ื™ืฉื” ืœืคื’ื™ืขื•ื™ื•ืช, sysfs ืžืกืคืงืช ืืช ื”ืคืจืžื˜ืจ "/sys/devices/system/cpu/vulnerabilities/tsx_async_abort".

ื’ื ื‘ ืขื“ื›ื•ืŸ ืžื™ืงืจื•ืงื•ื“ ื—ื•ืกืœื• ืขื•ื“ ืื—ื“ ืคื’ื™ืขื•ืช (CVE-2018-12207) ื‘ืžืขื‘ื“ื™ ืื™ื ื˜ืœ, ืืฉืจ ื—ืกื•ื ื’ื ื‘ื’ืจืกื” ื”ืื—ืจื•ื ื” ืขื“ื›ื•ืŸ ืœื™ื‘ื•ืช ืœื™ื ื•ืงืก. ืคื’ื™ืขื•ืช ื”ื™ื ืžืืคืฉืจืช ืชื•ืงืฃ ื—ืกืจ ื–ื›ื•ื™ื•ืช ืœื™ื–ื•ื ืžื ื™ืขืช ืฉื™ืจื•ืช, ืžื” ืฉื’ื•ืจื ืœืžืขืจื›ืช ืœื”ื™ืชืงืข ื‘ืžืฆื‘ "ืฉื’ื™ืืช ื‘ื“ื™ืงืช ืžื›ื•ื ื”".
ื”ืชืงืคื” ื›ื•ืœืœ ืขืฉื•ื™ ืœื”ื™ื•ืช ืžื—ื•ื™ื‘ ืžืžืขืจื›ืช ื”ืื•ืจื—ื™ื.

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

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