L1DES (CacheOut) ื•-VRS - ืคื’ื™ืขื•ื™ื•ืช ื—ื“ืฉื•ืช ื‘ืžื‘ื ื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืฉืœ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ

ืื™ื ื˜ืœ ื—ึธืฉื‚ื•ึผืฃ ืžื™ื“ืข ืขืœ ืฉืชื™ ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื—ื“ืฉื•ืช ื‘ืžืขื‘ื“ื™ ืื™ื ื˜ืœ ื”ื ื’ืจืžื•ืช ืขืœ ื™ื“ื™ ื“ืœื™ืคืช ื ืชื•ื ื™ื ืžื”ืžื˜ืžื•ืŸ L1D (CVE-2020-0549, L1DES - L1D Eviction Sampling) ื•ืื•ื’ืจื™ื ื•ืงื˜ื•ืจื™ื (CVE-2020-0548, VRS - ื“ื’ื™ืžืช ื•ืงื˜ื•ืจ ืจื™ืฉื•ื). ื”ืคื’ื™ืขื•ืช ืฉื™ื™ื›ื•ืช ืœื›ื™ืชื” MDS (Microarchitectural Data Sampling) ื•ื”ื ืžื‘ื•ืกืกื™ื ืขืœ ื™ื™ืฉื•ื ืฉื™ื˜ื•ืช ื ื™ืชื•ื— ืฆื“ื“ื™ื•ืช ืขืœ ื ืชื•ื ื™ื ื‘ืžื‘ื ื™ื ืžื™ืงืจื•-ืื“ืจื™ื›ืœื™ื™ื. AMD, ARM ื•ืžืขื‘ื“ื™ื ืื—ืจื™ื ืื™ื ื ืžื•ืฉืคืขื™ื ืžื‘ืขื™ื•ืช.

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

L1DES (CacheOut) ื•-VRS - ืคื’ื™ืขื•ื™ื•ืช ื—ื“ืฉื•ืช ื‘ืžื‘ื ื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืฉืœ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ

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

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

  • ืฆื•ื•ืช VUSec ืžึฐืขื•ึผื‘ึผึธื“ ืฉื™ื˜ืช ืชืงื™ืคื” RIDL ืขื‘ื•ืจ ืคื’ื™ืขื•ืช L1DES. ื–ืžื™ืŸ ืœื ืฆืœ ืื‘ ื˜ื™ืคื•ืก, ืฉืขื•ืงืคืช ื’ื ืืช ืฉื™ื˜ืช ื”ื”ื’ื ื” ื”ืžื•ืฆืขืช ืฉืœ ืื™ื ื˜ืœ MDS, ื”ืžื‘ื•ืกืกืช ืขืœ ืฉื™ืžื•ืฉ ื‘ื”ื•ืจืื” VERW ื›ื“ื™ ืœื ืงื•ืช ืืช ื”ืชื•ื›ืŸ ืฉืœ ืžืื’ืจื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ื‘ืขืช ื—ื–ืจื” ืžื”ืงืจื ืœ ืœืžืจื—ื‘ ื”ืžืฉืชืžืฉ ืื• ื‘ืขืช ื”ืขื‘ืจืช ืฉืœื™ื˜ื” ืœืžืขืจื›ืช ื”ืื•ืจื—ืช (ื”ื—ื•ืงืจื™ื ื”ืชืขืงืฉื• ื‘ืชื—ื™ืœื” ื›ื™ VERW (ื ื™ืงื•ื™ ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™) buffers) ืœื”ื’ื ื” ืื™ื ื” ืžืกืคืงืช ื•ื“ื•ืจืฉืช ืฉื˜ื™ืคื” ืžืœืื” ืฉืœ ืžื˜ืžื•ืŸ L1 ื‘ื›ืœ ืžืชื’ ื”ืงืฉืจ).
  • ืงื‘ื•ืฆื” ื–ื•ืžื‘ื™ ืขื“ื›ืŸ ืืช ืฉืœื™ ืฉื™ื˜ืช ืชืงื™ืคื” ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืคื’ื™ืขื•ืช L1DES.
  • ื—ื•ืงืจื™ื ืžืื•ื ื™ื‘ืจืกื™ื˜ืช ืžื™ืฉื™ื’ืŸ ืคื™ืชื—ื• ืฉื™ื˜ืช ืชืงื™ืคื” ืžืฉืœื”ื ื”ื•ืฆืืช ืžื˜ืžื•ืŸ (PDF), ื”ืžืืคืฉืจ ืœืš ืœื—ืœืฅ ืžื™ื“ืข ืกื•ื“ื™ ืžืงืจื ืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”, ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื•ืžืžื•ื‘ืœืขื•ืช SGX ืžื•ื’ื ื•ืช. ื”ืฉื™ื˜ื” ืžื‘ื•ืกืกืช ืขืœ ืžื ื™ืคื•ืœืฆื™ื•ืช ืขื ืžื ื’ื ื•ืŸ ืœื”ืคืจืขื” ืืกื™ื ื›ืจื•ื ื™ืช ืฉืœ ืคืขื•ืœื•ืช (TAA, TSX Asynchronous Abort) ื›ื“ื™ ืœืงื‘ื•ืข ืืช ืชื•ื›ืŸ ืžืื’ืจ ื”ืžื™ืœื•ื™ ืœืื—ืจ ื“ืœื™ืคืช ื ืชื•ื ื™ื ืžื”ืžื˜ืžื•ืŸ L1D.

    L1DES (CacheOut) ื•-VRS - ืคื’ื™ืขื•ื™ื•ืช ื—ื“ืฉื•ืช ื‘ืžื‘ื ื™ื ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืฉืœ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ

ืคื’ื™ืขื•ืช ืฉื ื™ื™ื” ืฉืœ VRS (Vector Register Sampling). ืงึธืฉืื•ึผืจ ืขื ื“ืœื™ืคื” ืœืžืื’ืจ ื”ืื—ืกื•ืŸ (Store Buffer) ืฉืœ ืชื•ืฆืื•ืช ืงืจื™ืืช ืคืขื•ืœื•ืช ืžืื•ื’ืจื™ื ื•ืงื˜ื•ืจื™ื™ื ืฉื”ืฉืชื ื• ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ื”ื•ืจืื•ืช ื•ืงื˜ื•ืจื™ื•ืช (SSE, AVX, AVX-512) ืขืœ ืื•ืชื” ืœื™ื‘ืช CPU. ื”ื“ืœื™ืคื” ืžืชืจื—ืฉืช ื‘ืกื˜ ื“ื™ ื ื“ื™ืจ ืฉืœ ื ืกื™ื‘ื•ืช ื•ื ื’ืจืžืช ืžื”ืขื•ื‘ื“ื” ืฉืคืขื•ืœื” ืกืคืงื•ืœื˜ื™ื‘ื™ืช ืฉื’ื•ืจืžืช ืœืฉื™ืงื•ืฃ ืžืฆื‘ ื”ืื•ื’ืจื™ื ื”ื•ื•ืงื˜ื•ืจื™ื™ื ื‘ืžืื’ืจ ื”ืื—ืกื•ืŸ ืžืชืขื›ื‘ืช ื•ืžืกืชื™ื™ืžืช ืœืื—ืจ ื ื™ืงื•ื™ ื”ืžืื’ืจ, ื•ืœื ืœืคื ื™ื•. ื‘ื“ื•ืžื” ืœืคื’ื™ืขื•ืช L1DES, ืœืื—ืจ ืžื›ืŸ ื ื™ืชืŸ ืœืงื‘ื•ืข ืืช ื”ืชื•ื›ืŸ ืฉืœ ืžืื’ืจ ื”ืื—ืกื•ืŸ ื‘ืืžืฆืขื•ืช ื˜ื›ื ื™ืงื•ืช ื”ืชืงืคื” ืฉืœ MDS ื•-TAA.

ื—ื•ืงืจื™ื ืžืงื‘ื•ืฆืช VUSec ืžื•ึผื›ึธืŸ ืœื ืฆืœ ืื‘ ื˜ื™ืคื•ืก, ื”ืžืืคืฉืจ ืœืš ืœืงื‘ื•ืข ืืช ื”ืขืจื›ื™ื ืฉืœ ืื•ื’ืจื™ื ื•ืงื˜ื•ืจื™ื™ื ื”ืžืชืงื‘ืœื™ื ื›ืชื•ืฆืื” ืžื—ื™ืฉื•ื‘ื™ื ื‘ื—ื•ื˜ ืœื•ื’ื™ ืื—ืจ ืฉืœ ืื•ืชื” ืœื™ื‘ืช ืžืขื‘ื“. ื—ื‘ืจืช ืื™ื ื˜ืœ ืžื•ืขืจืš ืคื’ื™ืขื•ืช VRS ื ื—ืฉื‘ื” ืžื•ืจื›ื‘ืช ืžื“ื™ ืขื‘ื•ืจ ื”ืชืงืคื•ืช ืืžื™ืชื™ื•ืช ื•ื”ื•ืงืฆืชื” ืจืžืช ื—ื•ืžืจื” ืžื™ื ื™ืžืœื™ืช (2.8 CVSS).

ื”ื‘ืขื™ื•ืช ื“ื•ื•ื—ื• ืœืื™ื ื˜ืœ ื‘ืžืื™ 2019 ืขืœ ื™ื“ื™ ืฆื•ื•ืช Zombieload ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื” ื”ื˜ื›ื ื™ืช ืฉืœ ื’ืจืืฅ (ืื•ืกื˜ืจื™ื”) ื•ืฆื•ื•ืช VUSec ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื” ื”ื—ื•ืคืฉื™ืช ืฉืœ ืืžืกื˜ืจื“ื, ื•ื”ืคื’ื™ืขื•ื™ื•ืช ืื•ืฉืจื• ืžืื•ื—ืจ ื™ื•ืชืจ ืขืœ ื™ื“ื™ ืžืกืคืจ ื—ื•ืงืจื™ื ืื—ืจื™ื ืœืื—ืจ ื ื™ืชื•ื— ื•ืงื˜ื•ืจื™ ืชืงื™ืคื” ืื—ืจื™ื ืฉืœ MDS. ื“ื•ื— ื”-MDS ื”ืจืืฉื•ืŸ ืœื ื›ืœืœ ืžื™ื“ืข ืขืœ ื‘ืขื™ื•ืช L1DES ื•-VRS ืขืงื‘ ื”ื™ืขื“ืจ ืชื™ืงื•ืŸ. ื”ืชื™ืงื•ืŸ ืื™ื ื• ื–ืžื™ืŸ ื›ืขืช, ืืš ื—ืœืคื” ืชืงื•ืคืช ืื™ ื”ื—ืฉื™ืคื” ื”ืžื•ืกื›ืžืช.
ื›ื“ืจืš ืœืขืงื™ืคืช ื”ื‘ืขื™ื”, ืžื•ืžืœืฅ ืœื”ืฉื‘ื™ืช ืืช HyperThreading. ื›ื“ื™ ืœื—ืกื•ื ืืช ื”ืคื’ื™ืขื•ืช ื‘ืฆื“ ื”ืœื™ื‘ื”, ืžื•ืฆืข ืœืืคืก ืืช ื”ืžื˜ืžื•ืŸ L1 ื‘ื›ืœ ืžืชื’ ื”ืงืฉืจ (MSR bit MSR_IA32_FLUSH_CMD) ื•ืœื”ืฉื‘ื™ืช ืืช ืกื™ื•ืžืช TSX (ืกื™ื‘ื™ื•ืช MSR MSR_IA32_TSX_CTRL ื•-MSR_TSX_FORCE_ABORT).

ืื™ื ื˜ืœ ื”ื‘ื˜ื—ื•ืช ืฉื—ืจืจ ืขื“ื›ื•ืŸ ืžื™ืงืจื•ืงื•ื“ ืขื ื™ื™ืฉื•ื ืžื ื’ื ื•ื ื™ื ืœื—ืกื™ืžืช ื‘ืขื™ื•ืช ื‘ืขืชื™ื“ ื”ืงืจื•ื‘. ืื™ื ื˜ืœ ื’ื ืžืฆื™ื™ื ืช ืฉื”ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ื•ืช ื”ื’ื ื” ืžืคื ื™ ืชืงื™ืคื” ื”ื•ืฆืข ื‘-2018 L1TF (L1 Terminal Fault) ืžืืคืฉืจ ืœืš ืœื—ืกื•ื ืืช ื ื™ืฆื•ืœ ื”ืคื’ื™ืขื•ืช ืฉืœ L1DES ืžืกื‘ื™ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช. ืœึดืชึฐืงื•ึนืฃ ื‘ื›ืคื•ืฃ ืœ ืžืขื‘ื“ื™ Intel Core ื”ื—ืœ ืžื”ื“ื•ืจ ื”ืฉื™ืฉื™ (Sky, Kaby, Coffee, Whisky, Amber Lake ื•ื›ื•'), ื•ื›ืŸ ื›ืžื” ื“ื’ืžื™ Intel Xeon ื•-Xeon Scalable.

ื‘ื ื•ืกืฃ, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ื”ึทืฉืื‘ึผึธื—ึธื” ืœึฐื ึทืฆึตืœ, ื”ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช ื”ืชืงืคื” RIDL ื›ื“ื™ ืœืงื‘ื•ืข ืืช ืชื•ื›ืŸ ื”-hash ืฉืœ ืกื™ืกืžืช ื”ืฉื•ืจืฉ ืž-/etc/shadow ื‘ืžื”ืœืš ื ื™ืกื™ื•ื ื•ืช ืื™ืžื•ืช ืชืงื•ืคืชื™ื™ื. ืื ื”ื ื™ืฆื•ืœ ืฉื”ื•ืฆืข ื‘ืžืงื•ืจ ืงื‘ืข ืืช ื”-hash in ื”ืกื™ืกืžื” ืฉืขื•ืช 24, ื•ืœืื—ืจ ื”ืคืขืœืช ื”ื“ืœื™ืคื” ื‘ืžื”ืœืš ืคืขื•ืœืช ืžื ื’ื ื•ืŸ ื”ื”ืคืจืขื” ื”ืืกื™ื ื›ืจื•ื ื™ (TAA, TSX Asynchronous Abort) ื‘ื™ืฆืขื• ืคืขื•ืœื” ื“ื•ืžื” ื‘ 36 ืฉื ื™ื•ืช, ื•ืื– ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืžื‘ืฆืขืช ื”ืชืงืคื” ืชื•ืš 4 ืฉื ื™ื•ืช.

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

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