SWAPGS - eng nei Schwachstelle am CPU spekulativ Ausféierungsmechanismus

Fuerscher vu Bitdefender identifizéiert nei Schwachstelle (CVE-2019-1125) am spekulativen Instruktiounsausféierungsmechanismus vu modernen CPUs, deen SWAPGS genannt gëtt, wat dem Numm vun der Prozessorinstruktioun entsprécht, déi de Problem verursaacht. Schwachstelle et erlaabt en onprivilegéierten Ugräifer kann d'Inhalter vu Kernel Memory Beräicher bestëmmen oder virtuelle Maschinnen lafen. Problem confirméiert an Intel Prozessoren (x86_64) an deelweis beaflosst AMD Prozessoren fir déi den Haaptattack Vektor net schéngt. Virdrun implementéiert Methoden fir d'Specter- a Meltdown Schwachstelle entgéintzewierken schützen net géint den SWAPGS-Attack wann Dir Intel Prozessoren benotzt, awer Fixe si scho fir Linux, ChromeOS, Android a Windows proposéiert ginn.

D'Schwachheet gehéiert zu der Spectre v1 Klass a baséiert op der Iddi fir Daten aus dem Prozessor Cache ze restauréieren, déi no spekulativ Ausféierung vun Instruktioune bleiwen. Fir d'Performance ze verbesseren, benotzen d'Brancheprediktiounseenheete vu modernen CPUs preemptiv Ausféierung vun e puer Instruktiounen, déi am meeschte wahrscheinlech ausgefouert ginn, awer ouni op d'Berechnung vun all de Faktoren ze waarden, déi hir Ausféierung bestëmmen (zum Beispill wann d'Branchebedéngungen oder Zougangsparameter net hunn nach berechent). Wann d'Prognose net bestätegt ass, verschwënnt de Prozessor d'Resultat vun der spekulativer Ausféierung, awer d'Donnéeën, déi während der Veraarbechtung veraarbecht ginn, bleiwen am Prozessor Cache a kënne mat Methoden restauréiert ginn fir den Inhalt vum Cache duerch Säitekanäl ze bestëmmen, d'Ännerung am Zougang z'analyséieren. Zäit ze cache an uncached Daten.

D'Besonderheet vum neien Attack ass d'Benotzung vun engem Leck, deen während der spekulativer Ausféierung vun der SWAPGS-Instruktioun geschitt ass, déi an de Betribssystemer benotzt gëtt fir de Wäert vum GS-Register ze ersetzen wann d'Kontroll vum Benotzerraum an den OS Kernel passéiert (de GS) Wäert, deen am Benotzerraum benotzt gëtt, gëtt mam Wäert ersat, deen während Operatiounen am Kernel benotzt gëtt). Am Linux Kernel späichert GS e per_cpu Pointer deen benotzt gëtt fir Zougang zu Kerneldaten, a Benotzerraum späichert Pointer op TLS (Thread Local Storage).

Fir ze vermeiden datt d'SWAPGS Instruktioun zweemol urufft wann Dir de Kernel erëm aus dem Kernelraum zougitt oder wann Dir Code ausféiert deen keng GS Registerännerung erfuerdert, ginn e Scheck an eng bedingungszweige virun der Instruktioun ausgefouert. De spekulativen Ausféierungsmotor geet proaktiv weider fir de Code mat der SWAPGS-Instruktioun auszeféieren ouni op d'Resultat vum Scheck ze waarden, a wann déi gewielte Branche net bestätegt ass, verwerft d'Resultat. Sou kann eng Situatioun entstoen wann eng Branche déi keng SWAPGS Ausféierung involvéiert spekulativ ausgewielt gëtt, awer wärend der spekulativer Ausféierung gëtt de Wäert vum GS Register vun der SWAPGS Instruktioun geännert an an ofhängege Gedächtnisoperatiounen benotzt déi am CPU Cache ophalen.

Fuerscher hunn zwee Attackszenarie proposéiert, fir déi Ausbeutungsprototypen virbereet goufen. Den éischten Szenario baséiert op der Situatioun wou d'SWAPGS Instruktioun net spekulativ ausgefouert gëtt, obwuel se tatsächlech an der Ausféierung benotzt gëtt, an déi zweet ass de Géigendeel, wann d'SWAPGS Instruktioun spekulativ ausgefouert gëtt, obwuel se eigentlech net sollt ausgefouert ginn. Fir all Szenario ginn et zwou Méiglechkeeten fir Ausbeutung: den Ugräifer kann de Wäert op enger spezifescher Adress am Kernelberäich bestëmmen, an den Ugräifer kann no engem spezifesche Wäert op zoufälleg Adressen am Kernel sichen. Eng Attack duerchzeféieren dauert laang an d'Exploitatioun kann e puer Stonnen erfuerderen fir de Leck ofzeschléissen.

Et gëtt e Problem am Linux Kernel eliminéiert andeems d'Logik geännert gëtt fir d'SWAPGS Instruktioun ze ruffen (Spär vun der Spekulativer Ausféierung), ähnlech wéi d'Korrektur vun anere Spectre v1 Klass Schwachstelle. Den zousätzleche Schutz gëtt erwaart e minimalen Impakt op d'Performance vun typesche Aarbechtsbelaaschtungen ze hunn. Latency geschitt während der Schaltphase tëscht Benotzer- a Kernelraum, wat zu enger schlechter Leeschtung resultéiere kann, wann zum Beispill et schwéier System vun der Applikatioun oder heefeg Generatioun vun NMIs an Ënnerbriechungen gëtt.

De Fix erfuerdert d'Installatioun vun engem Kernelupdate souwuel am Hostsystem wéi och am Gaaschtëmfeld, gefollegt vun engem System Neistart. Fir de Schutz op Linux auszeschalten, kann d'Optioun "nospectre_v1" benotzt ginn, wat och Moossnamen deaktivéiert fir d'SWAPGS Schwachstelle ze blockéieren. De Fix ass verfügbar als flécken fir de Linux Kernel, dee schonn an de Verëffentlechungen abegraff ass 4.19.65, 5.2.7, 4.14.137, 4.9.188 an 4.4.188. Updates fir Linux Verdeelungen sinn nach net verëffentlecht ginn (Debian, RHEL, Fedora, Arch Linux, SUSE/openSUSE, Ubuntu). Op Windows gouf de Problem roueg fixéiert Juli Update. Google Firma virbereet fix fir Kernel 4.19 geschéckt mat ChromeOS an Android.

Laut Fuerscher vu Bitdefender, Intel gouf am August d'lescht Joer iwwer de Problem informéiert. Et gouf decidéiert de Problem programmatesch ze fixéieren, fir déi Entwéckler vu Microsoft, Google an dem Linux Kernel an der koordinéierter Entwécklung vun enger Fix involvéiert waren. Eeler Intel Prozessoren, Pre-Ivy Bridge, si vill méi schwéier ze attackéieren wéinst dem Mangel un Ënnerstëtzung fir d'WRGSBASE Instruktioun déi am Exploit benotzt gëtt. ARM, POWER, SPARC, MIPS, a RISC-V Systemer sinn net vum Problem betraff well se d'SWAPGS Instruktioun net ënnerstëtzen.

De Problem beaflosst haaptsächlech Besëtzer vun Intel Prozessoren -
Op AMD Systemer konnt nëmmen den zweeten Attack Szenario reproduzéiert ginn, wat limitéiert ass op spekulativ Veraarbechtung vum Basiswäert vum GS Register, wat benotzt ka ginn fir spezifesch Wäerter an zoufälleg Erënnerungsberäicher ze sichen. Fir dës Attack Optioun ze blockéieren genuch ass bestehend Methode vum Schutz géint Spectre v1.

Source: opennet.ru

Setzt e Commentaire