Come proteggere lo Shadow Stack?

1

Ho scoperto che molti meccanismi di protezione sono usati nella sicurezza del computer per garantire l'integrità del flusso di controllo, uno di questi meccanismi è lo stack Shadow:

Il principio è molto semplice e garantisce l'integrità dell'indirizzo di ritorno delle funzioni. In effetti, l'indirizzo di ritorno situato nella pila viene confrontato con quello inserito nello stack shadow.

Esistono diverse implementazioni dello stack Shadow, uno di questi consiste di che modifica la funzione epilogo e prologo (per farlo scrivere nello stack Ombra e caricarlo da esso per il controllo).

La domanda è: se le funzioni nello spazio utente sono autorizzate a scrivere nello shadow stack, come possiamo impedire all'hacker di scrivere / modificare lo Shadow stack?

    
posta Ahmed 03.05.2018 - 10:15
fonte

2 risposte

1

Non può essere completamente protetto, ma questo non è lo scopo dello stack shadow. Lo shadow stack impedisce la modifica dello stack da un overflow del buffer nella variabile locale (variabile sullo stack), non da un codice arbitrario. Se l'attaccante può già eseguire codice arbitrario, è game over.

    
risposta data 03.05.2018 - 12:02
fonte
1

Proteggere lo shadow stack è piuttosto costoso, la protezione potrebbe essere a livello hardware. Per rispondere alla tua domanda puoi trovare ulteriori informazioni sulla protezione dello Shadow Stack qui:

link

T. H. Dang, P. Maniatis e D. Wagner. La prestazione costo di stack di ombre e stack di canarini. Nel 10 ° Simposio ACM sulla sicurezza informatica, informatica e delle comunicazioni, ASIACCS, 2015.

link

M. Payer, A. Barresi e T. R. Gross. Controllo a grana fine integrità del flusso attraverso l'indurimento binario. In 12ª Conferenza sulla rilevazione di intrusioni, malware e vulnerabilità Valutazione, DIMVA, 2015.

    
risposta data 03.05.2018 - 18:16
fonte

Leggi altre domande sui tag