Kasper, lub scanner rau kev xav txog kev ua tiav cov teeb meem hauv Linux kernel, tam sim no muaj

Ib pab pawg ntawm cov kws tshawb fawb los ntawm Free University of Amsterdam tau luam tawm Kasper cov cuab yeej tsim los txheeb xyuas cov lej snippets hauv Linux kernel uas tuaj yeem siv los siv Spectre-class vulnerabilities tshwm sim los ntawm kev xav txog kev ua tiav ntawm lub processor. Lub hauv paus code rau cov cuab yeej yog muab faib raws li Apache 2.0 daim ntawv tso cai.

Cia peb nco qab tias txhawm rau ua kom muaj kev tawm tsam xws li Spectre v1, uas ua rau nws muaj peev xwm los txiav txim siab cov ntsiab lus ntawm kev nco, muaj nyob rau hauv cov cai muaj cai ntawm qee cov kab ke ntawm cov lus txib (gadgets) yuav tsum tau ua, ua rau kev ua tiav ntawm cov lus qhia. . Rau optimization lub hom phiaj, tus processor pib ua tej yam xws li gadgets nyob rau hauv speculative hom, ces txiav txim siab hais tias lub ceg kwv yees tsis ncaj ncees lawm thiab rolls rov qab cov hauj lwm rau lawv tus qub lub xeev, tab sis cov ntaub ntawv ua tiav thaum lub sij hawm speculative ua tiav nyob rau hauv lub cache thiab microarchitectural buffers thiab muaj nyob rau retrieval los ntawm lawv siv ntau txoj kev txiav txim siab cov ntaub ntawv residual los ntawm lwm tus neeg raws.

Yav dhau los muaj cov cuab yeej rau kev tshuaj ntsuam xyuas gadgets rau Spectre qhov tsis zoo, raws li kev tshawb nrhiav cov qauv zoo ib yam, pom muaj qib siab ntawm qhov tsis zoo, thaum ploj lawm ntau cov khoom siv tiag tiag (kev sim pom tias 99% ntawm cov cuab yeej txheeb xyuas los ntawm cov cuab yeej zoo li no tsis tuaj yeem siv rau kev tawm tsam. , thiab 33% ntawm cov khoom siv ua haujlwm uas tuaj yeem ua rau muaj kev tawm tsam tsis pom).

Txhawm rau txhim kho qhov zoo ntawm kev txheeb xyuas cov cuab yeej muaj teeb meem, Kasper qauv qhov tsis zoo uas tus neeg tawm tsam tuaj yeem siv tau ntawm txhua kauj ruam ntawm kev ua Spectre chav kawm tawm tsam - teeb meem uas tso cai rau cov ntaub ntawv tswj tau ua qauv (piv txwv li, hloov cov ntaub ntawv tawm tsam rau hauv cov qauv microarchitectural los cuam tshuam cov kev ua tiav tom qab siv. LVI chav kawm tawm tsam), nkag mus rau cov ntaub ntawv tsis pub lwm tus paub (piv txwv li, thaum mus dhau qhov txwv tsis pub dhau lossis siv lub cim xeeb tom qab nws tso tawm) thiab xau cov ntaub ntawv tsis pub lwm tus paub (piv txwv li, los ntawm kev txheeb xyuas lub xeev ntawm lub processor cache lossis siv MDS txoj kev).

Kasper, lub scanner rau kev xav txog kev ua tiav cov teeb meem hauv Linux kernel, tam sim no muaj

Thaum kuaj, cov ntsiav tau txuas nrog Kasper lub tsev qiv ntawv runtime thiab cov tshev uas khiav ntawm qib LLVM. Cov txheej txheem kuaj xyuas emulates speculative code execution, siv siv lub checkpoint-restore mechanism, uas tshwj xeeb executes ib tug incorrectly kwv yees li code ceg, thiab ces yob rov qab mus rau lub qub xeev ua ntej ceg pib. Kasper tseem sim simulate ntau yam software thiab hardware vulnerabilities, txheeb xyuas qhov cuam tshuam ntawm kev tsim vaj tsev thiab microarchitectural cuam tshuam, thiab ua qhov kev sim fuzz ntawm kev ua phem tuaj yeem tshwm sim. Txhawm rau txheeb xyuas kev ua tiav, qhov chaw nres nkoj DataFlowSanitizer rau Linux ntsiav yog siv, thiab rau kev sim fuzzing, ib qho kev hloov kho ntawm pob syzkaller siv.

Kasper, lub scanner rau kev xav txog kev ua tiav cov teeb meem hauv Linux kernel, tam sim no muaj

Kev luam theej duab ntawm Linux ntsiav siv Kasper txheeb xyuas 1379 yav dhau los tsis paub gadgets uas tuaj yeem ua rau cov ntaub ntawv xau thaum xav txog kev ua tiav cov lus qhia. Nws raug sau tseg tias tej zaum tsuas yog qee qhov ntawm lawv tuaj yeem tsim teeb meem tiag tiag, tab sis ua kom pom tias muaj kev phom sij tiag tiag, thiab tsis yog ib qho kev xav xwb, tus qauv ua haujlwm ntawm kev siv tau tsim los rau ib qho ntawm cov teeb meem code tawg, ua rau cov ntaub ntawv. leakage ntawm kernel nco.

Tau qhov twg los: opennet.ru

Ntxiv ib saib