SQUIP, isang bagong pag-atake na nakakaapekto sa mga processor ng AMD at humahantong sa pagtagas ng data

isang pangkat ng iMga mananaliksik mula sa Graz University of Technology (Austria), na dating kilala sa pagbuo ng mga pag-atake ng MDS, NetSpectre, Throwhammer at ZombieLoad, ay nagsiwalat ng bagong pag-atake sa side channel (CVE-2021-46778) sa scheduler queue ng AMD processor na ginamit upang iiskedyul ang pagpapatupad ng mga tagubilin sa iba't ibang unit ng execution ng CPU.

Ang pag-atake, tinawag SQUIP, ay nagbibigay-daan upang matukoy ang data na ginamit sa mga kalkulasyon sa isa pang proseso o virtual machine o ayusin ang isang nakatagong channel ng komunikasyon sa pagitan ng mga proseso o virtual machine na nagbibigay-daan sa pagpapalitan ng data nang hindi dumadaan sa mga mekanismo ng kontrol sa pag-access ng system.

ang Mga AMD CPU batay sa 1st, 2nd at 3rd Zen microarchitectures henerasyon (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) Ay apektado kapag ginamit ang teknolohiyang Simultaneous Multithreading (SMT).

Gumagamit ang mga modernong CPU ng superscalar na disenyo, kung saan ang maraming mga tagubilin ay isinasagawa nang sabay-sabay upang i-maximize ang pagganap. Pinoproseso ng mga CPU na ito ang mga tagubilin sa pipeline sa pamamagitan ng ilang yugto: (1) fetch, (2) decode, (3) program/execute, at (4) fetch.

Ang pag-atake ay batay sa pagsusuri sa antas ng paglitaw ng pagtatalo (antas ng pagtatalo) sa iba't ibang mga pila ng scheduler at ginagawa sa pamamagitan ng pagsukat ng mga pagkaantala kapag sinimulan ang mga operasyon ng pagsusuri na isinagawa sa isa pang SMT thread sa parehong pisikal na CPU. Upang pag-aralan ang nilalaman, ginamit ang paraan ng Prime+Probe, na kinabibilangan ng pagpuno sa pila ng isang hanay ng mga halaga ng sanggunian at pagtukoy ng mga pagbabago sa pamamagitan ng pagsukat ng oras ng pag-access sa kanila sa oras ng pag-reload.

Ang yugto ng programa/execute ay maaaring magproseso ng mga tagubilin nang hindi maayos upang mapakinabangan ang paralelismo sa antas ng pagtuturo. Inilalarawan namin nang maikli ang bawat isa sa mga yugtong ito:

-Paghahanap. Hinahanap ng CPU ang susunod na pagtuturo na isasagawa mula sa L1i cache. 
-Decode. Upang payagan ang mahusay na pagpapatupad, ang nakuha na mga tagubilin (macro operations) ay na-decode sa isa o higit pang mga simpleng microoperation (µops) at inilalagay sa isang µop queue. Ang mga µop na ito ay inilalagay sa backend, kung saan naka-iskedyul at isinasagawa ang mga ito.
-Iskedyul/Pagtakbo. Sinusubaybayan ng (mga) scheduler kung aling mga µop ang handa para sa pagpapatupad (may mga available na input) at dynamic na iiskedyul ang mga ito (wala sa order) sa mga available na execution unit. Ang CPU core ay may maraming execution unit at maaaring magkaroon ng maramihang arithmetic and logic units (ALUs), branch execution units (BRUs), address generation units (AGUs).

Sa panahon ng eksperimento, nagawang ganap na muling likhain ng mga mananaliksik ang 4096-bit na pribadong RSA key ginamit upang lumikha ng mga digital na lagda gamit ang mbedTLS 3.0 cryptographic library, na gumagamit ng Montgomery algorithm upang itaas ang isang numero sa isang power modulus. 50.500 bakas ang kailangan para matukoy ang susi.

Ang kabuuang oras ng pag-atake ay umabot ng 38 minuto. Ang mga variant ng pag-atake na nagbibigay ng pagtagas sa pagitan ng iba't ibang proseso at virtual machine na kinokontrol ng KVM hypervisor ay ipinapakita. Ipinapakita rin na ang pamamaraan ay maaaring gamitin upang i-orkestrate ang tago na paglilipat ng data sa pagitan ng mga virtual machine sa bilis na 0,89 Mbit/s at sa pagitan ng mga proseso sa bilis na 2,70 Mbit/s na may error rate na mas mababa sa 0,8, XNUMX%.

Ang CPU core ay nahahati sa maraming lohikal na core, o mga thread, na nagsasagawa ng mga independiyenteng stream ng pagtuturo ngunit nagbabahagi ng mga mapagkukunan tulad ng L1i cache. Ang mga µop ng mga thread na ito ay nagbabahagi din ng mga unit ng pagpapatupad nang pabago-bago upang payagan ang mas mataas na kabuuang paggamit. Ang pagkahati ng iba't ibang bahagi ng kernel.
Ginagawa ito sa pamamagitan ng mapagkumpitensyang palitan. Pinapayagan ng mga arkitektura ng AMD Zen ang dalawang thread
bawat core. Ang mga thread na ito ay maaaring mula sa isang programa o mula sa iba't ibang mga programa, gaya ng pinamamahalaan ng operating system.

Ang mga processor ng Intel ay hindi madaling kapitan pag-atake dahil gumagamit sila ng iisang pila sa pag-iiskedyul, habang ang mga mahinang processor ng AMD ay gumagamit ng magkakahiwalay na pila para sa bawat yunit ng pagpapatupad.

Bilang solusyon para harangan ang pagtagas ng impormasyon, Inirerekomenda ng AMD na mga developer gumamit ng mga algorithm na palaging nagsasagawa ng mga kalkulasyon ng matematika sa pare-parehong oras, anuman ang uri ng data na pinoproseso, at maiwasan din ang forking batay sa lihim na data.

Panghuli, kung interesado kang malaman ang higit pa tungkol dito, maaari mong konsultahin ang mga detalye sa susunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.