Kasper, skanilo por konjektaj kodaj ekzekutproblemoj en la Linukso-kerno, nun haveblas

Teamo de esploristoj de la Libera Universitato de Amsterdamo publikigis Kasper-ilaron desegnitan por identigi kodajn fragmentojn en la Linukso-kerno, kiuj povas esti uzataj por ekspluati vundeblecojn de Spectre-klaso kaŭzitaj de konjekta koda ekzekuto sur la procesoro. La fontkodo por la ilaro estas distribuita sub la permesilo Apache 2.0.

Ni rememoru, ke por efektivigi atakojn kiel Spectre v1, kiuj ebligas determini la enhavon de memoro, necesas la ĉeesto en la privilegiita kodo de certa sinsekvo de komandoj (gadgets), kondukante al konjekta plenumo de instrukcioj. . Por optimumigo, la procesoro komencas ekzekuti tiajn noviletojn en konjekta reĝimo, tiam determinas ke la branĉa prognozo ne estis pravigita kaj retroiras la operaciojn al sia origina stato, sed la datumoj prilaboritaj dum konjekta ekzekuto finiĝas en la kaŝmemoro kaj mikroarkitekturaj bufroj kaj estas havebla por rehavigo de ili uzante diversajn metodojn determini restajn datumojn per triapartaj kanaloj.

Antaŭe disponeblaj iloj por skanado de aparatoj por la vundebleco Spectre, bazita sur serĉado de tipaj ŝablonoj, montris tre altan nivelon de falsaj pozitivoj, dum mankis multaj realaj iloj (eksperimentoj montris ke 99% de iloj identigitaj per tiaj iloj ne povus esti uzataj por atakoj. , kaj 33% de laboraj aparatoj kiuj povus kaŭzi atakon ne estis rimarkitaj).

Por plibonigi la kvaliton de identigado de problemaj aparatoj, Kasper modeligas vundeblecojn kiujn atakanto povas ekspluati ĉe ĉiu paŝo de farado de Spectre-klasaj atakoj - problemoj kiuj permesas datumkontrolon estas modeligitaj (ekzemple, anstataŭigado de atakantdatenoj en mikroarkitekturajn strukturojn por influi postan konjektan ekzekuton uzante). LVI-klasatakoj), akiri aliron al konfidencaj informoj (ekzemple, kiam irante preter bufrolimoj aŭ uzante memoron post kiam ĝi estas liberigita) kaj likas konfidencajn informojn (ekzemple, analizante la staton de la procesorkaŝmemoro aŭ uzante la MDS-metodon).

Kasper, skanilo por konjektaj kodaj ekzekutproblemoj en la Linukso-kerno, nun haveblas

Dum testado, la kerno estas ligita kun Kasper-rultempaj bibliotekoj kaj kontroloj funkcias ĉe la LLVM-nivelo. La kontrolprocezo kopias konjektan kodekzekuton, efektivigitan uzante la transirejon-restarigmekanismon, kiu specife efektivigas neĝuste antaŭdiritan kodbranĉon, kaj tiam ruliĝas reen al la origina stato antaŭ ol la branĉo komenciĝis. Kasper ankaŭ provas simuli diversajn softvarajn kaj aparatajn vundeblecojn, analizas la efikon de arkitekturaj kaj mikroarkitekturaj efikoj, kaj faras fuztestadon de eblaj atakagoj. Por analizi ekzekutfluojn, la haveno DataFlowSanitizer por la Linukso-kerno estas uzata, kaj por fuziga testado, modifita versio de la pakaĵo syzkaller estas uzata.

Kasper, skanilo por konjektaj kodaj ekzekutproblemoj en la Linukso-kerno, nun haveblas

Skanado de la Linukso-kerno uzante Kasper identigis 1379 antaŭe nekonatajn aparatojn, kiuj eble kondukas al datumfluado dum konjekta plenumo de instrukcioj. Oni rimarkas, ke eble nur kelkaj el ili povas prezenti verajn problemojn, sed por pruvi, ke ekzistas vera danĝero, kaj ne nur teoria, oni ellaboris funkciantan prototipon de ekspluato por unu el la problemaj kodfragmentoj, kondukante al informoj. elfluo el kernmemoro.

fonto: opennet.ru

Aldoni komenton