Compilazione con flag retpoline GCC

2

A partire dalla versione 8 (successivamente backported alla 7.3), GCC ha aggiunto il supporto per retpoline [ 0] . Mentre capisco che è inteso [citazione necessaria] per l'uso nel patching del kernel per Spectre (es .: [1] [2] ), che non impedisce ai normali sviluppatori di utilizzare quelle bandiere.

In quanto tale, dovrei usare i flag per retpoline ( -mindirect-branch , -mfunction-return e correlati)?

Ad esempio, ho scritto un programma di generazione password protetto da crittografia in C [3] . Quando compilo usando -mindirect-branch=thunk -mfunction-return=thunk , il binario risultante è diverso da quello senza l'uso di quei flag, presumibilmente dallo switch tra call e jump to call e return thunk. C'è qualche ragione per farlo o qualche vantaggio dal punto di vista della sicurezza?

    
posta esote 21.05.2018 - 04:40
fonte

0 risposte

Leggi altre domande sui tag