Прапанаваная Google праграмная абарона ад нападу LVI паказала паніжэнне прадукцыйнасці ў 14 раз

Zola Bridges з кампаніі Google прапанаваў для набору кампілятараў LLVM патч з рэалізацыяй абароны SESES (Speculative Execution Side Effect Suppression), якая дапамагае блакаваць напады на механізм спекулятыўнага выканання ў CPU Intel, падобныя LVI. Метад абароны рэалізаваны на ўзроўні кампілятара і заснаваны на даданні кампілятарам пры генерацыі машыннага кода інструкцый LFENCE, якія падстаўляюцца перад кожнай інструкцыяй чытання з памяці або запісы ў памяць, а таксама перад першай інструкцыяй галінавання ў групе інструкцый, завяршальнай блок.

Інструкцыя LFENCE чакае фіксацыі ўсіх папярэдніх аперацый чытання з памяці і забараняе папераджальнае выкананне наступных пасля LFENCE інструкцый, да таго як фіксацыя будзе завершана. Ужыванне LFENCE прыводзіць да істотнага зніжэння прадукцыйнасці, таму абарону прапануецца прымяняць у крайніх выпадках для асабліва крытычнага кода. Апроч поўнай абароны патч прапануе тры сцягі, якія дазваляюць выбарачна адключыць вызначаныя ўзроўні абароны для зніжэння негатыўнага ўплыву на прадукцыйнасць.

У праведзеных тэстах прымяненне абароны SESES для пакета BoringSSL прывяло да зніжэння колькасці выконваемых бібліятэкай аперацый у секунду ў 14 разоў - прадукцыйнасць сабранага з абаронай варыянту бібліятэкі ў сярэднім аказалася ўсяго 7.1% ад паказчыкаў неабароненага варыянту (роскід у залежнасці ад тэсту ад 4% да 23%). ).

Для параўнання, прапанаваны раней для GNU Assembler механізм, які ажыццяўляе падстаноўку LFENCE пасля кожнай аперацыі загрузкі з памяці і перад некаторымі інструкцыямі галінавання, паказаў зніжэнне прадукцыйнасці прыкладна ў 5 разоў (22% ад кода без абароны). Метад абароны таксама прапанаваны и рэалізаваны інжынерамі Intel, але вынікі тэставання прадукцыйнасці для яго пакуль не апублікаваны. Першапачаткова даследнікі, якія выявілі напад LVI, прагназавалі зніжэнне прадукцыйнасці пры ўжыванні поўнай абароны ў 2-19 разоў.

Крыніца: opennet.ru

Дадаць каментар