Kwesbaarhede in die eBPF-substelsel wat beskerming teen Spectre-aanvalle moontlik maak

'n Kwesbaarheid is in die Linux-kern (CVE-2021-33624) geïdentifiseer wat toelaat dat die eBPF-substelsel gebruik word om beskerming teen Spectre-klas kwesbaarhede te omseil, wat dit moontlik maak om die inhoud van geheue te bepaal as gevolg van die skep van voorwaardes vir die spekulatiewe uitvoering van sekere operasies. Die Spectre-aanval vereis die teenwoordigheid van 'n sekere volgorde van opdragte in bevoorregte kode wat lei tot spekulatiewe uitvoering van instruksies. Deur BPF-programme wat vir uitvoering gestuur is, te manipuleer, is dit moontlik om soortgelyke instruksies in eBPF te genereer en die inhoud van kerngeheue en arbitrêre areas van fisiese geheue deur sykanale te lek.

Die kwesbaarheid word veroorsaak deur foute in die verifieerder, wat gebruik word om foute en onaanvaarbare aktiwiteit in BPF-programme op te spoor. Die verifieerder noem moontlike kode-uitvoeringspaaie, maar slaan vertakkingsopsies oor wat onaanvaarbaar is vanuit die oogpunt van die semantiek van die instruksiestel-argitektuur. Wanneer 'n BPF-program uitgevoer word, kan sulke vertakkingsopsies wat nie deur die verifieerder in ag geneem word nie, verkeerdelik deur die verwerker voorspel word en in spekulatiewe modus uitgevoer word. Byvoorbeeld, wanneer die "laai"-bewerking ontleed word, verwag die verifieerder dat die instruksie 'n register gebruik met 'n adres waarvan die waarde altyd binne die gespesifiseerde grense is, maar 'n aanvaller kan toestande skep waaronder die verwerker sal probeer om spekulatief 'n bewerking uit te voer met 'n adres wat nie aan die verifikasievoorwaardes voldoen nie.

Die probleem verskyn sedert die vrystelling van kern 4.15 en is reggestel in die vorm van pleisters (1, 2, 3, 4). Die kwesbaarheid bly nie reggestel in verspreidings (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Boonop kan u kennis neem van die nota oor die prestasie-impak van gereedskap om teen Spectre-kwesbaarhede te beskerm. Die nota gee 'n opsomming van die resultate van optimalisering van die rr (Record and Replay)-ontfouter, wat eens in Mozilla geskep is om moeilik-om-te-herhaal-foute in Firefox te ontfout. Die kas van die stelseloproepe wat gebruik word om die bestaan ​​van gidse na te gaan, het die "rr sources"-bewerking vir die toetsprojek van 3 minute 19 sekondes tot 36 sekondes verminder.

Die optimeringsouteur het besluit om te kyk hoe werkverrigting sou verander nadat Spectre-beskerming gedeaktiveer is. Nadat die stelsel met die "mitigations=af"-parameter opgelaai is, was die uitvoeringstyd van "rr-bronne" sonder optimalisering 2 minute 5 sekondes (1.6 keer vinniger), en met optimalisering was dit 33 sekondes (9% vinniger). Interessant genoeg het die deaktivering van Spectre-beskerming nie net die uitvoeringstyd van kode op kernvlak met 1.4 keer (van 2m9s tot 1m32s) verminder nie, maar ook die uitvoeringstyd in gebruikersruimte gehalveer (van 1m9s tot 0m33s), vermoedelik as gevolg van verminderde doeltreffendheid SVE-kasbewerking en TLB word teruggestel wanneer Spectre-beskerming geaktiveer is.

Bron: opennet.ru

Voeg 'n opmerking