SWAPGS - bregusrwydd newydd yn y mecanwaith gweithredu hapfasnachol CPU

Ymchwilwyr o Bitdefender wedi'i nodi bregusrwydd newydd (CVE-2019-1125) yn y mecanwaith gweithredu cyfarwyddiadau hapfasnachol o CPUs modern, a elwir yn SWAPGS, sy'n cyfateb i enw'r cyfarwyddyd prosesydd sy'n achosi'r broblem. Bregusrwydd yn caniatΓ‘u caniatΓ‘u i ymosodwr di-freintiedig bennu cynnwys ardaloedd cof cnewyllyn neu redeg peiriannau rhithwir. Problem wedi'i gadarnhau mewn proseswyr Intel (x86_64) ac yn rhannol yn effeithio Proseswyr AMD nad yw'r prif fector ymosodiad yn ymddangos ar eu cyfer. Nid yw dulliau a weithredwyd yn flaenorol i wrthweithio gwendidau Specter a Meltdown yn amddiffyn rhag ymosodiad SWAPGS wrth ddefnyddio proseswyr Intel, ond mae atgyweiriadau eisoes wedi'u cynnig ar gyfer Linux, ChromeOS, Android a Windows.

Mae'r bregusrwydd yn perthyn i'r dosbarth Specter v1 ac mae'n seiliedig ar y syniad o adfer data o storfa'r prosesydd sy'n weddill ar Γ΄l gweithredu cyfarwyddiadau yn hapfasnachol. Er mwyn gwella perfformiad, mae unedau rhagfynegi cangen o CPUs modern yn defnyddio gweithredu rhagataliol o rai cyfarwyddiadau sydd fwyaf tebygol o gael eu gweithredu, ond heb aros am gyfrifo'r holl ffactorau sy'n pennu eu gweithrediad (er enghraifft, pan nad yw amodau cangen neu baramedrau mynediad wedi'u cyflawni. eto wedi ei gyfrifo). Os na chaiff y rhagfynegiad ei gadarnhau, mae'r prosesydd yn taflu canlyniad y gweithrediad hapfasnachol, ond mae'r data a brosesir yn ystod ei fod yn aros yn storfa'r prosesydd a gellir ei adfer gan ddefnyddio dulliau ar gyfer pennu cynnwys y storfa trwy sianeli ochr, gan ddadansoddi'r newid mewn mynediad amser i ddata wedi'i storio a heb ei gadw.

Hynodrwydd yr ymosodiad newydd yw'r defnydd o ollyngiad sy'n digwydd yn ystod gweithrediad hapfasnachol y cyfarwyddyd SWAPGS, a ddefnyddir mewn systemau gweithredu i ddisodli gwerth y gofrestr GS pan fydd rheolaeth yn mynd o ofod y defnyddiwr i gnewyllyn yr AO (y GS mae'r gwerth a ddefnyddir mewn gofod defnyddiwr yn cael ei ddisodli gan y gwerth a ddefnyddir yn ystod gweithrediadau yn y cnewyllyn ). Yn y cnewyllyn Linux, mae GS yn storio pwyntydd per_cpu a ddefnyddir i gyrchu data cnewyllyn, ac mae gofod defnyddwyr yn storio awgrymiadau i TLS (Thread Local Storage).

Er mwyn osgoi galw'r cyfarwyddyd SWAPGS ddwywaith wrth gyrchu'r cnewyllyn eto o ofod cnewyllyn neu wrth weithredu cod nad oes angen newid cofrestr GS arno, cynhelir gwiriad a changen amodol cyn y cyfarwyddyd. Mae'r peiriant gweithredu hapfasnachol yn mynd ymlaen yn rhagweithiol i weithredu cod gyda'r cyfarwyddyd SWAPGS heb aros am ganlyniad y siec, ac os na chadarnheir y gangen a ddewiswyd, mae'n taflu'r canlyniad. Felly, gall sefyllfa godi pan fydd cangen nad yw'n ymwneud Γ’ gweithredu SWAPGS yn cael ei dewis yn hapfasnachol, ond yn ystod gweithredu hapfasnachol bydd gwerth y gofrestr GS yn cael ei newid gan gyfarwyddyd SWAPGS a'i ddefnyddio mewn gweithrediadau cof dibynnol sy'n dod i ben yn y storfa CPU.

Mae ymchwilwyr wedi cynnig dwy senario ymosodiad y mae prototeipiau ecsbloetio wedi'u paratoi ar eu cyfer. Mae'r senario gyntaf yn seiliedig ar y sefyllfa lle nad yw'r cyfarwyddyd SWAPGS yn cael ei weithredu'n hapfasnachol, er ei fod yn cael ei ddefnyddio mewn gwirionedd wrth gyflawni, a'r ail yw'r gwrthwyneb, pan weithredir y cyfarwyddyd SWAPGS yn hapfasnachol, er na ddylid ei weithredu mewn gwirionedd. Ar gyfer pob senario, mae dau opsiwn ar gyfer ecsbloetio: gall yr ymosodwr bennu'r gwerth mewn cyfeiriad penodol yn ardal y cnewyllyn, a gall yr ymosodwr chwilio am werth penodol mewn cyfeiriadau ar hap yn y cnewyllyn. Mae cyflawni ymosodiad yn cymryd amser hir ac efallai y bydd angen sawl awr i gwblhau'r gollyngiad.

Mae problem yn y cnewyllyn Linux dileu trwy newid y rhesymeg o alw'r cyfarwyddyd SWAPGS (rhwystro gweithredu hapfasnachol), yn debyg i gywiro gwendidau eraill yn y dosbarth Specter v1. Disgwylir i'r amddiffyniad ychwanegol gael effaith fach iawn ar berfformiad llwythi gwaith nodweddiadol. Mae hwyrni yn digwydd yn ystod y cyfnod newid rhwng gofod defnyddiwr a chnewyllyn, a all arwain at berfformiad gwael pan fydd, er enghraifft, yn galw system drwm o'r cais neu'n cynhyrchu NMI yn aml ac yn torri ar draws.

Mae'r atgyweiriad yn gofyn am osod diweddariad cnewyllyn ar y system westeiwr ac amgylcheddau gwesteion, ac yna ailgychwyn system. Er mwyn analluogi amddiffyniad ar Linux, gellir defnyddio'r opsiwn "nospectre_v1", sydd hefyd yn analluogi mesurau i rwystro bregusrwydd SWAPGS. Mae'r atgyweiriad ar gael fel clwt ar gyfer y cnewyllyn Linux, sydd eisoes wedi'i gynnwys yn y datganiadau 4.19.65, 5.2.7, 4.14.137, 4.9.188 a 4.4.188. Nid yw diweddariadau ar gyfer dosbarthiadau Linux wedi'u rhyddhau eto (Debian, RHEL, Fedora, Arch Linux, SUS/openSUSE, Ubuntu). Ar Windows, cafodd y broblem ei datrys yn dawel Diweddariad mis Gorffennaf. Cwmni Google wedi'i baratoi trwsio ar gyfer cnewyllyn 4.19 gludo gyda ChromeOS a Android.

Yn Γ΄l ymchwilwyr o Bitdefender, hysbyswyd Intel am y broblem yn Γ΄l ym mis Awst y llynedd. Penderfynwyd trwsio'r broblem yn rhaglennol, ac roedd datblygwyr o Microsoft, Google a'r cnewyllyn Linux yn ymwneud Γ’ datblygu datrysiad cydlynol. Mae proseswyr Intel hΕ·n, cyn-Ivy Bridge, yn llawer anoddach i ymosod arnynt oherwydd y diffyg cefnogaeth i'r cyfarwyddyd WRGSBASE a ddefnyddir yn y camfanteisio. Nid yw systemau ARM, POWER, SPARC, MIPS, a RISC-V yn cael eu heffeithio gan y broblem oherwydd nad ydynt yn cefnogi cyfarwyddyd SWAPGS.

Mae'r broblem yn effeithio'n bennaf ar berchnogion proseswyr Intel -
Ar systemau AMD, dim ond yr ail senario ymosodiad y gellir ei atgynhyrchu, sy'n gyfyngedig i brosesu hapfasnachol o werth sylfaenol y gofrestr GS, y gellir ei ddefnyddio i chwilio am werthoedd penodol mewn ardaloedd cof ar hap. I rwystro'r opsiwn ymosodiad hwn digon dulliau presennol o amddiffyn rhag Spectre v1.

Ffynhonnell: opennet.ru

Ychwanegu sylw