Kasper, ọlọjẹ kan fun awọn iṣoro ipaniyan koodu asọye ninu ekuro Linux, wa ni bayi

Ẹgbẹ kan ti awọn oniwadi lati Ile-ẹkọ giga Ọfẹ ti Amsterdam ti ṣe atẹjade ohun elo irinṣẹ Kasper ti a ṣe apẹrẹ lati ṣe idanimọ awọn snippets koodu ni ekuro Linux ti o le ṣee lo lati lo nilokulo awọn ailagbara kilasi Specter ti o ṣẹlẹ nipasẹ ipaniyan koodu akiyesi lori ero isise naa. Koodu orisun fun ohun elo irinṣẹ ti pin labẹ iwe-aṣẹ Apache 2.0.

Jẹ ki a ranti pe lati le gbe awọn ikọlu bii Specter v1, eyiti o jẹ ki o ṣee ṣe lati pinnu awọn akoonu ti iranti, wiwa ninu koodu anfani ti ilana kan ti awọn aṣẹ (awọn ohun elo) nilo, ti o yori si ipaniyan akiyesi ti awọn ilana. . Fun awọn idi iṣapeye, ero isise naa bẹrẹ lati ṣiṣẹ iru awọn irinṣẹ ni ipo akiyesi, lẹhinna pinnu pe asọtẹlẹ ẹka ko ni idalare ati yipo awọn iṣẹ ṣiṣe pada si ipo atilẹba wọn, ṣugbọn data ti a ṣe ilana lakoko ipaniyan akiyesi pari ni kaṣe ati awọn buffers microarchitectural ati wa fun igbapada lati ọdọ wọn nipa lilo awọn ọna oriṣiriṣi ipinnu ti data to ku nipasẹ awọn ikanni ẹnikẹta.

Awọn irinṣẹ ti o wa ni iṣaaju fun awọn ohun elo ọlọjẹ fun ailagbara Specter, ti o da lori wiwa fun awọn ilana aṣoju, ṣafihan ipele giga pupọ ti awọn idaniloju eke, lakoko ti o padanu ọpọlọpọ awọn irinṣẹ gidi (awọn idanwo fihan pe 99% awọn ohun elo ti a mọ nipasẹ iru awọn irinṣẹ ko le ṣee lo fun awọn ikọlu. , ati 33% ti awọn irinṣẹ iṣẹ ti o le ja si ikọlu ko ṣe akiyesi).

Lati mu ilọsiwaju ti idamo awọn ohun elo iṣoro, awọn awoṣe Kasper awọn ailagbara ti ikọlu le lo nilokulo ni igbesẹ kọọkan ti gbigbe awọn ikọlu kilasi Specter - awọn iṣoro ti o gba laaye iṣakoso data jẹ apẹrẹ (fun apẹẹrẹ, rọpo data ikọlu sinu awọn ẹya microarchitectural lati ni agba ipaniyan akiyesi atẹle nipa lilo Awọn ikọlu kilasi LVI), ni iraye si alaye aṣiri (fun apẹẹrẹ, nigbati o ba kọja awọn aala ifipamọ tabi lilo iranti lẹhin ti o ti ni ominira) ati jo alaye asiri (fun apẹẹrẹ, nipa itupalẹ ipo kaṣe ero isise tabi lilo ọna MDS).

Kasper, ọlọjẹ kan fun awọn iṣoro ipaniyan koodu asọye ninu ekuro Linux, wa ni bayi

Nigbati o ba ṣe idanwo, ekuro naa ni asopọ pẹlu awọn ile ikawe asiko asiko Kasper ati awọn sọwedowo nṣiṣẹ ni ipele LLVM. Ilana iṣayẹwo n ṣe apẹẹrẹ ipaniyan koodu akiyesi, ti a ṣe ni lilo ẹrọ mimu-pada sipo ibi-iṣayẹwo, eyiti o ṣiṣẹ ni pataki ẹka koodu asọtẹlẹ ti ko tọ, ati lẹhinna yipo pada si ipo atilẹba ṣaaju ki ẹka naa bẹrẹ. Kasper tun ngbiyanju lati ṣe adaṣe ọpọlọpọ sọfitiwia ati awọn ailagbara ohun elo, ṣe itupalẹ ipa ti ayaworan ati awọn ipa microarchitectural, ati ṣe idanwo fuzz ti awọn iṣe ikọlu ti o ṣeeṣe. Lati ṣe itupalẹ awọn ṣiṣan ipaniyan, ibudo DataFlowSanitizer fun ekuro Linux ti lo, ati fun idanwo iruju, ẹya tuntun ti package syzkaller ti lo.

Kasper, ọlọjẹ kan fun awọn iṣoro ipaniyan koodu asọye ninu ekuro Linux, wa ni bayi

Ṣiṣayẹwo ekuro Linux nipa lilo Kasper ṣe idanimọ awọn ohun elo 1379 ti a ko mọ tẹlẹ ti o le ja si jijo data lakoko ipaniyan akiyesi ti awọn ilana. O ṣe akiyesi pe boya diẹ ninu wọn nikan le fa awọn iṣoro gidi, ṣugbọn lati ṣafihan pe eewu gidi wa, kii ṣe ilana imọ-jinlẹ nikan, apẹrẹ iṣẹ ti ilokulo ni idagbasoke fun ọkan ninu awọn ajẹkù koodu iṣoro, ti o yori si alaye. jijo lati iranti ekuro.

orisun: opennet.ru

Fi ọrọìwòye kun