Verifica dell'integrità del programma residente prima di ogni corsa

1

Sono consapevole che i sistemi operativi verificano l'autenticità e l'amp; integrità di un file di programma durante l'installazione di un programma in un sistema.

La mia domanda è, i sistemi operativi più diffusi forniscono un modo per verificare (e avvisare l'utente se modificato / manomesso dal malware sul sistema) l'integrità di un programma che risiede su un disco, ogni volta che un utente lo esegue? Il mio contenuto del programma sarebbe firmato e trasporterà un certificato da una CA valida.

Sono anche consapevole che il malware potrebbe semplicemente sostituire l'intero programma e rimuovere qualsiasi codice che richieda al sistema operativo di eseguire un controllo di integrità. Ma sono interessato solo a rilevare attacchi come un attacco proxy DLL, in cui l'intero programma non viene sostituito / modificato.

    
posta user3272983 24.05.2018 - 07:59
fonte

1 risposta

1

Linux supporta IMA , l'Integrity Measurement Architecture. Questa è una caratteristica che memorizza un hash crittografico di ogni file negli attributi estesi sul filesystem. Quando viene caricata una pagina da un file, l'intero file viene letto, cancellato e l'hash è verificato. L'hash fa parte di un hash tree, verificando gli hash fino a un singolo hash root affidabile. Questo hash di root può essere firmato o protetto nel TPM del sistema. I tentativi di caricare un file che è stato modificato restituiranno -EIO .

Perché l'intero file deve necessariamente essere letto per calcolare il suo hash, un ottimizzazione del rendimento chiamata richiesta di paging , che carica solo le pagine richieste nella memoria anziché nell'intero file, non funzionerà più. Ciò può aumentare il tempo di avvio di file eseguibili o eseguibili di grandi dimensioni che si collegano al numero di librerie di grandi dimensioni, in particolare su dischi lenti.

    
risposta data 15.06.2018 - 23:50
fonte

Leggi altre domande sui tag