SWAPGS isang bagong haka-haka kahinaan sa pagpapatupad

SWAPGS-exploit-2

Los Natukoy ng mga mananaliksik ng Bitdefender ang isang bagong kahinaan sa mekanismo para sa haka-haka na pagpapatupad ng mga tagubilin sa mga modernong processor, na tumanggap ng pangalang SWAPGS, Ang isang naaayon sa pangalan ng tagubilin ng processor na nagiging sanhi ng problema.

Kakayahang mangyari ay nagbibigay-daan sa isang hindi kagagawan na umaatake upang matukoy ang mga nilalaman ng mga lugar ng memorya ng kernel o pagpapatakbo ng mga virtual machine. Ang isyu ay nakumpirma sa mga processor ng Intel (x86_64) at bahagyang nakakaapekto sa mga processor ng AMD kung saan hindi lilitaw ang pangunahing vector ng pag-atake.

Ang dating ipinatupad na pamamaraan ng Anti-kahinaan ng Spectre at Meltdown ay hindi protektahan laban sa mga pag-atake ng SWAPGS gamit ang mga prosesor ng Intel, ngunit iminungkahi na ang mga solusyon para sa Linux, ChromeOS, Android at Windows.

Ang kahinaan ay kabilang sa klase ng Spectre v1 at batay sa ideya ng pagkuha ng data mula sa cache ng processor na mananatili pagkatapos ng haka-haka na pagpapatupad ng mga tagubilin.

Ang mga bloke ng hula ng conversion ng mga modernong CPU ay gumagamit ng maagap na pagpapatupad ng ilang mga tagubilin, na mas malamang na maipatupad, upang mapabuti ang pagganap, ngunit nang hindi naghihintay para sa pagkalkula ng lahat ng mga kadahilanan na tumutukoy sa kanilang pagpapatupad (halimbawa, kapag ang mga tagubilin sa paglipat ng mga kondisyon o ang mga parameter ng pag-access ay hindi pa nakakalkula).

Kung ang kumpirmasyon ay hindi nakumpirma, itinatapon ng processor ang resulta ng haka-haka na pagpapatakbo, ngunit ang data na naproseso sa panahon ng pagpapatakbo ay na-cache ng processor at maaaring maibalik gamit ang mga pamamaraan upang matukoy ang nilalaman ng cache sa mga kanal. baguhin ang oras ng pag-access sa naka-cache at hindi naka-cache na data.

Tungkol sa SWAPGS

Ang kakaibang katangian ng bagong pag-atake ay ang paggamit ng isang butas na lumabas habang isinasaalang-alang ang pagpapatupad ng tagubilin ng SWAPGS, na ginagamit sa mga operating system upang mapalitan ang halaga ng rehistro ng GS kapag ang kontrol ay inilipat mula sa puwang ng gumagamit patungo sa operating system kernel (ang halaga ng GS na ginamit sa puwang ng gumagamit ay pinalitan ng halagang ginamit sa mga pagpapatakbo ng kernel).

Ang kernel ng Linux sa mga tindahan ng GS per_cpu pointer, na ginagamit upang mai-access ang data ng kernel, at tumuturo sa TLS (Thread Local Storage) sa puwang ng gumagamit.

Upang maibukod ang dobleng panawagan ng tagubilin sa SWAPGS pagkatapos ng paulit-ulit na pag-access ng kernel mula sa puwang ng kernel o kapag nagpapatupad ng code na hindi nangangailangan ng kapalit ng rehistro ng GS, isang tseke at kondisyunal na paglipat ay isinagawa bago ang tagubilin.

Ang spekulatibong mekanismo ng pagpapatupad ay nauuna sa pagpapatupad ng code gamit ang tagubilin ng SWAPGS, nang hindi naghihintay para sa resulta ng pag-verify, at kung ang napiling sangay ay hindi nakumpirma, itinatapon nito ang resulta.

Samakatuwid, ang isang sitwasyon ay maaaring lumitaw kapag ang isang sangay na tumutukoy sa pagpapatupad ng SWAPGS ay mapagpalagay na napili, ngunit sa panahon ng haka-haka na pagpapatupad ang halaga ng rehistro ng GS ay mababago ng tagubilin ng SWAPGS at gagamitin sa mga memorya na umaandar na memorya na na-cache ng CPU.

Nagmungkahi ang mga mananaliksik ng dalawang mga sitwasyon sa pag-atake kung saan naghanda ng mga prototype.

  • Ang unang senaryo ay batay sa sitwasyon kung saan ang tagubilin ng SWAPGS ay hindi naisakatuparan nang haka-haka, kahit na ginagamit ito sa aktwal na pagpapatupad, at ang pangalawang senaryo ay kabaligtaran, kapag ang tagubilin ng SWAPGS ay naisakatuparan nang haka-haka, bagaman talagang hindi dapat.
  • Para sa bawat senaryo, mayroong dalawang mga pagpipilian sa pagpapatakbo: maaaring matukoy ng umaatake ang halaga sa isang tukoy na address sa pangunahing lugar, at ang mag-atake ay maaaring maghanap para sa isang tukoy na halaga sa mga random na address sa core.

Kinakailangan ng solusyon ang pag-install ng isang pag-update ng kernel sa parehong pangunahing sistema at mga kapaligiran ng panauhin, na sinusundan ng isang pag-reboot ng system. Upang huwag paganahin ang proteksyon sa Linux, maaari mong gamitin ang pagpipiliang "nospectre_v1", na hindi rin pinagana ang mga hakbang upang hadlangan ang kahinaan ng SWAPGS.

Magagamit ang solusyon bilang isang patch para sa kernel ng Linux, na isinama na sa mga bersyon 4.19.65, 5.2.7, 4.14.137, 4.9.188 at 4.4.188, habang para sa iba't ibang pamamahagi ng Linux ang mga nauugnay na pag-aayos ay darating sa panahon ng ito at sa susunod na linggo.


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.