Ang LVI usa ka bag-ong klase sa mga pag-atake sa espekulatibo nga mekanismo sa pagpatuman sa CPU

Gipatik impormasyon bahin sa bag-ong klase sa mga pag-atake LVI (Load Value Injection, CVE-2020-0551) sa speculative execution mechanism sa Intel CPUs, nga magamit sa pag-leak sa mga yawe ug sekretong datos gikan sa Intel SGX enclaves ug uban pang proseso.

Ang usa ka bag-ong klase sa mga pag-atake gibase sa pagmaniobra sa parehas nga istruktura sa microarchitectural nga gigamit sa mga pag-atake MDS (Microarchitectural Data Sampling), Spectre ug Meltdown. Sa samang higayon, ang mga bag-ong pag-atake wala gibabagan sa kasamtangan nga mga pamaagi sa pagpanalipod batok sa Meltdown, Spectre, MDS ug uban pang susama nga mga pag-atake. Ang epektibo nga proteksyon sa LVI nanginahanglan mga pagbag-o sa hardware sa CPU. Kung nag-organisar sa proteksyon sa programmatically, pinaagi sa pagdugang sa panudlo sa LFENCE sa compiler pagkahuman sa matag operasyon sa pagkarga gikan sa memorya ug pag-ilis sa panudlo sa RET sa POP, LFENCE ug JMP, sobra nga overhead ang natala - sumala sa mga tigdukiduki, ang kompleto nga proteksyon sa software mosangpot sa pagkunhod sa performance sa 2-19 ka beses.

Kabahin sa kalisud sa pag-ali sa problema kay gibalewala sa kamatuoran nga ang pag-atake sa pagkakaron mas teoretikal kay sa praktikal (ang pag-atake posible sa teoriya, apan lisud kaayo nga ipatuman ug ma-reproducible lamang sa sintetikong mga pagsulay).
Intel gipaangay ang problema adunay kasarangan nga lebel sa peligro (5.6 sa 10) ug gipagawas pag-update sa firmware ug SDK alang sa SGX environment, diin gisulayan niini nga babagan ang pag-atake gamit ang workaround. Ang gisugyot nga mga pamaagi sa pag-atake sa pagkakaron magamit lamang sa mga Intel processor, apan ang posibilidad sa pagpahiangay sa LVI alang sa ubang mga processor diin ang Meltdown-class nga mga pag-atake magamit dili mahimong isalikway.

Ang problema giila kaniadtong Abril sa tigdukiduki nga si Jo Van Bulck gikan sa Unibersidad sa Leuven, pagkahuman, uban ang pag-apil sa 9 nga mga tigdukiduki gikan sa ubang mga unibersidad, lima ka sukaranan nga mga pamaagi sa pag-atake ang naugmad, nga ang matag usa nagtugot sa paglungtad sa labi ka espesipiko. mga kapilian. Sa gawasnon, kaniadtong Pebrero ning tuiga, ang mga tigdukiduki gikan sa Bitdefender usab nadiskobrehan usa sa mga variant sa pag-atake sa LVI ug gitaho kini sa Intel. Ang mga variant sa pag-atake gipalahi pinaagi sa paggamit sa lainlaing mga istruktura sa microarchitectural, sama sa storage buffer (SB, Store Buffer), fill buffer (LFB, Line Fill Buffer), FPU context switch buffer ug first-level cache (L1D), nga gigamit kaniadto. sa mga pag-atake sama sa ZombieLoad, RIDL, Fallout, LazyFP, Palandonga ΠΈ Gawas.

Ang LVI usa ka bag-ong klase sa mga pag-atake sa espekulatibo nga mekanismo sa pagpatuman sa CPU

Ang panguna pasidungog Ang LVI batok sa mga pag-atake sa MDS mao nga ang MDS nagmaniobra sa kahulugan sa mga sulud sa mga istruktura sa microarchitectural nga nahabilin sa cache pagkahuman sa pagdumala sa espekulatibo nga eksepsiyon (fault) o pagkarga ug mga operasyon sa tindahan, samtang
Gitugotan sa mga pag-atake sa LVI ang datos sa tig-atake nga masulod sa mga istruktura sa microarchitectural aron maimpluwensyahan ang sunod-sunod nga espekulatibo nga pagpatuman sa code sa biktima. Gamit kini nga mga manipulasyon, ang usa ka tig-atake mahimong makuha ang sulud sa mga istruktura sa pribado nga datos sa ubang mga proseso kung magpatuman sa piho nga code sa target nga CPU core.

Ang LVI usa ka bag-ong klase sa mga pag-atake sa espekulatibo nga mekanismo sa pagpatuman sa CPU

Sa problema sa pagpahimulos sa code sa proseso sa biktima dapat magkita espesyal nga mga han-ay sa code (gadgets) diin ang usa ka tig-atake nga kontrolado nga kantidad gikarga, ug ang pagkarga niini nga kantidad hinungdan sa mga eksepsiyon (sayup, abort o pagtabang) nga ilabay, isalikway ang resulta ug ipatuman pag-usab ang instruksiyon. Kung giproseso ang usa ka eksepsiyon, usa ka espekulatibo nga bintana ang makita kung diin ang datos nga giproseso sa gadget nagtulo. Sa partikular, ang processor nagsugod sa pagpatuman sa usa ka piraso sa code (gadget) sa speculative mode, unya gitino nga ang panagna dili makatarunganon ug gibalik ang mga operasyon sa ilang orihinal nga kahimtang, apan ang datos nga giproseso sa panahon sa speculative execution gibutang sa L1D cache. ug microarchitectural buffers ug magamit alang sa pagkuha gikan kanila gamit ang nahibal-an nga mga pamaagi alang sa pagtino sa nahabilin nga datos pinaagi sa mga agianan sa ikatulo nga partido.

Ang "pagtabang" nga eksepsiyon, dili sama sa "sayup" nga eksepsiyon, gidumala sa sulod sa processor nga walay pagtawag sa mga tigdumala sa software. Ang tabang mahimong mahitabo, pananglitan, kung ang A (Na-access) o D (Dirty) bit sa lamesa sa panid sa panumduman kinahanglan nga i-update. Ang nag-unang kalisud sa paghimo sa usa ka pag-atake sa ubang mga proseso mao kung giunsa pagsugod ang pagtungha sa tabang pinaagi sa pagmaniobra sa proseso sa biktima. Sa pagkakaron walay kasaligang mga paagi sa pagbuhat niini, apan posible nga kini makit-an sa umaabot. Ang posibilidad sa paghimo sa usa ka pag-atake sa pagkakaron nakumpirma lamang alang sa Intel SGX enclaves, ang ubang mga senaryo kay theoretical o reproducible sa sintetikong mga kondisyon (nagkinahanglan og pagdugang sa pipila ka mga gadgets sa code)

Ang LVI usa ka bag-ong klase sa mga pag-atake sa espekulatibo nga mekanismo sa pagpatuman sa CPU

Ang LVI usa ka bag-ong klase sa mga pag-atake sa espekulatibo nga mekanismo sa pagpatuman sa CPU

Posible nga mga vector sa pag-atake:

  • Ang pagtulo sa datos gikan sa mga istruktura sa kernel ngadto sa proseso sa lebel sa user. Ang proteksyon sa kernel sa Linux batok sa mga pag-atake sa Spectre 1, ingon man ang mekanismo sa pagpanalipod sa SMAP (Supervisor Mode Access Prevention), makapakunhod pag-ayo sa posibilidad sa pag-atake sa LVI. Ang pagdugang ug dugang nga proteksyon sa kernel mahimong kinahanglanon kung ang mas simple nga pamaagi sa pag-atake sa LVI mailhan sa umaabot.
  • Data leakage tali sa lain-laing mga proseso. Ang pag-atake nagkinahanglan sa presensya sa pipila ka mga piraso sa code sa aplikasyon ug ang kahulugan sa usa ka pamaagi sa paglabay sa usa ka eksepsiyon sa target nga proseso.
  • Data leakage gikan sa host environment ngadto sa guest system. Ang pag-atake giklasipikar nga komplikado kaayo, nga nanginahanglan lainlaing mga lakang nga lisud ipatuman ug mga panagna sa kalihokan sa sistema.
  • Ang pagtulo sa datos tali sa mga proseso sa lainlaing mga sistema sa bisita. Ang vector sa pag-atake hapit sa pag-organisar sa pagtagas sa datos tali sa lainlaing mga proseso, apan dugang nga nanginahanglan komplikado nga mga pagmaniobra aron makalikay sa pagkalainlain tali sa mga sistema sa bisita.

Gipatik sa mga tigdukiduki daghan mga prototype nga adunay usa ka demonstrasyon sa mga prinsipyo sa paghimo sa usa ka pag-atake, apan kini dili pa angay alang sa paghimo sa tinuod nga mga pag-atake. Ang unang pananglitan nagtugot kanimo sa pag-redirect sa speculative code execution sa proseso sa biktima, susama sa return-oriented programming (ROP,Return-Oriented Programming). Sa kini nga pananglitan, ang biktima usa ka espesyal nga giandam nga proseso nga adunay sulud nga kinahanglan nga mga gadyet (ang pag-aplay sa usa ka pag-atake sa tinuud nga mga proseso sa ikatulo nga partido lisud). Ang ikaduha nga pananglitan nagtugot kanato sa pag-wedge sa atong mga kaugalingon ngadto sa mga kalkulasyon atol sa AES encryption sulod sa Intel SGX enclave ug pag-organisar sa usa ka data leak atol sa speculative execution sa mga instruksyon aron ibalik ang bili sa yawe nga gigamit alang sa encryption.


Source: opennet.ru

Idugang sa usa ka comment