BHI is in nije Spectre-klasse kwetsberens yn Intel- en ARM-processors

In team fan ûndersikers fan 'e Frije Universiteit fan Amsterdam hat in nije kwetsberens identifisearre yn' e mikroarsjitektoanyske struktueren fan Intel- en ARM-processors, dat is in útwreide ferzje fan 'e Specter-v2-kwetsberens, wêrtroch't de eIBRS- en CSV2-beskermingsmeganismen dy't oan processors tafoege wurde kinne omgean. De kwetsberens hat ferskate nammen krigen: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) en Specter-BHB (CVE-2022-23960), dy't ferskate manifestaasjes beskriuwe fan itselde probleem (BHI - in oanfal dy't beynfloedet ferskillende privileezje nivo, Bygelyks, in brûker proses en de kearn, BHB - in oanfal op deselde privileezje nivo, Bygelyks, eBPF JIT en de kearn).

Undersikers hawwe in wurkjende eksploitaasje oantoand wêrtroch brûkersromte willekeurige gegevens út kernelûnthâld kin ekstrahearje. Bygelyks, it wurdt sjen litten hoe't, mei help fan de tariede eksploitaasje, is it mooglik om út 'e kernel buffers in tekenrige mei in hash fan it wachtwurd fan de root brûker, laden út de / etc/shadow triem. De eksploitaasje toant de mooglikheid om de kwetsberens te eksploitearjen binnen ien privileezjenivo (kernel-to-kernel oanfal) mei in troch de brûker laden eBPF-programma. De mooglikheid om ynstee fan eBPF de Spectre-gadgets te brûken besteande yn 'e kernelkoade, sekwinsjes fan kommando's dy't liede ta spekulative útfiering fan ynstruksjes, is ek net útsletten.

De kwetsberens ferskynt yn 'e measte hjoeddeistige Intel-processors, mei útsûndering fan processors fan' e Atom-famylje. Fan 'e ARM-processors wurde Cortex-A15, Cortex-A57, Cortex-A7 *, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 en mooglik guon Cortex-R-chips beynfloede. Neffens ûndersyk docht de kwetsberens him net út yn AMD-processors. Om it probleem op te lossen, binne ferskate softwaremetoaden foarsteld om de kwetsberens te blokkearjen, dy't brûkt wurde kinne foardat it ferskinen fan hardwarebeskerming yn takomstige CPU-modellen is.

Om oanfallen fia it eBPF-subsysteem te blokkearjen, is it oan te rieden om standert de mooglikheid út te skeakeljen om eBPF-programma's te laden troch unprivilegiearre brûkers troch 1 te skriuwen nei it bestân "/proc/sys/kernel/unprivileged_bpf_disabled" of troch it kommando "sysctl -w kernel" út te fieren .unprivileged_bpf_disabled=1". Om oanfallen fia gadgets te blokkearjen, wurdt it oanrikkemandearre om de LFENCE-ynstruksje te brûken yn koade-seksjes dy't mooglik liede ta spekulative útfiering. It is opmerklik dat de standertkonfiguraasje fan de measte Linux-distribúsjes al de nedige beskermingsmaatregels befetsje dy't genôch binne om de eBPF-oanfal te blokkearjen dy't troch de ûndersikers oantoand. De oanbefellings fan Intel om unprivilegiearre tagong ta eBPF út te skeakeljen wurde ek standert tapast te begjinnen mei de Linux 5.16-kernel en wurde weromporteare nei eardere tûken.

Konseptueel is BHI in útwreide fariant fan 'e Specter-v2-oanfal, wêryn't de tafoege beskerming (Intel eIBRS en Arm CSV2) kin omgean en gegevenslekkage organisearje, ferfanging fan wearden yn 'e buffer mei in globale branchskiednis (Branch History Buffer ) wurdt brûkt, dy't wurdt brûkt yn 'e CPU om fertakking fan foarsizzingsnauwkeurigens te ferbetterjen troch rekken te hâlden mei de skiednis fan ferline transysjes. Yn 'e rin fan in oanfal troch manipulaasjes mei de skiednis fan transysjes wurde betingsten makke foar ferkearde foarsizzing fan' e oergong en de spekulative útfiering fan 'e nedige ynstruksjes, wêrfan it resultaat yn' e cache fêstiget.

Mei útsûndering fan it brûken fan in Branch History Buffer ynstee fan in Branch Target Buffer, is de nije oanfal identyk oan Specter-v2. De taak fan de oanfaller is om sokke betingsten te meitsjen dat it adres, by it útfieren fan in spekulative operaasje, wurdt nommen út it gebiet fan 'e gegevens dy't bepaald wurde. Nei it útfieren fan in spekulative yndirekte sprong, bliuwt it sprongadres lêzen út it ûnthâld yn 'e cache, wêrnei't ien fan' e metoaden foar it bepalen fan de ynhâld fan 'e cache kin brûkt wurde om it op te heljen basearre op in analyze fan feroaringen yn' e tagongstiid nei cache en net cache gegevens.

Boarne: opennet.ru

Add a comment